{"id":2392,"date":"2026-03-23T08:18:04","date_gmt":"2026-03-23T08:18:04","guid":{"rendered":"https:\/\/comidra.com\/?page_id=2392"},"modified":"2026-04-14T10:37:07","modified_gmt":"2026-04-14T10:37:07","slug":"corn","status":"publish","type":"page","link":"https:\/\/comidra.com\/en\/corn\/","title":{"rendered":"COMIDRA CORN DATA"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2392\" class=\"elementor elementor-2392\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-adbbb32 elementor-section-full_width elementor-section-height-min-height elementor-section-items-stretch elementor-section-height-default\" data-id=\"adbbb32\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2e5a2363\" data-id=\"2e5a2363\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-79fd94b1 elementor-widget elementor-widget-image-box\" data-id=\"79fd94b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-image-box-wrapper\"><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"http:\/\/comidra.com\">COMIDRA.COM<\/a><\/h3><p class=\"elementor-image-box-description\">Comidra is a data site that organizes key commodity market data\u2014such as natural gas and WTI crude oil\u2014so you can grasp it at a glance. It presents multiple indicators in intuitive charts to help you quickly understand complex market moves and use them to support decision-making.<span style=\"font-style: inherit;font-weight: inherit;letter-spacing: -0.1px\"><\/span><\/p><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-62cbd78 e-flex e-con-boxed e-con e-parent\" data-id=\"62cbd78\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c9f923b elementor-align-center elementor-widget elementor-widget-button\" data-id=\"c9f923b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"http:\/\/comidra.com\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Natural Gas<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-58b5de6 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"58b5de6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"http:\/\/comidra.com\/WTI\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">WTI<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2acb876 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"2acb876\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"http:\/\/comidra.com\/gold\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">GOLD<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a43a397 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"a43a397\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"http:\/\/comidra.com\/silver\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">SILVER<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-461bd75 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"461bd75\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"http:\/\/comidra.com\/copper\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">COPPER<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b70530 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"6b70530\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"http:\/\/comidra.com\/corn\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">CORN<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c002f2d e-flex e-con-boxed e-con e-parent\" data-id=\"c002f2d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-42dc762 e-con-full e-flex e-con e-child\" data-id=\"42dc762\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d37535f elementor-widget elementor-widget-image\" data-id=\"d37535f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/amzn.to\/4ps0WvO\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"256\" src=\"https:\/\/comidra.com\/wp-content\/uploads\/2026\/01\/charmeter_sous_vide_banner_1200x300_en_v3-1024x256.png\" class=\"attachment-large size-large wp-image-2191\" alt=\"\" srcset=\"https:\/\/comidra.com\/wp-content\/uploads\/2026\/01\/charmeter_sous_vide_banner_1200x300_en_v3-1024x256.png 1024w, https:\/\/comidra.com\/wp-content\/uploads\/2026\/01\/charmeter_sous_vide_banner_1200x300_en_v3-300x75.png 300w, https:\/\/comidra.com\/wp-content\/uploads\/2026\/01\/charmeter_sous_vide_banner_1200x300_en_v3-768x192.png 768w, https:\/\/comidra.com\/wp-content\/uploads\/2026\/01\/charmeter_sous_vide_banner_1200x300_en_v3-18x5.png 18w, https:\/\/comidra.com\/wp-content\/uploads\/2026\/01\/charmeter_sous_vide_banner_1200x300_en_v3.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-470a414 elementor-widget elementor-widget-heading\" data-id=\"470a414\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Corn Investment Chart Overview\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2092a1c e-flex e-con-boxed e-con e-parent\" data-id=\"2092a1c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7124829 elementor-widget elementor-widget-shortcode\" data-id=\"7124829\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <!-- \uc774\ud558 HTML\/CSS\/JS\ub294 \uc6d0\ubcf8 \uadf8\ub300\ub85c \ub450\uc154\ub3c4 \ub429\ub2c8\ub2e4 -->\r\n    <div class=\"silver147-wrap\">\r\n      <div class=\"s147-card\">\r\n        <div class=\"s147-controls\">\r\n          <strong class=\"s147-range-label\">Range:<\/strong>\r\n          <button type=\"button\" class=\"s147-btn\" data-range=\"3\">3M<\/button>\r\n          <button type=\"button\" class=\"s147-btn\" data-range=\"all\">ALL<\/button>\r\n          <span class=\"s147-flex-spacer\"><\/span>\r\n          <em class=\"s147-hint\">Wheel=Zoom \u00b7 Shift+Drag=Box Zoom \u00b7 Double-click=Reset<\/em>\r\n          <button type=\"button\" class=\"s147-btn s147-btn-ghost\" data-action=\"reset\">Reset Zoom<\/button>\r\n          <button type=\"button\" class=\"s147-btn s147-btn-ghost\" data-action=\"png\">Save PNG<\/button>\r\n        <\/div>\r\n\r\n        <div class=\"s147-title\">US Term Structure Prices<\/div>\r\n\r\n        <div class=\"s147-canvas-wrap\">\r\n          <canvas id=\"Corn_chart179_173\" loading=\"lazy\"><\/canvas>\r\n        <\/div>\r\n\r\n        <div class=\"s147-source-wrap\">\r\n          <span class=\"s147-source-pill\">\r\n            <a href=\"https:\/\/finance.yahoo.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Yahoo Finance<\/a>          <\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <style>\r\n      .silver147-wrap{\r\n        overflow-x:auto; -webkit-overflow-scrolling:touch;\r\n        padding:16px; border-radius:18px;\r\n        background:linear-gradient(135deg,#f8fafc,#e2e8f0);\r\n        box-shadow:0 18px 32px rgba(0,0,0,0.18); margin:8px 0;\r\n      }\r\n      .s147-card{\r\n        background:#ffffff; border-radius:14px;\r\n        padding:14px 16px 16px;\r\n        box-shadow:0 6px 18px rgba(0,0,0,0.12);\r\n        border:1px solid rgba(148,163,184,0.55);\r\n        min-width:640px;\r\n      }\r\n      .s147-controls{\r\n        display:flex; gap:6px; align-items:center;\r\n        margin:0 0 8px 0; flex-wrap:wrap;\r\n      }\r\n      .s147-range-label{ font:600 13px system-ui,-apple-system,Segoe UI,Roboto; color:#4b5563; }\r\n      .s147-flex-spacer{ flex:1 1 auto; }\r\n      .s147-btn{\r\n        padding:6px 10px; border-radius:999px;\r\n        border:1px solid rgba(148,163,184,0.9);\r\n        background:linear-gradient(135deg,#ffffff,#f1f5f9);\r\n        font:500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n        cursor:pointer; color:#334155;\r\n        box-shadow:0 1px 2px rgba(0,0,0,0.05);\r\n        transition:background .15s ease, box-shadow .15s ease, transform .05s ease;\r\n      }\r\n      .s147-btn:hover{\r\n        background:linear-gradient(135deg,#f8fafc,#e2e8f0);\r\n        box-shadow:0 2px 4px rgba(0,0,0,0.08); transform:translateY(-0.5px);\r\n      }\r\n      .s147-btn.is-active{\r\n        background:linear-gradient(135deg,#0f172a,#334155);\r\n        color:#ffffff; border-color:#0f172a;\r\n        box-shadow:0 2px 6px rgba(15,23,42,0.35);\r\n      }\r\n      .s147-btn-ghost{ background:#ffffff; border-color:rgba(209,213,219,0.9); color:#374151; }\r\n      .s147-btn-ghost.is-active{ background:#eff6ff; border-color:#93c5fd; color:#1d4ed8; }\r\n      .s147-hint{ font-size:12px; color:#6b7280; }\r\n      .s147-title{ font-weight:800; font-size:18px; color:#0f172a; margin:0 0 6px 0; }\r\n      .s147-canvas-wrap{\r\n        height:480px; position:relative; background:#ffffff;\r\n        border-radius:12px; border:1px solid rgba(148,163,184,0.45); overflow:hidden;\r\n      }\r\n      .s147-canvas-wrap canvas{\r\n        width:100%; height:100%; display:block; user-select:none; -webkit-user-select:none;\r\n        -webkit-user-drag:none; touch-action:none; cursor:default;\r\n      }\r\n      .s147-canvas-wrap canvas:focus,\r\n      .s147-canvas-wrap canvas:focus-visible,\r\n      .s147-canvas-wrap:focus,\r\n      .s147-canvas-wrap:focus-within{\r\n        outline: none !important;\r\n        box-shadow: none !important;\r\n      }\r\n      .s147-source-wrap{ display:flex; justify-content:flex-end; margin-top:6px; }\r\n      .s147-source-pill{\r\n        display:inline-block; padding:4px 10px; border-radius:999px;\r\n        background:rgba(255,255,255,0.96); border:1px solid rgba(0,0,0,0.06);\r\n        font:11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n        color:#6b7280; box-shadow:0 2px 6px rgba(0,0,0,0.08);\r\n      }\r\n      .s147-source-pill a{\r\n        color: inherit;\r\n        text-decoration: none;\r\n        font-weight: 600;\r\n      }\r\n      .s147-source-pill a:hover{ text-decoration: underline; }\r\n      @media (max-width:768px){\r\n        .silver147-wrap{ padding:10px; }\r\n        .s147-card{ min-width:0; }\r\n        .s147-canvas-wrap{ height:360px; }\r\n      }\r\n    <\/style>\r\n\r\n    <script>\r\n      document.addEventListener('DOMContentLoaded', function(){\r\n        const labelsAll   = [\"2025-05-13\",\"2025-05-14\",\"2025-05-15\",\"2025-05-16\",\"2025-05-19\",\"2025-05-20\",\"2025-05-21\",\"2025-05-22\",\"2025-05-23\",\"2025-05-26\",\"2025-05-27\",\"2025-05-28\",\"2025-05-29\",\"2025-05-30\",\"2025-06-02\",\"2025-06-03\",\"2025-06-04\",\"2025-06-05\",\"2025-06-06\",\"2025-06-09\",\"2025-06-10\",\"2025-06-11\",\"2025-06-12\",\"2025-06-13\",\"2025-06-16\",\"2025-06-17\",\"2025-06-18\",\"2025-06-19\",\"2025-06-20\",\"2025-06-23\",\"2025-06-24\",\"2025-06-25\",\"2025-06-26\",\"2025-06-27\",\"2025-06-30\",\"2025-07-01\",\"2025-07-02\",\"2025-07-03\",\"2025-07-04\",\"2025-07-07\",\"2025-07-08\",\"2025-07-09\",\"2025-07-10\",\"2025-07-11\",\"2025-07-14\",\"2025-07-15\",\"2025-07-16\",\"2025-07-17\",\"2025-07-18\",\"2025-07-21\",\"2025-07-22\",\"2025-07-23\",\"2025-07-24\",\"2025-07-25\",\"2025-07-28\",\"2025-07-29\",\"2025-07-30\",\"2025-07-31\",\"2025-08-01\",\"2025-08-04\",\"2025-08-05\",\"2025-08-06\",\"2025-08-07\",\"2025-08-08\",\"2025-08-11\",\"2025-08-12\",\"2025-08-13\",\"2025-08-14\",\"2025-08-15\",\"2025-08-18\",\"2025-08-19\",\"2025-08-20\",\"2025-08-21\",\"2025-08-22\",\"2025-08-25\",\"2025-08-26\",\"2025-08-27\",\"2025-08-28\",\"2025-08-29\",\"2025-09-02\",\"2025-09-03\",\"2025-09-04\",\"2025-09-05\",\"2025-09-08\",\"2025-09-09\",\"2025-09-10\",\"2025-09-11\",\"2025-09-12\",\"2025-09-15\",\"2025-09-16\",\"2025-09-17\",\"2025-09-18\",\"2025-09-19\",\"2025-09-22\",\"2025-09-23\",\"2025-09-24\",\"2025-09-25\",\"2025-09-26\",\"2025-09-29\",\"2025-09-30\",\"2025-10-01\",\"2025-10-02\",\"2025-10-03\",\"2025-10-06\",\"2025-10-07\",\"2025-10-08\",\"2025-10-09\",\"2025-10-10\",\"2025-10-13\",\"2025-10-14\",\"2025-10-15\",\"2025-10-16\",\"2025-10-17\",\"2025-10-20\",\"2025-10-21\",\"2025-10-22\",\"2025-10-23\",\"2025-10-24\",\"2025-10-27\",\"2025-10-28\",\"2025-10-29\",\"2025-10-30\",\"2025-10-31\",\"2025-11-03\",\"2025-11-04\",\"2025-11-05\",\"2025-11-06\",\"2025-11-07\",\"2025-11-10\",\"2025-11-11\",\"2025-11-12\",\"2025-11-13\",\"2025-11-14\",\"2025-11-17\",\"2025-11-18\",\"2025-11-19\",\"2025-11-20\",\"2025-11-21\",\"2025-11-24\",\"2025-11-25\",\"2025-11-26\",\"2025-11-28\",\"2025-12-01\",\"2025-12-02\",\"2025-12-03\",\"2025-12-04\",\"2025-12-05\",\"2025-12-08\",\"2025-12-09\",\"2025-12-10\",\"2025-12-11\",\"2025-12-12\",\"2025-12-15\",\"2025-12-16\",\"2025-12-17\",\"2025-12-18\",\"2025-12-19\",\"2025-12-22\",\"2025-12-23\",\"2025-12-24\",\"2025-12-26\",\"2025-12-29\",\"2025-12-30\",\"2025-12-31\",\"2026-01-01\",\"2026-01-02\",\"2026-01-05\",\"2026-01-06\",\"2026-01-07\",\"2026-01-08\",\"2026-01-09\",\"2026-01-12\",\"2026-01-13\",\"2026-01-14\",\"2026-01-15\",\"2026-01-16\",\"2026-01-19\",\"2026-01-20\",\"2026-01-21\",\"2026-01-22\",\"2026-01-23\",\"2026-01-26\",\"2026-01-27\",\"2026-01-28\",\"2026-01-29\",\"2026-01-30\",\"2026-02-02\",\"2026-02-03\",\"2026-02-04\",\"2026-02-05\",\"2026-02-06\",\"2026-02-09\",\"2026-02-10\",\"2026-02-11\",\"2026-02-12\",\"2026-02-13\",\"2026-02-16\",\"2026-02-17\",\"2026-02-18\",\"2026-02-19\",\"2026-02-20\",\"2026-02-23\",\"2026-02-24\",\"2026-02-25\",\"2026-02-26\",\"2026-02-27\",\"2026-03-02\",\"2026-03-03\",\"2026-03-04\",\"2026-03-05\",\"2026-03-06\",\"2026-03-09\",\"2026-03-10\",\"2026-03-11\",\"2026-03-12\",\"2026-03-13\",\"2026-03-16\",\"2026-03-17\",\"2026-03-18\",\"2026-03-19\",\"2026-03-20\",\"2026-03-23\",\"2026-03-24\",\"2026-03-25\",\"2026-03-26\",\"2026-03-27\",\"2026-03-30\",\"2026-03-31\",\"2026-04-01\",\"2026-04-02\",\"2026-04-03\",\"2026-04-06\",\"2026-04-07\",\"2026-04-08\",\"2026-04-09\",\"2026-04-10\",\"2026-04-13\",\"2026-04-14\",\"2026-04-15\",\"2026-04-16\",\"2026-04-17\",\"2026-04-20\",\"2026-04-21\",\"2026-04-22\",\"2026-04-23\",\"2026-04-24\",\"2026-04-27\",\"2026-04-28\",\"2026-04-29\",\"2026-04-30\",\"2026-05-01\",\"2026-05-04\",\"2026-05-05\",\"2026-05-06\",\"2026-05-07\",\"2026-05-08\",\"2026-05-11\",\"2026-05-12\",\"2026-05-13\",\"2026-05-14\",\"\"];\r\n        const datasetsAll = [{\"label\":\"Jun 2026\",\"data\":[469.5,469,466.5,463.75,469.5,475.5,482.5,480.75,479,null,475.5,472.75,470,468.5,466.25,468.5,473.5,478,478.75,470,471.25,471,471.5,473,467,470.25,474.75,null,472.75,465.75,461.5,456.25,454.25,458.5,457.75,457,467,470.5,null,456.5,450.25,451.25,451.25,447,451.75,453,456.75,455.25,461.5,457.25,453.5,452,455.25,453,447.75,445.5,446.5,447,445,442.25,437.75,437,442,439.75,442,431.25,433.5,432,439.75,441.25,438.5,439.75,446.75,445.75,447,443.75,441,445,453.75,456.75,452.5,454,453.5,456,454.5,451.75,454.5,463.5,457.5,462.75,460,457.25,457,454.5,458,456,456.75,454.25,454.25,449,450,454.75,452.25,453.75,451.25,452,448.5,444.25,443,444.5,447,449.5,450.75,451.5,448.25,450,455.25,452.25,460.25,461.5,461,458.75,458.75,462.25,460.5,464.5,458.25,457.25,460.5,462.75,463.75,468.5,458.25,460.75,461.75,454.75,451,450.75,450.5,452.75,458,461.25,459,462.5,456,459,457.75,457,461,457.5,459.5,455,453.75,451,453.5,458,457.5,460,461,464.5,464.25,457,454.5,454.5,null,452,458.25,457,459.75,460.5,460.25,438,434.5,436,434,438,null,437.75,436.25,438.5,443.75,442,440.75,444,445.75,442,439.75,442,443.25,449.25,445.25,443.75,444.75,444.25,449.75,450,null,444.25,444.75,444.5,448.25,448.75,447.5,450.25,451.25,456,454.25,455.5,453.5,462.75,471,465.5,463.25,472,474,478.25,465.75,465.5,474.5,480,476,470.5,472.5,477.75,478,473.5,467.5,468.25,465,463.25,463.25,465.25,460,458,455,451.25,451,452.5,460.5,457.75,457.5,460.25,462,462.75,463.75,463.5,469.25,475.5,477.75,474.75,480.25,485.75,480,468.5,467.5,471.25,475.25,480,480.5,480.75,452.5],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":4,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#000000\",\"backgroundColor\":\"rgba(0,0,0,0.12)\",\"order\":99},{\"label\":\"Jul 2026\",\"data\":[456,455.5,453.75,450.5,456.25,460.75,465.75,465.25,463,null,460,458.5,455.75,455.75,456.75,459,465.25,468.75,469.5,463.5,463.75,463,463.5,464.75,459.5,462.5,465.25,null,462.25,455.25,453,448.5,446.5,449.75,450.75,451,457.5,459.5,null,450,445,445.5,445.5,442.75,446,446.75,448.75,448.5,453.25,450.5,449.25,448.25,451.25,449.75,445.75,444.25,444.75,444,443.75,441,437.5,436.25,439.75,438.5,441.5,433.25,435.5,434.75,440.75,442,440.25,441,446,445.25,446.5,444,441.5,444.75,451.5,454.25,450,450,449.75,451.25,450.5,448.5,451,459.75,456.25,459.75,456.25,453.5,452.75,450.25,453.5,452,452.75,450.25,451,448.5,449.75,453.25,450.5,450.25,447.5,448,444.75,442,440.5,441.25,443.5,446.25,447,447.25,444.25,446,450.5,448.75,455.75,456,454.5,453.5,452.75,457,455,458.75,454,453,456.5,458.75,458.75,462.5,455.25,457.75,457.5,451.25,448.25,447.5,447.5,449.25,453.25,456.5,455.5,458.5,452.75,454.25,453.25,452.75,454.75,452.25,453.25,450,448.75,447.5,448.75,451.25,451,453.25,454.25,457.25,458.25,451.5,449,448.5,null,446.5,452,450.5,452.5,453.75,453.25,438.75,433.25,434.5,433.25,436.25,null,436.5,436,437.75,442,441.25,440.25,443.5,445,441.25,439.75,441.5,442.5,447,443.5,442.75,443.5,444.75,449.5,450.5,null,445,445.75,446.5,449.75,450,449,452.25,452.75,455.75,455.5,457,455.5,464.25,472,468.25,465.75,475.5,477,479.25,467.25,468.25,477,482,478,472.5,475,479.75,480.5,476.5,470.25,470.25,467.25,467,466.5,469,464,461.75,459.25,456.25,455.5,455,463.25,461,461.25,463.75,465.75,467,468.5,468.5,474,480.5,483,479.75,484.5,490.5,485.5,475,474.25,477.75,481.75,486.25,487,487,455],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#2563eb\",\"backgroundColor\":\"#2563eb\"},{\"label\":\"Aug 2026\",\"data\":[459.75,459.5,458,454.75,460.25,464.25,468.25,467.75,466.75,null,463.75,462.25,459.5,460.5,462,464.75,471.5,475,476.25,471.25,470.5,469.5,470.5,471.5,466.75,470,471.75,null,468.25,461.25,459,455.25,453.5,456.25,457,457.5,463,464.5,null,456,451.25,452.5,453,450.5,454.25,454.75,456.25,456.25,460,457.25,456.75,455.5,458.5,456.75,453.5,451.25,451.5,450.25,450.5,448,445,444.25,447.5,446.75,450,444,445.5,444,450,450.75,449.5,450.25,454.25,453.75,455.25,452.75,451,453.75,459.25,462.25,458.5,458.75,458.75,460.25,459.5,458.25,460.5,469,466.25,469.5,465.5,462.75,462,459.75,462.75,461.5,462.25,460,461.25,459,461.5,464.5,461.75,461,458,458.5,455.5,453.25,452.25,452.5,454.75,457.25,457.5,458,455,456.75,461,459.5,466,466.5,464.75,464.5,463.5,467.75,465.75,468.75,465,464,467.75,470,470,473,467.25,469.75,469.25,462.75,461,460,460,461.75,465.25,468.25,467,469.25,463.5,464.75,464.25,464,465.75,463.75,465,462,461,459.5,460.5,462.25,462,464.5,465,467.75,468.5,463,461,460.5,null,458.5,463.25,461.75,463.75,464.5,464,451.5,445.75,447.75,446.75,449.75,null,450.5,449.75,451.75,455.25,455,454.25,457.75,459,456,454.75,456.75,457.25,461,457.75,457.25,458.25,459.75,464,464.5,null,460,461,461.5,464.5,464.5,463.75,467,467,469.5,470,471.25,470.25,478,484.5,481.75,479.75,489,490,491.5,480,481.75,489.75,494.5,490.75,486.5,489,493.25,494.5,490.25,484,484.25,481.25,481.25,481,483,478,476,474.25,472.25,471,470.5,478,476.75,477,479.5,481.75,482.25,483.5,484.25,489.5,495.75,497.75,494.25,498.75,504.5,500.5,490,489.5,493.5,497.75,502,502.5,503,470.5],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#16a34a\",\"backgroundColor\":\"#16a34a\"},{\"label\":\"Sep 2026\",\"data\":[471.25,470.75,469.25,466,471.75,476,479.75,479,478.25,null,475.25,473.75,471.25,472,474.25,476.75,483.75,486.75,488.25,483.25,482.25,481.5,482.25,483.5,479,482.25,483.75,null,480.5,473.5,471,467.5,465.75,468.25,469.25,469.75,475,476.5,null,468.25,463.75,465,465.75,463.25,466.75,467,468.75,468.75,472.25,469.75,469.25,468,470.75,469,466,464.25,464.25,463,463.25,460.75,457.25,457,459.75,459,462,456.5,458,456.75,462.25,463.25,461.75,462.5,466.5,466.25,467.5,465.5,463.5,466.25,471.5,474.75,471,471,471,472.5,472,471,473,481.75,479.25,482,478.25,475.75,475,472.75,475.5,474.5,475,472.75,474,472.25,474.75,477.75,475,474.25,471.25,471.5,468.75,466.5,465.75,465.75,467.75,470.25,470.5,471,468.25,469.5,473.75,472,478.25,478.5,477.25,477,476,480,478.5,481,477.75,476.75,480.5,482.75,482,485,479.75,482.25,481.75,475.75,474.25,473.25,473.5,475.25,478.5,481.5,480.5,482.5,476.25,477.5,477.25,477,478.5,476.75,478,475.25,474.25,472.75,473.75,475.75,475.25,477.5,478,480.75,481.25,476,474,473.5,null,471.75,476.5,475,476.75,477.25,477,465,459.25,461,460.25,462.75,null,463.5,462.5,464.75,467.75,467.5,466.75,469.75,471,468.25,467,469.25,469.5,472.75,469.5,469.5,470.5,472.25,475.75,476.25,null,472.25,473.25,474,476.25,476,476.25,478.75,479,480.75,482,483,482.25,489,494,491.75,490.25,498.25,499,500,490.25,492.25,499.5,504,500.25,496.5,499,503,504.5,500.75,494.5,495,492,492.25,492,494.5,490,488,486.5,484.75,483.75,483.5,491,490.25,491,493.5,495.75,495.75,496.5,498,503,508.75,510.5,507.25,511.5,517.25,513.5,503.25,502.75,507,511.5,515.25,515.5,515.75,483.5],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#dc2626\",\"backgroundColor\":\"#dc2626\"},{\"label\":\"Oct 2026\",\"data\":[477.25,476.75,475.25,472,477.75,482,485.75,485,484.25,null,481.25,479.75,477.5,478.25,480.75,483.25,490.25,492.75,494.25,489.75,488.75,488,488.5,489.5,485.5,488.25,489.75,null,486.75,479.75,477,474,472.25,474.5,475.5,476,481.25,482.75,null,474.75,470.25,471.5,472.25,470,473.5,473.5,475.25,475.5,478.75,476.5,476,475,477.5,475.75,473,471,471.25,470,470,467.75,464,464,466,465.25,468,463.25,464.5,463.5,468.75,469.75,468.25,469,472.75,472.75,473.75,472,470.25,473,478,481,477.5,477.5,477.5,479.25,478.75,477.75,480,488.75,486.25,488.75,485.25,482.5,481.75,479.75,482.25,481.25,481.75,479.75,481,479.5,482,484.75,482.25,481.5,478.5,478.75,476,473.75,473,473,474.75,476.75,477.25,477.5,475,476,480.25,478.25,484.25,484.75,483.5,483.25,482.5,486.25,484.75,487.25,484,483,486.75,489,488.5,491,486,488.5,488,482,480.75,480,480,482,485.25,488,487.25,488.75,482.75,483.75,484,483.5,484.75,483.25,484.75,482,481,479.5,481,482.75,482.25,484.25,484.75,487.5,488,482.75,480.75,480.25,null,478.5,483.5,482,483.5,484.25,483.75,472.25,466.25,467.75,467.25,469.25,null,470,469.5,471.25,474,473.5,472.5,475.5,476.75,474.5,473.5,475.5,475.5,478.75,475.5,475.25,476.75,478.5,482.25,482.25,null,478.75,479.25,480.5,482.75,482.25,483,485.25,485.5,487,488.75,489.5,488.75,494.75,498.75,497.25,496,503.5,504.25,505,496.25,498.5,505.5,509.5,506,502.5,504.75,508.75,510.75,507.25,501.25,501.5,498.75,499,498.75,501.5,497.25,495.25,493.5,491.75,491,490.75,498.5,497.5,498.5,501.25,503.5,503.25,503.75,505.5,510.5,516,517.5,514.5,518.75,524,521,510.75,510,514.25,519,522.25,522.5,522.75,490.75],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#f59e0b\",\"backgroundColor\":\"#f59e0b\"},{\"label\":\"Nov 2026\",\"data\":[480.25,479.75,478.25,475.25,480.75,484.75,488.25,487.75,487,null,484.25,482.75,480.25,481.25,484.25,486.5,493.75,495.75,497.25,492.75,491.5,490.75,491.25,492.25,488.25,490.5,492,null,489,482.25,479.75,476.5,474.75,477,478.75,478.75,483.75,485,null,477.75,473.25,474.25,475,472.75,476.5,476.75,478,478.25,481.25,479,479,478.25,480.25,479,476,474.25,474.5,473.5,473,470.75,467,467,468.75,468,471.25,466.75,468,467.25,472,473,471.25,472.25,476,476,476.75,475,473.5,476.25,481.25,484,480.75,480.75,480.75,482.25,481.75,481,483,492,489.5,491.75,488.75,485.75,485,483,485.5,484.5,484.75,483,484.25,483,485.75,488.5,486,485,482,482.25,479.5,477.25,476.5,476.5,478,479.75,480,480.5,478,479,483.25,480.5,486.5,487.25,486.25,485.75,485.5,489,487.5,490,487,485.75,489.5,491.75,491.5,493.5,488.5,491.25,490.5,484.75,483.75,483.25,483.25,485.5,488.5,491,490.75,492,486,486.75,487.25,486.5,487.75,486.25,487.75,485,484,482.75,485,486.25,485.75,487.5,488,490.75,491.5,486.25,484.25,483.75,null,482.25,487,485.75,487.25,487.75,487,476.25,470.25,471.5,471,473,null,473.75,473.25,475,477.5,477.25,476.25,479,480,477.75,476.75,479,479,482.25,478.5,478.25,479.75,482,485.25,485.25,null,481.75,482.75,483.75,486,485.5,486.75,489,488.75,490,492.25,492.75,492.25,497,500.75,499.25,498.25,505.5,506.5,507.25,499.25,501.25,508,512,508.5,505,507.75,511.25,513.5,510.25,504.5,505,502,502.5,502,504.75,501.25,498.75,496.75,494.75,494.75,494.25,502,501.25,502,505,506.75,506.25,507,509,513.75,519,520.75,518,522.25,528,525,514.5,513.5,518,523,526,526,526.5,494.25],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#7c3aed\",\"backgroundColor\":\"#7c3aed\"},{\"label\":\"Dec 2026\",\"data\":[458,457.5,456,453.75,459,460,461.75,461.75,461.5,null,459,461,458.25,460.5,461.75,464,469,471,470.25,467.75,467.5,466,466,467,464.5,466.5,468,null,465.25,458.75,455.75,455,453.75,455.5,458.5,460,462,463.5,null,458.5,456.5,458.5,458,457.25,461,462.25,462,462.25,464,462,462,462.25,463.5,461.5,460,458.25,459,458.5,458.25,456.5,453,453,454.75,454.25,457,453,453.75,453.75,458.75,459.25,457.25,458.25,460,460.5,460.5,459.25,457.25,460.25,463.5,466,463.25,462.5,462.5,464,464,463.25,464.5,470.75,469.75,472,469.25,466.75,466,464,466.75,465.75,466,464.25,465.5,465.25,468,469.5,468.25,468.5,465.25,465.5,463.25,461.25,460.75,460,460.5,462.25,463.5,464,461.5,462.25,465.75,464,468.25,469.5,468,468,467.75,470.75,470.5,471.5,468.75,468.25,472,473.25,473.25,475.25,472.5,473.5,472.75,469.25,467.75,468,467.25,469,471.75,473.5,472.75,473,468,468,468.25,468,470,468.25,469,467.75,465.5,464.25,465.5,467,466.75,468.25,469,471.25,472,467.5,465.75,465.25,null,463.75,468.75,466.75,468,468.75,468,460.75,456,457,459.25,460,null,460.5,460.75,460.75,462,462,462,464,464.75,464,462.75,464.75,465,467.25,463.75,463.25,464.75,466.25,468.5,468.5,null,466,466.25,466.5,468.25,467.75,468.5,470.75,471.25,472.25,473.25,473.75,471.25,474,477.75,476,478,482.5,483.5,484.5,477.25,478.25,483,487,486,483.5,484.25,487.5,489.25,488.25,483.25,485.25,484.75,484.75,484.5,487,485.75,482.75,480.25,478.25,478,477.25,483,481.75,484.25,485.5,487.25,487.25,489.25,490,493.25,497.75,498.25,497.25,501,507,504,497,496.25,500.75,504.75,507.5,507.75,507,477.25],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#0ea5e9\",\"backgroundColor\":\"#0ea5e9\"},{\"label\":\"Jan 2027\",\"data\":[458.75,458.25,457.75,455.5,460.75,461.5,463.25,463,462.75,null,460.25,462.5,460,463,463.75,466,470.5,472.5,471.25,468.75,468.5,467,467.5,468.75,465.5,468,469.5,null,466.75,459.75,457.5,456.5,455.5,457,460,461.5,463.75,465,null,460.5,457.75,460,459.5,458.75,462.75,463.5,464.25,465,465.75,464,464,464,465.25,463.5,461.75,460,460.75,460.75,460.5,459.25,456.25,455,457.5,456.75,459.25,455.25,455.75,456,461,461,459.5,460.25,462,462.5,462.75,461.25,459.75,462.5,465.25,467.75,465.5,464.75,464.75,466.25,466.25,465.5,466.75,473.5,471.5,474,470.5,468.5,467.75,465.75,468.75,467.5,468,466.25,467.5,467.25,470,471.75,470.5,470.5,467.25,467.75,465.5,464,463.25,462.5,463,465,466,466.75,464.25,465,468.25,467,471.25,472.25,470.5,470.75,470.5,473.25,473,473.75,471.5,471,474.5,475.75,475.5,478,475,476.25,475.25,472,470.5,470.5,470,471.5,474.25,476.25,475.5,475.5,471.5,472,471.75,472,474,472.5,473,471.25,469,468,469.25,471,470.75,472.25,472.75,475.25,475.5,471.5,469.75,469,null,467.75,473.25,471.25,472,472.75,472,465.5,460.75,461.75,465.5,465.75,null,467,467.25,467,468.25,468.25,468.5,470.25,471.25,470,469.25,470.25,471,473.25,469.5,469.25,470.5,472,474.25,474.25,null,471.25,471.75,471.75,473.75,473.25,474,476.75,476.25,477.75,478.5,479.25,476.25,477.5,481.75,479.5,482.25,486.25,487.5,488.25,480.5,480.75,485.25,489.75,489.5,487.75,487.75,491.5,493.25,492.5,488,490.25,490.25,490.25,489.75,492.5,491.75,488.25,485.5,483.75,483,482.5,487.5,486.25,488.75,490,491.5,491.5,494.25,494.75,497.5,500.75,500.5,500.25,503.75,510.5,507.25,500.75,501.25,505.5,509,512.25,511,511,482.5],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#d946ef\",\"backgroundColor\":\"#d946ef\"},{\"label\":\"Feb 2027\",\"data\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,484.5,482.25,481.25,482.5,484.25,484,485.5,486,488.5,488.75,484.75,483,482.25,null,481,484.5,483.75,484,484.75,484,477.25,473,473.75,477.5,477.75,null,478.75,479,479,479.75,479.75,479.75,481.5,482.5,481.25,480.5,481.5,482,484.25,480.5,480.25,481.25,482.75,485,485,null,482.25,482.5,482.5,484.5,484.25,484.75,487.25,487.25,488.5,489,489.5,487,487.5,492,489.75,492.5,496,497.25,497.75,490.5,490.5,494.5,499,498.75,496.75,496.75,500.5,502.25,502,497.5,499.5,499.75,499.75,499.75,502,501.5,498,495.5,493.75,492.75,492.5,497.25,496.5,498.75,500,502,502.25,504.75,505,508,511.25,511,510.75,513.75,520.5,517,510.75,511.5,515.5,519,522.25,521.25,521.25,492.5],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#059669\",\"backgroundColor\":\"#059669\"},{\"label\":\"Mar 2027\",\"data\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,491.25,489,488,489.25,491,490.75,492.25,492.75,492.5,492.5,488.5,486.75,486,null,484.75,488.25,487.5,487.75,488.5,488,482,478,478.75,484.25,484.5,null,485.25,485.5,485.25,485.75,485.75,485.75,487.5,488.5,487.25,486.5,487.5,488,490.25,486.5,486,487,488.5,490.5,490.5,null,487.75,487.75,487.75,489.75,489.75,490,492.5,492.5,493.75,494.25,494.25,491.75,492.5,496.25,494,496.75,500,502.25,502.25,495.5,495.25,498.75,503.25,502.5,501,501,504.25,506,506.25,502.5,504.25,504.5,504.5,506.75,506.75,506.25,502.75,500.25,498.5,497.5,497.25,502,501.5,503.5,504.75,507,507,509.75,510,513,516.25,516,515.75,518.5,525.25,521.75,515.5,516,520,523.5,526.75,527.5,527.5,497.25],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#ef4444\",\"backgroundColor\":\"#ef4444\"},{\"label\":\"Apr 2027\",\"data\":[477.75,477.25,476.75,474.5,479.75,480.5,482.25,482.25,482,null,479.5,481.5,479.25,482,482.75,485,489.5,491.5,490.5,488,487.75,486.25,486.5,487.75,484.75,487,488.5,null,486,479,476.75,475.75,474.75,476.25,479.25,480.75,483,484.25,null,479.75,477,479.25,478.75,478,482,482.75,483.5,483.25,484,482.5,482.5,482.5,483.5,482,480.25,479,479.5,479.5,479.5,478.25,475.25,474.25,476.75,476.25,478.5,473.25,473.75,474,479,479,477.5,478.25,480,480.5,480.75,479.25,477.75,480.5,483.25,485,483.5,482.75,482.75,484.25,484.25,483.5,484.75,491.5,489.5,491.75,488.75,486.5,485.75,483.75,486.75,485.5,486,484.25,485.5,485.25,488,489.75,488.5,488.5,485.5,485.75,483.5,482,481.25,480.5,481,483,484,484.75,482.25,483,486.25,485,489.25,490.25,488.5,488.75,488.5,491.25,491.25,491.75,489.75,489.25,492.5,493.75,493.75,496,493.25,494.25,493.5,490.25,488.75,488.75,488.25,489.5,492.25,494.25,493.75,493.75,489.75,490.25,490,490,492,490.75,491.25,489.5,487.25,486.25,487.5,489.25,489,490.5,491,493.5,493.75,489.75,488,487.25,null,486,491.75,489.75,490.5,491.25,490.75,484,480.25,480.25,485,484.75,null,486.5,486.75,486.75,487.5,487.5,487.5,488.75,490.25,489.25,488.5,489.5,490.25,492.25,488.75,488.25,489.25,490.5,492.25,492.5,null,490,490,490,492,492,492,494.75,494.5,495.75,496.25,496.75,494,495,498.25,495.5,498.25,501.5,504.25,504.5,497.75,497.5,500.25,504,503.5,501.75,501.75,504.75,506.75,507.75,504.25,505.75,506,506,504.5,508.25,508,504.75,502,500.5,499.5,499.25,504,503.25,505,506.25,509,508.5,511,511.5,514.5,518.25,518.25,517.75,520.75,526.75,523.25,517,517.25,521.25,524.75,528.5,528.5,528.5,499.25],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#a3e635\",\"backgroundColor\":\"#a3e635\"},{\"label\":\"May 2027\",\"data\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,472.25,470,469,470.25,472,471.75,473.25,473.75,474,474,470,468.25,467.5,null,466.25,472,470,470.75,471.5,471,464.25,460.5,460.5,465.25,465,null,466.75,467,467,467.75,467.75,467,468.25,469.75,468.75,468,469,469.75,471.75,468.25,467.75,468.75,470,471,469,null,467.5,468.25,469.25,468.75,471.25,471,473.25,474.5,476.75,476,476,473,473,473.25,469.25,472.25,474.5,471,471,465,465.75,469,472.75,472.5,473.25,473.25,476.5,481,481,477.5,479.5,479.75,479.75,485,482.25,482,478.75,477.25,476,475.5,475,476,475.25,476.75,477.75,480.5,479.5,479,478.75,480.75,485.25,485.25,484,485.5,487.25,486.75,482,483.5,486.75,487.75,490.25,486.5,486.5,475],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#14b8a6\",\"backgroundColor\":\"#14b8a6\"},{\"label\":\"Jun 2027\",\"data\":[461.25,460.75,460.25,458,463.25,464,465.75,465.75,465.5,null,463,464.5,462.25,465,464.5,465.5,470.5,469.5,468.5,466,465.75,464.25,464.5,465.75,462.75,465,466.5,null,464,457,454.75,453.75,457.25,458.75,459,460.5,462.75,462.75,null,458.25,456.75,459.25,458.5,457.75,461.75,462.75,464.75,464.75,465.25,463.5,463.5,463.5,464.25,463.25,461.75,460.25,460.75,460.75,460.75,459.75,456.75,457.5,460,459.5,461.75,458,458.5,458.5,463.5,463.5,462,462.75,463.75,463.75,463.75,462.5,461,463.5,464.5,465,463.5,462.75,463.5,463.5,463.25,463.25,463.5,468.5,467.25,469.25,466.25,464.75,464.5,462.75,465.75,465.25,465.5,464.75,466.5,466.25,468,470.25,469,469,466.75,467.25,466.75,467.5,467.25,465.75,466.75,467,467.5,467.5,465.25,465.5,468.75,467.5,471,471,469.25,469.5,469.25,473,473,474,472.5,472,474,474.5,474.5,476.75,469.25,470.25,469.5,466.25,464.75,465.5,465,468,471.5,473.5,473,473,469,469.5,469.25,469.25,470.25,469.5,469.75,468,468.75,467.75,468.5,470,470,470.5,470.75,471,471,469.5,469.5,469.5,null,469.5,475.25,473.25,474,474.75,474.25,469.25,468.25,467,471.75,471.5,null,470.25,470.5,471.25,470.25,470.75,470,471.5,473.5,472.75,471.75,472.25,473.25,474.75,474.25,472.25,473.5,473.5,474,474.75,null,472,472.75,473.5,474.25,475,475,477.25,478.5,479.75,480,480,477,477,477.25,473.5,476.5,478.75,475,475.25,469,470,472.75,476.75,476.25,477,477.25,480.5,484.25,484.5,481,483,483.25,483.25,null,485.75,485.5,482.5,480.5,479.25,479,478.75,479.75,479,480.5,481.25,484.25,483,482.75,482.75,484,488.5,488.5,487.5,488.75,490.75,490.25,485.5,487.25,490.25,491.25,493.5,494.5,494.5,478.75],\"type\":\"line\",\"yAxisID\":\"yRight\",\"fill\":false,\"borderWidth\":2,\"pointRadius\":0,\"tension\":0.2,\"spanGaps\":true,\"borderColor\":\"#fb7185\",\"backgroundColor\":\"#fb7185\"}];\r\n        const el    = document.getElementById('Corn_chart179_173');\r\n        if (!el) return;\r\n\r\n        const wrap  = el.closest('.silver147-wrap');\r\n        const hintEl= wrap ? wrap.querySelector('.s147-hint') : null;\r\n        const btns  = wrap ? wrap.querySelectorAll('.s147-btn[data-range]') : [];\r\n        const resetBtn = wrap ? wrap.querySelector('[data-action=\"reset\"]') : null;\r\n        const pngBtn   = wrap ? wrap.querySelector('[data-action=\"png\"]')   : null;\r\n\r\n        try {\r\n          el.style.outline = 'none';\r\n          el.addEventListener('focus', function(){ try { el.blur(); } catch(e){} });\r\n        } catch(e){}\r\n\r\n        const existing = window.Chart && Chart.getChart(el);\r\n        if (existing) existing.destroy();\r\n\r\n        const isMobileLike = (function(){\r\n          const hasTouch   = ('ontouchstart' in window) || (navigator.maxTouchPoints||0) > 0 || (navigator.msMaxTouchPoints||0) > 0;\r\n          const hasCoarse  = window.matchMedia && (matchMedia('(pointer:coarse)').matches || matchMedia('(hover: none)').matches);\r\n          const uaMobile   = \/Android|iPhone|iPad|iPod|Mobile\/i.test(navigator.userAgent||'');\r\n          const smallScr   = Math.max(screen.width||0, screen.height||0) <= 1024;\r\n          return hasCoarse || (hasTouch && (uaMobile || smallScr));\r\n        })();\r\n        if (isMobileLike && hintEl) { hintEl.style.display = 'none'; }\r\n\r\n        try {\r\n          const zp = window['chartjs-plugin-zoom']\r\n            ? (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])\r\n            : null;\r\n          if (zp && window.Chart && Chart.register) { Chart.register(zp); }\r\n        } catch(e){}\r\n\r\n        const Crosshair2D = {\r\n          id: 'crosshair2d',\r\n          afterEvent(chart, args) {\r\n            if (isMobileLike) return;\r\n            const e = args.event, a = chart.chartArea;\r\n            if (!a) return;\r\n            if (e.type === 'mouseout') { chart.$cross2d = null; chart.draw(); return; }\r\n            if (e.x>=a.left && e.x<=a.right && e.y>=a.top && e.y<=a.bottom) chart.$cross2d = {x:e.x,y:e.y};\r\n            else chart.$cross2d = null;\r\n            chart.draw();\r\n          },\r\n          afterDraw(chart, _args, opts) {\r\n            if (isMobileLike) return;\r\n            const cross = chart.$cross2d; if (!cross) return;\r\n            const { ctx, chartArea:a } = chart;\r\n            ctx.save();\r\n            const color=(opts&&opts.color)||'rgba(0,0,0,0.28)',\r\n                  lw=(opts&&opts.lineWidth)||1,\r\n                  dash=(opts&&opts.lineDash)||[3,3];\r\n            ctx.strokeStyle=color; ctx.lineWidth=lw; ctx.setLineDash(dash);\r\n            ctx.beginPath(); ctx.moveTo(cross.x,a.top); ctx.lineTo(cross.x,a.bottom); ctx.stroke();\r\n            ctx.beginPath(); ctx.moveTo(a.left,cross.y); ctx.lineTo(a.right,cross.y); ctx.stroke();\r\n            if (!opts || opts.point!==false){\r\n              ctx.setLineDash([]);\r\n              ctx.fillStyle=(opts&&opts.pointColor)||color;\r\n              ctx.beginPath(); ctx.arc(cross.x,cross.y,(opts&&opts.pointRadius)||2.5,0,Math.PI*2); ctx.fill();\r\n            }\r\n            ctx.restore();\r\n          }\r\n        };\r\n\r\n        let externalTooltipHandler = null;\r\n        if (!isMobileLike) {\r\n          const tipId = '__chart_exttip_left_179_173';\r\n          let tip = document.getElementById(tipId);\r\n          if (!tip) {\r\n            tip = document.createElement('div');\r\n            tip.id = tipId;\r\n            tip.style.position = 'fixed';\r\n            tip.style.left = '0';\r\n            tip.style.top  = '0';\r\n            tip.style.opacity = '0';\r\n            tip.style.pointerEvents = 'none';\r\n            tip.style.zIndex = '99999';\r\n            document.body.appendChild(tip);\r\n          }\r\n\r\n          const fmt = (n)=> (n==null || Number.isNaN(n)) ? '' : Number(n).toLocaleString(undefined,{maximumFractionDigits:1});\r\n          externalTooltipHandler = function(context){\r\n            const { chart, tooltip } = context;\r\n            const area = chart.chartArea; if (!area) return;\r\n            if (tooltip.opacity === 0) { tip.style.opacity = 0; return; }\r\n\r\n            const title = (tooltip.title && tooltip.title[0]) ? tooltip.title[0] : '';\r\n            const rows = (tooltip.dataPoints || []).map(dp => {\r\n              const color = dp.dataset.borderColor || '#888';\r\n              const label = dp.dataset.label || '';\r\n              const val   = (dp.parsed && dp.parsed.y != null) ? fmt(dp.parsed.y) : '';\r\n              return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                        <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                          <span style=\"width:10px;height:10px;border-radius:2px;background:${color};border:1px solid rgba(0,0,0,.2);display:inline-block;\"><\/span>\r\n                          <span>${label}<\/span>\r\n                        <\/span>\r\n                        <span style=\"font-weight:600;\">${val}<\/span>\r\n                      <\/div>`;\r\n            }).join('');\r\n\r\n            tip.innerHTML =\r\n              `<div style=\"box-shadow:0 8px 18px rgba(0,0,0,.15);border:1px solid rgba(0,0,0,.12);\r\n                           background:#ffffff;color:#0f172a;border-radius:10px;padding:10px 12px;\r\n                           min-width:200px;max-width:300px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n                 <div style=\"color:#0f172a;font-weight:800;margin-bottom:6px;\">${title}<\/div>\r\n                 <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n               <\/div>`;\r\n\r\n            const cr = chart.canvas.getBoundingClientRect();\r\n            const box = tip.firstElementChild;\r\n            const boxW = box ? box.offsetWidth : 240;\r\n            const boxH = box ? box.offsetHeight : 140;\r\n            const pad = 8;\r\n\r\n            const left = Math.max(8, cr.left + area.left - boxW - pad);\r\n            const topMin = cr.top + area.top;\r\n            const topMax = cr.top + area.bottom - boxH;\r\n            const rawTop = cr.top + tooltip.caretY - boxH\/2;\r\n            const top = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n            tip.style.left = left + 'px';\r\n            tip.style.top  = top  + 'px';\r\n            tip.style.opacity = 1;\r\n          };\r\n\r\n          el.addEventListener('mouseleave', () => {\r\n            const t=document.getElementById('__chart_exttip_left_179_173');\r\n            if(t) t.style.opacity=0;\r\n          });\r\n          ['scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt => {\r\n            window.addEventListener(evt, ()=>{ const t=document.getElementById('__chart_exttip_left_179_173'); if(t) t.style.opacity=0; }, { passive:true });\r\n          });\r\n        }\r\n\r\n        const tooltipConfig = (!isMobileLike)\r\n          ? { enabled:false, external:externalTooltipHandler, mode:'index', intersect:false }\r\n          : { enabled:true,  mode:'index', intersect:false };\r\n\r\n        const pluginsArr = (!isMobileLike) ? [Crosshair2D] : [];\r\n\r\n        const fmtTick = (n) => {\r\n          try { return (n===0 || n===null || n===undefined) ? '' : Number(n).toLocaleString(); }\r\n          catch(e){ return n; }\r\n        };\r\n\r\n        const chart = new Chart(el.getContext('2d'), {\r\n          type: 'line',\r\n          data: {\r\n            labels: labelsAll.slice(),\r\n            datasets: datasetsAll.map(ds => Object.assign({}, ds, { data: ds.data.slice() }))\r\n          },\r\n          plugins: pluginsArr,\r\n          options: {\r\n            responsive: true,\r\n            maintainAspectRatio: false,\r\n            normalized: true,\r\n            interaction: { mode: 'index', intersect: false },\r\n            plugins: {\r\n              tooltip: tooltipConfig,\r\n              title: { display: false },\r\n              legend: {\r\n                display: true,\r\n                position: 'bottom',\r\n                align: 'center',\r\n                labels: { usePointStyle: true, boxWidth: 10, boxHeight: 10 }\r\n              },\r\n              zoom: {\r\n                pan: { enabled: true, mode: 'x', modifierKey: 'alt' },\r\n                zoom: {\r\n                  mode: 'x',\r\n                  wheel: { enabled: true },\r\n                  pinch: { enabled: true },\r\n                  drag:  { enabled: true }\r\n                }\r\n              }\r\n            },\r\n            scales: {\r\n              x: {\r\n                type: 'category',\r\n                title: { display: true, text: 'Date' },\r\n                ticks: { autoSkip: true, maxTicksLimit: (window.innerWidth < 768 ? 6 : 12), maxRotation: 0, minRotation: 0 },\r\n                grid:  { display: false }\r\n              },\r\n              yRight: {\r\n                type: 'linear', position: 'right',\r\n                title: { display: true, text: 'Price' },\r\n                grid:  { drawOnChartArea: true },\r\n                ticks: { callback: (value) => fmtTick(value) }\r\n              }\r\n            }\r\n          }\r\n        });\r\n\r\n        const tsAll = labelsAll.map(l => {\r\n          const t = Date.parse(l);\r\n          return isNaN(t) ? null : Math.floor(t\/1000);\r\n        });\r\n\r\n        const setActive = (key) => {\r\n          btns.forEach(b => b.classList.toggle('is-active', (b.dataset.range === String(key))));\r\n        };\r\n\r\n        function s147_clearManualXLimits_(){\r\n          try{\r\n            if (chart && chart.options && chart.options.scales && chart.options.scales.x){\r\n              try { delete chart.options.scales.x.min; } catch(e){}\r\n              try { delete chart.options.scales.x.max; } catch(e){}\r\n            }\r\n          } catch(e){}\r\n        }\r\n\r\n        function s147_fixBadXLimits_(){\r\n          try{\r\n            const N = (chart && chart.data && chart.data.labels) ? chart.data.labels.length : 0;\r\n            if (!N) return;\r\n            const xScale = chart.scales && chart.scales.x ? chart.scales.x : null;\r\n            if (!xScale) return;\r\n\r\n            const min = (typeof xScale.min === 'number') ? xScale.min : null;\r\n            const max = (typeof xScale.max === 'number') ? xScale.max : null;\r\n\r\n            if ((min !== null && min < 0) || (max !== null && max > N-1) || (min !== null && max !== null && min >= max)) {\r\n              s147_clearManualXLimits_();\r\n              chart.update('none');\r\n            }\r\n          } catch(e){}\r\n        }\r\n\r\n        function applyRange(rangeKey){\r\n          let L = labelsAll.slice();\r\n          let S = datasetsAll.map(ds => ds.data.slice());\r\n\r\n          if (rangeKey !== 'all') {\r\n            const m = parseInt(rangeKey, 10);\r\n            if (m > 0) {\r\n              const validTs = tsAll.filter(t => Number.isInteger(t) && t > 0);\r\n              if (validTs.length) {\r\n                const latest = Math.max.apply(null, validTs);\r\n                const cutDate = new Date(latest * 1000);\r\n                cutDate.setMonth(cutDate.getMonth() - m);\r\n                const cutTs = Math.floor(cutDate.getTime() \/ 1000);\r\n\r\n                const keepIdx = [];\r\n                tsAll.forEach((ts, idx) => { if (Number.isInteger(ts) && ts >= cutTs) keepIdx.push(idx); });\r\n                if (keepIdx.length) {\r\n                  L = keepIdx.map(i => labelsAll[i]);\r\n                  S = datasetsAll.map(ds => keepIdx.map(i => ds.data[i]));\r\n                }\r\n              }\r\n            }\r\n          }\r\n\r\n          s147_clearManualXLimits_();\r\n\r\n          chart.data.labels = L;\r\n          chart.data.datasets.forEach((ds, di) => { ds.data = S[di]; });\r\n          chart.update();\r\n          setActive(rangeKey);\r\n\r\n          if (chart.resetZoom) chart.resetZoom();\r\n          s147_fixBadXLimits_();\r\n        }\r\n\r\n        applyRange('3');\r\n        btns.forEach(b => b.addEventListener('click', () => applyRange(b.dataset.range)));\r\n\r\n        if (resetBtn) resetBtn.addEventListener('click', () => {\r\n          s147_clearManualXLimits_();\r\n          if (chart.resetZoom) chart.resetZoom();\r\n        });\r\n\r\n        if (pngBtn) {\r\n          pngBtn.addEventListener('click', () => {\r\n            try{\r\n              const url = chart.toBase64Image('image\/png', 1.0);\r\n              const a = document.createElement('a');\r\n              a.href = url;\r\n              a.download = 'corn_term_structure_179.png';\r\n              a.click();\r\n            }catch(e){}\r\n          });\r\n        }\r\n\r\n        if (!isMobileLike && chart && chart.resetZoom) {\r\n          el.addEventListener('dblclick', () => {\r\n            s147_clearManualXLimits_();\r\n            chart.resetZoom();\r\n          });\r\n        }\r\n\r\n        if (!isMobileLike) {\r\n          let s147_kb_active = false;\r\n\r\n          el.addEventListener('mouseenter', () => { s147_kb_active = true; });\r\n          el.addEventListener('mouseleave', () => { s147_kb_active = false; });\r\n          el.addEventListener('pointerdown', () => { s147_kb_active = true; });\r\n\r\n          function s147_panByKey_(dir){\r\n            try{\r\n              if (!chart || typeof chart.pan !== 'function') return;\r\n              s147_clearManualXLimits_();\r\n              const a = chart.chartArea || null;\r\n              let step = a ? Math.max(24, Math.round(a.width * 0.10)) : 80;\r\n              const dx = (dir < 0) ? step : -step;\r\n              chart.pan({ x: dx, y: 0 }, undefined, 'none');\r\n              s147_fixBadXLimits_();\r\n            } catch(e){}\r\n          }\r\n\r\n          document.addEventListener('keydown', function(ev){\r\n            if (!s147_kb_active) return;\r\n\r\n            if (ev.key === 'ArrowLeft' || ev.key === 'ArrowRight') {\r\n              ev.preventDefault();\r\n              ev.stopPropagation();\r\n              const dir = (ev.key === 'ArrowLeft') ? -1 : 1;\r\n              s147_panByKey_(dir);\r\n            }\r\n          }, { passive: false });\r\n        }\r\n\r\n      });\r\n    <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2df8074 e-flex e-con-boxed e-con e-parent\" data-id=\"2df8074\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bc518b8 elementor-widget elementor-widget-shortcode\" data-id=\"bc518b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div class=\"corn180s-wrap\">\r\n      <div class=\"corn180s-card\">\r\n        <div class=\"corn180s-controls\">\r\n          <strong class=\"corn180s-range-label\">Range:<\/strong>\r\n          <button type=\"button\" class=\"corn180s-btn\" data-range=\"3\">3M<\/button>\r\n          <button type=\"button\" class=\"corn180s-btn\" data-range=\"12\">1Y<\/button>\r\n          <button type=\"button\" class=\"corn180s-btn\" data-range=\"60\">5Y<\/button>\r\n          <button type=\"button\" class=\"corn180s-btn\" data-range=\"120\">10Y<\/button>\r\n          <button type=\"button\" class=\"corn180s-btn\" data-range=\"all\">ALL<\/button>\r\n          <span class=\"corn180s-flex-spacer\"><\/span>\r\n          <em class=\"corn180s-hint\">Wheel\/Pinch=Zoom \u00b7 Drag=Box Zoom \u00b7 Double-click=Reset \u00b7 Arrow keys=Pan<\/em>\r\n          <button type=\"button\" class=\"corn180s-btn corn180s-btn-ghost\" data-action=\"reset\">Reset<\/button>\r\n          <button type=\"button\" class=\"corn180s-btn corn180s-btn-ghost\" data-action=\"png\">Save PNG<\/button>\r\n        <\/div>\r\n\r\n        <div class=\"corn180s-title-row\">\r\n          <h3 class=\"corn180s-title\">CFTC Corn Futures Positions (Speculative)<\/h3>\r\n        <\/div>\r\n\r\n        <div class=\"corn180s-canvas-wrap\">\r\n          <canvas\r\n            id=\"Corn_chart180_174\"\r\n            aria-label=\"CFTC Corn Futures Positions (Speculative)\"\r\n            tabindex=\"-1\"\r\n          ><\/canvas>\r\n        <\/div>\r\n\r\n        <div class=\"corn180s-source-wrap\">\r\n          <span class=\"corn180s-source-pill\">\r\n            <a href=\"https:\/\/www.cftc.gov\/\" target=\"_blank\" rel=\"noopener noreferrer\">CFTC<\/a>          <\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <style>\r\n      .corn180s-wrap {\r\n        overflow-x: auto;\r\n        -webkit-overflow-scrolling: touch;\r\n        padding: 16px;\r\n        border-radius: 18px;\r\n        background: radial-gradient(circle at top left, #e5e7eb, #f8fafc);\r\n        box-shadow: 0 18px 32px rgba(15,23,42,0.22);\r\n        margin: 8px 0;\r\n      }\r\n      .corn180s-card {\r\n        background: #ffffff;\r\n        border-radius: 14px;\r\n        padding: 14px 16px 16px;\r\n        box-shadow: 0 6px 18px rgba(15,23,42,0.18);\r\n        border: 1px solid rgba(107,114,128,0.35);\r\n      }\r\n      .corn180s-controls {\r\n        display: flex;\r\n        gap: 6px;\r\n        align-items: center;\r\n        margin: 0 0 6px 0;\r\n        flex-wrap: wrap;\r\n        min-width: 720px;\r\n      }\r\n      .corn180s-range-label {\r\n        font: 600 13px system-ui,-apple-system,Segoe UI,Roboto;\r\n        color: #4b5563;\r\n      }\r\n      .corn180s-flex-spacer { flex: 1 1 auto; }\r\n\r\n      .corn180s-btn {\r\n        padding: 6px 10px;\r\n        border-radius: 999px;\r\n        border: 1px solid rgba(75,85,99,0.9);\r\n        background: linear-gradient(135deg,#f3f4f6,#e5e7eb);\r\n        font: 500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n        cursor: pointer;\r\n        color: #111827;\r\n        box-shadow: 0 1px 2px rgba(15,23,42,0.06);\r\n        transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;\r\n      }\r\n      .corn180s-btn:hover {\r\n        background: linear-gradient(135deg,#e5e7eb,#d1d5db);\r\n        box-shadow: 0 2px 4px rgba(15,23,42,0.08);\r\n        transform: translateY(-0.5px);\r\n      }\r\n      .corn180s-btn.is-active {\r\n        background: linear-gradient(135deg,#111827,#374151);\r\n        color: #e5e7eb;\r\n        border-color: #111827;\r\n        box-shadow: 0 2px 7px rgba(17,24,39,0.45);\r\n      }\r\n      .corn180s-btn-ghost {\r\n        background: #ffffff;\r\n        border-color: rgba(209,213,219,0.9);\r\n        color: #374151;\r\n      }\r\n      .corn180s-btn-ghost.is-active {\r\n        background: #f3f4f6;\r\n        border-color: #9ca3af;\r\n        color: #111827;\r\n      }\r\n      .corn180s-hint {\r\n        font-size: 12px;\r\n        color: #6b7280;\r\n      }\r\n\r\n      .corn180s-title-row {\r\n        display: flex;\r\n        align-items: baseline;\r\n        justify-content: space-between;\r\n        min-width: 720px;\r\n        margin: 0 0 6px 0;\r\n      }\r\n      .corn180s-title {\r\n        margin: 0;\r\n        font: 700 18px system-ui,-apple-system,Segoe UI,Roboto;\r\n        color: #111827;\r\n      }\r\n\r\n      .corn180s-canvas-wrap {\r\n        min-width: 720px;\r\n        height: 480px;\r\n        position: relative;\r\n        background: #ffffff;\r\n        border-radius: 12px;\r\n        border: 1px solid rgba(148,163,184,0.45);\r\n        overflow: hidden;\r\n      }\r\n      .corn180s-canvas-wrap canvas {\r\n        width: 100%;\r\n        height: 100%;\r\n        display: block;\r\n        user-select: none;\r\n        -webkit-user-select: none;\r\n        -webkit-user-drag: none;\r\n        touch-action: none;\r\n        cursor: default;\r\n        outline: none !important;\r\n      }\r\n      .corn180s-canvas-wrap:focus,\r\n      .corn180s-canvas-wrap:focus-within,\r\n      .corn180s-canvas-wrap canvas:focus,\r\n      .corn180s-canvas-wrap canvas:focus-visible {\r\n        outline: none !important;\r\n        box-shadow: none !important;\r\n      }\r\n\r\n      .corn180s-source-wrap {\r\n        display: flex;\r\n        justify-content: flex-end;\r\n        min-width: 720px;\r\n        margin-top: 6px;\r\n      }\r\n      .corn180s-source-pill {\r\n        display: inline-block;\r\n        padding: 4px 10px;\r\n        border-radius: 999px;\r\n        background: rgba(255,255,255,0.96);\r\n        border: 1px solid rgba(0,0,0,0.06);\r\n        font: 11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n        color: #6b7280;\r\n        box-shadow: 0 2px 6px rgba(15,23,42,0.12);\r\n      }\r\n      .corn180s-source-pill a{\r\n        color: inherit;\r\n        text-decoration: none;\r\n        font-weight: 600;\r\n      }\r\n      .corn180s-source-pill a:hover{\r\n        text-decoration: underline;\r\n      }\r\n\r\n      @media (max-width: 768px) {\r\n        .corn180s-wrap { padding: 10px; }\r\n        .corn180s-controls { min-width: 0; }\r\n        .corn180s-title-row { min-width: 0; }\r\n        .corn180s-canvas-wrap { min-width: 0; height: 360px; }\r\n        .corn180s-source-wrap { min-width: 0; }\r\n      }\r\n    <\/style>\r\n\r\n    <script>\r\n    (function(){\r\n      const labelsAll   = [\"2011-05-24\",\"2011-05-31\",\"2011-06-07\",\"2011-06-14\",\"2011-06-21\",\"2011-06-28\",\"2011-07-05\",\"2011-07-12\",\"2011-07-19\",\"2011-07-26\",\"2011-08-02\",\"2011-08-09\",\"2011-08-16\",\"2011-08-23\",\"2011-08-30\",\"2011-09-06\",\"2011-09-13\",\"2011-09-20\",\"2011-09-27\",\"2011-10-04\",\"2011-10-11\",\"2011-10-18\",\"2011-10-25\",\"2011-11-01\",\"2011-11-08\",\"2011-11-15\",\"2011-11-22\",\"2011-11-29\",\"2011-12-06\",\"2011-12-13\",\"2011-12-20\",\"2011-12-27\",\"2012-01-03\",\"2012-01-10\",\"2012-01-17\",\"2012-01-24\",\"2012-01-31\",\"2012-02-07\",\"2012-02-14\",\"2012-02-21\",\"2012-02-28\",\"2012-03-06\",\"2012-03-13\",\"2012-03-20\",\"2012-03-27\",\"2012-04-03\",\"2012-04-10\",\"2012-04-17\",\"2012-04-24\",\"2012-05-01\",\"2012-05-08\",\"2012-05-15\",\"2012-05-22\",\"2012-05-29\",\"2012-06-05\",\"2012-06-12\",\"2012-06-19\",\"2012-06-26\",\"2012-07-03\",\"2012-07-10\",\"2012-07-17\",\"2012-07-24\",\"2012-07-31\",\"2012-08-07\",\"2012-08-14\",\"2012-08-21\",\"2012-08-28\",\"2012-09-04\",\"2012-09-11\",\"2012-09-18\",\"2012-09-25\",\"2012-10-02\",\"2012-10-09\",\"2012-10-16\",\"2012-10-23\",\"2012-10-30\",\"2012-11-06\",\"2012-11-13\",\"2012-11-20\",\"2012-11-27\",\"2012-12-04\",\"2012-12-11\",\"2012-12-18\",\"2012-12-24\",\"2012-12-31\",\"2013-01-08\",\"2013-01-15\",\"2013-01-22\",\"2013-01-29\",\"2013-02-05\",\"2013-02-12\",\"2013-02-19\",\"2013-02-26\",\"2013-03-05\",\"2013-03-12\",\"2013-03-19\",\"2013-03-26\",\"2013-04-02\",\"2013-04-09\",\"2013-04-16\",\"2013-04-23\",\"2013-04-30\",\"2013-05-07\",\"2013-05-14\",\"2013-05-21\",\"2013-05-28\",\"2013-06-04\",\"2013-06-11\",\"2013-06-18\",\"2013-06-25\",\"2013-07-02\",\"2013-07-09\",\"2013-07-16\",\"2013-07-23\",\"2013-07-30\",\"2013-08-06\",\"2013-08-13\",\"2013-08-20\",\"2013-08-27\",\"2013-09-03\",\"2013-09-10\",\"2013-09-17\",\"2013-09-24\",\"2013-10-01\",\"2013-10-08\",\"2013-10-15\",\"2013-10-22\",\"2013-10-29\",\"2013-11-05\",\"2013-11-12\",\"2013-11-19\",\"2013-11-26\",\"2013-12-03\",\"2013-12-10\",\"2013-12-17\",\"2013-12-24\",\"2013-12-31\",\"2014-01-07\",\"2014-01-14\",\"2014-01-21\",\"2014-01-28\",\"2014-02-04\",\"2014-02-11\",\"2014-02-18\",\"2014-02-25\",\"2014-03-04\",\"2014-03-11\",\"2014-03-18\",\"2014-03-25\",\"2014-04-01\",\"2014-04-08\",\"2014-04-15\",\"2014-04-22\",\"2014-04-29\",\"2014-05-06\",\"2014-05-13\",\"2014-05-20\",\"2014-05-27\",\"2014-06-03\",\"2014-06-10\",\"2014-06-17\",\"2014-06-24\",\"2014-07-01\",\"2014-07-08\",\"2014-07-15\",\"2014-07-22\",\"2014-07-29\",\"2014-08-05\",\"2014-08-12\",\"2014-08-19\",\"2014-08-26\",\"2014-09-02\",\"2014-09-09\",\"2014-09-16\",\"2014-09-23\",\"2014-09-30\",\"2014-10-07\",\"2014-10-14\",\"2014-10-21\",\"2014-10-28\",\"2014-11-04\",\"2014-11-11\",\"2014-11-18\",\"2014-11-25\",\"2014-12-02\",\"2014-12-09\",\"2014-12-16\",\"2014-12-23\",\"2014-12-30\",\"2015-01-06\",\"2015-01-13\",\"2015-01-20\",\"2015-01-27\",\"2015-02-03\",\"2015-02-10\",\"2015-02-17\",\"2015-02-24\",\"2015-03-03\",\"2015-03-10\",\"2015-03-17\",\"2015-03-24\",\"2015-03-31\",\"2015-04-07\",\"2015-04-14\",\"2015-04-21\",\"2015-04-28\",\"2015-05-05\",\"2015-05-12\",\"2015-05-19\",\"2015-05-26\",\"2015-06-02\",\"2015-06-09\",\"2015-06-16\",\"2015-06-23\",\"2015-06-30\",\"2015-07-07\",\"2015-07-14\",\"2015-07-21\",\"2015-07-28\",\"2015-08-04\",\"2015-08-11\",\"2015-08-18\",\"2015-08-25\",\"2015-09-01\",\"2015-09-08\",\"2015-09-15\",\"2015-09-22\",\"2015-09-29\",\"2015-10-06\",\"2015-10-13\",\"2015-10-20\",\"2015-10-27\",\"2015-11-03\",\"2015-11-10\",\"2015-11-17\",\"2015-11-24\",\"2015-12-01\",\"2015-12-08\",\"2015-12-15\",\"2015-12-22\",\"2015-12-29\",\"2016-01-05\",\"2016-01-12\",\"2016-01-19\",\"2016-01-26\",\"2016-02-02\",\"2016-02-09\",\"2016-02-16\",\"2016-02-23\",\"2016-03-01\",\"2016-03-08\",\"2016-03-15\",\"2016-03-22\",\"2016-03-29\",\"2016-04-05\",\"2016-04-12\",\"2016-04-19\",\"2016-04-26\",\"2016-05-03\",\"2016-05-10\",\"2016-05-17\",\"2016-05-24\",\"2016-05-31\",\"2016-06-07\",\"2016-06-14\",\"2016-06-21\",\"2016-06-28\",\"2016-07-05\",\"2016-07-12\",\"2016-07-19\",\"2016-07-26\",\"2016-08-02\",\"2016-08-09\",\"2016-08-16\",\"2016-08-23\",\"2016-08-30\",\"2016-09-06\",\"2016-09-13\",\"2016-09-20\",\"2016-09-27\",\"2016-10-04\",\"2016-10-11\",\"2016-10-18\",\"2016-10-25\",\"2016-11-01\",\"2016-11-08\",\"2016-11-15\",\"2016-11-22\",\"2016-11-29\",\"2016-12-06\",\"2016-12-13\",\"2016-12-20\",\"2016-12-27\",\"2017-01-03\",\"2017-01-10\",\"2017-01-17\",\"2017-01-24\",\"2017-01-31\",\"2017-02-07\",\"2017-02-14\",\"2017-02-21\",\"2017-02-28\",\"2017-03-07\",\"2017-03-14\",\"2017-03-21\",\"2017-03-28\",\"2017-04-04\",\"2017-04-11\",\"2017-04-18\",\"2017-04-25\",\"2017-05-02\",\"2017-05-09\",\"2017-05-16\",\"2017-05-23\",\"2017-05-30\",\"2017-06-06\",\"2017-06-13\",\"2017-06-20\",\"2017-06-27\",\"2017-07-03\",\"2017-07-11\",\"2017-07-18\",\"2017-07-25\",\"2017-08-01\",\"2017-08-08\",\"2017-08-15\",\"2017-08-22\",\"2017-08-29\",\"2017-09-05\",\"2017-09-12\",\"2017-09-19\",\"2017-09-26\",\"2017-10-03\",\"2017-10-10\",\"2017-10-17\",\"2017-10-24\",\"2017-10-31\",\"2017-11-07\",\"2017-11-14\",\"2017-11-21\",\"2017-11-28\",\"2017-12-05\",\"2017-12-12\",\"2017-12-19\",\"2017-12-26\",\"2018-01-02\",\"2018-01-09\",\"2018-01-16\",\"2018-01-23\",\"2018-01-30\",\"2018-02-06\",\"2018-02-13\",\"2018-02-20\",\"2018-02-27\",\"2018-03-06\",\"2018-03-13\",\"2018-03-20\",\"2018-03-27\",\"2018-04-03\",\"2018-04-10\",\"2018-04-17\",\"2018-04-24\",\"2018-05-01\",\"2018-05-08\",\"2018-05-15\",\"2018-05-22\",\"2018-05-29\",\"2018-06-05\",\"2018-06-12\",\"2018-06-19\",\"2018-06-26\",\"2018-07-03\",\"2018-07-10\",\"2018-07-17\",\"2018-07-24\",\"2018-07-31\",\"2018-08-07\",\"2018-08-14\",\"2018-08-21\",\"2018-08-28\",\"2018-09-04\",\"2018-09-11\",\"2018-09-18\",\"2018-09-25\",\"2018-10-02\",\"2018-10-09\",\"2018-10-16\",\"2018-10-23\",\"2018-10-30\",\"2018-11-06\",\"2018-11-13\",\"2018-11-20\",\"2018-11-27\",\"2018-12-04\",\"2018-12-11\",\"2018-12-18\",\"2018-12-24\",\"2018-12-31\",\"2019-01-08\",\"2019-01-15\",\"2019-01-22\",\"2019-01-29\",\"2019-02-05\",\"2019-02-12\",\"2019-02-19\",\"2019-02-26\",\"2019-03-05\",\"2019-03-12\",\"2019-03-19\",\"2019-03-26\",\"2019-04-02\",\"2019-04-09\",\"2019-04-16\",\"2019-04-23\",\"2019-04-30\",\"2019-05-07\",\"2019-05-14\",\"2019-05-21\",\"2019-05-28\",\"2019-06-04\",\"2019-06-11\",\"2019-06-18\",\"2019-06-25\",\"2019-07-02\",\"2019-07-09\",\"2019-07-16\",\"2019-07-23\",\"2019-07-30\",\"2019-08-06\",\"2019-08-13\",\"2019-08-20\",\"2019-08-27\",\"2019-09-03\",\"2019-09-10\",\"2019-09-17\",\"2019-09-24\",\"2019-10-01\",\"2019-10-08\",\"2019-10-15\",\"2019-10-22\",\"2019-10-29\",\"2019-11-05\",\"2019-11-12\",\"2019-11-19\",\"2019-11-26\",\"2019-12-03\",\"2019-12-10\",\"2019-12-17\",\"2019-12-24\",\"2019-12-31\",\"2020-01-07\",\"2020-01-14\",\"2020-01-21\",\"2020-01-28\",\"2020-02-04\",\"2020-02-11\",\"2020-02-18\",\"2020-02-25\",\"2020-03-03\",\"2020-03-10\",\"2020-03-17\",\"2020-03-24\",\"2020-03-31\",\"2020-04-07\",\"2020-04-14\",\"2020-04-21\",\"2020-04-28\",\"2020-05-05\",\"2020-05-12\",\"2020-05-19\",\"2020-05-26\",\"2020-06-02\",\"2020-06-09\",\"2020-06-16\",\"2020-06-23\",\"2020-06-30\",\"2020-07-07\",\"2020-07-14\",\"2020-07-21\",\"2020-07-28\",\"2020-08-04\",\"2020-08-11\",\"2020-08-18\",\"2020-08-25\",\"2020-09-01\",\"2020-09-08\",\"2020-09-15\",\"2020-09-22\",\"2020-09-29\",\"2020-10-06\",\"2020-10-13\",\"2020-10-20\",\"2020-10-27\",\"2020-11-03\",\"2020-11-10\",\"2020-11-17\",\"2020-11-24\",\"2020-12-01\",\"2020-12-08\",\"2020-12-15\",\"2020-12-21\",\"2020-12-29\",\"2021-01-05\",\"2021-01-12\",\"2021-01-19\",\"2021-01-26\",\"2021-02-02\",\"2021-02-09\",\"2021-02-16\",\"2021-02-23\",\"2021-03-02\",\"2021-03-09\",\"2021-03-16\",\"2021-03-23\",\"2021-03-30\",\"2021-04-06\",\"2021-04-13\",\"2021-04-20\",\"2021-04-27\",\"2021-05-04\",\"2021-05-11\",\"2021-05-18\",\"2021-05-25\",\"2021-06-01\",\"2021-06-08\",\"2021-06-15\",\"2021-06-22\",\"2021-06-29\",\"2021-07-06\",\"2021-07-13\",\"2021-07-20\",\"2021-07-27\",\"2021-08-03\",\"2021-08-10\",\"2021-08-17\",\"2021-08-24\",\"2021-08-31\",\"2021-09-07\",\"2021-09-14\",\"2021-09-21\",\"2021-09-28\",\"2021-10-05\",\"2021-10-12\",\"2021-10-19\",\"2021-10-26\",\"2021-11-02\",\"2021-11-09\",\"2021-11-16\",\"2021-11-23\",\"2021-11-30\",\"2021-12-07\",\"2021-12-14\",\"2021-12-21\",\"2021-12-28\",\"2022-01-04\",\"2022-01-11\",\"2022-01-18\",\"2022-01-25\",\"2022-02-01\",\"2022-02-08\",\"2022-02-15\",\"2022-02-22\",\"2022-03-01\",\"2022-03-08\",\"2022-03-15\",\"2022-03-22\",\"2022-03-29\",\"2022-04-05\",\"2022-04-12\",\"2022-04-19\",\"2022-04-26\",\"2022-05-03\",\"2022-05-10\",\"2022-05-17\",\"2022-05-24\",\"2022-05-31\",\"2022-06-07\",\"2022-06-14\",\"2022-06-21\",\"2022-06-28\",\"2022-07-05\",\"2022-07-12\",\"2022-07-19\",\"2022-07-26\",\"2022-08-02\",\"2022-08-09\",\"2022-08-16\",\"2022-08-23\",\"2022-08-30\",\"2022-09-06\",\"2022-09-13\",\"2022-09-20\",\"2022-09-27\",\"2022-10-04\",\"2022-10-11\",\"2022-10-18\",\"2022-10-25\",\"2022-11-01\",\"2022-11-08\",\"2022-11-15\",\"2022-11-22\",\"2022-11-29\",\"2022-12-06\",\"2022-12-13\",\"2022-12-20\",\"2022-12-27\",\"2023-01-03\",\"2023-01-10\",\"2023-01-17\",\"2023-01-24\",\"2023-01-31\",\"2023-02-07\",\"2023-02-14\",\"2023-02-21\",\"2023-02-28\",\"2023-03-07\",\"2023-03-14\",\"2023-03-21\",\"2023-03-28\",\"2023-04-04\",\"2023-04-11\",\"2023-04-18\",\"2023-04-25\",\"2023-05-02\",\"2023-05-09\",\"2023-05-16\",\"2023-05-23\",\"2023-05-30\",\"2023-06-06\",\"2023-06-13\",\"2023-06-20\",\"2023-06-27\",\"2023-07-03\",\"2023-07-11\",\"2023-07-18\",\"2023-07-25\",\"2023-08-01\",\"2023-08-08\",\"2023-08-15\",\"2023-08-22\",\"2023-08-29\",\"2023-09-05\",\"2023-09-12\",\"2023-09-19\",\"2023-09-26\",\"2023-10-03\",\"2023-10-10\",\"2023-10-17\",\"2023-10-24\",\"2023-10-31\",\"2023-11-07\",\"2023-11-14\",\"2023-11-21\",\"2023-11-28\",\"2023-12-05\",\"2023-12-12\",\"2023-12-19\",\"2023-12-26\",\"2024-01-02\",\"2024-01-09\",\"2024-01-16\",\"2024-01-23\",\"2024-01-30\",\"2024-02-06\",\"2024-02-13\",\"2024-02-20\",\"2024-02-27\",\"2024-03-05\",\"2024-03-12\",\"2024-03-19\",\"2024-03-26\",\"2024-04-02\",\"2024-04-09\",\"2024-04-16\",\"2024-04-23\",\"2024-04-30\",\"2024-05-07\",\"2024-05-14\",\"2024-05-21\",\"2024-05-28\",\"2024-06-04\",\"2024-06-11\",\"2024-06-18\",\"2024-06-25\",\"2024-07-02\",\"2024-07-09\",\"2024-07-16\",\"2024-07-23\",\"2024-07-30\",\"2024-08-06\",\"2024-08-13\",\"2024-08-20\",\"2024-08-27\",\"2024-09-03\",\"2024-09-10\",\"2024-09-17\",\"2024-09-24\",\"2024-10-01\",\"2024-10-08\",\"2024-10-15\",\"2024-10-22\",\"2024-10-29\",\"2024-11-05\",\"2024-11-12\",\"2024-11-19\",\"2024-11-26\",\"2024-12-03\",\"2024-12-10\",\"2024-12-17\",\"2024-12-24\",\"2024-12-31\",\"2025-01-07\",\"2025-01-14\",\"2025-01-21\",\"2025-01-28\",\"2025-02-04\",\"2025-02-11\",\"2025-02-18\",\"2025-02-25\",\"2025-03-04\",\"2025-03-11\",\"2025-03-18\",\"2025-03-25\",\"2025-04-01\",\"2025-04-08\",\"2025-04-15\",\"2025-04-22\",\"2025-04-29\",\"2025-05-06\",\"2025-05-13\",\"2025-05-20\",\"2025-05-27\",\"2025-06-03\",\"2025-06-10\",\"2025-06-17\",\"2025-06-24\",\"2025-07-01\",\"2025-07-08\",\"2025-07-15\",\"2025-07-22\",\"2025-07-29\",\"2025-08-05\",\"2025-08-12\",\"2025-08-19\",\"2025-08-26\",\"2025-09-02\",\"2025-09-09\",\"2025-09-16\",\"2025-09-23\",\"2025-09-30\",\"2025-10-07\",\"2025-10-14\",\"2025-10-21\",\"2025-10-28\",\"2025-11-04\",\"2025-11-10\",\"2025-11-18\",\"2025-11-25\",\"2025-12-02\",\"2025-12-09\",\"2025-12-16\",\"2025-12-23\",\"2025-12-30\",\"2026-01-06\",\"2026-01-13\",\"2026-01-20\",\"2026-01-27\",\"2026-02-03\",\"2026-02-10\",\"2026-02-17\",\"2026-02-24\",\"2026-03-03\",\"2026-03-10\",\"2026-03-17\",\"2026-03-24\",\"2026-03-31\",\"2026-04-07\",\"2026-04-14\",\"2026-04-21\",\"2026-04-28\",\"2026-05-05\"];\r\n      const tsAllRaw    = [1306195200,1306800000,1307404800,1308009600,1308614400,1309219200,1309824000,1310428800,1311033600,1311638400,1312243200,1312848000,1313452800,1314057600,1314662400,1315267200,1315872000,1316476800,1317081600,1317686400,1318291200,1318896000,1319500800,1320105600,1320710400,1321315200,1321920000,1322524800,1323129600,1323734400,1324339200,1324944000,1325548800,1326153600,1326758400,1327363200,1327968000,1328572800,1329177600,1329782400,1330387200,1330992000,1331596800,1332201600,1332806400,1333411200,1334016000,1334620800,1335225600,1335830400,1336435200,1337040000,1337644800,1338249600,1338854400,1339459200,1340064000,1340668800,1341273600,1341878400,1342483200,1343088000,1343692800,1344297600,1344902400,1345507200,1346112000,1346716800,1347321600,1347926400,1348531200,1349136000,1349740800,1350345600,1350950400,1351555200,1352160000,1352764800,1353369600,1353974400,1354579200,1355184000,1355788800,1356307200,1356912000,1357603200,1358208000,1358812800,1359417600,1360022400,1360627200,1361232000,1361836800,1362441600,1363046400,1363651200,1364256000,1364860800,1365465600,1366070400,1366675200,1367280000,1367884800,1368489600,1369094400,1369699200,1370304000,1370908800,1371513600,1372118400,1372723200,1373328000,1373932800,1374537600,1375142400,1375747200,1376352000,1376956800,1377561600,1378166400,1378771200,1379376000,1379980800,1380585600,1381190400,1381795200,1382400000,1383004800,1383609600,1384214400,1384819200,1385424000,1386028800,1386633600,1387238400,1387843200,1388448000,1389052800,1389657600,1390262400,1390867200,1391472000,1392076800,1392681600,1393286400,1393891200,1394496000,1395100800,1395705600,1396310400,1396915200,1397520000,1398124800,1398729600,1399334400,1399939200,1400544000,1401148800,1401753600,1402358400,1402963200,1403568000,1404172800,1404777600,1405382400,1405987200,1406592000,1407196800,1407801600,1408406400,1409011200,1409616000,1410220800,1410825600,1411430400,1412035200,1412640000,1413244800,1413849600,1414454400,1415059200,1415664000,1416268800,1416873600,1417478400,1418083200,1418688000,1419292800,1419897600,1420502400,1421107200,1421712000,1422316800,1422921600,1423526400,1424131200,1424736000,1425340800,1425945600,1426550400,1427155200,1427760000,1428364800,1428969600,1429574400,1430179200,1430784000,1431388800,1431993600,1432598400,1433203200,1433808000,1434412800,1435017600,1435622400,1436227200,1436832000,1437436800,1438041600,1438646400,1439251200,1439856000,1440460800,1441065600,1441670400,1442275200,1442880000,1443484800,1444089600,1444694400,1445299200,1445904000,1446508800,1447113600,1447718400,1448323200,1448928000,1449532800,1450137600,1450742400,1451347200,1451952000,1452556800,1453161600,1453766400,1454371200,1454976000,1455580800,1456185600,1456790400,1457395200,1458000000,1458604800,1459209600,1459814400,1460419200,1461024000,1461628800,1462233600,1462838400,1463443200,1464048000,1464652800,1465257600,1465862400,1466467200,1467072000,1467676800,1468281600,1468886400,1469491200,1470096000,1470700800,1471305600,1471910400,1472515200,1473120000,1473724800,1474329600,1474934400,1475539200,1476144000,1476748800,1477353600,1477958400,1478563200,1479168000,1479772800,1480377600,1480982400,1481587200,1482192000,1482796800,1483401600,1484006400,1484611200,1485216000,1485820800,1486425600,1487030400,1487635200,1488240000,1488844800,1489449600,1490054400,1490659200,1491264000,1491868800,1492473600,1493078400,1493683200,1494288000,1494892800,1495497600,1496102400,1496707200,1497312000,1497916800,1498521600,1499040000,1499731200,1500336000,1500940800,1501545600,1502150400,1502755200,1503360000,1503964800,1504569600,1505174400,1505779200,1506384000,1506988800,1507593600,1508198400,1508803200,1509408000,1510012800,1510617600,1511222400,1511827200,1512432000,1513036800,1513641600,1514246400,1514851200,1515456000,1516060800,1516665600,1517270400,1517875200,1518480000,1519084800,1519689600,1520294400,1520899200,1521504000,1522108800,1522713600,1523318400,1523923200,1524528000,1525132800,1525737600,1526342400,1526947200,1527552000,1528156800,1528761600,1529366400,1529971200,1530576000,1531180800,1531785600,1532390400,1532995200,1533600000,1534204800,1534809600,1535414400,1536019200,1536624000,1537228800,1537833600,1538438400,1539043200,1539648000,1540252800,1540857600,1541462400,1542067200,1542672000,1543276800,1543881600,1544486400,1545091200,1545609600,1546214400,1546905600,1547510400,1548115200,1548720000,1549324800,1549929600,1550534400,1551139200,1551744000,1552348800,1552953600,1553558400,1554163200,1554768000,1555372800,1555977600,1556582400,1557187200,1557792000,1558396800,1559001600,1559606400,1560211200,1560816000,1561420800,1562025600,1562630400,1563235200,1563840000,1564444800,1565049600,1565654400,1566259200,1566864000,1567468800,1568073600,1568678400,1569283200,1569888000,1570492800,1571097600,1571702400,1572307200,1572912000,1573516800,1574121600,1574726400,1575331200,1575936000,1576540800,1577145600,1577750400,1578355200,1578960000,1579564800,1580169600,1580774400,1581379200,1581984000,1582588800,1583193600,1583798400,1584403200,1585008000,1585612800,1586217600,1586822400,1587427200,1588032000,1588636800,1589241600,1589846400,1590451200,1591056000,1591660800,1592265600,1592870400,1593475200,1594080000,1594684800,1595289600,1595894400,1596499200,1597104000,1597708800,1598313600,1598918400,1599523200,1600128000,1600732800,1601337600,1601942400,1602547200,1603152000,1603756800,1604361600,1604966400,1605571200,1606176000,1606780800,1607385600,1607990400,1608508800,1609200000,1609804800,1610409600,1611014400,1611619200,1612224000,1612828800,1613433600,1614038400,1614643200,1615248000,1615852800,1616457600,1617062400,1617667200,1618272000,1618876800,1619481600,1620086400,1620691200,1621296000,1621900800,1622505600,1623110400,1623715200,1624320000,1624924800,1625529600,1626134400,1626739200,1627344000,1627948800,1628553600,1629158400,1629763200,1630368000,1630972800,1631577600,1632182400,1632787200,1633392000,1633996800,1634601600,1635206400,1635811200,1636416000,1637020800,1637625600,1638230400,1638835200,1639440000,1640044800,1640649600,1641254400,1641859200,1642464000,1643068800,1643673600,1644278400,1644883200,1645488000,1646092800,1646697600,1647302400,1647907200,1648512000,1649116800,1649721600,1650326400,1650931200,1651536000,1652140800,1652745600,1653350400,1653955200,1654560000,1655164800,1655769600,1656374400,1656979200,1657584000,1658188800,1658793600,1659398400,1660003200,1660608000,1661212800,1661817600,1662422400,1663027200,1663632000,1664236800,1664841600,1665446400,1666051200,1666656000,1667260800,1667865600,1668470400,1669075200,1669680000,1670284800,1670889600,1671494400,1672099200,1672704000,1673308800,1673913600,1674518400,1675123200,1675728000,1676332800,1676937600,1677542400,1678147200,1678752000,1679356800,1679961600,1680566400,1681171200,1681776000,1682380800,1682985600,1683590400,1684195200,1684800000,1685404800,1686009600,1686614400,1687219200,1687824000,1688342400,1689033600,1689638400,1690243200,1690848000,1691452800,1692057600,1692662400,1693267200,1693872000,1694476800,1695081600,1695686400,1696291200,1696896000,1697500800,1698105600,1698710400,1699315200,1699920000,1700524800,1701129600,1701734400,1702339200,1702944000,1703548800,1704153600,1704758400,1705363200,1705968000,1706572800,1707177600,1707782400,1708387200,1708992000,1709596800,1710201600,1710806400,1711411200,1712016000,1712620800,1713225600,1713830400,1714435200,1715040000,1715644800,1716249600,1716854400,1717459200,1718064000,1718668800,1719273600,1719878400,1720483200,1721088000,1721692800,1722297600,1722902400,1723507200,1724112000,1724716800,1725321600,1725926400,1726531200,1727136000,1727740800,1728345600,1728950400,1729555200,1730160000,1730764800,1731369600,1731974400,1732579200,1733184000,1733788800,1734393600,1734998400,1735603200,1736208000,1736812800,1737417600,1738022400,1738627200,1739232000,1739836800,1740441600,1741046400,1741651200,1742256000,1742860800,1743465600,1744070400,1744675200,1745280000,1745884800,1746489600,1747094400,1747699200,1748304000,1748908800,1749513600,1750118400,1750723200,1751328000,1751932800,1752537600,1753142400,1753747200,1754352000,1754956800,1755561600,1756166400,1756771200,1757376000,1757980800,1758585600,1759190400,1759795200,1760400000,1761004800,1761609600,1762214400,1762732800,1763424000,1764028800,1764633600,1765238400,1765843200,1766448000,1767052800,1767657600,1768262400,1768867200,1769472000,1770076800,1770681600,1771286400,1771891200,1772496000,1773100800,1773705600,1774310400,1774915200,1775520000,1776124800,1776729600,1777334400,1777939200];\r\n      const seriesAll   = [[532190,554915,552261,563323,505369,410486,390487,403287,425864,429771,448697,452171,471986,471621,491717,502958,481904,449428,409435,379544,359635,367539,375881,383776,385553,385203,361609,291709,294147,299966,290323,293731,308639,338493,333795,329958,344682,362429,363551,349784,362404,374758,382012,391254,364901,354311,352306,345654,313627,315523,307959,303486,287449,261793,268436,264059,274943,270196,291962,307576,327620,361858,380846,389066,406578,436022,424556,430977,418771,422311,406467,412821,408935,422857,433003,411922,411787,394123,408558,393687,427726,403691,387121,353439,340847,345549,366755,361027,375850,395267,371106,363706,334634,350876,354884,396379,440854,383687,345864,346076,333099,335488,336821,351520,359543,376874,368272,366680,359000,358935,323728,324534,324046,335422,328465,350021,353903,346548,310942,317390,324624,344736,335940,340932,336580,344347,354612,357962,370306,383398,386258,310512,314950,314147,316125,312715,308845,312840,332372,327982,324400,340871,347214,352188,379378,400623,422097,416760,420830,434977,446529,442521,427994,450285,451148,453043,408808,408513,422981,420336,427806,422235,413772,427939,425458,428526,436737,458411,464809,463758,451689,458545,452420,465677,463639,468899,457378,445281,438041,433894,450036,451884,460608,428813,424826,437486,432568,429335,426316,428218,420328,416365,394454,396084,376836,365018,381314,379483,376792,386487,383284,366144,348540,363390,356748,368148,381068,398281,408932,424955,422322,413673,408168,384495,409204,432365,445791,484416,444321,435338,435826,435940,399014,395692,392497,400024,399486,408779,418490,393203,382149,378854,377112,374317,362008,322870,336850,333786,327416,323469,331127,345953,348690,340312,327482,346833,343188,347100,352827,363529,366404,359345,358750,355259,338427,344113,353201,391813,395375,372515,382061,403495,439640,498527,526413,509777,440231,398570,385111,388356,342462,348196,351872,371185,391868,361777,357752,348936,357923,359963,363099,353933,373293,377686,391799,402898,373220,369309,374841,361515,366154,355181,341685,354679,366651,388939,415481,390309,413109,460563,455721,436548,447243,400781,409141,376334,376831,380480,375778,363635,363762,365703,381504,396676,382810,418445,438144,417113,364085,375785,413616,402431,394247,401287,394605,398934,406467,360697,369919,373793,378228,381175,375007,374538,382349,380873,376873,392039,411670,423885,388960,404558,400846,409543,407152,403431,410298,421121,424433,453496,453219,477510,495901,507477,578099,629940,624742,582846,628395,613047,584507,580604,622871,623696,618180,632919,627540,627461,655972,678402,617457,597051,584299,584925,576418,557282,523538,513207,513761,471941,503586,490870,469442,464079,453334,441122,425419,432025,420905,418451,404310,388272,336010,392602,404390,420949,410561,411716,419625,404691,396444,373508,392584,395065,390575,391856,409773,434458,433114,410239,399979,403322,412412,417527,373602,375616,373631,415551,438646,449519,447556,473643,462115,465709,469557,469025,456035,433096,424347,415025,415713,359257,364033,378327,373218,359801,362049,346062,312556,312403,303450,300831,304283,319265,273598,292989,297845,305060,304530,315107,313678,331721,330535,320909,315451,313255,330723,321828,325870,314792,286929,266809,235355,227618,231417,235020,226320,213746,210833,218328,223361,235871,236127,243291,257634,270274,256472,259735,266621,286534,294214,291713,313321,302666,309604,316691,339901,361514,366899,394070,414653,470393,517427,504804,537314,535886,573646,561243,565166,552963,566078,631599,644591,658723,628311,627272,610147,613127,602210,606483,578046,582449,583279,616101,613446,608489,619846,607454,594192,609370,580957,544062,518145,531338,519602,496763,478631,436054,432234,407517,410004,393463,404859,412203,432298,419537,400723,382214,370349,368776,386177,410799,402726,390081,404890,482734,476313,504851,526890,474354,482428,495864,517718,536934,526997,491328,476449,524903,547596,519855,510734,536898,531633,558302,571419,582844,552536,558043,572527,586638,575082,589856,573327,589352,563850,551849,520783,519685,504174,433710,395713,384324,358478,330027,346483,349498,367371,389720,402312,406895,424311,432909,415961,415676,445776,437906,453036,465181,437467,386487,373722,360350,315270,316184,308817,332327,359493,332822,376732,388317,407766,406535,428415,414502,338242,328158,316200,327137,317171,310288,336195,340625,297251,269161,273098,282281,282880,274956,268763,279814,342125,296186,270772,268196,270722,291631,307432,290414,277537,278071,271797,278322,264473,270874,275064,281318,290632,288470,283037,278919,271577,280425,282624,251194,272899,266655,267414,265359,262351,263111,252825,260804,266671,275964,281214,282549,295676,291829,297244,294129,293932,294298,278917,278571,288529,284015,311911,337217,332720,337903,339144,367952,382946,350579,313757,309195,307784,322869,308633,320403,328996,319844,317652,335231,339497,337834,326166,321301,323640,333139,377721,405262,422877,434784,418990,399710,404920,465806,454635,461845,493433,506413,534428,587335,617299,626001,586274,627494,597706,492878,449005,441602,416135,412771,418031,438836,450712,412036,376617,341178,342329,324377,317410,321967,310709,289305,296479,287159,293548,289307,296044,304053,313217,334720,337007,350610,344492,346750,335577,308900,295960,304396,301022,324702,346596,379677,409943,380224,377499,372949,372296,361501,362375,363722,328395,329434,341576,344781,340080,336717,319669,336624,447255,471332,505346,488759,459961,459043,480510,529281,601877],[92731,91397,94129,103123,100850,89071,98322,96337,96428,99765,95486,90796,98619,102591,107548,110635,112679,98150,100643,107874,124316,125876,111048,114503,112979,123007,133829,127401,148089,158008,156046,138924,117910,115075,134867,150504,132518,133841,137710,136139,113300,91866,94585,79542,95768,108445,113037,135223,166553,163575,149387,178172,140758,155142,174870,169331,169579,142715,109381,112691,108382,96883,99468,97753,90481,92360,87086,82874,86826,95424,89434,94282,92069,95804,99344,103291,106979,117964,94549,63301,68453,81081,102754,109787,106001,124689,138092,128830,132255,140575,153870,184192,196001,191102,177252,166138,167356,183391,197179,201495,215139,209177,204395,209247,236433,224375,232450,233980,243413,250417,291454,327980,320659,365332,386890,406919,412785,388474,342715,355658,368344,419542,438216,456152,460681,473407,480407,493216,488644,454532,456757,420579,414372,394706,400886,389758,401720,406805,398586,393173,379982,342164,311803,298684,253208,202043,187193,174409,162203,126314,128267,134703,137847,127936,125878,140762,153813,187205,205090,235582,252904,284618,293291,304247,321736,342142,370957,381306,394179,384801,384380,379818,382164,383926,377927,372005,370865,341514,311721,278554,262409,241492,238080,183714,184687,171874,164245,158154,139560,157768,176565,186286,178398,220252,210764,214939,217503,231733,247815,323607,286898,261770,258645,317365,329435,367773,411500,429433,461970,479404,486269,438913,473546,430808,298635,223665,187561,160922,138640,193706,238566,275229,247554,247475,287290,270060,269815,275163,241153,246723,281965,274600,276044,329274,343358,342917,335879,312565,280369,312132,370701,407715,431999,398117,326804,321103,358187,388044,377627,440354,466580,433578,402050,356977,423969,399567,288238,223499,231061,244513,236689,220327,190792,171012,163888,180892,151116,181533,236346,257732,270402,308980,346460,375111,389669,408049,418982,385607,392949,406033,388203,354569,320760,315674,313829,289463,315922,285974,294885,289902,294855,309160,331831,328655,323630,322138,308744,293286,295927,290147,282783,242101,248353,287976,345492,399086,391372,406244,412520,446903,440479,465510,478805,463346,482311,450904,352886,375213,395093,332305,237871,225284,222182,253092,256841,295675,335959,358321,383919,398407,416253,414102,422110,436198,446526,451429,468632,479039,536783,516522,480812,458266,476695,502515,481809,473162,497012,513368,501458,439742,405149,343538,329969,292985,257715,214490,246141,281111,261078,230743,244447,247188,229164,211543,223870,232581,234931,297422,369322,413480,436108,448699,474979,494120,505043,446709,402223,390501,379817,406571,431701,421662,483957,454582,397169,375187,315808,308745,298441,288111,287318,289177,293988,268873,232680,217821,226772,251763,245288,269833,248442,258636,264367,296763,354743,376913,456090,536775,533809,472087,505090,532560,566903,590669,581894,566664,557520,412306,328652,225504,208181,203297,154914,164910,166351,150804,168999,191437,202727,253386,321629,320313,343021,385805,411958,401722,376055,350324,316803,323782,311503,326818,336269,345759,311060,294925,315666,302392,277896,278858,273447,295806,282512,247489,262832,275034,286950,328960,320305,299940,305239,300335,274291,283393,304711,333497,344768,366836,388404,417374,443436,455309,471140,457949,479610,427718,363711,359424,365475,388953,442655,441615,390487,320053,248353,233002,228067,204620,185007,168396,154666,140485,106414,98601,114655,124386,122307,126291,130401,138729,129623,121051,123494,116600,99660,79595,81633,90695,87751,76649,74281,79051,74195,77401,78101,72337,76560,84709,72629,73224,80101,84584,89719,78962,91174,95387,90220,83087,105420,94538,98475,86786,86816,90644,86452,88570,96551,114437,111715,103275,107631,113794,123438,113052,97080,99625,101015,105665,109801,79442,71614,69243,72398,78758,81516,83836,88311,85805,92376,100253,96242,85156,70695,60269,64213,63488,70444,70970,76946,86026,77457,87991,102419,115609,136002,147649,129519,119910,124005,105608,135008,137168,148538,143499,145128,138712,147242,126477,118915,120348,129742,127232,119339,110714,120655,125487,123252,124393,135913,133579,124957,90108,116895,103954,108837,97194,91961,99027,104859,110948,110954,124185,123703,131479,195111,224886,272423,267661,245643,224598,232886,234989,272603,329794,332191,330740,345147,295363,283534,234722,223352,182748,224369,260385,250852,221155,227358,264687,304503,329621,307610,323954,352461,372107,393604,388862,355416,351024,331317,366615,377618,389625,406630,408342,383338,367870,394984,393010,409079,436144,472793,480004,491503,505386,527153,548616,528280,522716,486274,469642,471953,475634,469108,483428,448697,427439,343265,336993,374547,389535,459077,468984,459657,520362,542468,549136,546600,544821,521075,472372,483001,485140,466186,425714,387257,404129,390388,328494,287569,338291,359881,321958,320229,257138,255689,262841,267692,241383,232787,236170,202918,186600,186353,194412,173424,163620,161505,158770,156545,157440,180648,202226,215764,245902,245149,204654,230869,236607,260718,323072,353881,344710,398469,417461,417953,419875,452005,428921,423005,423190,429511,412021,446391,439930,407947,403065,398736,382919,386763,390207,388313,425360,384365,338564,341416,336664,289043,321555,290403,305419,357640,296629,309183,303610,361818,381138,373247,379479,358410,344552,310841,246565,189474,158990,129986,154002,169142,210162,216778,188541,168493],[439459,463518,458132,460200,404519,321415,292165,306950,329436,330006,353211,361375,373367,369030,384169,392323,369225,351278,308792,271670,235319,241663,264833,269273,272574,262196,227780,164308,146058,141958,134277,154807,190729,223418,198928,179454,212164,228588,225841,213645,249104,282892,287427,311712,269133,245866,239269,210431,147074,151948,158572,125314,146691,106651,93566,94728,105364,127481,182581,194885,219238,264975,281378,291313,316097,343662,337470,348103,331945,326887,317033,318539,316866,327053,333659,308631,304808,276159,314009,330386,359273,322610,284367,243652,234846,220860,228663,232197,243595,254692,217236,179514,138633,159774,177632,230241,273498,200296,148685,144581,117960,126311,132426,142273,123110,152499,135822,132700,115587,108518,32274,-3446,3387,-29910,-58425,-56898,-58882,-41926,-31773,-38268,-43720,-74806,-102276,-115220,-124101,-129060,-125795,-135254,-118338,-71134,-70499,-110067,-99422,-80559,-84761,-77043,-92875,-93965,-66214,-65191,-55582,-1293,35411,53504,126170,198580,234904,242351,258627,308663,318262,307818,290147,322349,325270,312281,254995,221308,217891,184754,174902,137617,120481,123692,103722,86384,65780,77105,70630,78957,67309,78727,70256,81751,85712,96894,86513,103767,126320,155340,187627,210392,222528,245099,240139,265612,268323,271181,286756,270450,243763,230079,216056,175832,166072,150079,163811,147750,128977,62880,96386,104374,89895,46025,27313,375,-30432,-31152,-53038,-54449,-63947,-25240,-65378,-46313,110569,208700,258230,323494,305681,241632,197260,160711,151460,148217,105207,129964,129671,133616,177337,146480,100184,104254,101068,45043,18650,-20047,971,21221,47047,11337,-39574,-61762,-83309,-57805,678,25730,-14999,-40944,-24800,-76825,-100176,-74233,-43300,-1718,-85542,-55454,64963,168314,164314,128002,145372,183168,248848,327515,362525,328885,289115,217037,148765,130624,72060,39216,5412,-3926,2199,-46272,-61230,-36671,-35026,-46070,-25104,-636,52533,62012,77970,113435,57298,83335,79956,71613,71299,46021,9854,26024,43021,66801,106737,97023,117182,170416,172938,194447,198890,112805,63649,-22752,-14541,-25764,-36742,-83268,-76717,-99807,-97301,-66670,-99501,-32459,85258,41900,-31008,43480,175745,177147,172065,148195,137764,103259,70508,2376,-14000,-24614,-38025,-32927,-47103,-61660,-64177,-70556,-91759,-87000,-125113,-92637,-91852,-53708,-75849,-92972,-74657,-69731,-86714,-92247,-77025,13754,48070,133972,165932,214492,320384,415450,378601,301735,367317,382304,340060,333416,393707,412153,394310,400338,392609,330039,286650,264922,181349,148352,109320,90805,71375,110573,121315,122706,133944,65370,71885,69208,-14515,9497,56165,65935,109611,123280,122464,130340,116992,99095,42022,123729,171710,203128,183789,159953,174337,134858,148002,114872,128217,98302,35832,14943,-46317,-102317,-100695,-61848,-105111,-129238,-154491,-173142,-208292,-191048,-183889,3245,109994,224015,239375,270346,307201,300799,303206,318221,287036,241659,221620,161639,94084,38944,21012,-7478,-38740,-41921,-14006,-4262,-4247,-11379,-8053,-25987,-31986,-26494,-37462,-1936,-17821,2668,26634,36249,40231,35915,48023,73420,52619,38221,43773,-7132,5565,14852,-18310,-33526,-38936,-55775,-73294,-98477,-118448,-153090,-177571,-199046,-220075,-219438,-235013,-214658,-221976,-157444,-107239,-99689,-98854,-102419,-148441,-149902,-77166,-17387,61251,83689,111834,156894,181892,225674,259987,329908,411013,406203,422659,411500,451339,434952,434765,414234,436455,510548,521097,542123,528651,547677,528514,522432,514459,529834,503765,503398,509084,538700,535345,536152,543286,522745,521563,536146,500856,459478,428426,452376,428428,401376,388411,352967,326814,312979,311529,306677,318043,321559,345846,330967,304172,267777,258634,265501,278546,297005,279288,277029,307810,383109,375298,399186,417089,394912,410814,426621,445320,458176,445481,407492,388138,439098,455220,419602,414492,451742,460938,498033,507206,519356,482092,487073,495581,500612,497625,501865,470908,473743,427848,404200,391264,399775,380169,328102,260705,247156,209940,186528,201355,210786,220129,263243,283397,286547,294569,305677,296622,304962,325121,312419,329784,340788,301554,252908,248765,270242,198375,212230,199980,235133,267532,233795,271873,277369,296812,282350,304712,283023,143131,103272,43777,59476,71528,85690,103309,105636,24648,-60633,-59093,-48459,-62267,-20407,-14771,45092,118773,113438,46403,7811,19870,70476,80074,25727,-26966,-51550,-35813,-45632,-87988,-101233,-118540,-107544,-64784,-62554,-48280,-87696,-106041,-109200,-124006,-157148,-110439,-101215,-127570,-127651,-146728,-173033,-219968,-219200,-224832,-229422,-245939,-266067,-232604,-230887,-189030,-175513,-178021,-181336,-190191,-204857,-160168,-143424,-31354,224,-41827,-51632,-119933,-101032,-76711,-169783,-228711,-239941,-238816,-221952,-212442,-151969,-154005,-165296,-148534,-90483,-47760,-66295,-64222,-7193,36071,-5152,17840,83304,102648,177646,163301,136869,137228,224423,221848,225675,290515,319813,348075,392923,443875,462381,424769,468724,441161,335438,268357,239376,200371,166869,172882,234182,219843,175429,115899,18106,-11552,-20333,-81059,-95494,-107244,-130570,-155526,-141762,-129457,-133883,-133467,-107968,-133174,-105210,-70940,-52455,-54244,-36169,-51186,-81307,-92353,-120964,-83343,-13862,5180,43013,120900,58669,87096,67530,14656,64872,53192,60112,-33423,-51704,-31671,-34698,-18330,-7835,8828,90059,257781,312342,375360,334757,290819,248881,263732,340740,433384]];\r\n      const seriesNames = [\"Speculative Long\",\"Speculative Short\",\"Speculative Net\"];\r\n\r\n      const CANVAS_ID = 'Corn_chart180_174';\r\n      const TIP_ID    = '__chart_exttip_left_Corn_chart180_174';\r\n\r\n      const CMIDRA = window.__CMIDRA__ = window.__CMIDRA__ || {};\r\n      CMIDRA.c180 = CMIDRA.c180 || { charts:{}, binds:{}, zoomRegistered:false, tipGlobalBound:false };\r\n\r\n      if (!CMIDRA.c180.tipGlobalBound) {\r\n        CMIDRA.c180.tipGlobalBound = true;\r\n        const hideAllTips = () => {\r\n          try{\r\n            document.querySelectorAll('[id^=\"__chart_exttip_left_\"]').forEach(el => { el.style.opacity = 0; });\r\n          }catch(e){}\r\n        };\r\n        ['mouseleave','scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt => {\r\n          window.addEventListener(evt, hideAllTips, { passive:true });\r\n        });\r\n      }\r\n\r\n      function cleanupOld(){\r\n        try{\r\n          const old = CMIDRA.c180.charts[CANVAS_ID];\r\n          if (old && old.destroy) { old.destroy(); }\r\n          delete CMIDRA.c180.charts[CANVAS_ID];\r\n        }catch(e){}\r\n\r\n        try{\r\n          if (window.Chart && Chart.getChart) {\r\n            const c = document.getElementById(CANVAS_ID);\r\n            if (c) {\r\n              const old2 = Chart.getChart(c);\r\n              if (old2) old2.destroy();\r\n            }\r\n          }\r\n        }catch(e){}\r\n\r\n        const bind = CMIDRA.c180.binds[CANVAS_ID];\r\n        if (bind) {\r\n          try{ if (bind.canvas && bind.onCanvasDblClick)     bind.canvas.removeEventListener('dblclick',   bind.onCanvasDblClick); }catch(e){}\r\n          try{ if (bind.canvas && bind.onCanvasPointerDown)  bind.canvas.removeEventListener('pointerdown', bind.onCanvasPointerDown, bind.canvasPointerOpts||false); }catch(e){}\r\n          try{ if (bind.doc && bind.onDocPointerDown)        bind.doc.removeEventListener('pointerdown',  bind.onDocPointerDown, true); }catch(e){}\r\n          try{ if (bind.win && bind.onWinKeyDown)            bind.win.removeEventListener('keydown',     bind.onWinKeyDown, bind.winKeyOpts||false); }catch(e){}\r\n          delete CMIDRA.c180.binds[CANVAS_ID];\r\n        }\r\n\r\n        try{\r\n          const tip = document.getElementById(TIP_ID);\r\n          if (tip && tip.parentNode) tip.parentNode.removeChild(tip);\r\n        }catch(e){}\r\n      }\r\n\r\n      const fmt = (n) => {\r\n        try {\r\n          if (n === null || n === undefined || Number.isNaN(n)) return '';\r\n          return Number(n).toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 2 });\r\n        } catch(e){ return n; }\r\n      };\r\n\r\n      const start = () => {\r\n        try {\r\n          const Zoom = (window['chartjs-plugin-zoom'] && (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])) || null;\r\n          if (Zoom && window.Chart && Chart.register && !CMIDRA.c180.zoomRegistered) {\r\n            Chart.register(Zoom);\r\n            CMIDRA.c180.zoomRegistered = true;\r\n          }\r\n        } catch(e) {}\r\n\r\n        const canvas = document.getElementById(CANVAS_ID);\r\n        if (!canvas) return;\r\n\r\n        \/\/ \ud3ec\ucee4\uc2a4(\ud30c\ub780 \ud14c\ub450\ub9ac) \ucc28\ub2e8\r\n        try { canvas.tabIndex = -1; canvas.setAttribute('tabindex','-1'); } catch(e) {}\r\n\r\n        cleanupOld();\r\n\r\n        const ctx = canvas.getContext('2d');\r\n\r\n        const tsAll = (tsAllRaw || []).map(t => (typeof t === 'number' ? Math.floor(t) : null));\r\n        const indicesAll = labelsAll.map((_, i) => i);\r\n\r\n        const Crosshair2D = {\r\n          id: 'crosshair2d',\r\n          afterEvent(chart, args) {\r\n            const e = args.event;\r\n            const a = chart.chartArea;\r\n            if (!a) return;\r\n            if (e.type === 'mouseout') {\r\n              chart.$cross2d = null;\r\n              chart.draw();\r\n              return;\r\n            }\r\n            if (e.x >= a.left && e.x <= a.right && e.y >= a.top && e.y <= a.bottom) {\r\n              chart.$cross2d = { x: e.x, y: e.y };\r\n            } else {\r\n              chart.$cross2d = null;\r\n            }\r\n            chart.draw();\r\n          },\r\n          afterDraw(chart) {\r\n            const cross = chart.$cross2d;\r\n            if (!cross) return;\r\n            const { ctx, chartArea:a } = chart;\r\n            ctx.save();\r\n            ctx.strokeStyle = 'rgba(107,114,128,0.55)';\r\n            ctx.lineWidth   = 1;\r\n            ctx.setLineDash([4,3]);\r\n            ctx.beginPath();\r\n            ctx.moveTo(cross.x, a.top);\r\n            ctx.lineTo(cross.x, a.bottom);\r\n            ctx.stroke();\r\n            ctx.beginPath();\r\n            ctx.moveTo(a.left, cross.y);\r\n            ctx.lineTo(a.right, cross.y);\r\n            ctx.stroke();\r\n            ctx.restore();\r\n          }\r\n        };\r\n\r\n        const externalTooltipHandler = (context) => {\r\n          const { chart, tooltip } = context;\r\n          const area = chart.chartArea;\r\n          if (!area) return;\r\n\r\n          let tip = document.getElementById(TIP_ID);\r\n          if (!tip) {\r\n            tip = document.createElement('div');\r\n            tip.id = TIP_ID;\r\n            tip.style.position = 'fixed';\r\n            tip.style.left = '0';\r\n            tip.style.top  = '0';\r\n            tip.style.opacity = '0';\r\n            tip.style.pointerEvents = 'none';\r\n            tip.style.zIndex = '99999';\r\n            document.body.appendChild(tip);\r\n          }\r\n          if (tooltip.opacity === 0) {\r\n            tip.style.opacity = 0;\r\n            return;\r\n          }\r\n\r\n          const title = (tooltip.title && tooltip.title[0]) ? tooltip.title[0] : '';\r\n          const rows = (tooltip.dataPoints || []).map(dp => {\r\n            const color = dp.dataset.borderColor || dp.dataset.backgroundColor || '#4b5563';\r\n            const label = dp.dataset.label || '';\r\n\r\n            let v = null;\r\n            if (typeof dp.raw === 'number') v = dp.raw;\r\n            else if (dp.parsed && typeof dp.parsed.y === 'number') v = dp.parsed.y;\r\n\r\n            const val = (v === null) ? '' : fmt(v);\r\n\r\n            return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                      <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                        <span style=\"width:10px;height:10px;border-radius:2px;background:${color};\r\n                                     border:1px solid rgba(255,255,255,.9);display:inline-block;\"><\/span>\r\n                        <span>${label}<\/span>\r\n                      <\/span>\r\n                      <span style=\"font-weight:600;\">${val}<\/span>\r\n                    <\/div>`;\r\n          }).join('');\r\n\r\n          tip.innerHTML =\r\n            `<div style=\"box-shadow:0 10px 24px rgba(15,23,42,.25);border:1px solid rgba(148,163,184,.7);\r\n                         background:#ffffff;color:#111827;border-radius:12px;padding:10px 12px;\r\n                         min-width:220px;max-width:340px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n               <div style=\"color:#0f172a;font-weight:800;margin-bottom:6px;\">${title}<\/div>\r\n               <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n             <\/div>`;\r\n\r\n          const cr  = chart.canvas.getBoundingClientRect();\r\n          const box = tip.firstElementChild;\r\n          const boxW = box ? box.offsetWidth : 260;\r\n          const boxH = box ? box.offsetHeight : 140;\r\n          const pad  = 8;\r\n\r\n          const left = Math.max(8, cr.left + area.left - boxW - pad);\r\n          const topMin = cr.top + area.top;\r\n          const topMax = cr.top + area.bottom - boxH;\r\n          const rawTop = cr.top + tooltip.caretY - boxH\/2;\r\n          const top = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n          tip.style.left = left + 'px';\r\n          tip.style.top  = top  + 'px';\r\n          tip.style.opacity = 1;\r\n        };\r\n\r\n        const lineColors = ['#16a34a', '#dc2626'];\r\n        const netColor   = '#60a5fa';\r\n        const netBgColor = 'rgba(96,165,250,0.20)';\r\n\r\n        const buildDatasets = (idxList) => {\r\n          const ds = [];\r\n          (seriesAll || []).forEach((series, sIdx) => {\r\n            const data = idxList.map(i => series[i]);\r\n            const base = {\r\n              label: (seriesNames && seriesNames[sIdx]) ? seriesNames[sIdx] : ('S' + (sIdx+1)),\r\n              data: data,\r\n              type: 'line',\r\n              spanGaps: true,\r\n              pointRadius: 0,\r\n              tension: 0.18\r\n            };\r\n\r\n            const isNet = (sIdx === 2);\r\n            if (isNet) {\r\n              base.yAxisID         = 'yRight';\r\n              base.borderColor     = netColor;\r\n              base.backgroundColor = netBgColor;\r\n              base.borderWidth     = 2;\r\n              base.fill            = 'origin';\r\n              base.order           = 1;\r\n            } else {\r\n              base.yAxisID         = 'yLeft';\r\n              const color          = lineColors[sIdx] || '#4b5563';\r\n              base.borderColor     = color;\r\n              base.backgroundColor = color;\r\n              base.borderWidth     = 2;\r\n              base.fill            = false;\r\n              base.order           = 2;\r\n            }\r\n            ds.push(base);\r\n          });\r\n          return ds;\r\n        };\r\n\r\n        const cfg = {\r\n          type: 'line',\r\n          data: {\r\n            labels: labelsAll.slice(),\r\n            datasets: buildDatasets(indicesAll)\r\n          },\r\n          plugins: [Crosshair2D],\r\n          options: {\r\n            responsive: true,\r\n            maintainAspectRatio: false,\r\n            normalized: true,\r\n            interaction: { mode: 'index', intersect: false },\r\n            plugins: {\r\n              zoom: {\r\n                \/\/ \ud0a4\ubcf4\ub4dc pan\uc744 chart.pan()\uc73c\ub85c \ucc98\ub9ac\ud558\uae30 \uc704\ud574 pan \ud65c\uc131\ud654\r\n                \/\/ \ub9c8\uc6b0\uc2a4 pan\uc740 ALT \ub204\ub97c \ub54c\ub9cc\r\n                pan: { enabled: true, mode: 'x', modifierKey: 'alt' },\r\n                zoom: {\r\n                  wheel: { enabled: true },\r\n                  pinch: { enabled: true },\r\n                  drag: {\r\n                    enabled: true,\r\n                    mode: 'x',\r\n                    threshold: 8,\r\n                    backgroundColor: 'rgba(75,85,99,.10)',\r\n                    borderColor: 'rgba(75,85,99,.65)',\r\n                    borderWidth: 1\r\n                  },\r\n                  mode: 'x'\r\n                }\r\n              },\r\n              tooltip: {\r\n                enabled: false,\r\n                external: externalTooltipHandler,\r\n                mode: 'index',\r\n                intersect: false\r\n              },\r\n              legend: {\r\n                position: 'bottom',\r\n                labels: {\r\n                  color: '#374151',\r\n                  font: { size: 12, weight: '500' },\r\n                  usePointStyle: true,\r\n                  pointStyle: 'line'\r\n                }\r\n              },\r\n              decimation: { enabled: true, algorithm: 'min-max' },\r\n              title: { display: false }\r\n            },\r\n            scales: {\r\n              x: {\r\n                type: 'category',\r\n                title: {\r\n                  display: true,\r\n                  text: 'Date',\r\n                  color: '#374151',\r\n                  font: { weight: '600' }\r\n                },\r\n                ticks: {\r\n                  autoSkip: true,\r\n                  maxTicksLimit: (window.innerWidth < 768 ? 6 : 12),\r\n                  maxRotation: 0,\r\n                  minRotation: 0,\r\n                  color: '#4b5563'\r\n                },\r\n                grid: {\r\n                  display: false,\r\n                  borderColor: 'rgba(148,163,184,0.5)',\r\n                  borderWidth: 1\r\n                }\r\n              },\r\n              yLeft: {\r\n                type: 'linear',\r\n                position: 'left',\r\n                title: {\r\n                  display: true,\r\n                  text: 'Long\/Short positions',\r\n                  color: '#111827',\r\n                  font: { weight: '600' }\r\n                },\r\n                ticks: { color: '#111827', callback: (v) => fmt(v) },\r\n                grid: {\r\n                  drawOnChartArea: true,\r\n                  color: 'rgba(209,213,219,0.6)',\r\n                  borderColor: 'rgba(156,163,175,0.9)',\r\n                  borderWidth: 1\r\n                }\r\n              },\r\n              yRight: {\r\n                type: 'linear',\r\n                position: 'right',\r\n                title: {\r\n                  display: true,\r\n                  text: 'Net positions',\r\n                  color: '#111827',\r\n                  font: { weight: '600' }\r\n                },\r\n                ticks: { color: '#111827', callback: (v) => fmt(v) },\r\n                grid: {\r\n                  drawOnChartArea: false,\r\n                  borderColor: 'rgba(156,163,175,0.9)',\r\n                  borderWidth: 1\r\n                }\r\n              }\r\n            },\r\n            onHover: (evt) => {\r\n              if (!evt?.native) return;\r\n              canvas.style.cursor = 'crosshair';\r\n            }\r\n          }\r\n        };\r\n\r\n        const chart = new Chart(ctx, cfg);\r\n        CMIDRA.c180.charts[CANVAS_ID] = chart;\r\n\r\n        const wrap     = canvas.closest('.corn180s-card') || canvas.closest('.corn180s-wrap') || document;\r\n        const btns     = wrap.querySelectorAll('.corn180s-btn[data-range]');\r\n        const resetBtn = wrap.querySelector('[data-action=\"reset\"]');\r\n        const pngBtn   = wrap.querySelector('[data-action=\"png\"]');\r\n\r\n        const setActive = (key) => {\r\n          btns.forEach(b => b.classList.toggle('is-active', (b.dataset.range === String(key))));\r\n        };\r\n\r\n        \/\/ x.min\/x.max \uc644\uc804 \ucd08\uae30\ud654\r\n        const clearXWindow = () => {\r\n          try {\r\n            if (chart && chart.options && chart.options.scales && chart.options.scales.x) {\r\n              delete chart.options.scales.x.min;\r\n              delete chart.options.scales.x.max;\r\n              chart.options.scales.x.min = undefined;\r\n              chart.options.scales.x.max = undefined;\r\n            }\r\n          } catch(e) {}\r\n        };\r\n\r\n        const computeIndicesForRange = (rangeKey) => {\r\n          if (rangeKey === 'all') return indicesAll;\r\n\r\n          const months = parseInt(rangeKey, 10);\r\n          if (!Number.isFinite(months) || months <= 0) return indicesAll;\r\n\r\n          const validTs = tsAll.filter(t => Number.isInteger(t) && t > 0);\r\n          if (!validTs.length) return indicesAll;\r\n\r\n          const latest = Math.max.apply(null, validTs);\r\n          const cutDate = new Date(latest * 1000);\r\n          cutDate.setMonth(cutDate.getMonth() - months);\r\n          const cutTs = Math.floor(cutDate.getTime() \/ 1000);\r\n\r\n          const keep = [];\r\n          tsAll.forEach((ts, idx) => {\r\n            if (Number.isInteger(ts) && ts >= cutTs) keep.push(idx);\r\n          });\r\n          return keep.length ? keep : indicesAll;\r\n        };\r\n\r\n        const applyRange = (rangeKey) => {\r\n          try { if (chart && chart.resetZoom) chart.resetZoom(); } catch(e) {}\r\n          clearXWindow();\r\n\r\n          const idxList   = computeIndicesForRange(rangeKey);\r\n          const newLabels = idxList.map(i => labelsAll[i]);\r\n\r\n          chart.data.labels   = newLabels;\r\n          chart.data.datasets = buildDatasets(idxList);\r\n          chart.update();\r\n\r\n          setActive(rangeKey);\r\n        };\r\n\r\n        \/\/ \ucd08\uae30 \ubc94\uc704: 1\ub144\r\n        applyRange('12');\r\n\r\n        btns.forEach(b => {\r\n          b.onclick = () => {\r\n            const r = b.dataset.range || 'all';\r\n            applyRange(r);\r\n          };\r\n        });\r\n\r\n        if (resetBtn) {\r\n          resetBtn.onclick = () => {\r\n            clearXWindow();\r\n            try { if (chart && chart.resetZoom) chart.resetZoom(); } catch(e) {}\r\n            try { chart.update(); } catch(e) {}\r\n          };\r\n        }\r\n\r\n        if (pngBtn) {\r\n          pngBtn.onclick = () => {\r\n            try {\r\n              const url = chart.toBase64Image('image\/png', 1.0);\r\n              const a = document.createElement('a');\r\n              a.href = url;\r\n              a.download = 'Corn_chart180.png';\r\n              a.click();\r\n            } catch(e) {}\r\n          };\r\n        }\r\n\r\n        const onCanvasDblClick = () => {\r\n          clearXWindow();\r\n          try { if (chart && chart.resetZoom) chart.resetZoom(); } catch(e) {}\r\n          try { chart.update(); } catch(e) {}\r\n        };\r\n        canvas.addEventListener('dblclick', onCanvasDblClick);\r\n\r\n        \/\/ \ubc29\ud5a5\ud0a4 \ud32c\r\n        let keyPanActive = false;\r\n\r\n        const panByKey = (dir, fast) => {\r\n          try {\r\n            if (!chart || typeof chart.pan !== 'function') return;\r\n\r\n            const a = chart.chartArea || null;\r\n            const baseStep = a ? Math.max(24, Math.round(a.width * (fast ? 0.25 : 0.10))) : (fast ? 220 : 90);\r\n\r\n            \/\/ ArrowLeft(\uacfc\uac70\ub85c): dx +, ArrowRight(\ubbf8\ub798\ub85c): dx -\r\n            const dx = (dir < 0) ? baseStep : -baseStep;\r\n\r\n            chart.pan({ x: dx, y: 0 }, undefined, 'none');\r\n          } catch(e) {}\r\n        };\r\n\r\n        const onCanvasPointerDown = () => {\r\n          keyPanActive = true;\r\n          try { if (canvas.blur) canvas.blur(); } catch(e) {}\r\n        };\r\n        const canvasPointerOpts = { passive:true };\r\n        canvas.addEventListener('pointerdown', onCanvasPointerDown, canvasPointerOpts);\r\n\r\n        const onDocPointerDown = (ev) => {\r\n          if (ev && ev.target !== canvas) keyPanActive = false;\r\n        };\r\n        document.addEventListener('pointerdown', onDocPointerDown, true);\r\n\r\n        const onWinKeyDown = (ev) => {\r\n          try {\r\n            if (!keyPanActive) return;\r\n\r\n            const ae = document.activeElement;\r\n            if (ae && (ae.tagName === 'INPUT' || ae.tagName === 'TEXTAREA' || ae.tagName === 'SELECT' || ae.isContentEditable)) return;\r\n\r\n            const k = ev.key;\r\n            if (k === 'ArrowLeft')  { ev.preventDefault(); panByKey(-1, false); return; }\r\n            if (k === 'ArrowRight') { ev.preventDefault(); panByKey( 1, false); return; }\r\n            if (k === 'ArrowUp')    { ev.preventDefault(); panByKey(-1, true);  return; }\r\n            if (k === 'ArrowDown')  { ev.preventDefault(); panByKey( 1, true);  return; }\r\n          } catch(e) {}\r\n        };\r\n        const winKeyOpts = { passive:false };\r\n        window.addEventListener('keydown', onWinKeyDown, winKeyOpts);\r\n\r\n        CMIDRA.c180.binds[CANVAS_ID] = {\r\n          canvas,\r\n          doc: document,\r\n          win: window,\r\n          onCanvasPointerDown,\r\n          canvasPointerOpts,\r\n          onDocPointerDown,\r\n          onWinKeyDown,\r\n          winKeyOpts,\r\n          onCanvasDblClick\r\n        };\r\n      };\r\n\r\n      const waitMax = 200;\r\n      let waited = 0;\r\n\r\n      const boot = () => {\r\n        const chartReady = (window.Chart && typeof window.Chart === 'function');\r\n        const zoomReady  = !!window['chartjs-plugin-zoom'];\r\n\r\n        if (chartReady && zoomReady) {\r\n          start();\r\n          return;\r\n        }\r\n\r\n        waited++;\r\n        if (waited >= waitMax) {\r\n          if (chartReady) start();\r\n          return;\r\n        }\r\n        setTimeout(boot, 50);\r\n      };\r\n\r\n      if (document.readyState === 'loading') {\r\n        document.addEventListener('DOMContentLoaded', boot, { once:true });\r\n      } else {\r\n        boot();\r\n      }\r\n    })();\r\n    <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8030f1d e-flex e-con-boxed e-con e-parent\" data-id=\"8030f1d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ea8bea7 elementor-widget elementor-widget-shortcode\" data-id=\"ea8bea7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div class=\"corn181c-wrap\">\r\n      <div class=\"corn181c-card\">\r\n        <div class=\"corn181c-controls\">\r\n          <strong class=\"corn181c-range-label\">Range:<\/strong>\r\n          <button type=\"button\" class=\"corn181c-btn\" data-range=\"3\">3M<\/button>\r\n          <button type=\"button\" class=\"corn181c-btn\" data-range=\"12\">1Y<\/button>\r\n          <button type=\"button\" class=\"corn181c-btn\" data-range=\"60\">5Y<\/button>\r\n          <button type=\"button\" class=\"corn181c-btn\" data-range=\"120\">10Y<\/button>\r\n          <button type=\"button\" class=\"corn181c-btn\" data-range=\"all\">ALL<\/button>\r\n          <span class=\"corn181c-flex-spacer\"><\/span>\r\n          <em class=\"corn181c-hint\">Wheel\/Pinch=Zoom \u00b7 Drag=Box Zoom \u00b7 Double-click=Reset<\/em>\r\n          <button type=\"button\" class=\"corn181c-btn corn181c-btn-ghost\" data-action=\"reset\">Reset<\/button>\r\n          <button type=\"button\" class=\"corn181c-btn corn181c-btn-ghost\" data-action=\"png\">Save PNG<\/button>\r\n        <\/div>\r\n\r\n        <div class=\"corn181c-title-row\">\r\n          <h3 class=\"corn181c-title\">CFTC Corn Futures Positions (Commercial)<\/h3>\r\n        <\/div>\r\n\r\n        <div class=\"corn181c-canvas-wrap\">\r\n          <canvas\r\n            id=\"Corn_chart181_174\"\r\n            aria-label=\"CFTC Corn Futures Positions (Commercial)\"\r\n          ><\/canvas>\r\n        <\/div>\r\n\r\n        <div class=\"corn181c-source-wrap\">\r\n          <span class=\"corn181c-source-pill\">\r\n            <a href=\"https:\/\/www.cftc.gov\/\" target=\"_blank\" rel=\"noopener noreferrer\">CFTC<\/a>          <\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <style>\r\n      .corn181c-wrap {\r\n        overflow-x: auto;\r\n        -webkit-overflow-scrolling: touch;\r\n        padding: 16px;\r\n        border-radius: 18px;\r\n        background: radial-gradient(circle at top left, #e5e7eb, #f8fafc);\r\n        box-shadow: 0 18px 32px rgba(15,23,42,0.22);\r\n        margin: 8px 0;\r\n      }\r\n      .corn181c-card {\r\n        background: #ffffff;\r\n        border-radius: 14px;\r\n        padding: 14px 16px 16px;\r\n        box-shadow: 0 6px 18px rgba(15,23,42,0.18);\r\n        border: 1px solid rgba(107,114,128,0.35);\r\n      }\r\n      .corn181c-controls {\r\n        display: flex;\r\n        gap: 6px;\r\n        align-items: center;\r\n        margin: 0 0 6px 0;\r\n        flex-wrap: wrap;\r\n        min-width: 720px;\r\n      }\r\n      .corn181c-range-label { font: 600 13px system-ui,-apple-system,Segoe UI,Roboto; color:#4b5563; }\r\n      .corn181c-flex-spacer { flex: 1 1 auto; }\r\n\r\n      .corn181c-btn {\r\n        padding: 6px 10px;\r\n        border-radius: 999px;\r\n        border: 1px solid rgba(75,85,99,0.9);\r\n        background: linear-gradient(135deg,#f3f4f6,#e5e7eb);\r\n        font: 500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n        cursor: pointer;\r\n        color: #111827;\r\n        box-shadow: 0 1px 2px rgba(15,23,42,0.06);\r\n        transition: background .15s ease, box-shadow .15s ease, transform .05s ease;\r\n      }\r\n      .corn181c-btn:hover {\r\n        background: linear-gradient(135deg,#e5e7eb,#d1d5db);\r\n        box-shadow: 0 2px 4px rgba(15,23,42,0.08);\r\n        transform: translateY(-0.5px);\r\n      }\r\n      .corn181c-btn.is-active {\r\n        background: linear-gradient(135deg,#111827,#374151);\r\n        color: #e5e7eb;\r\n        border-color: #111827;\r\n        box-shadow: 0 2px 7px rgba(17,24,39,0.45);\r\n      }\r\n      .corn181c-btn-ghost {\r\n        background: #ffffff;\r\n        border-color: rgba(209,213,219,0.9);\r\n        color: #374151;\r\n      }\r\n      .corn181c-btn-ghost.is-active {\r\n        background: #f3f4f6;\r\n        border-color: #9ca3af;\r\n        color: #111827;\r\n      }\r\n      .corn181c-hint { font-size: 12px; color:#6b7280; }\r\n\r\n      .corn181c-title-row { display:flex; align-items:baseline; justify-content:space-between; min-width:720px; margin:0 0 6px 0; }\r\n      .corn181c-title { margin:0; font:700 18px system-ui,-apple-system,Segoe UI,Roboto; color:#111827; }\r\n\r\n      .corn181c-canvas-wrap {\r\n        min-width: 720px;\r\n        height: 480px;\r\n        position: relative;\r\n        background: #ffffff;\r\n        border-radius: 12px;\r\n        border: 1px solid rgba(148,163,184,0.45);\r\n        overflow: hidden;\r\n      }\r\n      .corn181c-canvas-wrap canvas {\r\n        width: 100%;\r\n        height: 100%;\r\n        display: block;\r\n        user-select: none;\r\n        -webkit-user-select: none;\r\n        -webkit-user-drag: none;\r\n        touch-action: none;\r\n        cursor: default;\r\n      }\r\n      .corn181c-canvas-wrap canvas:focus,\r\n      .corn181c-canvas-wrap canvas:focus-visible {\r\n        outline: none !important;\r\n        box-shadow: none !important;\r\n      }\r\n\r\n      .corn181c-source-wrap { display:flex; justify-content:flex-end; min-width:720px; margin-top:6px; }\r\n      .corn181c-source-pill {\r\n        display:inline-block;\r\n        padding: 4px 10px;\r\n        border-radius: 999px;\r\n        background: rgba(255,255,255,0.96);\r\n        border: 1px solid rgba(0,0,0,0.06);\r\n        font: 11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n        color: #6b7280;\r\n        box-shadow: 0 2px 6px rgba(15,23,42,0.12);\r\n      }\r\n      .corn181c-source-pill a{\r\n        color: inherit;\r\n        text-decoration: none;\r\n        font-weight: 600;\r\n      }\r\n      .corn181c-source-pill a:hover{\r\n        text-decoration: underline;\r\n      }\r\n\r\n      @media (max-width: 768px) {\r\n        .corn181c-wrap { padding: 10px; }\r\n        .corn181c-controls { min-width: 0; }\r\n        .corn181c-title-row { min-width: 0; }\r\n        .corn181c-canvas-wrap { min-width: 0; height: 360px; }\r\n        .corn181c-source-wrap { min-width: 0; }\r\n      }\r\n    <\/style>\r\n\r\n    <script>\r\n    document.addEventListener('DOMContentLoaded', function(){\r\n      try {\r\n        const Zoom = (window['chartjs-plugin-zoom'] && (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])) || null;\r\n        if (Zoom && window.Chart && Chart.register) Chart.register(Zoom);\r\n      } catch(e) {}\r\n\r\n      const labelsAll   = [\"2011-05-24\",\"2011-05-31\",\"2011-06-07\",\"2011-06-14\",\"2011-06-21\",\"2011-06-28\",\"2011-07-05\",\"2011-07-12\",\"2011-07-19\",\"2011-07-26\",\"2011-08-02\",\"2011-08-09\",\"2011-08-16\",\"2011-08-23\",\"2011-08-30\",\"2011-09-06\",\"2011-09-13\",\"2011-09-20\",\"2011-09-27\",\"2011-10-04\",\"2011-10-11\",\"2011-10-18\",\"2011-10-25\",\"2011-11-01\",\"2011-11-08\",\"2011-11-15\",\"2011-11-22\",\"2011-11-29\",\"2011-12-06\",\"2011-12-13\",\"2011-12-20\",\"2011-12-27\",\"2012-01-03\",\"2012-01-10\",\"2012-01-17\",\"2012-01-24\",\"2012-01-31\",\"2012-02-07\",\"2012-02-14\",\"2012-02-21\",\"2012-02-28\",\"2012-03-06\",\"2012-03-13\",\"2012-03-20\",\"2012-03-27\",\"2012-04-03\",\"2012-04-10\",\"2012-04-17\",\"2012-04-24\",\"2012-05-01\",\"2012-05-08\",\"2012-05-15\",\"2012-05-22\",\"2012-05-29\",\"2012-06-05\",\"2012-06-12\",\"2012-06-19\",\"2012-06-26\",\"2012-07-03\",\"2012-07-10\",\"2012-07-17\",\"2012-07-24\",\"2012-07-31\",\"2012-08-07\",\"2012-08-14\",\"2012-08-21\",\"2012-08-28\",\"2012-09-04\",\"2012-09-11\",\"2012-09-18\",\"2012-09-25\",\"2012-10-02\",\"2012-10-09\",\"2012-10-16\",\"2012-10-23\",\"2012-10-30\",\"2012-11-06\",\"2012-11-13\",\"2012-11-20\",\"2012-11-27\",\"2012-12-04\",\"2012-12-11\",\"2012-12-18\",\"2012-12-24\",\"2012-12-31\",\"2013-01-08\",\"2013-01-15\",\"2013-01-22\",\"2013-01-29\",\"2013-02-05\",\"2013-02-12\",\"2013-02-19\",\"2013-02-26\",\"2013-03-05\",\"2013-03-12\",\"2013-03-19\",\"2013-03-26\",\"2013-04-02\",\"2013-04-09\",\"2013-04-16\",\"2013-04-23\",\"2013-04-30\",\"2013-05-07\",\"2013-05-14\",\"2013-05-21\",\"2013-05-28\",\"2013-06-04\",\"2013-06-11\",\"2013-06-18\",\"2013-06-25\",\"2013-07-02\",\"2013-07-09\",\"2013-07-16\",\"2013-07-23\",\"2013-07-30\",\"2013-08-06\",\"2013-08-13\",\"2013-08-20\",\"2013-08-27\",\"2013-09-03\",\"2013-09-10\",\"2013-09-17\",\"2013-09-24\",\"2013-10-01\",\"2013-10-08\",\"2013-10-15\",\"2013-10-22\",\"2013-10-29\",\"2013-11-05\",\"2013-11-12\",\"2013-11-19\",\"2013-11-26\",\"2013-12-03\",\"2013-12-10\",\"2013-12-17\",\"2013-12-24\",\"2013-12-31\",\"2014-01-07\",\"2014-01-14\",\"2014-01-21\",\"2014-01-28\",\"2014-02-04\",\"2014-02-11\",\"2014-02-18\",\"2014-02-25\",\"2014-03-04\",\"2014-03-11\",\"2014-03-18\",\"2014-03-25\",\"2014-04-01\",\"2014-04-08\",\"2014-04-15\",\"2014-04-22\",\"2014-04-29\",\"2014-05-06\",\"2014-05-13\",\"2014-05-20\",\"2014-05-27\",\"2014-06-03\",\"2014-06-10\",\"2014-06-17\",\"2014-06-24\",\"2014-07-01\",\"2014-07-08\",\"2014-07-15\",\"2014-07-22\",\"2014-07-29\",\"2014-08-05\",\"2014-08-12\",\"2014-08-19\",\"2014-08-26\",\"2014-09-02\",\"2014-09-09\",\"2014-09-16\",\"2014-09-23\",\"2014-09-30\",\"2014-10-07\",\"2014-10-14\",\"2014-10-21\",\"2014-10-28\",\"2014-11-04\",\"2014-11-11\",\"2014-11-18\",\"2014-11-25\",\"2014-12-02\",\"2014-12-09\",\"2014-12-16\",\"2014-12-23\",\"2014-12-30\",\"2015-01-06\",\"2015-01-13\",\"2015-01-20\",\"2015-01-27\",\"2015-02-03\",\"2015-02-10\",\"2015-02-17\",\"2015-02-24\",\"2015-03-03\",\"2015-03-10\",\"2015-03-17\",\"2015-03-24\",\"2015-03-31\",\"2015-04-07\",\"2015-04-14\",\"2015-04-21\",\"2015-04-28\",\"2015-05-05\",\"2015-05-12\",\"2015-05-19\",\"2015-05-26\",\"2015-06-02\",\"2015-06-09\",\"2015-06-16\",\"2015-06-23\",\"2015-06-30\",\"2015-07-07\",\"2015-07-14\",\"2015-07-21\",\"2015-07-28\",\"2015-08-04\",\"2015-08-11\",\"2015-08-18\",\"2015-08-25\",\"2015-09-01\",\"2015-09-08\",\"2015-09-15\",\"2015-09-22\",\"2015-09-29\",\"2015-10-06\",\"2015-10-13\",\"2015-10-20\",\"2015-10-27\",\"2015-11-03\",\"2015-11-10\",\"2015-11-17\",\"2015-11-24\",\"2015-12-01\",\"2015-12-08\",\"2015-12-15\",\"2015-12-22\",\"2015-12-29\",\"2016-01-05\",\"2016-01-12\",\"2016-01-19\",\"2016-01-26\",\"2016-02-02\",\"2016-02-09\",\"2016-02-16\",\"2016-02-23\",\"2016-03-01\",\"2016-03-08\",\"2016-03-15\",\"2016-03-22\",\"2016-03-29\",\"2016-04-05\",\"2016-04-12\",\"2016-04-19\",\"2016-04-26\",\"2016-05-03\",\"2016-05-10\",\"2016-05-17\",\"2016-05-24\",\"2016-05-31\",\"2016-06-07\",\"2016-06-14\",\"2016-06-21\",\"2016-06-28\",\"2016-07-05\",\"2016-07-12\",\"2016-07-19\",\"2016-07-26\",\"2016-08-02\",\"2016-08-09\",\"2016-08-16\",\"2016-08-23\",\"2016-08-30\",\"2016-09-06\",\"2016-09-13\",\"2016-09-20\",\"2016-09-27\",\"2016-10-04\",\"2016-10-11\",\"2016-10-18\",\"2016-10-25\",\"2016-11-01\",\"2016-11-08\",\"2016-11-15\",\"2016-11-22\",\"2016-11-29\",\"2016-12-06\",\"2016-12-13\",\"2016-12-20\",\"2016-12-27\",\"2017-01-03\",\"2017-01-10\",\"2017-01-17\",\"2017-01-24\",\"2017-01-31\",\"2017-02-07\",\"2017-02-14\",\"2017-02-21\",\"2017-02-28\",\"2017-03-07\",\"2017-03-14\",\"2017-03-21\",\"2017-03-28\",\"2017-04-04\",\"2017-04-11\",\"2017-04-18\",\"2017-04-25\",\"2017-05-02\",\"2017-05-09\",\"2017-05-16\",\"2017-05-23\",\"2017-05-30\",\"2017-06-06\",\"2017-06-13\",\"2017-06-20\",\"2017-06-27\",\"2017-07-03\",\"2017-07-11\",\"2017-07-18\",\"2017-07-25\",\"2017-08-01\",\"2017-08-08\",\"2017-08-15\",\"2017-08-22\",\"2017-08-29\",\"2017-09-05\",\"2017-09-12\",\"2017-09-19\",\"2017-09-26\",\"2017-10-03\",\"2017-10-10\",\"2017-10-17\",\"2017-10-24\",\"2017-10-31\",\"2017-11-07\",\"2017-11-14\",\"2017-11-21\",\"2017-11-28\",\"2017-12-05\",\"2017-12-12\",\"2017-12-19\",\"2017-12-26\",\"2018-01-02\",\"2018-01-09\",\"2018-01-16\",\"2018-01-23\",\"2018-01-30\",\"2018-02-06\",\"2018-02-13\",\"2018-02-20\",\"2018-02-27\",\"2018-03-06\",\"2018-03-13\",\"2018-03-20\",\"2018-03-27\",\"2018-04-03\",\"2018-04-10\",\"2018-04-17\",\"2018-04-24\",\"2018-05-01\",\"2018-05-08\",\"2018-05-15\",\"2018-05-22\",\"2018-05-29\",\"2018-06-05\",\"2018-06-12\",\"2018-06-19\",\"2018-06-26\",\"2018-07-03\",\"2018-07-10\",\"2018-07-17\",\"2018-07-24\",\"2018-07-31\",\"2018-08-07\",\"2018-08-14\",\"2018-08-21\",\"2018-08-28\",\"2018-09-04\",\"2018-09-11\",\"2018-09-18\",\"2018-09-25\",\"2018-10-02\",\"2018-10-09\",\"2018-10-16\",\"2018-10-23\",\"2018-10-30\",\"2018-11-06\",\"2018-11-13\",\"2018-11-20\",\"2018-11-27\",\"2018-12-04\",\"2018-12-11\",\"2018-12-18\",\"2018-12-24\",\"2018-12-31\",\"2019-01-08\",\"2019-01-15\",\"2019-01-22\",\"2019-01-29\",\"2019-02-05\",\"2019-02-12\",\"2019-02-19\",\"2019-02-26\",\"2019-03-05\",\"2019-03-12\",\"2019-03-19\",\"2019-03-26\",\"2019-04-02\",\"2019-04-09\",\"2019-04-16\",\"2019-04-23\",\"2019-04-30\",\"2019-05-07\",\"2019-05-14\",\"2019-05-21\",\"2019-05-28\",\"2019-06-04\",\"2019-06-11\",\"2019-06-18\",\"2019-06-25\",\"2019-07-02\",\"2019-07-09\",\"2019-07-16\",\"2019-07-23\",\"2019-07-30\",\"2019-08-06\",\"2019-08-13\",\"2019-08-20\",\"2019-08-27\",\"2019-09-03\",\"2019-09-10\",\"2019-09-17\",\"2019-09-24\",\"2019-10-01\",\"2019-10-08\",\"2019-10-15\",\"2019-10-22\",\"2019-10-29\",\"2019-11-05\",\"2019-11-12\",\"2019-11-19\",\"2019-11-26\",\"2019-12-03\",\"2019-12-10\",\"2019-12-17\",\"2019-12-24\",\"2019-12-31\",\"2020-01-07\",\"2020-01-14\",\"2020-01-21\",\"2020-01-28\",\"2020-02-04\",\"2020-02-11\",\"2020-02-18\",\"2020-02-25\",\"2020-03-03\",\"2020-03-10\",\"2020-03-17\",\"2020-03-24\",\"2020-03-31\",\"2020-04-07\",\"2020-04-14\",\"2020-04-21\",\"2020-04-28\",\"2020-05-05\",\"2020-05-12\",\"2020-05-19\",\"2020-05-26\",\"2020-06-02\",\"2020-06-09\",\"2020-06-16\",\"2020-06-23\",\"2020-06-30\",\"2020-07-07\",\"2020-07-14\",\"2020-07-21\",\"2020-07-28\",\"2020-08-04\",\"2020-08-11\",\"2020-08-18\",\"2020-08-25\",\"2020-09-01\",\"2020-09-08\",\"2020-09-15\",\"2020-09-22\",\"2020-09-29\",\"2020-10-06\",\"2020-10-13\",\"2020-10-20\",\"2020-10-27\",\"2020-11-03\",\"2020-11-10\",\"2020-11-17\",\"2020-11-24\",\"2020-12-01\",\"2020-12-08\",\"2020-12-15\",\"2020-12-21\",\"2020-12-29\",\"2021-01-05\",\"2021-01-12\",\"2021-01-19\",\"2021-01-26\",\"2021-02-02\",\"2021-02-09\",\"2021-02-16\",\"2021-02-23\",\"2021-03-02\",\"2021-03-09\",\"2021-03-16\",\"2021-03-23\",\"2021-03-30\",\"2021-04-06\",\"2021-04-13\",\"2021-04-20\",\"2021-04-27\",\"2021-05-04\",\"2021-05-11\",\"2021-05-18\",\"2021-05-25\",\"2021-06-01\",\"2021-06-08\",\"2021-06-15\",\"2021-06-22\",\"2021-06-29\",\"2021-07-06\",\"2021-07-13\",\"2021-07-20\",\"2021-07-27\",\"2021-08-03\",\"2021-08-10\",\"2021-08-17\",\"2021-08-24\",\"2021-08-31\",\"2021-09-07\",\"2021-09-14\",\"2021-09-21\",\"2021-09-28\",\"2021-10-05\",\"2021-10-12\",\"2021-10-19\",\"2021-10-26\",\"2021-11-02\",\"2021-11-09\",\"2021-11-16\",\"2021-11-23\",\"2021-11-30\",\"2021-12-07\",\"2021-12-14\",\"2021-12-21\",\"2021-12-28\",\"2022-01-04\",\"2022-01-11\",\"2022-01-18\",\"2022-01-25\",\"2022-02-01\",\"2022-02-08\",\"2022-02-15\",\"2022-02-22\",\"2022-03-01\",\"2022-03-08\",\"2022-03-15\",\"2022-03-22\",\"2022-03-29\",\"2022-04-05\",\"2022-04-12\",\"2022-04-19\",\"2022-04-26\",\"2022-05-03\",\"2022-05-10\",\"2022-05-17\",\"2022-05-24\",\"2022-05-31\",\"2022-06-07\",\"2022-06-14\",\"2022-06-21\",\"2022-06-28\",\"2022-07-05\",\"2022-07-12\",\"2022-07-19\",\"2022-07-26\",\"2022-08-02\",\"2022-08-09\",\"2022-08-16\",\"2022-08-23\",\"2022-08-30\",\"2022-09-06\",\"2022-09-13\",\"2022-09-20\",\"2022-09-27\",\"2022-10-04\",\"2022-10-11\",\"2022-10-18\",\"2022-10-25\",\"2022-11-01\",\"2022-11-08\",\"2022-11-15\",\"2022-11-22\",\"2022-11-29\",\"2022-12-06\",\"2022-12-13\",\"2022-12-20\",\"2022-12-27\",\"2023-01-03\",\"2023-01-10\",\"2023-01-17\",\"2023-01-24\",\"2023-01-31\",\"2023-02-07\",\"2023-02-14\",\"2023-02-21\",\"2023-02-28\",\"2023-03-07\",\"2023-03-14\",\"2023-03-21\",\"2023-03-28\",\"2023-04-04\",\"2023-04-11\",\"2023-04-18\",\"2023-04-25\",\"2023-05-02\",\"2023-05-09\",\"2023-05-16\",\"2023-05-23\",\"2023-05-30\",\"2023-06-06\",\"2023-06-13\",\"2023-06-20\",\"2023-06-27\",\"2023-07-03\",\"2023-07-11\",\"2023-07-18\",\"2023-07-25\",\"2023-08-01\",\"2023-08-08\",\"2023-08-15\",\"2023-08-22\",\"2023-08-29\",\"2023-09-05\",\"2023-09-12\",\"2023-09-19\",\"2023-09-26\",\"2023-10-03\",\"2023-10-10\",\"2023-10-17\",\"2023-10-24\",\"2023-10-31\",\"2023-11-07\",\"2023-11-14\",\"2023-11-21\",\"2023-11-28\",\"2023-12-05\",\"2023-12-12\",\"2023-12-19\",\"2023-12-26\",\"2024-01-02\",\"2024-01-09\",\"2024-01-16\",\"2024-01-23\",\"2024-01-30\",\"2024-02-06\",\"2024-02-13\",\"2024-02-20\",\"2024-02-27\",\"2024-03-05\",\"2024-03-12\",\"2024-03-19\",\"2024-03-26\",\"2024-04-02\",\"2024-04-09\",\"2024-04-16\",\"2024-04-23\",\"2024-04-30\",\"2024-05-07\",\"2024-05-14\",\"2024-05-21\",\"2024-05-28\",\"2024-06-04\",\"2024-06-11\",\"2024-06-18\",\"2024-06-25\",\"2024-07-02\",\"2024-07-09\",\"2024-07-16\",\"2024-07-23\",\"2024-07-30\",\"2024-08-06\",\"2024-08-13\",\"2024-08-20\",\"2024-08-27\",\"2024-09-03\",\"2024-09-10\",\"2024-09-17\",\"2024-09-24\",\"2024-10-01\",\"2024-10-08\",\"2024-10-15\",\"2024-10-22\",\"2024-10-29\",\"2024-11-05\",\"2024-11-12\",\"2024-11-19\",\"2024-11-26\",\"2024-12-03\",\"2024-12-10\",\"2024-12-17\",\"2024-12-24\",\"2024-12-31\",\"2025-01-07\",\"2025-01-14\",\"2025-01-21\",\"2025-01-28\",\"2025-02-04\",\"2025-02-11\",\"2025-02-18\",\"2025-02-25\",\"2025-03-04\",\"2025-03-11\",\"2025-03-18\",\"2025-03-25\",\"2025-04-01\",\"2025-04-08\",\"2025-04-15\",\"2025-04-22\",\"2025-04-29\",\"2025-05-06\",\"2025-05-13\",\"2025-05-20\",\"2025-05-27\",\"2025-06-03\",\"2025-06-10\",\"2025-06-17\",\"2025-06-24\",\"2025-07-01\",\"2025-07-08\",\"2025-07-15\",\"2025-07-22\",\"2025-07-29\",\"2025-08-05\",\"2025-08-12\",\"2025-08-19\",\"2025-08-26\",\"2025-09-02\",\"2025-09-09\",\"2025-09-16\",\"2025-09-23\",\"2025-09-30\",\"2025-10-07\",\"2025-10-14\",\"2025-10-21\",\"2025-10-28\",\"2025-11-04\",\"2025-11-10\",\"2025-11-18\",\"2025-11-25\",\"2025-12-02\",\"2025-12-09\",\"2025-12-16\",\"2025-12-23\",\"2025-12-30\",\"2026-01-06\",\"2026-01-13\",\"2026-01-20\",\"2026-01-27\",\"2026-02-03\",\"2026-02-10\",\"2026-02-17\",\"2026-02-24\",\"2026-03-03\",\"2026-03-10\",\"2026-03-17\",\"2026-03-24\",\"2026-03-31\",\"2026-04-07\",\"2026-04-14\",\"2026-04-21\",\"2026-04-28\",\"2026-05-05\"];\r\n      const tsAllRaw    = [1306195200,1306800000,1307404800,1308009600,1308614400,1309219200,1309824000,1310428800,1311033600,1311638400,1312243200,1312848000,1313452800,1314057600,1314662400,1315267200,1315872000,1316476800,1317081600,1317686400,1318291200,1318896000,1319500800,1320105600,1320710400,1321315200,1321920000,1322524800,1323129600,1323734400,1324339200,1324944000,1325548800,1326153600,1326758400,1327363200,1327968000,1328572800,1329177600,1329782400,1330387200,1330992000,1331596800,1332201600,1332806400,1333411200,1334016000,1334620800,1335225600,1335830400,1336435200,1337040000,1337644800,1338249600,1338854400,1339459200,1340064000,1340668800,1341273600,1341878400,1342483200,1343088000,1343692800,1344297600,1344902400,1345507200,1346112000,1346716800,1347321600,1347926400,1348531200,1349136000,1349740800,1350345600,1350950400,1351555200,1352160000,1352764800,1353369600,1353974400,1354579200,1355184000,1355788800,1356307200,1356912000,1357603200,1358208000,1358812800,1359417600,1360022400,1360627200,1361232000,1361836800,1362441600,1363046400,1363651200,1364256000,1364860800,1365465600,1366070400,1366675200,1367280000,1367884800,1368489600,1369094400,1369699200,1370304000,1370908800,1371513600,1372118400,1372723200,1373328000,1373932800,1374537600,1375142400,1375747200,1376352000,1376956800,1377561600,1378166400,1378771200,1379376000,1379980800,1380585600,1381190400,1381795200,1382400000,1383004800,1383609600,1384214400,1384819200,1385424000,1386028800,1386633600,1387238400,1387843200,1388448000,1389052800,1389657600,1390262400,1390867200,1391472000,1392076800,1392681600,1393286400,1393891200,1394496000,1395100800,1395705600,1396310400,1396915200,1397520000,1398124800,1398729600,1399334400,1399939200,1400544000,1401148800,1401753600,1402358400,1402963200,1403568000,1404172800,1404777600,1405382400,1405987200,1406592000,1407196800,1407801600,1408406400,1409011200,1409616000,1410220800,1410825600,1411430400,1412035200,1412640000,1413244800,1413849600,1414454400,1415059200,1415664000,1416268800,1416873600,1417478400,1418083200,1418688000,1419292800,1419897600,1420502400,1421107200,1421712000,1422316800,1422921600,1423526400,1424131200,1424736000,1425340800,1425945600,1426550400,1427155200,1427760000,1428364800,1428969600,1429574400,1430179200,1430784000,1431388800,1431993600,1432598400,1433203200,1433808000,1434412800,1435017600,1435622400,1436227200,1436832000,1437436800,1438041600,1438646400,1439251200,1439856000,1440460800,1441065600,1441670400,1442275200,1442880000,1443484800,1444089600,1444694400,1445299200,1445904000,1446508800,1447113600,1447718400,1448323200,1448928000,1449532800,1450137600,1450742400,1451347200,1451952000,1452556800,1453161600,1453766400,1454371200,1454976000,1455580800,1456185600,1456790400,1457395200,1458000000,1458604800,1459209600,1459814400,1460419200,1461024000,1461628800,1462233600,1462838400,1463443200,1464048000,1464652800,1465257600,1465862400,1466467200,1467072000,1467676800,1468281600,1468886400,1469491200,1470096000,1470700800,1471305600,1471910400,1472515200,1473120000,1473724800,1474329600,1474934400,1475539200,1476144000,1476748800,1477353600,1477958400,1478563200,1479168000,1479772800,1480377600,1480982400,1481587200,1482192000,1482796800,1483401600,1484006400,1484611200,1485216000,1485820800,1486425600,1487030400,1487635200,1488240000,1488844800,1489449600,1490054400,1490659200,1491264000,1491868800,1492473600,1493078400,1493683200,1494288000,1494892800,1495497600,1496102400,1496707200,1497312000,1497916800,1498521600,1499040000,1499731200,1500336000,1500940800,1501545600,1502150400,1502755200,1503360000,1503964800,1504569600,1505174400,1505779200,1506384000,1506988800,1507593600,1508198400,1508803200,1509408000,1510012800,1510617600,1511222400,1511827200,1512432000,1513036800,1513641600,1514246400,1514851200,1515456000,1516060800,1516665600,1517270400,1517875200,1518480000,1519084800,1519689600,1520294400,1520899200,1521504000,1522108800,1522713600,1523318400,1523923200,1524528000,1525132800,1525737600,1526342400,1526947200,1527552000,1528156800,1528761600,1529366400,1529971200,1530576000,1531180800,1531785600,1532390400,1532995200,1533600000,1534204800,1534809600,1535414400,1536019200,1536624000,1537228800,1537833600,1538438400,1539043200,1539648000,1540252800,1540857600,1541462400,1542067200,1542672000,1543276800,1543881600,1544486400,1545091200,1545609600,1546214400,1546905600,1547510400,1548115200,1548720000,1549324800,1549929600,1550534400,1551139200,1551744000,1552348800,1552953600,1553558400,1554163200,1554768000,1555372800,1555977600,1556582400,1557187200,1557792000,1558396800,1559001600,1559606400,1560211200,1560816000,1561420800,1562025600,1562630400,1563235200,1563840000,1564444800,1565049600,1565654400,1566259200,1566864000,1567468800,1568073600,1568678400,1569283200,1569888000,1570492800,1571097600,1571702400,1572307200,1572912000,1573516800,1574121600,1574726400,1575331200,1575936000,1576540800,1577145600,1577750400,1578355200,1578960000,1579564800,1580169600,1580774400,1581379200,1581984000,1582588800,1583193600,1583798400,1584403200,1585008000,1585612800,1586217600,1586822400,1587427200,1588032000,1588636800,1589241600,1589846400,1590451200,1591056000,1591660800,1592265600,1592870400,1593475200,1594080000,1594684800,1595289600,1595894400,1596499200,1597104000,1597708800,1598313600,1598918400,1599523200,1600128000,1600732800,1601337600,1601942400,1602547200,1603152000,1603756800,1604361600,1604966400,1605571200,1606176000,1606780800,1607385600,1607990400,1608508800,1609200000,1609804800,1610409600,1611014400,1611619200,1612224000,1612828800,1613433600,1614038400,1614643200,1615248000,1615852800,1616457600,1617062400,1617667200,1618272000,1618876800,1619481600,1620086400,1620691200,1621296000,1621900800,1622505600,1623110400,1623715200,1624320000,1624924800,1625529600,1626134400,1626739200,1627344000,1627948800,1628553600,1629158400,1629763200,1630368000,1630972800,1631577600,1632182400,1632787200,1633392000,1633996800,1634601600,1635206400,1635811200,1636416000,1637020800,1637625600,1638230400,1638835200,1639440000,1640044800,1640649600,1641254400,1641859200,1642464000,1643068800,1643673600,1644278400,1644883200,1645488000,1646092800,1646697600,1647302400,1647907200,1648512000,1649116800,1649721600,1650326400,1650931200,1651536000,1652140800,1652745600,1653350400,1653955200,1654560000,1655164800,1655769600,1656374400,1656979200,1657584000,1658188800,1658793600,1659398400,1660003200,1660608000,1661212800,1661817600,1662422400,1663027200,1663632000,1664236800,1664841600,1665446400,1666051200,1666656000,1667260800,1667865600,1668470400,1669075200,1669680000,1670284800,1670889600,1671494400,1672099200,1672704000,1673308800,1673913600,1674518400,1675123200,1675728000,1676332800,1676937600,1677542400,1678147200,1678752000,1679356800,1679961600,1680566400,1681171200,1681776000,1682380800,1682985600,1683590400,1684195200,1684800000,1685404800,1686009600,1686614400,1687219200,1687824000,1688342400,1689033600,1689638400,1690243200,1690848000,1691452800,1692057600,1692662400,1693267200,1693872000,1694476800,1695081600,1695686400,1696291200,1696896000,1697500800,1698105600,1698710400,1699315200,1699920000,1700524800,1701129600,1701734400,1702339200,1702944000,1703548800,1704153600,1704758400,1705363200,1705968000,1706572800,1707177600,1707782400,1708387200,1708992000,1709596800,1710201600,1710806400,1711411200,1712016000,1712620800,1713225600,1713830400,1714435200,1715040000,1715644800,1716249600,1716854400,1717459200,1718064000,1718668800,1719273600,1719878400,1720483200,1721088000,1721692800,1722297600,1722902400,1723507200,1724112000,1724716800,1725321600,1725926400,1726531200,1727136000,1727740800,1728345600,1728950400,1729555200,1730160000,1730764800,1731369600,1731974400,1732579200,1733184000,1733788800,1734393600,1734998400,1735603200,1736208000,1736812800,1737417600,1738022400,1738627200,1739232000,1739836800,1740441600,1741046400,1741651200,1742256000,1742860800,1743465600,1744070400,1744675200,1745280000,1745884800,1746489600,1747094400,1747699200,1748304000,1748908800,1749513600,1750118400,1750723200,1751328000,1751932800,1752537600,1753142400,1753747200,1754352000,1754956800,1755561600,1756166400,1756771200,1757376000,1757980800,1758585600,1759190400,1759795200,1760400000,1761004800,1761609600,1762214400,1762732800,1763424000,1764028800,1764633600,1765238400,1765843200,1766448000,1767052800,1767657600,1768262400,1768867200,1769472000,1770076800,1770681600,1771286400,1771891200,1772496000,1773100800,1773705600,1774310400,1774915200,1775520000,1776124800,1776729600,1777334400,1777939200];\r\n      const seriesAll   = [[363521,379147,371280,385344,338235,262729,242707,254806,279592,288255,303064,291178,309318,314078,335295,344109,323958,285577,258280,239415,222914,230944,244950,254628,268395,270871,247967,219041,221267,226828,217383,219609,234190,261956,248789,246234,271637,288483,290715,272069,287866,297822,299527,306534,285268,270825,268530,244576,229310,227310,224084,216426,199931,176146,180602,174146,185396,191115,205775,223824,239562,273814,292675,293750,310248,336730,328950,333913,324608,318199,306182,308433,306161,315510,327316,302352,304496,286868,301919,293149,323151,293587,271387,241432,229879,230970,253082,255451,271389,292752,261459,236380,225476,233304,237951,275580,316838,259644,232193,232465,214107,220583,223096,238309,243644,266711,260553,255384,256662,260958,220147,211307,220339,225135,216949,232843,230174,225281,208079,212598,219259,237145,228033,229443,223352,231276,236240,236636,240720,243323,253850,200811,205518,207944,207533,205430,204078,205450,215301,207890,203445,224037,230503,232759,252223,271590,291857,297550,309230,322893,319146,312735,303305,326773,328726,323487,292047,288491,301061,302201,306377,308202,300090,315595,308004,303936,308781,326261,330356,329662,327236,333336,327061,332415,325260,322421,321808,317155,314273,300773,299816,302063,302021,298425,292983,303348,297287,296125,297460,298017,285056,278775,256503,247007,226517,221154,217942,202746,198001,186082,193574,183238,178587,168163,157185,170718,185576,200466,213084,220551,223453,226214,219318,212334,256745,270061,266168,309980,288561,269629,260775,262880,238859,234577,235813,240788,242975,239468,259056,236726,217794,217586,208230,186651,171741,160550,172967,171388,166383,155008,152874,154029,151082,150112,151653,172484,164075,159045,157677,143881,140042,151873,159254,162451,147984,155268,182223,225198,219444,197588,206198,221302,254843,311063,342545,318494,257819,205394,167882,163260,148490,149213,149953,156649,176286,173135,172067,176001,181231,172321,183176,180101,203639,197044,203173,213728,180160,183579,183042,170687,169404,163765,163648,177373,188161,202824,250506,231087,255290,296824,294420,269490,278156,211726,209725,195089,190938,199311,187399,196788,194698,190389,207524,215676,214236,246423,265153,248050,219901,223757,263074,251564,246547,247063,234162,233556,228781,220845,215999,218509,218664,219642,216268,212150,213330,214861,195077,202829,204586,219169,216408,230912,207082,209192,211405,213196,204600,213267,207907,236675,242857,258539,265863,282353,344088,379108,368293,307875,319724,323112,292821,299404,339428,339273,330210,340066,335541,306994,292054,299377,287061,274795,263353,254060,266787,279674,257337,249690,250778,250704,266879,258836,240866,247611,248380,252289,259114,259272,243634,237768,240283,220820,215823,259022,268915,289292,267961,252288,263578,237425,233371,204165,208095,217914,206034,218980,211082,200436,196687,196246,183992,181495,182959,185815,188517,192469,184831,223236,233812,247479,251997,270804,278396,277037,279679,275757,260840,240328,222989,207309,178428,169261,165073,172377,160496,157849,164794,169885,155973,153476,138111,136563,134274,132724,139042,152487,141108,150825,145638,154175,151938,173887,179310,186117,174808,171566,192969,206263,204939,198468,156274,137880,122863,123396,121382,126210,126903,117976,114292,116792,115520,121597,124134,135732,140752,163898,156509,155760,156811,165112,177225,174857,184420,183481,192676,186828,198747,215832,213237,225311,246910,287514,317756,320549,332181,330834,333185,323611,327765,316486,325373,382904,396972,417788,374478,371320,348638,367402,376278,368814,358493,368598,385346,405685,415872,403716,420776,405179,388010,380677,340481,325081,307029,315054,308049,288211,272269,272222,265362,246971,258994,256470,272018,278740,294478,286857,281251,256533,248897,246431,268145,282046,273419,262955,271210,346283,342325,364192,388087,341147,348164,361859,378288,390822,382122,365679,351850,390867,402021,374736,363571,382449,366738,370280,376324,384354,358316,363898,371950,381896,361353,361980,357196,366698,340248,329922,307876,311522,301168,263154,235802,213486,191567,191556,199417,210573,222057,234120,256197,259011,279069,286479,266517,262214,293077,283721,296158,307665,280700,229227,217181,243675,195226,194077,182194,219730,248234,213800,260234,269201,286885,284351,311076,296041,213046,196754,172256,181845,185631,200597,211778,225174,190550,154487,162025,172849,172929,176111,166101,174652,221039,188486,161939,154200,152673,180113,188722,180074,168408,161136,168277,177439,162065,169624,168180,169275,177938,180408,174629,164307,152573,163701,161120,155932,181404,175122,169272,173446,161734,155242,151563,157008,164097,168628,177104,169844,181933,178511,181104,174040,175778,170645,160557,159713,173812,171980,202413,223385,211949,213816,199930,203123,206268,180785,150743,152750,146256,154545,156102,170859,183061,176939,176695,195014,204012,210804,197394,209082,205521,191421,227567,244750,270820,292348,285074,265341,262174,327933,310458,316257,347394,353322,389883,424992,438643,444920,410303,438583,411839,297148,248286,243695,230554,285078,290992,277472,289843,262858,234641,196463,190130,184967,183615,183575,171613,173552,188779,179925,190143,196655,201664,204378,212492,239953,233908,238659,225350,217894,205034,179951,172022,162573,151763,172733,190187,219136,251002,244630,250223,248108,234318,221190,219452,225019,202570,209697,212897,213807,214350,209903,219988,239232,330320,343658,363377,344768,311210,297194,327557,380569,440048],[33205,32539,32771,32062,37870,37428,43347,37313,33557,39888,33686,36663,36058,39009,41048,40796,42880,38567,46514,45795,61774,70223,57389,61982,54910,63760,74062,73365,93587,102252,101705,87903,65107,59496,79168,95882,77239,75137,76964,81084,66247,42018,47235,32168,45066,59318,60687,85591,115783,106746,96510,126653,85066,105300,130789,126184,122125,86900,40565,31296,23484,9389,6714,12508,15101,14250,20240,18862,22084,27886,23980,27574,27740,32797,31072,41800,46048,49462,30746,24231,26337,39230,61641,70412,65816,81695,89588,77400,74985,78620,89350,126288,140168,134969,115496,98703,87635,106659,123571,125372,139076,134861,126548,127224,151962,136759,143347,143386,150380,156177,187892,217120,206594,248304,261918,271650,277729,259893,225330,231287,210813,253366,275485,291015,299269,300085,310457,324063,324992,301180,303088,320707,308263,290535,301588,290036,294921,291683,264240,254278,243946,212808,177326,174936,149843,95640,77180,67405,64197,39850,42581,54391,49786,51925,51625,60821,77543,100889,118392,145912,158628,183398,180806,182418,181986,202418,221150,231743,246302,247871,252302,248509,247109,244808,242388,252177,263534,232990,194698,161709,139646,116803,116477,103571,106372,86547,75469,62400,66162,77016,90374,93627,104088,150657,136248,141171,155056,168345,183135,249140,214501,189200,183058,231301,236922,282710,321767,336426,368463,378957,381446,338468,370585,335302,216415,121169,90873,62189,58187,119442,168622,192025,159261,152274,183614,168937,171682,176017,141578,145019,187765,188571,188370,239815,251600,268444,256715,240429,209325,239826,293566,322779,346420,313265,243582,236272,266544,296608,295677,350133,376243,350131,322913,278953,323588,301652,211495,150545,156146,162034,152121,146846,112553,87480,74133,102123,89587,119344,173768,193018,216061,255981,291448,321758,334772,347624,358194,327548,337264,350054,336272,302015,255625,257690,255934,227206,254460,229217,248153,236115,238454,259291,273250,271407,265639,256592,232746,226259,219373,199625,187662,181833,191136,239078,293843,346887,332697,346554,347776,377148,365301,394365,408219,388864,412350,373501,269168,298377,325471,261364,148008,143761,139869,165620,170480,204671,254804,284377,319897,334853,349566,341313,347227,363113,367969,370168,394212,405285,447470,431448,410428,385973,406002,432597,409898,402732,421432,438330,424964,365729,327729,263755,243467,223908,180474,141465,160917,199036,181479,153327,166432,185286,153152,133126,145437,149131,154751,228298,304292,356828,377825,382191,404297,420025,431710,375287,325362,309829,300674,330009,347418,342728,399290,372466,315767,291688,237856,231369,232064,223206,224450,230672,246877,219112,179181,164865,177081,203100,193418,221731,200052,213997,214679,250739,309693,336927,403929,483417,479532,414673,447760,471354,509846,530000,507481,488467,483382,341190,256106,152217,130255,115774,99813,107612,105361,97025,117300,134421,154903,185782,260694,265631,288873,315844,337139,320400,292825,266744,220722,228662,226229,246283,254810,271539,255989,238069,259557,246796,232355,239290,237445,253027,245200,211507,226853,240667,249824,294420,282118,250816,250113,250105,222788,233616,258676,286235,287548,307717,328971,362851,392558,407804,426007,413335,426694,375566,306847,304546,312487,323394,371322,367644,312531,254647,184315,162938,152552,134017,128489,108027,89982,75939,59018,50153,63356,62724,66625,72512,80170,88179,78265,73741,68764,57604,38391,30142,26329,27026,27787,23754,27654,29616,24560,26176,28174,24074,23545,25096,25772,25178,28958,30711,38278,24954,30496,33304,29458,33744,47952,42083,40431,30521,29341,32269,25396,28974,35501,54331,51140,46488,33101,38449,55180,51301,36003,27459,30688,28919,26078,37613,27277,26387,27385,28291,26767,30903,32906,30743,33192,40286,40372,37659,29517,14456,15074,12440,16677,14794,15073,18995,22759,34178,43805,54333,72757,83222,68284,58282,59477,51221,77826,84962,88252,79772,81383,75810,79411,58593,50989,48780,51394,50287,42155,33393,38524,44363,47272,46153,58892,63380,60446,49686,76037,66451,68640,56064,48280,64135,61369,65695,67658,86222,77278,78751,146696,181157,232160,227741,199068,176019,182893,167475,200609,266271,266530,260510,270578,222957,210647,172797,154978,121725,169298,210367,198823,155059,176047,213127,255032,282748,259408,273627,300228,319079,334848,324902,288387,285980,274151,311448,328638,338344,362910,367955,338232,324777,351630,345461,362683,392451,423213,432475,443645,462306,482107,498428,469728,464091,433423,418226,421241,420660,416223,431313,399755,385095,296190,284675,327594,345636,419538,423115,415602,477036,497517,509165,499028,488430,456412,419663,436108,434198,425360,383008,350607,354841,337705,281167,240375,298869,315425,280258,267785,192569,177975,181439,188935,162361,152753,150651,123498,109607,97720,103308,94854,83389,84059,78850,77996,90304,115874,139265,156634,156645,159808,132318,157429,176729,205622,260735,285613,275116,317594,333718,340685,348948,378319,359212,349187,347418,352608,340224,354831,354590,344843,333856,324943,299391,302357,309308,306634,350565,311035,255658,256428,256486,202214,251431,217888,229372,287684,219398,242200,237849,293228,305564,294493,294420,271843,252216,233222,186989,131516,112770,83747,86816,100234,144576,145344,114997,95407],[330316,346608,338509,353282,300365,225301,199360,217493,246035,248367,269378,254515,273260,275069,294247,303313,281078,247010,211766,193620,161140,160721,187561,192646,213485,207111,173905,145676,127680,124576,115678,131706,169083,202460,169621,150352,194398,213346,213751,190985,221619,255804,252292,274366,240202,211507,207843,158985,113527,120564,127574,89773,114865,70846,49813,47962,63271,104215,165210,192528,216078,264425,285961,281242,295147,322480,308710,315051,302524,290313,282202,280859,278421,282713,296244,260552,258448,237406,271173,268918,296814,254357,209746,171020,164063,149275,163494,178051,196404,214132,172109,110092,85308,98335,122455,176877,229203,152985,108622,107093,75031,85722,96548,111085,91682,129952,117206,111998,106282,104781,32255,-5813,13745,-23169,-44969,-38807,-47555,-34612,-17251,-18689,8446,-16221,-47452,-61572,-75917,-68809,-74217,-87427,-84272,-57857,-49238,-119896,-102745,-82591,-94055,-84606,-90843,-86233,-48939,-46388,-40501,11229,53177,57823,102380,175950,214677,230145,245033,283043,276565,258344,253519,274848,277101,262666,214504,187602,182669,156289,147749,124804,119284,133177,126018,101518,87631,94518,84054,81791,74934,84827,79952,87607,82872,70244,58274,84165,119575,139064,160170,185260,185544,194854,186611,216801,221818,233725,231298,221001,194682,185148,152415,96350,90269,79983,62886,34401,14866,-63058,-20927,-5962,-4471,-63138,-79737,-111992,-136191,-135960,-155379,-158406,-157993,-112254,-151267,-122968,40330,148892,175295,247791,230374,150187,92153,70855,79598,82303,52199,71851,71293,63451,117478,91707,30029,29015,19860,-53164,-79859,-107894,-83748,-69041,-42942,-84818,-140692,-168750,-195338,-163153,-91929,-63788,-102469,-137563,-138000,-206252,-236201,-198258,-163659,-116502,-175604,-146384,-29272,74653,63298,35554,54077,74456,142290,223583,268412,216371,168232,86050,-5886,-29758,-67571,-106768,-141495,-165109,-158486,-174489,-186127,-151547,-156033,-177733,-153096,-121914,-51986,-60646,-52761,-13478,-74300,-45638,-65111,-65428,-69050,-95526,-109602,-94034,-77478,-53768,17760,4828,35917,97199,106758,87657,87020,-27352,-84118,-151798,-141759,-147243,-160377,-180360,-170603,-203976,-200695,-173188,-198114,-127078,-4015,-50327,-105570,-37607,115066,107803,106678,81443,63682,28885,-26023,-63532,-103898,-116344,-130902,-121671,-130959,-150963,-154639,-155307,-199135,-202456,-242884,-212279,-194020,-155061,-198920,-223405,-198493,-189536,-216832,-225063,-217057,-129054,-84872,-5216,22396,58445,163614,237643,207376,108839,138245,169785,126389,114118,186276,206147,184773,190935,180790,78696,-12238,-57451,-90764,-107396,-140944,-165965,-164923,-95613,-68025,-60139,-49896,-79305,-80539,-83892,-158424,-124855,-67387,-39399,21258,27903,11570,14562,15833,-9852,-31054,39910,89734,124427,90880,49188,70160,15694,33319,-9832,-6584,-32825,-103659,-117947,-192847,-282981,-282845,-218427,-263768,-289859,-326887,-344185,-318964,-295998,-298551,-117954,-22294,95262,121742,155030,178583,169425,174318,178732,143540,105907,68086,21527,-82266,-96370,-123800,-143467,-176643,-162551,-128031,-96859,-64749,-75186,-88118,-109720,-120536,-138815,-116947,-85582,-118449,-95971,-86717,-85115,-85507,-79140,-65890,-25390,-52045,-69101,-56855,-88157,-77179,-52348,-93839,-112225,-99925,-110220,-137294,-160025,-160645,-189741,-214679,-246059,-277038,-286207,-301873,-277603,-285942,-211668,-150338,-148786,-155676,-158282,-194097,-192787,-128111,-71166,8361,23890,46195,81815,84748,117284,156928,211575,258738,270396,268825,268110,266560,251099,247595,228307,247108,309163,328208,360184,336087,341178,322309,340376,348491,345060,330839,338982,360786,379509,387698,379642,397231,380083,362238,355499,311523,294370,268751,290100,277553,254907,242811,238478,217410,204888,218563,225949,242677,246471,269082,257883,245750,202202,197757,199943,235044,243597,218239,211654,235207,318824,311637,335273,362009,303534,320887,335472,350903,362531,355355,334776,318944,360124,368829,334450,323199,344790,337221,355824,361250,371914,341639,349104,356877,362901,338594,327802,313391,312365,267491,246700,239592,253240,241691,211933,157976,128524,103315,111784,118034,134763,142646,175527,205208,210231,227675,236192,224362,228821,254553,239358,248886,261512,221808,165847,156735,193989,119189,127626,113554,163666,199954,149665,198865,203506,219227,198129,233798,217290,66350,15597,-59904,-45896,-13437,24578,28885,57699,-10059,-111784,-104505,-87661,-97649,-46846,-44546,1855,66061,66761,-7359,-56167,-46150,25054,12675,-33053,-86624,-121612,-91131,-96188,-138163,-149455,-166668,-155627,-110449,-105572,-99522,-147141,-176065,-174643,-201790,-212023,-156828,-149655,-182358,-172015,-200949,-237209,-271650,-275467,-279548,-293678,-305003,-328584,-287795,-285580,-252319,-244186,-245463,-250015,-255666,-271600,-225943,-213115,-93777,-61290,-115645,-131820,-219608,-219992,-209334,-296251,-346774,-356415,-352772,-333885,-300310,-248804,-253047,-257259,-248665,-187994,-146595,-144037,-140311,-72085,-34854,-107448,-87858,-35508,3035,99779,107099,83902,73239,165572,157705,165606,223896,243715,292163,321684,343789,361531,326244,359733,333843,206844,132412,104430,73920,128433,131184,145154,132414,86129,29019,-64272,-95483,-90149,-133979,-150143,-169072,-175396,-189540,-179287,-159044,-150763,-150944,-135846,-142339,-114637,-110935,-95197,-99593,-81497,-97323,-129357,-134612,-187992,-159272,-82925,-66241,-37350,48788,-6801,32335,18736,-53366,1792,-22748,-12830,-90658,-95867,-81596,-80613,-57493,-42313,-13234,52243,198804,230888,279630,257952,210976,152618,182213,265572,344641]];\r\n      const seriesNames = [\"Commercial Long\",\"Commercial Short\",\"Commercial Net\"];\r\n\r\n      const canvas = document.getElementById('Corn_chart181_174');\r\n      if (!canvas) return;\r\n      const ctx = canvas.getContext('2d');\r\n\r\n      const existing = window.Chart && Chart.getChart(canvas);\r\n      if (existing) existing.destroy();\r\n\r\n      const tsAll = (tsAllRaw || []).map(t => (typeof t === 'number' ? Math.floor(t) : null));\r\n      const indicesAll = labelsAll.map((_, i) => i);\r\n\r\n      const fmt = (n) => {\r\n        try {\r\n          if (n === null || n === undefined || Number.isNaN(n)) return '';\r\n          return Number(n).toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 2 });\r\n        } catch(e){ return n; }\r\n      };\r\n\r\n      const Crosshair2D = {\r\n        id: 'crosshair2d',\r\n        afterEvent(chart, args) {\r\n          const e = args.event;\r\n          const a = chart.chartArea;\r\n          if (!a) return;\r\n          if (e.type === 'mouseout') {\r\n            chart.$cross2d = null;\r\n            chart.draw();\r\n            return;\r\n          }\r\n          if (e.x >= a.left && e.x <= a.right && e.y >= a.top && e.y <= a.bottom) {\r\n            chart.$cross2d = { x: e.x, y: e.y };\r\n          } else {\r\n            chart.$cross2d = null;\r\n          }\r\n          chart.draw();\r\n        },\r\n        afterDraw(chart) {\r\n          const cross = chart.$cross2d;\r\n          if (!cross) return;\r\n          const { ctx, chartArea:a } = chart;\r\n          ctx.save();\r\n          ctx.strokeStyle = 'rgba(107,114,128,0.55)';\r\n          ctx.lineWidth   = 1;\r\n          ctx.setLineDash([4,3]);\r\n          ctx.beginPath();\r\n          ctx.moveTo(cross.x, a.top);\r\n          ctx.lineTo(cross.x, a.bottom);\r\n          ctx.stroke();\r\n          ctx.beginPath();\r\n          ctx.moveTo(a.left, cross.y);\r\n          ctx.lineTo(a.right, cross.y);\r\n          ctx.stroke();\r\n          ctx.restore();\r\n        }\r\n      };\r\n\r\n      const externalTooltipHandler = (context) => {\r\n        const { chart, tooltip } = context;\r\n        const area = chart.chartArea;\r\n        if (!area) return;\r\n\r\n        let tip = document.getElementById('__chart_exttip_left_Corn_chart181_174');\r\n        if (!tip) {\r\n          tip = document.createElement('div');\r\n          tip.id = '__chart_exttip_left_Corn_chart181_174';\r\n          tip.style.position = 'fixed';\r\n          tip.style.left = '0';\r\n          tip.style.top  = '0';\r\n          tip.style.opacity = '0';\r\n          tip.style.pointerEvents = 'none';\r\n          tip.style.zIndex = '99999';\r\n          document.body.appendChild(tip);\r\n        }\r\n        if (tooltip.opacity === 0) {\r\n          tip.style.opacity = 0;\r\n          return;\r\n        }\r\n\r\n        const title = (tooltip.title && tooltip.title[0]) ? tooltip.title[0] : '';\r\n        const rows = (tooltip.dataPoints || []).map(dp => {\r\n          const color = dp.dataset.borderColor || dp.dataset.backgroundColor || '#4b5563';\r\n          const label = dp.dataset.label || '';\r\n\r\n          let v = null;\r\n          if (typeof dp.raw === 'number') v = dp.raw;\r\n          else if (dp.parsed && typeof dp.parsed.y === 'number') v = dp.parsed.y;\r\n\r\n          const val = (v === null) ? '' : fmt(v);\r\n\r\n          return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                    <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                      <span style=\"width:10px;height:10px;border-radius:2px;background:${color};\r\n                                   border:1px solid rgba(255,255,255,.9);display:inline-block;\"><\/span>\r\n                      <span>${label}<\/span>\r\n                    <\/span>\r\n                    <span style=\"font-weight:600;\">${val}<\/span>\r\n                  <\/div>`;\r\n        }).join('');\r\n\r\n        tip.innerHTML =\r\n          `<div style=\"box-shadow:0 10px 24px rgba(15,23,42,.25);border:1px solid rgba(148,163,184,.7);\r\n                       background:#ffffff;color:#111827;border-radius:12px;padding:10px 12px;\r\n                       min-width:220px;max-width:340px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n             <div style=\"color:#0f172a;font-weight:800;margin-bottom:6px;\">${title}<\/div>\r\n             <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n           <\/div>`;\r\n\r\n        const cr  = chart.canvas.getBoundingClientRect();\r\n        const box = tip.firstElementChild;\r\n        const boxW = box ? box.offsetWidth : 260;\r\n        const boxH = box ? box.offsetHeight : 140;\r\n        const pad  = 8;\r\n\r\n        const left = Math.max(8, cr.left + area.left - boxW - pad);\r\n        const topMin = cr.top + area.top;\r\n        const topMax = cr.top + area.bottom - boxH;\r\n        const rawTop = cr.top + tooltip.caretY - boxH\/2;\r\n        const top = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n        tip.style.left = left + 'px';\r\n        tip.style.top  = top  + 'px';\r\n        tip.style.opacity = 1;\r\n      };\r\n\r\n      const lineColors = [\r\n        '#16a34a', \/\/ E long\r\n        '#dc2626', \/\/ F short\r\n      ];\r\n      const netColor   = '#60a5fa';\r\n      const netBgColor = 'rgba(96,165,250,0.20)';\r\n\r\n      const buildDatasets = (idxList) => {\r\n        const ds = [];\r\n        (seriesAll || []).forEach((series, sIdx) => {\r\n          const data = idxList.map(i => series[i]);\r\n          const base = {\r\n            label: (seriesNames && seriesNames[sIdx]) ? seriesNames[sIdx] : ('S' + (sIdx+1)),\r\n            data: data,\r\n            type: 'line',\r\n            spanGaps: true,\r\n            pointRadius: 0,\r\n            tension: 0.18\r\n          };\r\n\r\n          const isNet = (sIdx === 2);\r\n          if (isNet) {\r\n            base.yAxisID         = 'yRight';\r\n            base.borderColor     = netColor;\r\n            base.backgroundColor = netBgColor;\r\n            base.borderWidth     = 2;\r\n            base.fill            = 'origin';\r\n            base.order           = 1;\r\n          } else {\r\n            base.yAxisID         = 'yLeft';\r\n            const color          = lineColors[sIdx] || '#4b5563';\r\n            base.borderColor     = color;\r\n            base.backgroundColor = color;\r\n            base.borderWidth     = 2;\r\n            base.fill            = false;\r\n            base.order           = 2;\r\n          }\r\n          ds.push(base);\r\n        });\r\n        return ds;\r\n      };\r\n\r\n      const cfg = {\r\n        type: 'line',\r\n        data: {\r\n          labels: labelsAll.slice(),\r\n          datasets: buildDatasets(indicesAll)\r\n        },\r\n        plugins: [Crosshair2D],\r\n        options: {\r\n          responsive: true,\r\n          maintainAspectRatio: false,\r\n          normalized: true,\r\n          interaction: { mode: 'index', intersect: false },\r\n          plugins: {\r\n            zoom: {\r\n              pan: { enabled: true, mode: 'x', modifierKey: 'alt' },\r\n              zoom: {\r\n                wheel: { enabled: true },\r\n                pinch: { enabled: true },\r\n                drag: {\r\n                  enabled: true,\r\n                  mode: 'x',\r\n                  threshold: 8,\r\n                  backgroundColor: 'rgba(75,85,99,.10)',\r\n                  borderColor: 'rgba(75,85,99,.65)',\r\n                  borderWidth: 1\r\n                },\r\n                mode: 'x'\r\n              }\r\n            },\r\n            tooltip: {\r\n              enabled: false,\r\n              external: externalTooltipHandler,\r\n              mode: 'index',\r\n              intersect: false\r\n            },\r\n            legend: {\r\n              position: 'bottom',\r\n              labels: {\r\n                color: '#374151',\r\n                font: { size: 12, weight: '500' },\r\n                usePointStyle: true,\r\n                pointStyle: 'line'\r\n              }\r\n            },\r\n            decimation: { enabled: true, algorithm: 'min-max' },\r\n            title: { display: false }\r\n          },\r\n          scales: {\r\n            x: {\r\n              type: 'category',\r\n              title: {\r\n                display: true,\r\n                text: 'Date',\r\n                color: '#374151',\r\n                font: { weight: '600' }\r\n              },\r\n              ticks: {\r\n                autoSkip: true,\r\n                maxTicksLimit: (window.innerWidth < 768 ? 6 : 12),\r\n                maxRotation: 0,\r\n                minRotation: 0,\r\n                color: '#4b5563'\r\n              },\r\n              grid: { display: false }\r\n            },\r\n            yLeft: {\r\n              type: 'linear',\r\n              position: 'left',\r\n              title: {\r\n                display: true,\r\n                text: 'Long\/Short positions',\r\n                color: '#111827',\r\n                font: { weight: '600' }\r\n              },\r\n              ticks: { color: '#111827', callback: (v) => fmt(v) },\r\n              grid: { drawOnChartArea: true, color: 'rgba(209,213,219,0.6)' }\r\n            },\r\n            yRight: {\r\n              type: 'linear',\r\n              position: 'right',\r\n              title: {\r\n                display: true,\r\n                text: 'Net positions',\r\n                color: '#111827',\r\n                font: { weight: '600' }\r\n              },\r\n              ticks: { color: '#111827', callback: (v) => fmt(v) },\r\n              grid: { drawOnChartArea: false }\r\n            }\r\n          },\r\n          onHover: (evt) => {\r\n            if (!evt?.native) return;\r\n            canvas.style.cursor = 'crosshair';\r\n          }\r\n        }\r\n      };\r\n\r\n      const chart = new Chart(ctx, cfg);\r\n\r\n      \/\/ \ubc29\ud5a5\ud0a4 \ud32c(\uc88c\/\uc6b0 = \uc774\ub3d9, \uc0c1\/\ud558 = \ud06c\uac8c \uc774\ub3d9)\r\n      const ACTIVE_KEY = '__comidra_active_chart_canvas_id__';\r\n      const setActive = () => { try { window[ACTIVE_KEY] = canvas.id; } catch(e) {} };\r\n\r\n      canvas.addEventListener('pointerdown', setActive, { passive:true });\r\n      canvas.addEventListener('pointerenter', setActive, { passive:true });\r\n      canvas.addEventListener('mousedown', setActive, { passive:true });\r\n      canvas.addEventListener('touchstart', setActive, { passive:true });\r\n\r\n      const panByKey = (dir, fast) => {\r\n        try {\r\n          if (!chart || typeof chart.pan !== 'function') return;\r\n\r\n          const a = chart.chartArea || null;\r\n          const baseStep = a ? Math.max(24, Math.round(a.width * (fast ? 0.25 : 0.10))) : (fast ? 220 : 90);\r\n          const dx = (dir < 0) ? baseStep : -baseStep;\r\n\r\n          chart.pan({ x: dx, y: 0 }, undefined, 'none');\r\n        } catch(e) {}\r\n      };\r\n\r\n      window.addEventListener('keydown', (e) => {\r\n        try {\r\n          if ((window[ACTIVE_KEY] || null) !== canvas.id) return;\r\n          if (!e || !e.key) return;\r\n\r\n          const k = e.key;\r\n          if (k === 'ArrowLeft')  { e.preventDefault(); panByKey(-1, false); return; }\r\n          if (k === 'ArrowRight') { e.preventDefault(); panByKey( 1, false); return; }\r\n          if (k === 'ArrowUp')    { e.preventDefault(); panByKey(-1, true);  return; }\r\n          if (k === 'ArrowDown')  { e.preventDefault(); panByKey( 1, true);  return; }\r\n        } catch(err) {}\r\n      }, { capture:true });\r\n\r\n      const wrap     = canvas.closest('.corn181c-card') || canvas.closest('.corn181c-wrap') || document;\r\n      const btns     = wrap.querySelectorAll('.corn181c-btn[data-range]');\r\n      const resetBtn = wrap.querySelector('[data-action=\"reset\"]');\r\n      const pngBtn   = wrap.querySelector('[data-action=\"png\"]');\r\n\r\n      const setActiveBtn = (key) => {\r\n        btns.forEach(b => b.classList.toggle('is-active', (b.dataset.range === String(key))));\r\n      };\r\n\r\n      const computeIndicesForRange = (rangeKey) => {\r\n        if (rangeKey === 'all') return indicesAll;\r\n\r\n        const months = parseInt(rangeKey, 10);\r\n        if (!Number.isFinite(months) || months <= 0) return indicesAll;\r\n\r\n        const validTs = tsAll.filter(t => Number.isInteger(t) && t > 0);\r\n        if (!validTs.length) return indicesAll;\r\n\r\n        const latest = Math.max.apply(null, validTs);\r\n        const cutDate = new Date(latest * 1000);\r\n        cutDate.setMonth(cutDate.getMonth() - months);\r\n        const cutTs = Math.floor(cutDate.getTime() \/ 1000);\r\n\r\n        const keep = [];\r\n        tsAll.forEach((ts, idx) => {\r\n          if (Number.isInteger(ts) && ts >= cutTs) keep.push(idx);\r\n        });\r\n        return keep.length ? keep : indicesAll;\r\n      };\r\n\r\n      const clearScaleBounds = () => {\r\n        try {\r\n          const sc = chart && chart.options && chart.options.scales ? chart.options.scales : null;\r\n          if (!sc) return;\r\n          if (sc.x)     { sc.x.min = undefined; sc.x.max = undefined; }\r\n          if (sc.yLeft) { sc.yLeft.min = undefined; sc.yLeft.max = undefined; }\r\n          if (sc.yRight){ sc.yRight.min = undefined; sc.yRight.max = undefined; }\r\n        } catch(e) {}\r\n      };\r\n\r\n      const applyRange = (rangeKey) => {\r\n        clearScaleBounds();\r\n\r\n        const idxList   = computeIndicesForRange(rangeKey);\r\n        const newLabels = idxList.map(i => labelsAll[i]);\r\n\r\n        chart.data.labels   = newLabels;\r\n        chart.data.datasets = buildDatasets(idxList);\r\n\r\n        clearScaleBounds();\r\n        chart.update();\r\n\r\n        setActiveBtn(rangeKey);\r\n        if (chart.resetZoom) chart.resetZoom();\r\n      };\r\n\r\n      \/\/ \ucd08\uae30 \ubc94\uc704: 1\ub144\r\n      applyRange('12');\r\n\r\n      btns.forEach(b => b.addEventListener('click', () => applyRange(b.dataset.range || 'all')));\r\n\r\n      if (resetBtn) resetBtn.addEventListener('click', () => {\r\n        clearScaleBounds();\r\n        try { chart.update('none'); } catch(e) {}\r\n        if (chart.resetZoom) chart.resetZoom();\r\n      });\r\n\r\n      if (pngBtn) {\r\n        pngBtn.addEventListener('click', () => {\r\n          try {\r\n            const url = chart.toBase64Image('image\/png', 1.0);\r\n            const a = document.createElement('a');\r\n            a.href = url;\r\n            a.download = 'Corn_chart181.png';\r\n            a.click();\r\n          } catch(e) {}\r\n        });\r\n      }\r\n\r\n      canvas.addEventListener('dblclick', () => {\r\n        clearScaleBounds();\r\n        if (chart && chart.resetZoom) chart.resetZoom();\r\n      });\r\n\r\n      ['mouseleave','scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt => {\r\n        window.addEventListener(evt, () => {\r\n          const t = document.getElementById('__chart_exttip_left_Corn_chart181_174');\r\n          if (t) t.style.opacity = 0;\r\n        }, { passive:true });\r\n      });\r\n    });\r\n    <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a1ec083 e-flex e-con-boxed e-con e-parent\" data-id=\"a1ec083\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ccd99fa elementor-widget elementor-widget-shortcode\" data-id=\"ccd99fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">      <div id=\"c171_wrap_165\" class=\"c168-wrap\">\r\n        <div class=\"c168-card\">\r\n          <div class=\"c168-controls\">\r\n            <strong class=\"c168-range-label\">Range:<\/strong>\r\n            <button type=\"button\" data-range=\"12\"  class=\"c168-btn\">1Y<\/button>\r\n            <button type=\"button\" data-range=\"24\"  class=\"c168-btn\">2Y<\/button>\r\n            <button type=\"button\" data-range=\"60\"  class=\"c168-btn\">5Y<\/button>\r\n            <button type=\"button\" data-range=\"all\" class=\"c168-btn\">ALL<\/button>\r\n\r\n            <span class=\"c168-flex-spacer\"><\/span>\r\n            <em class=\"c168-hint\">Wheel\/Pinch=Zoom \u00b7 Drag=Box Zoom \u00b7 Double-click=Reset \u00b7 Arrow keys=Pan (Shift=Faster)<\/em>\r\n\r\n            <button type=\"button\" data-action=\"reset\" class=\"c168-btn c168-btn-ghost\">Reset Zoom<\/button>\r\n            <button type=\"button\" data-action=\"png\"   class=\"c168-btn c168-btn-ghost\">Save PNG<\/button>\r\n          <\/div>\r\n\r\n          <div class=\"c168-title\">CME Exchange (Bushels)<\/div>\r\n\r\n          <div class=\"c168-panels\">\r\n            <div class=\"c168-panel c168-panel-price\">\r\n              <div class=\"c168-panel-label\">CME Inflow (Bushels) \/ CME Outflow (Bushels)<\/div>\r\n              <canvas id=\"Corn_chart171_t_165\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c168-panel c168-panel-spread\">\r\n              <div class=\"c168-panel-label\">CME Net Change (Bushels)<\/div>\r\n              <canvas id=\"Corn_chart171_m_165\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c168-panel c168-panel-flow\">\r\n              <div class=\"c168-panel-label\">CME Inventory (Bushels)<\/div>\r\n              <canvas id=\"Corn_chart171_b_165\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"c168-source-wrap\">\r\n            <a class=\"c168-source-pill\" href=\"https:\/\/www.cmegroup.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n              Source: CME Group            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <style>\r\n        .c168-wrap{\r\n          overflow-x:auto;\r\n          -webkit-overflow-scrolling:touch;\r\n          padding:16px;\r\n          border-radius:18px;\r\n          background:linear-gradient(135deg,#eef2ff,#e0f2fe);\r\n          box-shadow:0 18px 32px rgba(15,23,42,0.18);\r\n          margin:8px 0;\r\n        }\r\n        .c168-card{\r\n          background:#ffffff;\r\n          border-radius:14px;\r\n          padding:14px 16px 16px;\r\n          box-shadow:0 6px 18px rgba(15,23,42,0.14);\r\n          border:1px solid rgba(129,140,248,0.6);\r\n        }\r\n        .c168-controls{\r\n          display:flex;\r\n          gap:6px;\r\n          align-items:center;\r\n          margin:0 0 8px 0;\r\n          flex-wrap:wrap;\r\n          min-width:640px;\r\n        }\r\n        .c168-title{\r\n          font-weight:800;\r\n          font-size:18px;\r\n          color:#0f172a;\r\n          margin:0 0 10px 0;\r\n        }\r\n        .c168-range-label{\r\n          font:600 13px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#4b5563;\r\n        }\r\n        .c168-flex-spacer{flex:1 1 auto;}\r\n        .c168-btn{\r\n          padding:6px 10px;\r\n          border-radius:999px;\r\n          border:1px solid rgba(129,140,248,0.9);\r\n          background:linear-gradient(135deg,#eff6ff,#eef2ff);\r\n          font:500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          cursor:pointer;\r\n          color:#3730a3;\r\n          box-shadow:0 1px 2px rgba(15,23,42,0.07);\r\n          transition:background .15s ease,box-shadow .15s ease,transform .05s ease;\r\n        }\r\n        .c168-btn:hover{\r\n          background:linear-gradient(135deg,#e0f2fe,#eef2ff);\r\n          box-shadow:0 2px 4px rgba(15,23,42,0.12);\r\n          transform:translateY(-0.5px);\r\n        }\r\n        .c168-btn.is-active{\r\n          background:linear-gradient(135deg,#6366f1,#4f46e5);\r\n          color:#eef2ff;\r\n          border-color:#4338ca;\r\n          box-shadow:0 2px 6px rgba(79,70,229,0.55);\r\n        }\r\n        .c168-btn-ghost{\r\n          background:#ffffff;\r\n          border-color:rgba(209,213,219,0.9);\r\n          color:#374151;\r\n        }\r\n        .c168-hint{\r\n          font-size:12px;\r\n          color:#6b7280;\r\n        }\r\n\r\n        .c168-panels{\r\n          min-width:640px;\r\n          display:flex;\r\n          flex-direction:column;\r\n          gap:10px;\r\n        }\r\n        .c168-panel{\r\n          position:relative;\r\n          background:#ffffff;\r\n          border-radius:12px;\r\n          border:1px solid rgba(148,163,184,0.45);\r\n          overflow:hidden;\r\n        }\r\n        .c168-panel-label{\r\n          position:absolute;\r\n          left:10px;\r\n          top:8px;\r\n          z-index:2;\r\n          font:700 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#111827;\r\n          background:rgba(255,255,255,0.9);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          border-radius:999px;\r\n          padding:3px 10px;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          pointer-events:none;\r\n        }\r\n\r\n        .c168-panel canvas{\r\n          width:100%;\r\n          height:100%;\r\n          display:block;\r\n          user-select:none;\r\n          -webkit-user-select:none;\r\n          -webkit-user-drag:none;\r\n          touch-action:none;\r\n          cursor:crosshair;\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n          -webkit-tap-highlight-color:transparent;\r\n        }\r\n        .c168-panel canvas:focus,\r\n        .c168-panel canvas:focus-visible{\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n        }\r\n\r\n        .c168-panel-price{ height:260px; min-height:260px; }\r\n        .c168-panel-spread{ height:180px; min-height:180px; }\r\n        .c168-panel-flow{ height:240px; min-height:240px; }\r\n\r\n        .c168-source-wrap{\r\n          display:flex;\r\n          justify-content:flex-end;\r\n          min-width:640px;\r\n          margin-top:8px;\r\n        }\r\n        .c168-source-pill{\r\n          display:inline-block;\r\n          padding:4px 10px;\r\n          border-radius:999px;\r\n          background:rgba(255,255,255,0.96);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          font:11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n          color:#6b7280;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          text-decoration:none;\r\n        }\r\n\r\n        @media (max-width:768px){\r\n          .c168-wrap{padding:10px;}\r\n          .c168-controls{min-width:0;}\r\n          .c168-panels{min-width:0;}\r\n          .c168-source-wrap{min-width:0;}\r\n          .c168-panel-price{ height:220px; min-height:220px; }\r\n          .c168-panel-spread{ height:160px; min-height:160px; }\r\n          .c168-panel-flow{ height:220px; min-height:220px; }\r\n        }\r\n      <\/style>\r\n\r\n      <script>\r\n        document.addEventListener('DOMContentLoaded', function(){\r\n          try{\r\n            const Zoom = (window['chartjs-plugin-zoom'] && (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])) || null;\r\n            if(Zoom && window.Chart && Chart.register){ Chart.register(Zoom); }\r\n          }catch(e){}\r\n\r\n          const wrap = document.getElementById('c171_wrap_165');\r\n          if(!wrap || !window.Chart) return;\r\n\r\n          const labelsAll  = [\"2026-02-19\",\"2026-02-20\",\"2026-02-23\",\"2026-02-24\",\"2026-02-25\",\"2026-02-26\",\"2026-02-27\",\"2026-03-02\",\"2026-03-03\",\"2026-03-04\",\"2026-03-05\",\"2026-03-06\",\"2026-03-09\",\"2026-03-10\",\"2026-03-11\",\"2026-03-12\",\"2026-03-13\",\"2026-03-16\",\"2026-03-17\",\"2026-03-18\",\"2026-03-19\",\"2026-03-20\",\"2026-03-26\",\"2026-03-27\",\"2026-03-30\",\"2026-03-31\",\"2026-04-01\",\"2026-04-02\",\"2026-04-06\",\"2026-04-07\",\"2026-04-08\",\"2026-04-09\",\"2026-04-10\",\"2026-04-13\",\"2026-04-14\",\"2026-04-15\",\"2026-04-16\",\"2026-04-17\",\"2026-04-20\",\"2026-04-21\",\"2026-04-22\",\"2026-04-23\",\"2026-04-24\",\"2026-04-27\",\"2026-04-28\",\"2026-04-29\",\"2026-04-30\",\"2026-05-01\",\"2026-05-04\",\"2026-05-05\",\"2026-05-06\",\"2026-05-07\",\"2026-05-08\",\"2026-05-11\",\"2026-05-12\"];\r\n          const stockAll   = [null,17984000,null,null,null,null,17019000,null,null,null,null,17345000,null,null,null,null,17271000,null,null,null,null,19556000,null,17913000,null,null,null,15493000,null,null,null,null,13854000,null,null,null,null,12744000,null,null,null,null,11204000,null,null,null,null,11388000,null,null,null,null,11570000,null,null];\r\n          const inflowAll  = [2038425.79,1677650.78,1901331.2999999998,2183372.0500000003,2096428.73,2021770.04,2217122.41,3033895.2399999998,2933015.02,2554488.1500000004,2195489.86,2102614.62,2371147.44,2712994.54,2319442.77,3232408.92,2257260.61,1171263.47,1865468.21,2402549.98,2901358.8899999997,2651239.38,2080770.28,1926399.7199999997,2234422.78,1915172.62,1941365.0699999998,2295907.9299999997,3105158.62,2970891.81,2412276.9699999997,1852786.8900000001,1689776.09,1595610.1400000001,1661113.48,1872796.6400000001,2446640.9899999998,2265217.16,2841714.88,2575469.65,2489358.87,1782132.72,1834360.94,1462735.18,2988098.32,3338592.45,3620772.58,2880333.9899999998,2415957.33,2719645.74,2963807.95,2613248.02,2368282.48,1929950.8599999999,2215335.77];\r\n          const outflowAll = [2567345.92,1612027.44,1838737.7200000002,2257531.14,2130579.58,2542803.62,2604160.8099999996,3057699.63,2034007.94,2771560.88,2547079.1,2103435.67,2481294.7,2655032.0599999996,2351146.29,2509420.49,2979036.7,1954903.98,1270177.63,2857921.99,3374059.34,2423825.93,2014162.2000000002,2248634.05,2130488.29,2415797.72,2502225.1399999997,2013879.85,2037035.0499999998,3569910.43,2379592.4299999997,3302480.88,2610445.56,2201298.57,1943081.5699999998,2253725.14,1885942,2300521.0700000003,2928636.7800000003,3336347.6399999997,2332957.99,2300256.2800000003,2844074.71,1884530.44,1906739.71,2719639.83,4014068.77,2937942.05,3008187.9299999997,2363801.79,2564269.05,3497950.6100000003,2386041.8,3019932.66,2241978.8600000003];\r\n          const netAll     = [-528920.1299999999,65623.34000000008,62593.57999999961,-74159.08999999985,-34150.85000000009,-521033.5800000001,-387038.39999999944,-23804.39000000013,899007.0800000001,-217072.72999999952,-351589.2400000002,-821.0499999998137,-110147.26000000024,57962.48000000045,-31703.52000000002,722988.4299999997,-721776.0900000003,-783640.51,595290.5800000001,-455372.01000000024,-472700.4500000002,227413.44999999972,66608.07999999984,-322234.3300000001,103934.48999999976,-500625.1000000001,-560860.0699999998,282028.0799999996,1068123.5700000003,-599018.6200000001,32684.540000000037,-1449693.9899999998,-920669.47,-605688.4299999997,-281968.08999999985,-380928.5,560698.9899999998,-35303.91000000015,-86921.90000000037,-760877.9899999998,156400.8799999999,-518123.5600000003,-1009713.77,-421795.26,1081358.6099999999,618952.6200000001,-393296.18999999994,-57608.060000000056,-592230.5999999996,355843.9500000002,399538.9000000004,-884702.5900000003,-17759.319999999832,-1089981.8000000003,-26643.090000000317];\r\n\r\n          const canvT = document.getElementById('Corn_chart171_t_165');\r\n          const canvM = document.getElementById('Corn_chart171_m_165');\r\n          const canvB = document.getElementById('Corn_chart171_b_165');\r\n          if(!canvT || !canvM || !canvB) return;\r\n\r\n          const tsSecAll = labelsAll.map(l=>{\r\n            const t = Date.parse(l);\r\n            return isNaN(t) ? null : Math.floor(t\/1000);\r\n          });\r\n\r\n          const fmt = (n)=>{\r\n            try{\r\n              if(n===null || n===undefined || Number.isNaN(n)) return '';\r\n              return Number(n).toLocaleString(undefined,{minimumFractionDigits:0,maximumFractionDigits:2});\r\n            }catch(e){ return n; }\r\n          };\r\n\r\n          const fmtCompact = (n)=>{\r\n            if(n===null || n===undefined || Number.isNaN(n)) return '';\r\n            const x = Number(n);\r\n            const abs = Math.abs(x);\r\n            if(abs >= 1e9) return (x\/1e9).toFixed(1).replace(\/\\.0$\/,'') + 'B';\r\n            if(abs >= 1e6) return (x\/1e6).toFixed(1).replace(\/\\.0$\/,'') + 'M';\r\n            if(abs >= 1e3) return (x\/1e3).toFixed(0) + 'K';\r\n            return x.toLocaleString();\r\n          };\r\n\r\n          const FIX_Y_LEFT  = 56;\r\n          const FIX_Y_RIGHT = 66;\r\n\r\n          const CrosshairX = {\r\n            id:'crosshairX',\r\n            afterEvent(chart,args){\r\n              const e=args.event, a=chart.chartArea;\r\n              if(!a) return;\r\n              if(e.type==='mouseout'){ chart.$crossX=null; chart.draw(); return; }\r\n              if(e.x>=a.left && e.x<=a.right && e.y>=a.top && e.y<=a.bottom){\r\n                chart.$crossX={x:e.x};\r\n              }else{\r\n                chart.$crossX=null;\r\n              }\r\n              chart.draw();\r\n            },\r\n            afterDraw(chart){\r\n              const cross=chart.$crossX; if(!cross) return;\r\n              const {ctx,chartArea:a}=chart;\r\n              ctx.save();\r\n              ctx.strokeStyle='rgba(37,99,235,0.55)';\r\n              ctx.lineWidth=1;\r\n              ctx.setLineDash([4,3]);\r\n              ctx.beginPath();\r\n              ctx.moveTo(cross.x,a.top);\r\n              ctx.lineTo(cross.x,a.bottom);\r\n              ctx.stroke();\r\n              ctx.restore();\r\n            }\r\n          };\r\n\r\n          const makeExternalTooltip = (idSuffix) => (context)=>{\r\n            const { chart, tooltip } = context;\r\n            const area = chart.chartArea; if(!area) return;\r\n\r\n            const tipId = '__c171_exttip_' + idSuffix;\r\n            let tip = document.getElementById(tipId);\r\n            if(!tip){\r\n              tip=document.createElement('div');\r\n              tip.id=tipId;\r\n              tip.style.position='fixed';\r\n              tip.style.left='0';\r\n              tip.style.top='0';\r\n              tip.style.opacity='0';\r\n              tip.style.pointerEvents='none';\r\n              tip.style.zIndex='99999';\r\n              document.body.appendChild(tip);\r\n            }\r\n            if(tooltip.opacity===0){ tip.style.opacity=0; return; }\r\n\r\n            const title = (tooltip.title && tooltip.title[0]) ? tooltip.title[0] : '';\r\n            const rows = (tooltip.dataPoints || []).map(dp=>{\r\n              const color = dp.dataset.borderColor || dp.dataset.backgroundColor || '#2563eb';\r\n              const label = dp.dataset.label || '';\r\n              let v=null;\r\n              if(typeof dp.raw==='number'){ v=dp.raw; }\r\n              else if(dp.parsed && typeof dp.parsed.y==='number'){ v=dp.parsed.y; }\r\n              const val=(v===null)?'':fmt(v);\r\n              return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                        <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                          <span style=\"width:10px;height:10px;border-radius:2px;background:${color};\r\n                                       border:1px solid rgba(255,255,255,.9);display:inline-block;\"><\/span>\r\n                          <span>${label}<\/span>\r\n                        <\/span>\r\n                        <span style=\"font-weight:700;\">${val}<\/span>\r\n                      <\/div>`;\r\n            }).join('');\r\n\r\n            tip.innerHTML =\r\n              `<div style=\"box-shadow:0 10px 24px rgba(15,23,42,.25);border:1px solid rgba(148,163,184,.7);\r\n                           background:#ffffff;color:#111827;border-radius:12px;padding:10px 12px;\r\n                           min-width:220px;max-width:360px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n                 <div style=\"color:#0f172a;font-weight:900;margin-bottom:6px;\">${title}<\/div>\r\n                 <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n               <\/div>`;\r\n\r\n            const cr = chart.canvas.getBoundingClientRect();\r\n            const box = tip.firstElementChild;\r\n            const boxW = box ? box.offsetWidth : 240;\r\n            const boxH = box ? box.offsetHeight : 130;\r\n            const pad  = 8;\r\n\r\n            const left  = Math.max(8, cr.left + area.left - boxW - pad);\r\n            const topMin= cr.top + area.top;\r\n            const topMax= cr.top + area.bottom - boxH;\r\n            const rawTop= cr.top + tooltip.caretY - boxH\/2;\r\n            const top   = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n            tip.style.left   = left + 'px';\r\n            tip.style.top    = top  + 'px';\r\n            tip.style.opacity= 1;\r\n          };\r\n\r\n          const buildChartTop = (labels, inflow, outflow) => {\r\n            const ctx = canvT.getContext('2d');\r\n            const existing = Chart.getChart(canvT); if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    key:'inflow',\r\n                    label: \"CME Inflow (Bushels)\",\r\n                    data: inflow.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.5,\r\n                    pointRadius:0,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#2563eb',\r\n                    backgroundColor:'#2563eb',\r\n                    order:1\r\n                  },\r\n                  {\r\n                    key:'outflow',\r\n                    label: \"CME Outflow (Bushels)\",\r\n                    data: outflow.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.5,\r\n                    pointRadius:0,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#f59e0b',\r\n                    backgroundColor:'#f59e0b',\r\n                    order:2\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip('t'), mode:'index', intersect:false },\r\n                  legend:{\r\n                    display:true,\r\n                    position:'bottom',\r\n                    labels:{\r\n                      color:'#374151',\r\n                      font:{ size:12, weight:'600' },\r\n                      usePointStyle:true,\r\n                      pointStyle:'line'\r\n                    }\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true, mode:'x', threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales:{\r\n                  x:{\r\n                    type:'category',\r\n                    ticks:{\r\n                      autoSkip:true,\r\n                      maxTicksLimit:(window.innerWidth<768?6:10),\r\n                      maxRotation:0, minRotation:0,\r\n                      color:'#4b5563'\r\n                    },\r\n                    grid:{ color:'rgba(148,163,184,0.20)' }\r\n                  },\r\n                  y:{\r\n                    type:'linear',\r\n                    position:'right',\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n                    ticks:{ color:'#111827', callback:(v)=>fmtCompact(v) },\r\n                    grid:{ color:'rgba(209,213,219,0.55)' }\r\n                  },\r\n                  yL:{\r\n                    type:'linear',\r\n                    position:'left',\r\n                    display:true,\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n                    ticks:{ display:false },\r\n                    grid:{ drawOnChartArea:false, drawBorder:false },\r\n                    border:{ display:false }\r\n                  }\r\n                }\r\n              }\r\n            });\r\n          };\r\n\r\n          const buildChartMiddle = (labels, net) => {\r\n            const ctx = canvM.getContext('2d');\r\n            const existing = Chart.getChart(canvM); if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    key:'net',\r\n                    label: \"CME Net Change (Bushels)\",\r\n                    data: net.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    fill:true,\r\n                    borderWidth:2,\r\n                    pointRadius:0,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#8b5cf6',\r\n                    backgroundColor:'rgba(139,92,246,0.18)',\r\n                    order:1\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip('m'), mode:'index', intersect:false },\r\n                  legend:{\r\n                    display:true,\r\n                    position:'bottom',\r\n                    labels:{\r\n                      color:'#374151',\r\n                      font:{ size:12, weight:'600' },\r\n                      usePointStyle:true,\r\n                      pointStyle:'line'\r\n                    }\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true, mode:'x', threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales:{\r\n                  x:{\r\n                    type:'category',\r\n                    ticks:{\r\n                      autoSkip:true,\r\n                      maxTicksLimit:(window.innerWidth<768?6:10),\r\n                      maxRotation:0, minRotation:0,\r\n                      color:'#4b5563'\r\n                    },\r\n                    grid:{ color:'rgba(148,163,184,0.20)' }\r\n                  },\r\n                  y:{\r\n                    type:'linear',\r\n                    position:'right',\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n                    ticks:{ color:'#111827', callback:(v)=>fmtCompact(v) },\r\n                    grid:{ color:'rgba(209,213,219,0.55)' }\r\n                  },\r\n                  yL:{\r\n                    type:'linear',\r\n                    position:'left',\r\n                    display:true,\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n                    ticks:{ display:false },\r\n                    grid:{ drawOnChartArea:false, drawBorder:false },\r\n                    border:{ display:false }\r\n                  }\r\n                }\r\n              }\r\n            });\r\n          };\r\n\r\n          const buildChartBottom = (labels, stock) => {\r\n            const ctx = canvB.getContext('2d');\r\n            const existing = Chart.getChart(canvB); if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    key:'stock',\r\n                    label: \"CME Inventory (Bushels)\",\r\n                    data: stock.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    fill:true,\r\n                    borderWidth:2,\r\n                    pointRadius:0,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'rgba(16,185,129,0.95)',\r\n                    backgroundColor:'rgba(16,185,129,0.22)',\r\n                    order:1\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip('b'), mode:'index', intersect:false },\r\n                  legend:{\r\n                    display:true,\r\n                    position:'bottom',\r\n                    labels:{\r\n                      color:'#374151',\r\n                      font:{ size:12, weight:'600' },\r\n                      usePointStyle:true,\r\n                      pointStyle:'line'\r\n                    }\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true, mode:'x', threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales:{\r\n                  x:{\r\n                    type:'category',\r\n                    ticks:{\r\n                      autoSkip:true,\r\n                      maxTicksLimit:(window.innerWidth<768?6:10),\r\n                      maxRotation:0, minRotation:0,\r\n                      color:'#4b5563'\r\n                    },\r\n                    grid:{ color:'rgba(148,163,184,0.20)' }\r\n                  },\r\n                  y:{\r\n                    type:'linear',\r\n                    position:'right',\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n                    ticks:{ color:'#111827', callback:(v)=>fmtCompact(v) },\r\n                    grid:{ color:'rgba(209,213,219,0.55)' }\r\n                  },\r\n                  yL:{\r\n                    type:'linear',\r\n                    position:'left',\r\n                    display:true,\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n                    ticks:{ display:false },\r\n                    grid:{ drawOnChartArea:false, drawBorder:false },\r\n                    border:{ display:false }\r\n                  }\r\n                }\r\n              }\r\n            });\r\n          };\r\n\r\n          const syncX = (src, others)=>{\r\n            const x = src.scales && src.scales.x;\r\n            if(!x) return;\r\n            const min = x.min;\r\n            const max = x.max;\r\n            others.forEach(ch=>{\r\n              if(!ch || ch === src) return;\r\n              if(!ch.options || !ch.options.scales || !ch.options.scales.x) return;\r\n              ch.options.scales.x.min = min;\r\n              ch.options.scales.x.max = max;\r\n              ch.update('none');\r\n            });\r\n          };\r\n\r\n          let labels  = labelsAll.slice();\r\n          let stock   = stockAll.slice();\r\n          let inflow  = inflowAll.slice();\r\n          let outflow = outflowAll.slice();\r\n          let net     = netAll.slice();\r\n\r\n          let chartT = buildChartTop(labels, inflow, outflow);\r\n          let chartM = buildChartMiddle(labels, net);\r\n          let chartB = buildChartBottom(labels, stock);\r\n\r\n          const attachSyncHooks = (chart, others)=>{\r\n            const z = chart?.options?.plugins?.zoom;\r\n            if(!z) return;\r\n            const oldOnZoom = z.zoom && z.zoom.onZoomComplete;\r\n            const oldOnPan  = z.pan && z.pan.onPanComplete;\r\n\r\n            if(chart.options.plugins.zoom.zoom){\r\n              chart.options.plugins.zoom.zoom.onZoomComplete = ({chart:c})=>{\r\n                try{ syncX(c, others); }catch(e){}\r\n                if(typeof oldOnZoom === 'function') try{ oldOnZoom({chart:c}); }catch(e){}\r\n              };\r\n            }\r\n            if(chart.options.plugins.zoom.pan){\r\n              chart.options.plugins.zoom.pan.onPanComplete = ({chart:c})=>{\r\n                try{ syncX(c, others); }catch(e){}\r\n                if(typeof oldOnPan === 'function') try{ oldOnPan({chart:c}); }catch(e){}\r\n              };\r\n            }\r\n            chart.update('none');\r\n          };\r\n\r\n          attachSyncHooks(chartT, [chartM, chartB]);\r\n          attachSyncHooks(chartM, [chartT, chartB]);\r\n          attachSyncHooks(chartB, [chartT, chartM]);\r\n\r\n          const applyRange = (m)=>{\r\n            let idxKeep = null;\r\n\r\n            if(m !== 'all' && Array.isArray(tsSecAll) && tsSecAll.length){\r\n              const months = parseInt(m,10);\r\n              const validTs = tsSecAll.filter(t=>Number.isInteger(t) && t>0);\r\n              if(validTs.length){\r\n                const latest = Math.max.apply(null, validTs);\r\n                const cutDate = new Date(latest*1000);\r\n                cutDate.setMonth(cutDate.getMonth()-months);\r\n                const cutTs = Math.floor(cutDate.getTime()\/1000);\r\n\r\n                idxKeep = [];\r\n                tsSecAll.forEach((ts,idx)=>{\r\n                  if(Number.isInteger(ts) && ts>=cutTs) idxKeep.push(idx);\r\n                });\r\n              }\r\n            }\r\n\r\n            const sliceByIdx = (arr)=>{\r\n              if(!idxKeep || !idxKeep.length) return arr.slice();\r\n              return idxKeep.map(i => arr[i]);\r\n            };\r\n\r\n            labels  = sliceByIdx(labelsAll);\r\n            stock   = sliceByIdx(stockAll);\r\n            inflow  = sliceByIdx(inflowAll);\r\n            outflow = sliceByIdx(outflowAll);\r\n            net     = sliceByIdx(netAll);\r\n\r\n            [chartT, chartM, chartB].forEach(ch=>{\r\n              ch.data.labels = labels;\r\n              ch.options.scales.x.min = undefined;\r\n              ch.options.scales.x.max = undefined;\r\n            });\r\n\r\n            chartT.data.datasets[0].data = inflow;\r\n            chartT.data.datasets[1].data = outflow;\r\n\r\n            chartM.data.datasets[0].data = net;\r\n\r\n            chartB.data.datasets[0].data = stock;\r\n\r\n            chartT.update();\r\n            chartM.update();\r\n            chartB.update();\r\n\r\n            if(chartT.resetZoom) chartT.resetZoom();\r\n            if(chartM.resetZoom) chartM.resetZoom();\r\n            if(chartB.resetZoom) chartB.resetZoom();\r\n\r\n            btns.forEach(b=>b.classList.toggle('is-active', (b.dataset.range === String(m))));\r\n          };\r\n\r\n          const btns = wrap.querySelectorAll('.c168-btn[data-range]');\r\n          const resetBtn = wrap.querySelector('[data-action=\"reset\"]');\r\n          const pngBtn = wrap.querySelector('[data-action=\"png\"]');\r\n\r\n          btns.forEach(b=> b.addEventListener('click', ()=> applyRange(b.dataset.range) ));\r\n\r\n          if(resetBtn){\r\n            resetBtn.addEventListener('click', ()=>{\r\n              if(chartT.resetZoom) chartT.resetZoom();\r\n              if(chartM.resetZoom) chartM.resetZoom();\r\n              if(chartB.resetZoom) chartB.resetZoom();\r\n            });\r\n          }\r\n\r\n          if(pngBtn){\r\n            pngBtn.addEventListener('click', ()=>{\r\n              try{\r\n                const c1 = canvT, c2 = canvM, c3 = canvB;\r\n                const gap = 10;\r\n\r\n                const w = Math.max(c1.width, c2.width, c3.width);\r\n                const h = c1.height + c2.height + c3.height + gap*2;\r\n\r\n                const out = document.createElement('canvas');\r\n                out.width = w;\r\n                out.height = h;\r\n                const octx = out.getContext('2d');\r\n\r\n                octx.fillStyle = '#ffffff';\r\n                octx.fillRect(0,0,w,h);\r\n\r\n                octx.drawImage(c1, 0, 0);\r\n                octx.drawImage(c2, 0, c1.height + gap);\r\n                octx.drawImage(c3, 0, c1.height + gap + c2.height + gap);\r\n\r\n                const url = out.toDataURL('image\/png', 1.0);\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = 'corn_chart171_cme.png';\r\n                a.click();\r\n              }catch(e){}\r\n            });\r\n          }\r\n\r\n          applyRange('24');\r\n\r\n          [canvT, canvM, canvB].forEach(cv=>{\r\n            cv.addEventListener('dblclick', ()=>{\r\n              if(chartT.resetZoom) chartT.resetZoom();\r\n              if(chartM.resetZoom) chartM.resetZoom();\r\n              if(chartB.resetZoom) chartB.resetZoom();\r\n            });\r\n            cv.addEventListener('pointerdown', ()=>{\r\n              try{ cv.focus({preventScroll:true}); }catch(e){ try{ cv.focus(); }catch(e2){} }\r\n            }, { passive:true });\r\n          });\r\n\r\n          const panByArrow = (e)=>{\r\n            const k = e.key;\r\n            if(k !== 'ArrowLeft' && k !== 'ArrowRight') return;\r\n            if(!chartT || typeof chartT.pan !== 'function') return;\r\n\r\n            const tag = (e.target && e.target.tagName) ? e.target.tagName.toLowerCase() : '';\r\n            if(tag==='input' || tag==='textarea' || tag==='select' || (e.target && e.target.isContentEditable)) return;\r\n\r\n            const a = chartT.chartArea || null;\r\n            let step = a ? Math.max(24, Math.round(a.width * 0.08)) : 60;\r\n            if(e.shiftKey) step *= 2;\r\n\r\n            const dx = (k === 'ArrowLeft') ? step : -step;\r\n\r\n            e.preventDefault();\r\n            try{\r\n              chartT.pan({ x: dx, y: 0 });\r\n              syncX(chartT, [chartM, chartB]);\r\n            }catch(err){}\r\n          };\r\n\r\n          [canvT, canvM, canvB].forEach(cv=>{\r\n            cv.addEventListener('keydown', panByArrow);\r\n          });\r\n\r\n          ['mouseleave','scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt=>{\r\n            window.addEventListener(evt, ()=>{\r\n              ['__c171_exttip_t','__c171_exttip_m','__c171_exttip_b'].forEach(id=>{\r\n                const t=document.getElementById(id);\r\n                if(t) t.style.opacity=0;\r\n              });\r\n            },{passive:true});\r\n          });\r\n        });\r\n      <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7da36eb e-con-full e-flex e-con e-child\" data-id=\"7da36eb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-414283d elementor-widget elementor-widget-shortcode\" data-id=\"414283d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">      <div id=\"c172_wrap_166\" class=\"c172-wrap\">\r\n        <div class=\"c172-card\">\r\n          <div class=\"c172-controls\">\r\n            <strong class=\"c172-range-label\">Range:<\/strong>\r\n            <button type=\"button\" data-range=\"12\"  class=\"c172-btn\">1Y<\/button>\r\n            <button type=\"button\" data-range=\"24\"  class=\"c172-btn\">2Y<\/button>\r\n            <button type=\"button\" data-range=\"60\"  class=\"c172-btn\">5Y<\/button>\r\n            <button type=\"button\" data-range=\"all\" class=\"c172-btn\">ALL<\/button>\r\n\r\n            <span class=\"c172-flex-spacer\"><\/span>\r\n            <em class=\"c172-hint\">Wheel\/Pinch=Zoom \u00b7 Drag=Box Zoom \u00b7 Double-click=Reset \u00b7 Arrow keys=Pan (Shift=Faster)<\/em>\r\n\r\n            <button type=\"button\" data-action=\"reset\" class=\"c172-btn c172-btn-ghost\">Reset Zoom<\/button>\r\n            <button type=\"button\" data-action=\"png\"   class=\"c172-btn c172-btn-ghost\">Save PNG<\/button>\r\n          <\/div>\r\n\r\n          <div class=\"c172-title\">World Corn Supply and Use (MMT)<\/div>\r\n\r\n          <div class=\"c172-panels\">\r\n            <div class=\"c172-panel c172-panel-top\">\r\n              <div class=\"c172-panel-label\">World Corn Supply (Beginning Stocks + Production) \/ World Corn Total Use (USDA Adjusted)<\/div>\r\n              <canvas id=\"Corn_chart172_t_166\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c172-panel c172-panel-middle\">\r\n              <div class=\"c172-panel-label\">Supply Change Rate (%) \/ Total Use Change Rate (%)<\/div>\r\n              <canvas id=\"Corn_chart172_m_166\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"c172-source-wrap\">\r\n            <a class=\"c172-source-pill\" href=\"https:\/\/www.usda.gov\/\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n              Source: USDA            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <style>\r\n        .c172-wrap{\r\n          overflow-x:auto;\r\n          -webkit-overflow-scrolling:touch;\r\n          padding:16px;\r\n          border-radius:18px;\r\n          background:linear-gradient(135deg,#eef2ff,#e0f2fe);\r\n          box-shadow:0 18px 32px rgba(15,23,42,0.18);\r\n          margin:8px 0;\r\n        }\r\n        .c172-card{\r\n          background:#ffffff;\r\n          border-radius:14px;\r\n          padding:14px 16px 16px;\r\n          box-shadow:0 6px 18px rgba(15,23,42,0.14);\r\n          border:1px solid rgba(129,140,248,0.6);\r\n        }\r\n        .c172-controls{\r\n          display:flex;\r\n          gap:6px;\r\n          align-items:center;\r\n          margin:0 0 8px 0;\r\n          flex-wrap:wrap;\r\n          min-width:640px;\r\n        }\r\n        .c172-title{\r\n          font-weight:800;\r\n          font-size:18px;\r\n          color:#0f172a;\r\n          margin:0 0 10px 0;\r\n        }\r\n        .c172-range-label{\r\n          font:600 13px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#4b5563;\r\n        }\r\n        .c172-flex-spacer{flex:1 1 auto;}\r\n        .c172-btn{\r\n          padding:6px 10px;\r\n          border-radius:999px;\r\n          border:1px solid rgba(129,140,248,0.9);\r\n          background:linear-gradient(135deg,#eff6ff,#eef2ff);\r\n          font:500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          cursor:pointer;\r\n          color:#3730a3;\r\n          box-shadow:0 1px 2px rgba(15,23,42,0.07);\r\n          transition:background .15s ease,box-shadow .15s ease,transform .05s ease;\r\n        }\r\n        .c172-btn:hover{\r\n          background:linear-gradient(135deg,#e0f2fe,#eef2ff);\r\n          box-shadow:0 2px 4px rgba(15,23,42,0.12);\r\n          transform:translateY(-0.5px);\r\n        }\r\n        .c172-btn.is-active{\r\n          background:linear-gradient(135deg,#6366f1,#4f46e5);\r\n          color:#eef2ff;\r\n          border-color:#4338ca;\r\n          box-shadow:0 2px 6px rgba(79,70,229,0.55);\r\n        }\r\n        .c172-btn-ghost{\r\n          background:#ffffff;\r\n          border-color:rgba(209,213,219,0.9);\r\n          color:#374151;\r\n        }\r\n        .c172-hint{\r\n          font-size:12px;\r\n          color:#6b7280;\r\n        }\r\n\r\n        .c172-panels{\r\n          min-width:640px;\r\n          display:flex;\r\n          flex-direction:column;\r\n          gap:10px;\r\n        }\r\n        .c172-panel{\r\n          position:relative;\r\n          background:#ffffff;\r\n          border-radius:12px;\r\n          border:1px solid rgba(148,163,184,0.45);\r\n          overflow:hidden;\r\n        }\r\n        .c172-panel-label{\r\n          position:absolute;\r\n          left:10px;\r\n          top:8px;\r\n          z-index:2;\r\n          font:700 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#111827;\r\n          background:rgba(255,255,255,0.9);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          border-radius:999px;\r\n          padding:3px 10px;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          pointer-events:none;\r\n        }\r\n\r\n        .c172-panel canvas{\r\n          width:100%;\r\n          height:100%;\r\n          display:block;\r\n          user-select:none;\r\n          -webkit-user-select:none;\r\n          -webkit-user-drag:none;\r\n          touch-action:none;\r\n          cursor:crosshair;\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n          -webkit-tap-highlight-color:transparent;\r\n        }\r\n        .c172-panel canvas:focus,\r\n        .c172-panel canvas:focus-visible{\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n        }\r\n\r\n        .c172-panel-top{ height:260px; min-height:260px; }\r\n        .c172-panel-middle{ height:220px; min-height:220px; }\r\n\r\n        .c172-source-wrap{\r\n          display:flex;\r\n          justify-content:flex-end;\r\n          min-width:640px;\r\n          margin-top:8px;\r\n        }\r\n        .c172-source-pill{\r\n          display:inline-block;\r\n          padding:4px 10px;\r\n          border-radius:999px;\r\n          background:rgba(255,255,255,0.96);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          font:11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n          color:#6b7280;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          text-decoration:none;\r\n        }\r\n\r\n        @media (max-width:768px){\r\n          .c172-wrap{padding:10px;}\r\n          .c172-controls{min-width:0;}\r\n          .c172-panels{min-width:0;}\r\n          .c172-source-wrap{min-width:0;}\r\n          .c172-panel-top{ height:220px; min-height:220px; }\r\n          .c172-panel-middle{ height:200px; min-height:200px; }\r\n        }\r\n      <\/style>\r\n\r\n      <script>\r\n        document.addEventListener('DOMContentLoaded', function(){\r\n          try{\r\n            const Zoom = (window['chartjs-plugin-zoom'] && (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])) || null;\r\n            if(Zoom && window.Chart && Chart.register){ Chart.register(Zoom); }\r\n          }catch(e){}\r\n\r\n          const wrap = document.getElementById('c172_wrap_166');\r\n          if(!wrap || !window.Chart) return;\r\n\r\n          const labelsAll     = [\"2011-01-01\",\"2012-01-01\",\"2013-01-01\",\"2014-01-01\",\"2015-01-01\",\"2016-01-01\",\"2017-01-01\",\"2018-01-01\",\"2019-01-01\",\"2020-01-01\",\"2021-01-01\",\"2022-01-01\",\"2023-01-01\",\"2024-01-01\",\"2025-01-01\",\"2026-01-01\"];\r\n          const supplyAll     = [976.64,1015.09,1002.48,1124.33,1190.83,1181.94,1434.89,1432.05,1465.89,1442.54,1436.84,1509.07,1478.43,1536.49,1545.84,1593.26];\r\n          const useAll        = [849.58,882.62,864.7,949.46,981.01,968.01,1084.14,1090.45,1144.82,1136.17,1144.01,1198.29,1173.66,1221.24,1250.02,1300.51];\r\n          const supplyChgAll  = [0.01041828320763094,0.039369675622542566,-0.012422543813848996,0.12154855957226074,0.05914633604013053,-0.007465381288680906,0.21401255562888144,-0.001979245795845075,0.0236304598303132,-0.015928889616547037,-0.00395136356704151,0.05027003702569521,-0.020303895776869085,0.0393,0.006085298309783882,0.030675878486777552];\r\n          const useChgAll     = [0.03292401215805474,0.03888980437392586,-0.020303188235027525,0.09802243552677226,0.03322941461462303,-0.013251648810919336,0.11996776892800698,0.0058202815134575925,0.04986014947957251,-0.007555772959941143,0.006900375824040239,0.04744713769984532,-0.020554289863054742,0.0405,0.02356621139170012,0.04039135373834024];\r\n\r\n          const canvT = document.getElementById('Corn_chart172_t_166');\r\n          const canvM = document.getElementById('Corn_chart172_m_166');\r\n          if(!canvT || !canvM) return;\r\n\r\n          const tsSecAll = labelsAll.map(l=>{\r\n            const t = Date.parse(l);\r\n            return isNaN(t) ? null : Math.floor(t\/1000);\r\n          });\r\n\r\n          const fmt = (n)=>{\r\n            try{\r\n              if(n===null || n===undefined || Number.isNaN(n)) return '';\r\n              return Number(n).toLocaleString(undefined,{minimumFractionDigits:0,maximumFractionDigits:2});\r\n            }catch(e){ return n; }\r\n          };\r\n\r\n          const getYearLabel = (label)=>{\r\n            if(label === null || label === undefined) return '';\r\n            const s = String(label).trim();\r\n            const m = s.match(\/^(\\d{4})\/);\r\n            if (m) return m[1];\r\n\r\n            const d = new Date(s);\r\n            if (!isNaN(d.getTime())) return String(d.getFullYear());\r\n\r\n            return s;\r\n          };\r\n\r\n          const FIX_Y_LEFT  = 56;\r\n          const FIX_Y_RIGHT = 66;\r\n\r\n          const CrosshairX = {\r\n            id:'crosshairX',\r\n            afterEvent(chart,args){\r\n              const e=args.event, a=chart.chartArea;\r\n              if(!a) return;\r\n              if(e.type==='mouseout'){ chart.$crossX=null; chart.draw(); return; }\r\n              if(e.x>=a.left && e.x<=a.right && e.y>=a.top && e.y<=a.bottom){\r\n                chart.$crossX={x:e.x};\r\n              }else{\r\n                chart.$crossX=null;\r\n              }\r\n              chart.draw();\r\n            },\r\n            afterDraw(chart){\r\n              const cross=chart.$crossX; if(!cross) return;\r\n              const {ctx,chartArea:a}=chart;\r\n              ctx.save();\r\n              ctx.strokeStyle='rgba(37,99,235,0.55)';\r\n              ctx.lineWidth=1;\r\n              ctx.setLineDash([4,3]);\r\n              ctx.beginPath();\r\n              ctx.moveTo(cross.x,a.top);\r\n              ctx.lineTo(cross.x,a.bottom);\r\n              ctx.stroke();\r\n              ctx.restore();\r\n            }\r\n          };\r\n\r\n          const makeExternalTooltip = (idSuffix) => (context)=>{\r\n            const { chart, tooltip } = context;\r\n            const area = chart.chartArea; if(!area) return;\r\n\r\n            const tipId = '__c172_exttip_' + idSuffix;\r\n            let tip = document.getElementById(tipId);\r\n            if(!tip){\r\n              tip=document.createElement('div');\r\n              tip.id=tipId;\r\n              tip.style.position='fixed';\r\n              tip.style.left='0';\r\n              tip.style.top='0';\r\n              tip.style.opacity='0';\r\n              tip.style.pointerEvents='none';\r\n              tip.style.zIndex='99999';\r\n              document.body.appendChild(tip);\r\n            }\r\n            if(tooltip.opacity===0){ tip.style.opacity=0; return; }\r\n\r\n            const title = (tooltip.title && tooltip.title[0]) ? getYearLabel(tooltip.title[0]) : '';\r\n            const rows = (tooltip.dataPoints || []).map(dp=>{\r\n              const color = dp.dataset.borderColor || dp.dataset.backgroundColor || '#2563eb';\r\n              const label = dp.dataset.label || '';\r\n              let v=null;\r\n              if(typeof dp.raw==='number'){ v=dp.raw; }\r\n              else if(dp.parsed && typeof dp.parsed.y==='number'){ v=dp.parsed.y; }\r\n              const val=(v===null)?'':fmt(v);\r\n              return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                        <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                          <span style=\"width:10px;height:10px;border-radius:2px;background:${color};\r\n                                       border:1px solid rgba(255,255,255,.9);display:inline-block;\"><\/span>\r\n                          <span>${label}<\/span>\r\n                        <\/span>\r\n                        <span style=\"font-weight:700;\">${val}<\/span>\r\n                      <\/div>`;\r\n            }).join('');\r\n\r\n            tip.innerHTML =\r\n              `<div style=\"box-shadow:0 10px 24px rgba(15,23,42,.25);border:1px solid rgba(148,163,184,.7);\r\n                           background:#ffffff;color:#111827;border-radius:12px;padding:10px 12px;\r\n                           min-width:220px;max-width:420px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n                 <div style=\"color:#0f172a;font-weight:900;margin-bottom:6px;\">${title}<\/div>\r\n                 <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n               <\/div>`;\r\n\r\n            const cr = chart.canvas.getBoundingClientRect();\r\n            const box = tip.firstElementChild;\r\n            const boxW = box ? box.offsetWidth : 260;\r\n            const boxH = box ? box.offsetHeight : 130;\r\n            const pad  = 8;\r\n\r\n            const left  = Math.max(8, cr.left + area.left - boxW - pad);\r\n            const topMin= cr.top + area.top;\r\n            const topMax= cr.top + area.bottom - boxH;\r\n            const rawTop= cr.top + tooltip.caretY - boxH\/2;\r\n            const top   = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n            tip.style.left   = left + 'px';\r\n            tip.style.top    = top  + 'px';\r\n            tip.style.opacity= 1;\r\n          };\r\n\r\n          const yearTickCallback = function(value, index, ticks){\r\n            const year = getYearLabel(this.getLabelForValue(value));\r\n            const prevYear = index > 0\r\n              ? getYearLabel(this.getLabelForValue(ticks[index - 1].value))\r\n              : '';\r\n            return year === prevYear ? '' : year;\r\n          };\r\n\r\n          const buildChartTop = (labels, supply, usev) => {\r\n            const ctx = canvT.getContext('2d');\r\n            const existing = Chart.getChart(canvT); if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    key:'supply',\r\n                    label: \"World Corn Supply (Beginning Stocks + Production)\",\r\n                    data: supply.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.5,\r\n                    pointRadius:0,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#2563eb',\r\n                    backgroundColor:'#2563eb',\r\n                    order:1\r\n                  },\r\n                  {\r\n                    key:'use',\r\n                    label: \"World Corn Total Use (USDA Adjusted)\",\r\n                    data: usev.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.5,\r\n                    pointRadius:0,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#f59e0b',\r\n                    backgroundColor:'#f59e0b',\r\n                    order:2\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip('t'), mode:'index', intersect:false },\r\n                  legend:{\r\n                    display:true,\r\n                    position:'bottom',\r\n                    labels:{\r\n                      color:'#374151',\r\n                      font:{ size:12, weight:'600' },\r\n                      usePointStyle:true,\r\n                      pointStyle:'line'\r\n                    }\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true, mode:'x', threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales:{\r\n                  x:{\r\n                    type:'category',\r\n                    ticks:{\r\n                      autoSkip:true,\r\n                      maxTicksLimit:(window.innerWidth<768?6:10),\r\n                      maxRotation:0, minRotation:0,\r\n                      color:'#4b5563',\r\n                      callback: yearTickCallback\r\n                    },\r\n                    grid:{ color:'rgba(148,163,184,0.20)' }\r\n                  },\r\n                  y:{\r\n                    type:'linear',\r\n                    position:'right',\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n                    ticks:{ color:'#111827', callback:(v)=>fmt(v) },\r\n                    grid:{ color:'rgba(209,213,219,0.55)' }\r\n                  },\r\n                  yL:{\r\n                    type:'linear',\r\n                    position:'left',\r\n                    display:true,\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n                    ticks:{ display:false },\r\n                    grid:{ drawOnChartArea:false, drawBorder:false },\r\n                    border:{ display:false }\r\n                  }\r\n                }\r\n              }\r\n            });\r\n          };\r\n\r\n          const buildChartMiddle = (labels, supplyChg, useChg) => {\r\n            const ctx = canvM.getContext('2d');\r\n            const existing = Chart.getChart(canvM); if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    key:'supply_chg',\r\n                    label: \"Supply Change Rate (%)\",\r\n                    data: supplyChg.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    fill:true,\r\n                    borderWidth:2,\r\n                    pointRadius:0,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#8b5cf6',\r\n                    backgroundColor:'rgba(139,92,246,0.18)',\r\n                    order:1\r\n                  },\r\n                  {\r\n                    key:'use_chg',\r\n                    label: \"Total Use Change Rate (%)\",\r\n                    data: useChg.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    fill:true,\r\n                    borderWidth:2,\r\n                    pointRadius:0,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'rgba(16,185,129,0.95)',\r\n                    backgroundColor:'rgba(16,185,129,0.18)',\r\n                    order:2\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip('m'), mode:'index', intersect:false },\r\n                  legend:{\r\n                    display:true,\r\n                    position:'bottom',\r\n                    labels:{\r\n                      color:'#374151',\r\n                      font:{ size:12, weight:'600' },\r\n                      usePointStyle:true,\r\n                      pointStyle:'line'\r\n                    }\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true, mode:'x', threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales:{\r\n                  x:{\r\n                    type:'category',\r\n                    ticks:{\r\n                      autoSkip:true,\r\n                      maxTicksLimit:(window.innerWidth<768?6:10),\r\n                      maxRotation:0, minRotation:0,\r\n                      color:'#4b5563',\r\n                      callback: yearTickCallback\r\n                    },\r\n                    grid:{ color:'rgba(148,163,184,0.20)' }\r\n                  },\r\n                  y:{\r\n                    type:'linear',\r\n                    position:'right',\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n                    ticks:{ color:'#111827', callback:(v)=>fmt(v) },\r\n                    grid:{ color:'rgba(209,213,219,0.55)' }\r\n                  },\r\n                  yL:{\r\n                    type:'linear',\r\n                    position:'left',\r\n                    display:true,\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n                    ticks:{ display:false },\r\n                    grid:{ drawOnChartArea:false, drawBorder:false },\r\n                    border:{ display:false }\r\n                  }\r\n                }\r\n              }\r\n            });\r\n          };\r\n\r\n          const syncX = (src, others)=>{\r\n            const x = src.scales && src.scales.x;\r\n            if(!x) return;\r\n            const min = x.min;\r\n            const max = x.max;\r\n            others.forEach(ch=>{\r\n              if(!ch || ch === src) return;\r\n              if(!ch.options || !ch.options.scales || !ch.options.scales.x) return;\r\n              ch.options.scales.x.min = min;\r\n              ch.options.scales.x.max = max;\r\n              ch.update('none');\r\n            });\r\n          };\r\n\r\n          let labels    = labelsAll.slice();\r\n          let supply    = supplyAll.slice();\r\n          let usev      = useAll.slice();\r\n          let supplyChg = supplyChgAll.slice();\r\n          let useChg    = useChgAll.slice();\r\n\r\n          let chartT = buildChartTop(labels, supply, usev);\r\n          let chartM = buildChartMiddle(labels, supplyChg, useChg);\r\n\r\n          const attachSyncHooks = (chart, others)=>{\r\n            const z = chart?.options?.plugins?.zoom;\r\n            if(!z) return;\r\n            const oldOnZoom = z.zoom && z.zoom.onZoomComplete;\r\n            const oldOnPan  = z.pan && z.pan.onPanComplete;\r\n\r\n            if(chart.options.plugins.zoom.zoom){\r\n              chart.options.plugins.zoom.zoom.onZoomComplete = ({chart:c})=>{\r\n                try{ syncX(c, others); }catch(e){}\r\n                if(typeof oldOnZoom === 'function') try{ oldOnZoom({chart:c}); }catch(e){}\r\n              };\r\n            }\r\n            if(chart.options.plugins.zoom.pan){\r\n              chart.options.plugins.zoom.pan.onPanComplete = ({chart:c})=>{\r\n                try{ syncX(c, others); }catch(e){}\r\n                if(typeof oldOnPan === 'function') try{ oldOnPan({chart:c}); }catch(e){}\r\n              };\r\n            }\r\n            chart.update('none');\r\n          };\r\n\r\n          attachSyncHooks(chartT, [chartM]);\r\n          attachSyncHooks(chartM, [chartT]);\r\n\r\n          const applyRange = (m)=>{\r\n            let idxKeep = null;\r\n\r\n            if(m !== 'all' && Array.isArray(tsSecAll) && tsSecAll.length){\r\n              const months = parseInt(m,10);\r\n              const validTs = tsSecAll.filter(t=>Number.isInteger(t) && t>0);\r\n              if(validTs.length){\r\n                const latest = Math.max.apply(null, validTs);\r\n                const cutDate = new Date(latest*1000);\r\n                cutDate.setMonth(cutDate.getMonth()-months);\r\n                const cutTs = Math.floor(cutDate.getTime()\/1000);\r\n\r\n                idxKeep = [];\r\n                tsSecAll.forEach((ts,idx)=>{\r\n                  if(Number.isInteger(ts) && ts>=cutTs) idxKeep.push(idx);\r\n                });\r\n              }\r\n            }\r\n\r\n            const sliceByIdx = (arr)=>{\r\n              if(!idxKeep || !idxKeep.length) return arr.slice();\r\n              return idxKeep.map(i => arr[i]);\r\n            };\r\n\r\n            labels    = sliceByIdx(labelsAll);\r\n            supply    = sliceByIdx(supplyAll);\r\n            usev      = sliceByIdx(useAll);\r\n            supplyChg = sliceByIdx(supplyChgAll);\r\n            useChg    = sliceByIdx(useChgAll);\r\n\r\n            [chartT, chartM].forEach(ch=>{\r\n              ch.data.labels = labels;\r\n              ch.options.scales.x.min = undefined;\r\n              ch.options.scales.x.max = undefined;\r\n            });\r\n\r\n            chartT.data.datasets[0].data = supply;\r\n            chartT.data.datasets[1].data = usev;\r\n\r\n            chartM.data.datasets[0].data = supplyChg;\r\n            chartM.data.datasets[1].data = useChg;\r\n\r\n            chartT.update();\r\n            chartM.update();\r\n\r\n            if(chartT.resetZoom) chartT.resetZoom();\r\n            if(chartM.resetZoom) chartM.resetZoom();\r\n\r\n            btns.forEach(b=>b.classList.toggle('is-active', (b.dataset.range === String(m))));\r\n          };\r\n\r\n          const btns = wrap.querySelectorAll('.c172-btn[data-range]');\r\n          const resetBtn = wrap.querySelector('[data-action=\"reset\"]');\r\n          const pngBtn = wrap.querySelector('[data-action=\"png\"]');\r\n\r\n          btns.forEach(b=> b.addEventListener('click', ()=> applyRange(b.dataset.range) ));\r\n\r\n          if(resetBtn){\r\n            resetBtn.addEventListener('click', ()=>{\r\n              if(chartT.resetZoom) chartT.resetZoom();\r\n              if(chartM.resetZoom) chartM.resetZoom();\r\n            });\r\n          }\r\n\r\n          if(pngBtn){\r\n            pngBtn.addEventListener('click', ()=>{\r\n              try{\r\n                const c1 = canvT, c2 = canvM;\r\n                const gap = 10;\r\n\r\n                const w = Math.max(c1.width, c2.width);\r\n                const h = c1.height + c2.height + gap;\r\n\r\n                const out = document.createElement('canvas');\r\n                out.width = w;\r\n                out.height = h;\r\n                const octx = out.getContext('2d');\r\n\r\n                octx.fillStyle = '#ffffff';\r\n                octx.fillRect(0,0,w,h);\r\n\r\n                octx.drawImage(c1, 0, 0);\r\n                octx.drawImage(c2, 0, c1.height + gap);\r\n\r\n                const url = out.toDataURL('image\/png', 1.0);\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = 'corn_chart172_world_supply_use.png';\r\n                a.click();\r\n              }catch(e){}\r\n            });\r\n          }\r\n\r\n          applyRange('all');\r\n\r\n          [canvT, canvM].forEach(cv=>{\r\n            cv.addEventListener('dblclick', ()=>{\r\n              if(chartT.resetZoom) chartT.resetZoom();\r\n              if(chartM.resetZoom) chartM.resetZoom();\r\n            });\r\n            cv.addEventListener('pointerdown', ()=>{\r\n              try{ cv.focus({preventScroll:true}); }catch(e){ try{ cv.focus(); }catch(e2){} }\r\n            }, { passive:true });\r\n          });\r\n\r\n          const panByArrow = (e)=>{\r\n            const k = e.key;\r\n            if(k !== 'ArrowLeft' && k !== 'ArrowRight') return;\r\n            if(!chartT || typeof chartT.pan !== 'function') return;\r\n\r\n            const tag = (e.target && e.target.tagName) ? e.target.tagName.toLowerCase() : '';\r\n            if(tag==='input' || tag==='textarea' || tag==='select' || (e.target && e.target.isContentEditable)) return;\r\n\r\n            const a = chartT.chartArea || null;\r\n            let step = a ? Math.max(24, Math.round(a.width * 0.08)) : 60;\r\n            if(e.shiftKey) step *= 2;\r\n\r\n            const dx = (k === 'ArrowLeft') ? step : -step;\r\n\r\n            e.preventDefault();\r\n            try{\r\n              chartT.pan({ x: dx, y: 0 });\r\n              syncX(chartT, [chartM]);\r\n            }catch(err){}\r\n          };\r\n\r\n          [canvT, canvM].forEach(cv=>{\r\n            cv.addEventListener('keydown', panByArrow);\r\n          });\r\n\r\n          ['mouseleave','scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt=>{\r\n            window.addEventListener(evt, ()=>{\r\n              ['__c172_exttip_t','__c172_exttip_m'].forEach(id=>{\r\n                const t=document.getElementById(id);\r\n                if(t) t.style.opacity=0;\r\n              });\r\n            },{passive:true});\r\n          });\r\n        });\r\n      <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1521658 e-flex e-con-boxed e-con e-parent\" data-id=\"1521658\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4465797 elementor-widget elementor-widget-shortcode\" data-id=\"4465797\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">      <div id=\"c173_wrap_167\" class=\"c173-wrap\">\r\n        <div class=\"c173-card\">\r\n          <div class=\"c173-controls\">\r\n            <strong class=\"c173-range-label\" data-role=\"range-label\">Range:<\/strong>\r\n            <button type=\"button\" class=\"c173-btn is-active\" aria-pressed=\"true\" data-role=\"fixed-range\">1Y<\/button>\r\n\r\n            <span class=\"c173-flex-spacer\"><\/span>\r\n            <em class=\"c173-hint\" data-role=\"hint\">Wheel\/Pinch=Zoom \u00b7 Drag=Box Zoom \u00b7 Arrow keys=Pan \u00b7 Double-click=Reset<\/em>\r\n\r\n            <button type=\"button\" data-action=\"reset\" class=\"c173-btn c173-btn-ghost\">Reset Zoom<\/button>\r\n            <button type=\"button\" data-action=\"png\"   class=\"c173-btn c173-btn-ghost\">Save PNG<\/button>\r\n          <\/div>\r\n\r\n          <div class=\"c173-title\" data-role=\"chart-title\">U.S. Corn Progress by Growth Stage and Crop Conditions<\/div>\r\n\r\n          <div class=\"c173-panels\">\r\n            <div class=\"c173-panel c173-panel-stage\">\r\n              <div class=\"c173-panel-label\" data-series-key=\"planting\">U.S. Corn Planting Progress<\/div>\r\n              <canvas id=\"Corn_chart173_1_167\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c173-panel c173-panel-stage\">\r\n              <div class=\"c173-panel-label\" data-series-key=\"silking\">Silking<\/div>\r\n              <canvas id=\"Corn_chart173_2_167\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c173-panel c173-panel-stage\">\r\n              <div class=\"c173-panel-label\" data-series-key=\"dough\">Dough<\/div>\r\n              <canvas id=\"Corn_chart173_3_167\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c173-panel c173-panel-stage\">\r\n              <div class=\"c173-panel-label\" data-series-key=\"dented\">Dented<\/div>\r\n              <canvas id=\"Corn_chart173_4_167\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c173-panel c173-panel-stage\">\r\n              <div class=\"c173-panel-label\" data-series-key=\"mature\">Mature<\/div>\r\n              <canvas id=\"Corn_chart173_5_167\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c173-panel c173-panel-stage\">\r\n              <div class=\"c173-panel-label\" data-series-key=\"harvested\">Harvested<\/div>\r\n              <canvas id=\"Corn_chart173_6_167\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c173-panel c173-panel-condition\">\r\n              <div class=\"c173-panel-label\" data-series-key=\"condition\">U.S. Corn Crop Conditions Ratio Good to Excellent<\/div>\r\n              <canvas id=\"Corn_chart173_7_167\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"c173-legend-wrap\">\r\n            <strong class=\"c173-legend-title\" data-role=\"legend-title\">Years<\/strong>\r\n            <div class=\"c173-global-legend\" data-role=\"global-legend\"><\/div>\r\n          <\/div>\r\n\r\n          <div class=\"c173-source-wrap\">\r\n            <a class=\"c173-source-pill\" data-role=\"source-pill\" href=\"https:\/\/www.nass.usda.gov\/\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n              Source: USDA NASS            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <style>\r\n        .c173-wrap{\r\n          overflow-x:auto;\r\n          -webkit-overflow-scrolling:touch;\r\n          padding:16px;\r\n          border-radius:18px;\r\n          background:linear-gradient(135deg,#eef2ff,#e0f2fe);\r\n          box-shadow:0 18px 32px rgba(15,23,42,0.18);\r\n          margin:8px 0;\r\n        }\r\n        .c173-card{\r\n          background:#ffffff;\r\n          border-radius:14px;\r\n          padding:14px 16px 16px;\r\n          box-shadow:0 6px 18px rgba(15,23,42,0.14);\r\n          border:1px solid rgba(129,140,248,0.6);\r\n        }\r\n        .c173-controls{\r\n          display:flex;\r\n          gap:6px;\r\n          align-items:center;\r\n          margin:0 0 8px 0;\r\n          flex-wrap:wrap;\r\n          min-width:640px;\r\n        }\r\n        .c173-title{\r\n          font-weight:800;\r\n          font-size:18px;\r\n          color:#0f172a;\r\n          margin:0 0 10px 0;\r\n        }\r\n        .c173-range-label{\r\n          font:600 13px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#4b5563;\r\n        }\r\n        .c173-flex-spacer{flex:1 1 auto;}\r\n        .c173-btn{\r\n          padding:6px 10px;\r\n          border-radius:999px;\r\n          border:1px solid rgba(129,140,248,0.9);\r\n          background:linear-gradient(135deg,#eff6ff,#eef2ff);\r\n          font:500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          cursor:pointer;\r\n          color:#3730a3;\r\n          box-shadow:0 1px 2px rgba(15,23,42,0.07);\r\n          transition:background .15s ease,box-shadow .15s ease,transform .05s ease;\r\n        }\r\n        .c173-btn:hover{\r\n          background:linear-gradient(135deg,#e0f2fe,#eef2ff);\r\n          box-shadow:0 2px 4px rgba(15,23,42,0.12);\r\n          transform:translateY(-0.5px);\r\n        }\r\n        .c173-btn.is-active{\r\n          background:linear-gradient(135deg,#6366f1,#4f46e5);\r\n          color:#eef2ff;\r\n          border-color:#4338ca;\r\n          box-shadow:0 2px 6px rgba(79,70,229,0.55);\r\n        }\r\n        .c173-btn-ghost{\r\n          background:#ffffff;\r\n          border-color:rgba(209,213,219,0.9);\r\n          color:#374151;\r\n        }\r\n        .c173-hint{\r\n          font-size:12px;\r\n          color:#6b7280;\r\n        }\r\n\r\n        .c173-panels{\r\n          min-width:640px;\r\n          display:flex;\r\n          flex-direction:column;\r\n          gap:8px;\r\n        }\r\n        .c173-panel{\r\n          position:relative;\r\n          background:#ffffff;\r\n          border-radius:12px;\r\n          border:1px solid rgba(148,163,184,0.45);\r\n          overflow:hidden;\r\n        }\r\n        .c173-panel-label{\r\n          position:absolute;\r\n          left:10px;\r\n          top:8px;\r\n          z-index:2;\r\n          font:700 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#111827;\r\n          background:rgba(255,255,255,0.9);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          border-radius:999px;\r\n          padding:3px 10px;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          pointer-events:none;\r\n        }\r\n\r\n        .c173-panel canvas{\r\n          width:100%;\r\n          height:100%;\r\n          display:block;\r\n          user-select:none;\r\n          -webkit-user-select:none;\r\n          -webkit-user-drag:none;\r\n          touch-action:none;\r\n          cursor:crosshair;\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n          -webkit-tap-highlight-color:transparent;\r\n        }\r\n        .c173-panel canvas:focus,\r\n        .c173-panel canvas:focus-visible{\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n        }\r\n\r\n        .c173-panel-stage{\r\n          height:150px;\r\n          min-height:150px;\r\n        }\r\n        .c173-panel-condition{\r\n          height:190px;\r\n          min-height:190px;\r\n        }\r\n\r\n        .c173-legend-wrap{\r\n          min-width:640px;\r\n          display:flex;\r\n          flex-wrap:wrap;\r\n          align-items:center;\r\n          gap:8px 14px;\r\n          margin-top:10px;\r\n          padding:10px 12px;\r\n          background:#f8fafc;\r\n          border:1px solid rgba(148,163,184,0.28);\r\n          border-radius:12px;\r\n        }\r\n        .c173-legend-title{\r\n          font:700 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#374151;\r\n        }\r\n        .c173-global-legend{\r\n          display:flex;\r\n          flex-wrap:wrap;\r\n          align-items:center;\r\n          gap:8px 14px;\r\n        }\r\n        .c173-legend-item{\r\n          display:inline-flex;\r\n          align-items:center;\r\n          gap:8px;\r\n          font:600 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#374151;\r\n          white-space:nowrap;\r\n        }\r\n        .c173-legend-swatch{\r\n          display:inline-block;\r\n          width:24px;\r\n          height:0;\r\n          border-top-style:solid;\r\n          border-top-width:2px;\r\n          border-top-color:transparent;\r\n          border-radius:999px;\r\n          flex:0 0 auto;\r\n        }\r\n\r\n        .c173-source-wrap{\r\n          display:flex;\r\n          justify-content:flex-end;\r\n          min-width:640px;\r\n          margin-top:8px;\r\n        }\r\n        .c173-source-pill{\r\n          display:inline-block;\r\n          padding:4px 10px;\r\n          border-radius:999px;\r\n          background:rgba(255,255,255,0.96);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          font:11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n          color:#6b7280;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          text-decoration:none;\r\n        }\r\n\r\n        @media (max-width:768px){\r\n          .c173-wrap{padding:10px;}\r\n          .c173-controls{min-width:0;}\r\n          .c173-panels{min-width:0;}\r\n          .c173-legend-wrap{min-width:0;}\r\n          .c173-source-wrap{min-width:0;}\r\n          .c173-panel-stage{\r\n            height:135px;\r\n            min-height:135px;\r\n          }\r\n          .c173-panel-condition{\r\n            height:170px;\r\n            min-height:170px;\r\n          }\r\n        }\r\n      <\/style>\r\n\r\n      <script>\r\n        document.addEventListener('DOMContentLoaded', function(){\r\n          try{\r\n            const Zoom = (window['chartjs-plugin-zoom'] && (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])) || null;\r\n            if (Zoom && window.Chart && Chart.register) {\r\n              Chart.register(Zoom);\r\n            }\r\n          }catch(e){}\r\n\r\n          const wrap = document.getElementById('c173_wrap_167');\r\n          if (!wrap || !window.Chart) return;\r\n\r\n          const TEXT_MAP = {\"en\":{\"chart_title\":\"U.S. Corn Progress by Growth Stage and Crop Conditions\",\"legend_title\":\"Years\",\"series\":{\"planting\":\"U.S. Corn Planting Progress\",\"silking\":\"Silking\",\"dough\":\"Dough\",\"dented\":\"Dented\",\"mature\":\"Mature\",\"harvested\":\"Harvested\",\"condition\":\"U.S. Corn Crop Conditions Ratio Good to Excellent\"},\"source_text\":\"Source: USDA NASS\",\"hint_zoom\":\"Wheel\\\/Pinch=Zoom \\u00b7 Drag=Box Zoom \\u00b7 Arrow keys=Pan \\u00b7 Double-click=Reset\",\"range_label\":\"Range:\",\"fixed_range\":\"1Y\",\"btn_reset\":\"Reset Zoom\",\"btn_png\":\"Save PNG\"},\"ko\":{\"chart_title\":\"\\ubbf8\\uad6d \\uc625\\uc218\\uc218 \\uc0dd\\uc721 \\ub2e8\\uacc4\\ubcc4 \\uc9c4\\ud589\\ub960 \\ubc0f \\uc791\\ud669\",\"legend_title\":\"\\uc5f0\\ub3c4\",\"series\":{\"planting\":\"\\ubbf8\\uad6d \\uc625\\uc218\\uc218 \\ud30c\\uc885\\ub960\",\"silking\":\"\\ucd9c\\uc218\\uc728(Silking)\",\"dough\":\"\\uc720\\uc219\\ub960(Dough)\",\"dented\":\"\\ud669\\uc219\\ub960(Dented)\",\"mature\":\"\\ub4f1\\uc219\\ub960(Mature)\",\"harvested\":\"\\uc218\\ud655\\ub960(Harvested)\",\"condition\":\"\\ubbf8\\uad6d \\uc625\\uc218\\uc218 \\uc791\\ud669 \\uc591\\ud638\\u00b7\\uc6b0\\uc218 \\ube44\\uc728\"},\"source_text\":\"\\ucd9c\\ucc98: USDA NASS\",\"hint_zoom\":\"\\ud720\\\/\\ud540\\uce58=\\uc90c \\u00b7 \\ub4dc\\ub798\\uadf8=\\ubc15\\uc2a4 \\uc90c \\u00b7 \\ubc29\\ud5a5\\ud0a4=\\uc774\\ub3d9 \\u00b7 \\ub354\\ube14\\ud074\\ub9ad=\\ub9ac\\uc14b\",\"range_label\":\"\\ubc94\\uc704:\",\"fixed_range\":\"1\\ub144\",\"btn_reset\":\"\\ub9ac\\uc14b\",\"btn_png\":\"PNG \\uc800\\uc7a5\"},\"ja\":{\"chart_title\":\"\\u7c73\\u56fd\\u30c8\\u30a6\\u30e2\\u30ed\\u30b3\\u30b7\\u306e\\u751f\\u80b2\\u6bb5\\u968e\\u5225\\u9032\\u6357\\u3068\\u4f5c\\u67c4\",\"legend_title\":\"\\u5e74\",\"series\":{\"planting\":\"\\u7c73\\u56fd\\u30c8\\u30a6\\u30e2\\u30ed\\u30b3\\u30b7\\u64ad\\u7a2e\\u7387\",\"silking\":\"\\u51fa\\u7a42\\u7387\",\"dough\":\"\\u7cca\\u719f\\u7387\",\"dented\":\"\\u9ec4\\u719f\\u7387\",\"mature\":\"\\u6210\\u719f\\u7387\",\"harvested\":\"\\u53ce\\u7a6b\\u7387\",\"condition\":\"\\u7c73\\u56fd\\u30c8\\u30a6\\u30e2\\u30ed\\u30b3\\u30b7\\u4f5c\\u6cc1\\uff08Good to Excellent\\uff09\"},\"source_text\":\"\\u51fa\\u5178: USDA NASS\",\"hint_zoom\":\"\\u30db\\u30a4\\u30fc\\u30eb\\\/\\u30d4\\u30f3\\u30c1=\\u30ba\\u30fc\\u30e0 \\u00b7 \\u30c9\\u30e9\\u30c3\\u30b0=\\u30dc\\u30c3\\u30af\\u30b9\\u30ba\\u30fc\\u30e0 \\u00b7 \\u77e2\\u5370\\u30ad\\u30fc=\\u79fb\\u52d5 \\u00b7 \\u30c0\\u30d6\\u30eb\\u30af\\u30ea\\u30c3\\u30af=\\u30ea\\u30bb\\u30c3\\u30c8\",\"range_label\":\"\\u7bc4\\u56f2:\",\"fixed_range\":\"1\\u5e74\",\"btn_reset\":\"\\u30ba\\u30fc\\u30e0\\u3092\\u30ea\\u30bb\\u30c3\\u30c8\",\"btn_png\":\"PNG\\u4fdd\\u5b58\"},\"es\":{\"chart_title\":\"Progreso del ma\\u00edz de EE. UU. por etapa de crecimiento y condici\\u00f3n del cultivo\",\"legend_title\":\"A\\u00f1os\",\"series\":{\"planting\":\"Progreso de siembra del ma\\u00edz de EE. UU.\",\"silking\":\"Emisi\\u00f3n de sedas\",\"dough\":\"Etapa pastosa\",\"dented\":\"Etapa dentada\",\"mature\":\"Maduro\",\"harvested\":\"Cosechado\",\"condition\":\"Proporci\\u00f3n de condici\\u00f3n buena a excelente del ma\\u00edz de EE. UU.\"},\"source_text\":\"Fuente: USDA NASS\",\"hint_zoom\":\"Rueda\\\/Pinch=Zoom \\u00b7 Arrastrar=Zoom de caja \\u00b7 Flechas=Desplazar \\u00b7 Doble clic=Reiniciar\",\"range_label\":\"Rango:\",\"fixed_range\":\"1A\",\"btn_reset\":\"Restablecer zoom\",\"btn_png\":\"Guardar PNG\"},\"zh\":{\"chart_title\":\"\\u7f8e\\u56fd\\u7389\\u7c73\\u5404\\u751f\\u80b2\\u9636\\u6bb5\\u8fdb\\u5ea6\\u4e0e\\u4f5c\\u51b5\",\"legend_title\":\"\\u5e74\\u4efd\",\"series\":{\"planting\":\"\\u7f8e\\u56fd\\u7389\\u7c73\\u64ad\\u79cd\\u7387\",\"silking\":\"\\u62bd\\u4e1d\\u7387\",\"dough\":\"\\u8721\\u719f\\u7387\",\"dented\":\"\\u51f9\\u7c92\\u7387\",\"mature\":\"\\u6210\\u719f\\u7387\",\"harvested\":\"\\u6536\\u83b7\\u7387\",\"condition\":\"\\u7f8e\\u56fd\\u7389\\u7c73\\u4f5c\\u51b5\\u4f18\\u826f\\u7387\"},\"source_text\":\"\\u6765\\u6e90\\uff1aUSDA NASS\",\"hint_zoom\":\"\\u6eda\\u8f6e\\\/\\u53cc\\u6307=\\u7f29\\u653e \\u00b7 \\u62d6\\u62fd=\\u6846\\u9009\\u7f29\\u653e \\u00b7 \\u65b9\\u5411\\u952e=\\u5e73\\u79fb \\u00b7 \\u53cc\\u51fb=\\u91cd\\u7f6e\",\"range_label\":\"\\u533a\\u95f4:\",\"fixed_range\":\"1\\u5e74\",\"btn_reset\":\"\\u91cd\\u7f6e\\u7f29\\u653e\",\"btn_png\":\"\\u4fdd\\u5b58PNG\"},\"fr\":{\"chart_title\":\"Progression du ma\\u00efs am\\u00e9ricain par stade de croissance et \\u00e9tat des cultures\",\"legend_title\":\"Ann\\u00e9es\",\"series\":{\"planting\":\"Progression des semis de ma\\u00efs aux \\u00c9tats-Unis\",\"silking\":\"Sortie des soies\",\"dough\":\"Stade p\\u00e2teux\",\"dented\":\"Stade dent\\u00e9\",\"mature\":\"Maturit\\u00e9\",\"harvested\":\"R\\u00e9colt\\u00e9\",\"condition\":\"Part du ma\\u00efs en \\u00e9tat bon \\u00e0 excellent\"},\"source_text\":\"Source : USDA NASS\",\"hint_zoom\":\"Molette\\\/Pinch=Zoom \\u00b7 Glisser=Zoom bo\\u00eete \\u00b7 Fl\\u00e8ches=D\\u00e9placer \\u00b7 Double-clic=R\\u00e9initialiser\",\"range_label\":\"P\\u00e9riode :\",\"fixed_range\":\"1A\",\"btn_reset\":\"R\\u00e9initialiser le zoom\",\"btn_png\":\"Enregistrer PNG\"},\"ar\":{\"chart_title\":\"\\u062a\\u0642\\u062f\\u0645 \\u0627\\u0644\\u0630\\u0631\\u0629 \\u0627\\u0644\\u0623\\u0645\\u0631\\u064a\\u0643\\u064a\\u0629 \\u062d\\u0633\\u0628 \\u0645\\u0631\\u0627\\u062d\\u0644 \\u0627\\u0644\\u0646\\u0645\\u0648 \\u0648\\u062d\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0645\\u062d\\u0635\\u0648\\u0644\",\"legend_title\":\"\\u0627\\u0644\\u0633\\u0646\\u0648\\u0627\\u062a\",\"series\":{\"planting\":\"\\u062a\\u0642\\u062f\\u0645 \\u0632\\u0631\\u0627\\u0639\\u0629 \\u0627\\u0644\\u0630\\u0631\\u0629 \\u0627\\u0644\\u0623\\u0645\\u0631\\u064a\\u0643\\u064a\\u0629\",\"silking\":\"\\u0638\\u0647\\u0648\\u0631 \\u0627\\u0644\\u062d\\u0631\\u064a\\u0631\",\"dough\":\"\\u0627\\u0644\\u0637\\u0648\\u0631 \\u0627\\u0644\\u0639\\u062c\\u064a\\u0646\\u064a\",\"dented\":\"\\u0627\\u0644\\u0637\\u0648\\u0631 \\u0627\\u0644\\u0645\\u0633\\u0646\\u0646\",\"mature\":\"\\u0627\\u0644\\u0646\\u0636\\u062c\",\"harvested\":\"\\u0627\\u0644\\u062d\\u0635\\u0627\\u062f\",\"condition\":\"\\u0646\\u0633\\u0628\\u0629 \\u062d\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0630\\u0631\\u0629 \\u0627\\u0644\\u0623\\u0645\\u0631\\u064a\\u0643\\u064a\\u0629 \\u0645\\u0646 \\u062c\\u064a\\u062f\\u0629 \\u0625\\u0644\\u0649 \\u0645\\u0645\\u062a\\u0627\\u0632\\u0629\"},\"source_text\":\"\\u0627\\u0644\\u0645\\u0635\\u062f\\u0631: USDA NASS\",\"hint_zoom\":\"\\u0639\\u062c\\u0644\\u0629\\\/\\u0644\\u0645\\u0633=\\u062a\\u0643\\u0628\\u064a\\u0631 \\u00b7 \\u0633\\u062d\\u0628=\\u062a\\u0643\\u0628\\u064a\\u0631 \\u0635\\u0646\\u062f\\u0648\\u0642 \\u00b7 \\u0627\\u0644\\u0623\\u0633\\u0647\\u0645=\\u062a\\u062d\\u0631\\u064a\\u0643 \\u00b7 \\u0646\\u0642\\u0631\\u062a\\u0627\\u0646=\\u0625\\u0639\\u0627\\u062f\\u0629 \\u0636\\u0628\\u0637\",\"range_label\":\"\\u0627\\u0644\\u0646\\u0637\\u0627\\u0642:\",\"fixed_range\":\"\\u0633\\u0646\\u0629\",\"btn_reset\":\"\\u0625\\u0639\\u0627\\u062f\\u0629 \\u0636\\u0628\\u0637 \\u0627\\u0644\\u062a\\u0643\\u0628\\u064a\\u0631\",\"btn_png\":\"\\u062d\\u0641\\u0638 PNG\"},\"de\":{\"chart_title\":\"US-Mais: Fortschritt nach Wachstumsstadium und Bestandszustand\",\"legend_title\":\"Jahre\",\"series\":{\"planting\":\"Aussaatfortschritt von US-Mais\",\"silking\":\"Seidenbildung\",\"dough\":\"Teigreife\",\"dented\":\"Dentstadium\",\"mature\":\"Reife\",\"harvested\":\"Geerntet\",\"condition\":\"Anteil guter bis exzellenter US-Maisbest\\u00e4nde\"},\"source_text\":\"Quelle: USDA NASS\",\"hint_zoom\":\"Mausrad\\\/Pinch=Zoom \\u00b7 Ziehen=Box-Zoom \\u00b7 Pfeiltasten=Verschieben \\u00b7 Doppelklick=Reset\",\"range_label\":\"Zeitraum:\",\"fixed_range\":\"1J\",\"btn_reset\":\"Zoom zur\\u00fccksetzen\",\"btn_png\":\"PNG speichern\"},\"ru\":{\"chart_title\":\"\\u041a\\u0443\\u043a\\u0443\\u0440\\u0443\\u0437\\u0430 \\u0421\\u0428\\u0410: \\u043f\\u0440\\u043e\\u0433\\u0440\\u0435\\u0441\\u0441 \\u043f\\u043e \\u0441\\u0442\\u0430\\u0434\\u0438\\u044f\\u043c \\u0440\\u043e\\u0441\\u0442\\u0430 \\u0438 \\u0441\\u043e\\u0441\\u0442\\u043e\\u044f\\u043d\\u0438\\u0435 \\u043f\\u043e\\u0441\\u0435\\u0432\\u043e\\u0432\",\"legend_title\":\"\\u0413\\u043e\\u0434\\u044b\",\"series\":{\"planting\":\"\\u0422\\u0435\\u043c\\u043f\\u044b \\u0441\\u0435\\u0432\\u0430 \\u043a\\u0443\\u043a\\u0443\\u0440\\u0443\\u0437\\u044b \\u0432 \\u0421\\u0428\\u0410\",\"silking\":\"\\u0412\\u044b\\u043c\\u0435\\u0442\\u044b\\u0432\\u0430\\u043d\\u0438\\u0435 \\u0440\\u044b\\u043b\\u0435\\u0446\",\"dough\":\"\\u0422\\u0435\\u0441\\u0442\\u043e\\u043e\\u0431\\u0440\\u0430\\u0437\\u043d\\u0430\\u044f \\u0441\\u043f\\u0435\\u043b\\u043e\\u0441\\u0442\\u044c\",\"dented\":\"\\u0417\\u0443\\u0431\\u043e\\u0432\\u0438\\u0434\\u043d\\u0430\\u044f \\u0441\\u0442\\u0430\\u0434\\u0438\\u044f\",\"mature\":\"\\u0421\\u043e\\u0437\\u0440\\u0435\\u0432\\u0430\\u043d\\u0438\\u0435\",\"harvested\":\"\\u0423\\u0431\\u043e\\u0440\\u043a\\u0430\",\"condition\":\"\\u0414\\u043e\\u043b\\u044f \\u043f\\u043e\\u0441\\u0435\\u0432\\u043e\\u0432 \\u043a\\u0443\\u043a\\u0443\\u0440\\u0443\\u0437\\u044b \\u0421\\u0428\\u0410 \\u0432 \\u0445\\u043e\\u0440\\u043e\\u0448\\u0435\\u043c \\u0438 \\u043e\\u0442\\u043b\\u0438\\u0447\\u043d\\u043e\\u043c \\u0441\\u043e\\u0441\\u0442\\u043e\\u044f\\u043d\\u0438\\u0438\"},\"source_text\":\"\\u0418\\u0441\\u0442\\u043e\\u0447\\u043d\\u0438\\u043a: USDA NASS\",\"hint_zoom\":\"\\u041a\\u043e\\u043b\\u0435\\u0441\\u043e\\\/Pinch=\\u0417\\u0443\\u043c \\u00b7 \\u041f\\u0435\\u0440\\u0435\\u0442\\u0430\\u0441\\u043a\\u0438\\u0432\\u0430\\u043d\\u0438\\u0435=\\u0420\\u0430\\u043c\\u043a\\u0430 \\u00b7 \\u0421\\u0442\\u0440\\u0435\\u043b\\u043a\\u0438=\\u041f\\u0430\\u043d\\u043e\\u0440\\u0430\\u043c\\u0430 \\u00b7 \\u0414\\u0432\\u043e\\u0439\\u043d\\u043e\\u0439 \\u043a\\u043b\\u0438\\u043a=\\u0421\\u0431\\u0440\\u043e\\u0441\",\"range_label\":\"\\u041f\\u0435\\u0440\\u0438\\u043e\\u0434:\",\"fixed_range\":\"1\\u0413\",\"btn_reset\":\"\\u0421\\u0431\\u0440\\u043e\\u0441\\u0438\\u0442\\u044c \\u043c\\u0430\\u0441\\u0448\\u0442\\u0430\\u0431\",\"btn_png\":\"\\u0421\\u043e\\u0445\\u0440\\u0430\\u043d\\u0438\\u0442\\u044c PNG\"}};\r\n          const serverLang = \"en\";\r\n\r\n          const detectUiLang = ()=>{\r\n            const candidates = [\r\n              serverLang || '',\r\n              document.documentElement ? document.documentElement.lang : '',\r\n              navigator.language || '',\r\n              Array.isArray(navigator.languages) && navigator.languages.length ? navigator.languages[0] : ''\r\n            ];\r\n\r\n            for (const cand of candidates) {\r\n              const s = String(cand || '').trim().toLowerCase();\r\n              const m = s.match(\/^[a-z]{2}\/);\r\n              if (m && TEXT_MAP[m[0]]) return m[0];\r\n            }\r\n            return 'en';\r\n          };\r\n\r\n          const uiLang = detectUiLang();\r\n          const UI_TXT = TEXT_MAP[uiLang] || TEXT_MAP['en'];\r\n\r\n          const setText = (selector, value)=>{\r\n            if (typeof value !== 'string') return;\r\n            const el = wrap.querySelector(selector);\r\n            if (el) el.textContent = value;\r\n          };\r\n\r\n          const applyUiText = ()=>{\r\n            setText('[data-role=\"range-label\"]', UI_TXT.range_label);\r\n            setText('[data-role=\"fixed-range\"]', UI_TXT.fixed_range);\r\n            setText('[data-role=\"hint\"]', UI_TXT.hint_zoom);\r\n            setText('[data-action=\"reset\"]', UI_TXT.btn_reset);\r\n            setText('[data-action=\"png\"]', UI_TXT.btn_png);\r\n            setText('[data-role=\"chart-title\"]', UI_TXT.chart_title);\r\n            setText('[data-role=\"legend-title\"]', UI_TXT.legend_title);\r\n            setText('[data-role=\"source-pill\"]', UI_TXT.source_text);\r\n\r\n            wrap.querySelectorAll('[data-series-key]').forEach(el=>{\r\n              const key = el.getAttribute('data-series-key');\r\n              if (key && UI_TXT.series && UI_TXT.series[key]) {\r\n                el.textContent = UI_TXT.series[key];\r\n              }\r\n            });\r\n          };\r\n\r\n          applyUiText();\r\n\r\n          const labelsAll = [\"2010-04-11\",\"2010-04-18\",\"2010-04-25\",\"2010-05-02\",\"2010-05-09\",\"2010-05-16\",\"2010-05-23\",\"2010-05-30\",\"2010-06-06\",\"2010-06-13\",\"2010-06-20\",\"2010-06-27\",\"2010-07-04\",\"2010-07-11\",\"2010-07-18\",\"2010-07-25\",\"2010-08-01\",\"2010-08-08\",\"2010-08-15\",\"2010-08-22\",\"2010-08-29\",\"2010-09-05\",\"2010-09-12\",\"2010-09-19\",\"2010-09-26\",\"2010-10-03\",\"2010-10-10\",\"2010-10-17\",\"2010-10-24\",\"2010-10-31\",\"2010-11-07\",\"2011-04-10\",\"2011-04-17\",\"2011-04-24\",\"2011-05-01\",\"2011-05-08\",\"2011-05-15\",\"2011-05-22\",\"2011-05-29\",\"2011-06-05\",\"2011-06-12\",\"2011-06-19\",\"2011-06-26\",\"2011-07-03\",\"2011-07-10\",\"2011-07-17\",\"2011-07-24\",\"2011-07-31\",\"2011-08-07\",\"2011-08-14\",\"2011-08-21\",\"2011-08-28\",\"2011-09-04\",\"2011-09-11\",\"2011-09-18\",\"2011-09-25\",\"2011-10-02\",\"2011-10-09\",\"2011-10-16\",\"2011-10-23\",\"2011-10-30\",\"2011-11-06\",\"2011-11-13\",\"2011-11-20\",\"2012-04-01\",\"2012-04-08\",\"2012-04-15\",\"2012-04-22\",\"2012-04-29\",\"2012-05-06\",\"2012-05-13\",\"2012-05-20\",\"2012-05-27\",\"2012-06-03\",\"2012-06-10\",\"2012-06-17\",\"2012-06-24\",\"2012-07-01\",\"2012-07-08\",\"2012-07-15\",\"2012-07-22\",\"2012-07-29\",\"2012-08-05\",\"2012-08-12\",\"2012-08-19\",\"2012-08-26\",\"2012-09-02\",\"2012-09-09\",\"2012-09-16\",\"2012-09-23\",\"2012-09-30\",\"2012-10-07\",\"2012-10-14\",\"2012-10-21\",\"2012-10-28\",\"2012-11-04\",\"2013-04-14\",\"2013-04-21\",\"2013-04-28\",\"2013-05-05\",\"2013-05-12\",\"2013-05-19\",\"2013-05-26\",\"2013-06-02\",\"2013-06-09\",\"2013-06-16\",\"2013-06-23\",\"2013-06-30\",\"2013-07-07\",\"2013-07-14\",\"2013-07-21\",\"2013-07-28\",\"2013-08-04\",\"2013-08-11\",\"2013-08-18\",\"2013-08-25\",\"2013-09-01\",\"2013-09-08\",\"2013-09-15\",\"2013-09-22\",\"2013-09-29\",\"2013-10-20\",\"2013-10-27\",\"2013-11-03\",\"2013-11-10\",\"2014-04-13\",\"2014-04-20\",\"2014-04-27\",\"2014-05-04\",\"2014-05-11\",\"2014-05-18\",\"2014-05-25\",\"2014-06-01\",\"2014-06-08\",\"2014-06-15\",\"2014-06-22\",\"2014-06-29\",\"2014-07-06\",\"2014-07-13\",\"2014-07-20\",\"2014-07-27\",\"2014-08-03\",\"2014-08-10\",\"2014-08-17\",\"2014-08-24\",\"2014-08-31\",\"2014-09-07\",\"2014-09-14\",\"2014-09-21\",\"2014-09-28\",\"2014-10-05\",\"2014-10-12\",\"2014-10-19\",\"2014-10-26\",\"2014-11-02\",\"2014-11-09\",\"2014-11-16\",\"2014-11-23\",\"2015-04-12\",\"2015-04-19\",\"2015-04-26\",\"2015-05-03\",\"2015-05-10\",\"2015-05-17\",\"2015-05-24\",\"2015-05-31\",\"2015-06-07\",\"2015-06-14\",\"2015-06-21\",\"2015-06-28\",\"2015-07-05\",\"2015-07-12\",\"2015-07-19\",\"2015-07-26\",\"2015-08-02\",\"2015-08-09\",\"2015-08-16\",\"2015-08-23\",\"2015-08-30\",\"2015-09-06\",\"2015-09-13\",\"2015-09-20\",\"2015-09-27\",\"2015-10-04\",\"2015-10-11\",\"2015-10-18\",\"2015-10-25\",\"2015-11-01\",\"2015-11-08\",\"2015-11-15\",\"2016-04-10\",\"2016-04-17\",\"2016-04-24\",\"2016-05-01\",\"2016-05-08\",\"2016-05-15\",\"2016-05-22\",\"2016-05-29\",\"2016-06-05\",\"2016-06-12\",\"2016-06-19\",\"2016-06-26\",\"2016-07-03\",\"2016-07-10\",\"2016-07-17\",\"2016-07-24\",\"2016-07-31\",\"2016-08-07\",\"2016-08-14\",\"2016-08-21\",\"2016-08-28\",\"2016-09-04\",\"2016-09-11\",\"2016-09-18\",\"2016-09-25\",\"2016-10-02\",\"2016-10-09\",\"2016-10-16\",\"2016-10-23\",\"2016-10-30\",\"2016-11-06\",\"2016-11-13\",\"2016-11-20\",\"2017-04-09\",\"2017-04-16\",\"2017-04-23\",\"2017-04-30\",\"2017-05-07\",\"2017-05-14\",\"2017-05-21\",\"2017-05-28\",\"2017-06-04\",\"2017-06-11\",\"2017-06-18\",\"2017-06-25\",\"2017-07-02\",\"2017-07-09\",\"2017-07-16\",\"2017-07-23\",\"2017-07-30\",\"2017-08-06\",\"2017-08-13\",\"2017-08-20\",\"2017-08-27\",\"2017-09-03\",\"2017-09-10\",\"2017-09-17\",\"2017-09-24\",\"2017-10-01\",\"2017-10-08\",\"2017-10-15\",\"2017-10-22\",\"2017-10-29\",\"2017-11-05\",\"2017-11-12\",\"2017-11-19\",\"2017-11-26\",\"2018-04-08\",\"2018-04-15\",\"2018-04-22\",\"2018-04-29\",\"2018-05-06\",\"2018-05-13\",\"2018-05-20\",\"2018-05-27\",\"2018-06-03\",\"2018-06-10\",\"2018-06-17\",\"2018-06-24\",\"2018-07-01\",\"2018-07-08\",\"2018-07-15\",\"2018-07-22\",\"2018-07-29\",\"2018-08-05\",\"2018-08-12\",\"2018-08-19\",\"2018-08-26\",\"2018-09-02\",\"2018-09-09\",\"2018-09-16\",\"2018-09-23\",\"2018-09-30\",\"2018-10-07\",\"2018-10-14\",\"2018-10-21\",\"2018-10-28\",\"2018-11-04\",\"2018-11-11\",\"2018-11-18\",\"2018-11-25\",\"2019-04-07\",\"2019-04-14\",\"2019-04-21\",\"2019-04-28\",\"2019-05-05\",\"2019-05-12\",\"2019-05-19\",\"2019-05-26\",\"2019-06-02\",\"2019-06-09\",\"2019-06-16\",\"2019-06-23\",\"2019-06-30\",\"2019-07-07\",\"2019-07-14\",\"2019-07-21\",\"2019-07-28\",\"2019-08-04\",\"2019-08-11\",\"2019-08-18\",\"2019-08-25\",\"2019-09-01\",\"2019-09-08\",\"2019-09-15\",\"2019-09-22\",\"2019-09-29\",\"2019-10-06\",\"2019-10-13\",\"2019-10-20\",\"2019-10-27\",\"2019-11-03\",\"2019-11-10\",\"2019-11-17\",\"2019-11-24\",\"2019-12-01\",\"2019-12-08\",\"2020-04-12\",\"2020-04-19\",\"2020-04-26\",\"2020-05-03\",\"2020-05-10\",\"2020-05-17\",\"2020-05-24\",\"2020-05-31\",\"2020-06-07\",\"2020-06-14\",\"2020-06-21\",\"2020-06-28\",\"2020-07-05\",\"2020-07-12\",\"2020-07-19\",\"2020-07-26\",\"2020-08-02\",\"2020-08-09\",\"2020-08-16\",\"2020-08-23\",\"2020-08-30\",\"2020-09-06\",\"2020-09-13\",\"2020-09-20\",\"2020-09-27\",\"2020-10-04\",\"2020-10-11\",\"2020-10-18\",\"2020-10-25\",\"2020-11-01\",\"2020-11-08\",\"2020-11-15\",\"2021-04-04\",\"2021-04-11\",\"2021-04-18\",\"2021-04-25\",\"2021-05-02\",\"2021-05-09\",\"2021-05-16\",\"2021-05-23\",\"2021-05-30\",\"2021-06-06\",\"2021-06-13\",\"2021-06-20\",\"2021-06-27\",\"2021-07-04\",\"2021-07-11\",\"2021-07-18\",\"2021-07-25\",\"2021-08-01\",\"2021-08-08\",\"2021-08-15\",\"2021-08-22\",\"2021-08-29\",\"2021-09-05\",\"2021-09-12\",\"2021-09-19\",\"2021-09-26\",\"2021-10-03\",\"2021-10-10\",\"2021-10-17\",\"2021-10-24\",\"2021-10-31\",\"2021-11-07\",\"2021-11-14\",\"2021-11-21\",\"2022-04-03\",\"2022-04-10\",\"2022-04-17\",\"2022-04-24\",\"2022-05-01\",\"2022-05-08\",\"2022-05-15\",\"2022-05-22\",\"2022-05-29\",\"2022-06-05\",\"2022-06-12\",\"2022-06-19\",\"2022-06-26\",\"2022-07-03\",\"2022-07-10\",\"2022-07-17\",\"2022-07-24\",\"2022-07-31\",\"2022-08-07\",\"2022-08-14\",\"2022-08-21\",\"2022-08-28\",\"2022-09-04\",\"2022-09-11\",\"2022-09-18\",\"2022-09-25\",\"2022-10-02\",\"2022-10-09\",\"2022-10-16\",\"2022-10-23\",\"2022-10-30\",\"2022-11-06\",\"2022-11-13\",\"2022-11-20\",\"2023-04-02\",\"2023-04-09\",\"2023-04-16\",\"2023-04-23\",\"2023-04-30\",\"2023-05-07\",\"2023-05-14\",\"2023-05-21\",\"2023-05-28\",\"2023-06-04\",\"2023-06-11\",\"2023-06-18\",\"2023-06-25\",\"2023-07-02\",\"2023-07-09\",\"2023-07-16\",\"2023-07-23\",\"2023-07-30\",\"2023-08-06\",\"2023-08-13\",\"2023-08-20\",\"2023-08-27\",\"2023-09-03\",\"2023-09-10\",\"2023-09-17\",\"2023-09-24\",\"2023-10-01\",\"2023-10-08\",\"2023-10-15\",\"2023-10-22\",\"2023-10-29\",\"2023-11-05\",\"2023-11-12\",\"2023-11-19\",\"2023-11-26\",\"2024-03-31\",\"2024-04-07\",\"2024-04-14\",\"2024-04-21\",\"2024-04-28\",\"2024-05-05\",\"2024-05-12\",\"2024-05-19\",\"2024-05-26\",\"2024-06-02\",\"2024-06-09\",\"2024-06-16\",\"2024-06-23\",\"2024-06-30\",\"2024-07-07\",\"2024-07-14\",\"2024-07-21\",\"2024-07-28\",\"2024-08-04\",\"2024-08-11\",\"2024-08-18\",\"2024-08-25\",\"2024-09-01\",\"2024-09-08\",\"2024-09-15\",\"2024-09-22\",\"2024-09-29\",\"2024-10-06\",\"2024-10-13\",\"2024-10-20\",\"2024-10-27\",\"2024-11-03\",\"2024-11-10\",\"2025-04-06\",\"2025-04-13\",\"2025-04-20\",\"2025-04-27\",\"2025-05-04\",\"2025-05-11\",\"2025-05-18\",\"2025-05-25\",\"2025-06-01\",\"2025-06-08\",\"2025-06-15\",\"2025-06-22\",\"2025-06-29\",\"2025-07-06\",\"2025-07-13\",\"2025-07-20\",\"2025-07-27\",\"2025-08-03\",\"2025-08-10\",\"2025-08-17\",\"2025-08-24\",\"2025-08-31\",\"2025-09-07\",\"2025-09-14\",\"2025-09-21\",\"2025-09-28\",\"2025-11-16\",\"2025-11-23\",\"2026-04-05\",\"2026-04-12\",\"2026-04-19\",\"2026-04-26\",\"2026-05-03\",\"2026-05-10\"];\r\n\r\n          const plantingAll  = [3,19,50,68,81,87,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,7,9,13,40,63,79,86,94,99,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,7,17,28,53,71,87,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,4,5,12,28,71,86,91,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,6,19,29,59,73,88,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,9,19,55,75,85,92,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,13,30,45,64,75,86,94,98,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,6,17,34,47,71,84,91,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,3,5,17,39,62,81,92,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,3,6,15,23,30,49,58,67,83,92,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,7,27,51,67,80,88,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,4,8,17,46,67,80,90,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,2,4,7,14,22,49,72,86,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,3,8,14,26,49,65,81,92,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,3,6,12,27,36,49,70,83,91,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,4,12,24,40,62,78,87,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,5,11,25,38,57];\r\n          const silkingAll   = [null,null,null,null,null,null,null,null,null,null,null,7,19,38,65,84,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6,14,35,65,83,93,98,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,5,10,25,50,71,86,94,98,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,6,16,43,71,86,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,15,34,56,78,90,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,12,27,55,78,90,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6,15,32,56,79,91,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,10,19,40,67,85,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,17,37,63,81,91,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8,17,35,58,78,90,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,4,10,29,59,82,92,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,10,26,56,79,91,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,7,15,37,62,80,90,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,8,22,47,68,84,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,11,24,41,61,77,88,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,8,18,34,56,76,88,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\r\n          const doughAll     = [null,null,null,null,null,null,null,null,null,null,null,null,null,null,8,17,31,52,74,88,94,98,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9,18,32,52,73,88,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,12,22,37,61,78,89,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8,18,32,52,70,84,92,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,17,36,54,70,83,90,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,14,29,50,71,85,92,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,13,30,53,73,85,92,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8,23,42,61,76,86,92,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,18,38,57,73,85,92,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,13,23,39,55,71,81,89,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,9,22,39,59,76,88,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,8,18,38,56,73,85,91,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,6,13,26,45,62,75,86,92,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,7,16,29,47,65,78,88,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,8,17,30,46,60,74,84,90,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,7,14,26,42,58,72,83,90,95,null,null,null,null,null,null,null,null,null,null,null];\r\n          const dentedAll    = [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,7,14,32,54,73,86,93,98,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,7,17,33,53,71,84,92,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6,13,26,42,60,76,86,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,11,23,42,64,81,91,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,11,22,35,53,69,82,90,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9,21,39,60,76,87,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9,21,40,60,76,87,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,7,16,29,44,60,75,86,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,12,26,44,61,75,86,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,7,15,27,41,55,68,79,88,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,11,23,44,63,79,89,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8,22,41,59,74,87,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6,16,31,46,63,77,87,92,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8,18,35,51,67,82,90,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,7,18,30,46,60,74,85,92,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6,14,27,44,58,74,85,91,95,null,null,null,null,null,null,null,null];\r\n          const matureAll    = [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8,17,33,52,69,85,93,98,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9,18,29,46,63,79,89,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6,10,17,26,41,58,76,88,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,9,22,40,63,94,98,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8,15,27,42,60,77,87,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9,20,35,53,71,86,94,98,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9,18,33,53,73,86,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6,12,21,34,51,68,82,90,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,10,22,35,54,72,86,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6,11,18,29,43,58,73,86,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,12,25,41,59,75,87,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,9,21,37,57,74,88,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,8,15,25,40,58,75,87,94,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,9,18,34,54,70,82,89,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,11,19,29,45,61,75,87,94,98,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,7,15,25,41,56,71,null,null,null,null,null,null,null,null];\r\n          const harvestedAll = [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6,11,18,27,37,51,68,83,91,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,10,15,21,33,47,65,78,87,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,6,10,15,26,39,54,69,79,87,91,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,7,12,39,59,73,84,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,7,12,17,24,31,46,65,80,89,94,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,10,18,27,42,59,75,85,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,9,15,24,35,46,61,75,86,93,97,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,7,11,17,22,28,38,54,70,83,90,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,9,16,26,34,39,49,63,76,84,90,94,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,7,11,15,22,30,41,52,66,76,84,89,92,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,8,15,25,41,60,72,82,91,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,10,18,29,41,52,66,74,84,91,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,7,12,20,31,45,61,76,87,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,9,15,23,34,45,59,71,81,88,93,96,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,9,14,21,30,47,65,81,91,95,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,7,11,18,91,96,null,null,null,null,null,null];\r\n          const conditionAll = [null,null,null,null,null,67,71,76,76,77,75,73,71,73,72,72,71,71,69,70,70,69,68,68,66,66,68,null,null,null,null,null,null,null,null,null,null,null,63,67,69,70,68,69,69,66,62,62,60,60,57,54,52,53,51,52,52,53,53,54,null,null,null,null,null,null,null,null,null,null,null,77,72,72,66,63,56,48,40,31,26,24,23,23,23,22,22,22,24,24,25,null,null,null,null,null,null,null,null,null,null,null,null,63,63,64,65,67,68,66,63,63,64,64,61,59,56,54,53,55,55,60,62,null,null,null,null,null,null,null,null,null,76,75,76,74,75,75,76,76,75,73,73,72,73,74,74,74,74,74,74,74,74,74,null,null,null,null,null,null,null,null,null,null,74,74,74,73,71,68,69,69,69,70,70,70,69,69,68,68,68,68,68,68,68,68,null,null,null,null,null,null,null,null,null,null,null,72,75,75,75,75,75,76,76,76,76,74,74,75,75,74,74,74,74,73,73,74,null,null,null,null,null,null,null,null,null,null,null,null,65,68,67,67,67,68,65,64,62,61,60,62,62,62,61,61,61,61,63,64,65,66,66,null,null,null,null,null,null,null,null,null,null,null,79,78,77,78,77,76,75,72,72,72,71,70,68,68,67,68,68,69,69,68,68,68,null,null,null,null,null,null,null,null,null,null,null,null,null,null,59,59,56,56,57,58,57,58,57,57,56,57,58,55,55,57,57,56,55,56,58,58,null,null,null,null,null,null,null,null,null,null,null,70,74,75,71,72,73,71,69,69,72,72,71,69,64,62,61,60,61,61,62,61,61,null,null,null,null,null,null,null,null,null,null,null,null,76,72,68,65,64,64,65,65,64,62,64,62,60,60,59,58,59,59,59,60,60,null,null,null,null,null,null,null,null,null,null,null,null,null,null,73,72,70,67,64,64,64,61,61,58,57,55,54,54,53,52,52,52,54,53,null,null,null,null,null,null,null,null,null,null,null,null,null,69,64,61,55,50,51,55,57,57,55,57,59,58,56,53,52,51,53,53,53,53,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,75,74,72,69,67,68,68,67,68,67,67,67,65,65,64,65,65,64,64,64,null,null,null,null,null,null,null,null,null,null,null,68,69,71,72,70,73,74,74,74,73,73,72,71,71,69,68,67,66,66,null,null,null,null,null,null,null,null];\r\n\r\n          const canvases = {\r\n            planting:  document.getElementById('Corn_chart173_1_167'),\r\n            silking:   document.getElementById('Corn_chart173_2_167'),\r\n            dough:     document.getElementById('Corn_chart173_3_167'),\r\n            dented:    document.getElementById('Corn_chart173_4_167'),\r\n            mature:    document.getElementById('Corn_chart173_5_167'),\r\n            harvested: document.getElementById('Corn_chart173_6_167'),\r\n            condition: document.getElementById('Corn_chart173_7_167')\r\n          };\r\n\r\n          const legendBox = wrap.querySelector('[data-role=\"global-legend\"]');\r\n\r\n          if (Object.values(canvases).some(v => !v)) return;\r\n\r\n          const MAX_OVERLAY_YEARS = 10;\r\n          const ANCHOR_YEAR = 2000;\r\n          const ANCHOR_START = Date.UTC(ANCHOR_YEAR, 0, 1);\r\n          const ANCHOR_END   = Date.UTC(ANCHOR_YEAR, 11, 31);\r\n\r\n          const pad2 = (n)=> String(n).padStart(2, '0');\r\n\r\n          const parseLabelYMD = (label) => {\r\n            const s = String(label || '').trim();\r\n            let m = s.match(\/^(\\d{4})-(\\d{2})-(\\d{2})$\/);\r\n            if (m) {\r\n              return { year:+m[1], month:+m[2], day:+m[3] };\r\n            }\r\n            m = s.match(\/^(\\d{4})[.\\-\/](\\d{1,2})[.\\-\/](\\d{1,2})$\/);\r\n            if (m) {\r\n              return { year:+m[1], month:+m[2], day:+m[3] };\r\n            }\r\n            const d = new Date(s);\r\n            if (!isNaN(d.getTime())) {\r\n              return {\r\n                year: d.getUTCFullYear(),\r\n                month: d.getUTCMonth() + 1,\r\n                day: d.getUTCDate()\r\n              };\r\n            }\r\n            return null;\r\n          };\r\n\r\n          const toMaybeNumber = (v)=>{\r\n            if (v === null || v === undefined || v === '') return null;\r\n            const n = Number(v);\r\n            return Number.isFinite(n) ? n : null;\r\n          };\r\n\r\n          const fmt = (n)=>{\r\n            try{\r\n              if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n              return Number(n).toLocaleString(undefined, {minimumFractionDigits:0, maximumFractionDigits:2});\r\n            }catch(e){ return n; }\r\n          };\r\n\r\n          const fmtPct = (n)=>{\r\n            if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n            return fmt(n) + '%';\r\n          };\r\n\r\n          const formatMonthDay = (ms)=>{\r\n            if (!Number.isFinite(ms)) return '';\r\n            const d = new Date(ms);\r\n            if (isNaN(d.getTime())) return '';\r\n            return `${pad2(d.getUTCMonth()+1)}-${pad2(d.getUTCDate())}`;\r\n          };\r\n\r\n          const records = [];\r\n          for (let i = 0; i < labelsAll.length; i++) {\r\n            const p = parseLabelYMD(labelsAll[i]);\r\n            if (!p) continue;\r\n\r\n            const planting  = toMaybeNumber(plantingAll[i]);\r\n            const silking   = toMaybeNumber(silkingAll[i]);\r\n            const dough     = toMaybeNumber(doughAll[i]);\r\n            const dented    = toMaybeNumber(dentedAll[i]);\r\n            const mature    = toMaybeNumber(matureAll[i]);\r\n            const harvested = toMaybeNumber(harvestedAll[i]);\r\n            const condition = toMaybeNumber(conditionAll[i]);\r\n\r\n            const hasMetricValue = [planting, silking, dough, dented, mature, harvested, condition]\r\n              .some(v => v !== null);\r\n\r\n            if (!hasMetricValue) continue;\r\n\r\n            const x = Date.UTC(ANCHOR_YEAR, p.month - 1, p.day);\r\n\r\n            records.push({\r\n              year: p.year,\r\n              x: x,\r\n              planting,\r\n              silking,\r\n              dough,\r\n              dented,\r\n              mature,\r\n              harvested,\r\n              condition\r\n            });\r\n          }\r\n\r\n          if (!records.length) return;\r\n\r\n          const yearsAvailable = Array.from(new Set(records.map(r => r.year))).sort((a,b)=>a-b);\r\n          const yearsVisible = yearsAvailable.slice(-MAX_OVERLAY_YEARS);\r\n          const latestYear = yearsVisible[yearsVisible.length - 1];\r\n          const visibleYearSet = new Set(yearsVisible);\r\n\r\n          const visibleRecords = records\r\n            .filter(r => visibleYearSet.has(r.year))\r\n            .sort((a,b)=>{\r\n              if (a.year !== b.year) return a.year - b.year;\r\n              return a.x - b.x;\r\n            });\r\n\r\n          const palette = [\r\n            [59,130,246],\r\n            [249,115,22],\r\n            [16,185,129],\r\n            [139,92,246],\r\n            [236,72,153],\r\n            [245,158,11],\r\n            [34,197,94],\r\n            [239,68,68],\r\n            [14,165,233],\r\n            [168,85,247],\r\n            [234,88,12],\r\n            [22,163,74]\r\n          ];\r\n\r\n          const rgba = (rgb, alpha) => `rgba(${rgb[0]},${rgb[1]},${rgb[2]},${alpha})`;\r\n\r\n          const yearStyles = {};\r\n          yearsVisible.forEach((year, idx)=>{\r\n            if (year === latestYear) {\r\n              yearStyles[year] = {\r\n                borderColor: 'rgba(17,24,39,1)',\r\n                legendColor: 'rgba(17,24,39,1)',\r\n                fillColor: 'rgba(17,24,39,0.14)',\r\n                borderWidth: 3.2\r\n              };\r\n            } else {\r\n              const rgb = palette[idx % palette.length];\r\n              yearStyles[year] = {\r\n                borderColor: rgba(rgb, 0.28),\r\n                legendColor: rgba(rgb, 0.68),\r\n                fillColor: rgba(rgb, 0.08),\r\n                borderWidth: 1.8\r\n              };\r\n            }\r\n          });\r\n\r\n          const renderGlobalLegend = ()=>{\r\n            if (!legendBox) return;\r\n            legendBox.innerHTML = '';\r\n\r\n            yearsVisible.forEach((year)=>{\r\n              const style = yearStyles[year];\r\n              const item = document.createElement('span');\r\n              item.className = 'c173-legend-item';\r\n\r\n              const swatch = document.createElement('span');\r\n              swatch.className = 'c173-legend-swatch';\r\n              swatch.style.borderTopColor = style.legendColor || style.borderColor;\r\n              swatch.style.borderTopWidth = (year === latestYear ? '3px' : '2px');\r\n\r\n              const text = document.createElement('span');\r\n              text.className = 'c173-legend-text';\r\n              text.textContent = String(year);\r\n\r\n              item.appendChild(swatch);\r\n              item.appendChild(text);\r\n              legendBox.appendChild(item);\r\n            });\r\n          };\r\n\r\n          renderGlobalLegend();\r\n\r\n          const FIX_Y_LEFT  = 56;\r\n          const FIX_Y_RIGHT = 66;\r\n\r\n          const CrosshairX = {\r\n            id:'crosshairX',\r\n            afterEvent(chart,args){\r\n              const e=args.event, a=chart.chartArea;\r\n              if(!a) return;\r\n              if(e.type==='mouseout'){ chart.$crossX=null; chart.draw(); return; }\r\n              if(e.x>=a.left && e.x<=a.right && e.y>=a.top && e.y<=a.bottom){\r\n                chart.$crossX={x:e.x};\r\n              }else{\r\n                chart.$crossX=null;\r\n              }\r\n              chart.draw();\r\n            },\r\n            afterDraw(chart){\r\n              const cross=chart.$crossX;\r\n              if(!cross) return;\r\n              const {ctx,chartArea:a}=chart;\r\n              ctx.save();\r\n              ctx.strokeStyle='rgba(37,99,235,0.55)';\r\n              ctx.lineWidth=1;\r\n              ctx.setLineDash([4,3]);\r\n              ctx.beginPath();\r\n              ctx.moveTo(cross.x,a.top);\r\n              ctx.lineTo(cross.x,a.bottom);\r\n              ctx.stroke();\r\n              ctx.restore();\r\n            }\r\n          };\r\n\r\n          const makeExternalTooltip = (idSuffix) => (context)=>{\r\n            const { chart, tooltip } = context;\r\n            const area = chart.chartArea;\r\n            if(!area) return;\r\n\r\n            const tipId = '__c173_exttip_' + idSuffix;\r\n            let tip = document.getElementById(tipId);\r\n            if(!tip){\r\n              tip = document.createElement('div');\r\n              tip.id = tipId;\r\n              tip.style.position = 'fixed';\r\n              tip.style.left = '0';\r\n              tip.style.top = '0';\r\n              tip.style.opacity = '0';\r\n              tip.style.pointerEvents = 'none';\r\n              tip.style.zIndex = '99999';\r\n              document.body.appendChild(tip);\r\n            }\r\n\r\n            if(tooltip.opacity === 0){\r\n              tip.style.opacity = 0;\r\n              return;\r\n            }\r\n\r\n            const xVal = tooltip.dataPoints && tooltip.dataPoints[0] && tooltip.dataPoints[0].parsed\r\n              ? tooltip.dataPoints[0].parsed.x\r\n              : null;\r\n            const title = formatMonthDay(xVal);\r\n\r\n            const rows = (tooltip.dataPoints || []).map(dp=>{\r\n              const color = dp.dataset.borderColor || '#2563eb';\r\n              const label = dp.dataset.label || '';\r\n              const v = dp.parsed && typeof dp.parsed.y === 'number' ? dp.parsed.y : null;\r\n              const val = v===null ? '' : fmtPct(v);\r\n              return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                        <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                          <span style=\"width:10px;height:10px;border-radius:2px;background:${color};\r\n                                       border:1px solid rgba(255,255,255,.9);display:inline-block;\"><\/span>\r\n                          <span>${label}<\/span>\r\n                        <\/span>\r\n                        <span style=\"font-weight:700;\">${val}<\/span>\r\n                      <\/div>`;\r\n            }).join('');\r\n\r\n            tip.innerHTML =\r\n              `<div style=\"box-shadow:0 10px 24px rgba(15,23,42,.25);border:1px solid rgba(148,163,184,.7);\r\n                           background:#ffffff;color:#111827;border-radius:12px;padding:10px 12px;\r\n                           min-width:200px;max-width:360px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n                 <div style=\"color:#0f172a;font-weight:900;margin-bottom:6px;\">${title}<\/div>\r\n                 <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n               <\/div>`;\r\n\r\n            const cr = chart.canvas.getBoundingClientRect();\r\n            const box = tip.firstElementChild;\r\n            const boxW = box ? box.offsetWidth : 240;\r\n            const boxH = box ? box.offsetHeight : 140;\r\n            const pad  = 8;\r\n\r\n            const left  = Math.max(8, cr.left + area.left - boxW - pad);\r\n            const topMin = cr.top + area.top;\r\n            const topMax = cr.top + area.bottom - boxH;\r\n            const rawTop = cr.top + tooltip.caretY - boxH \/ 2;\r\n            const top    = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n            tip.style.left    = left + 'px';\r\n            tip.style.top     = top + 'px';\r\n            tip.style.opacity = 1;\r\n          };\r\n\r\n          const makePercentScales = (showXAxis) => ({\r\n            x:{\r\n              type:'linear',\r\n              min: ANCHOR_START,\r\n              max: ANCHOR_END,\r\n              ticks:{\r\n                display: !!showXAxis,\r\n                autoSkip:true,\r\n                maxTicksLimit:(window.innerWidth<768 ? 5 : 8),\r\n                maxRotation:0,\r\n                minRotation:0,\r\n                color:'#4b5563',\r\n                callback:(value)=> showXAxis ? formatMonthDay(Number(value)) : ''\r\n              },\r\n              grid:{ color:'rgba(148,163,184,0.20)' }\r\n            },\r\n            y:{\r\n              type:'linear',\r\n              position:'right',\r\n              min:0,\r\n              max:100,\r\n              afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n              ticks:{\r\n                color:'#111827',\r\n                callback:(v)=>fmtPct(v)\r\n              },\r\n              grid:{ color:'rgba(209,213,219,0.55)' }\r\n            },\r\n            yL:{\r\n              type:'linear',\r\n              position:'left',\r\n              min:0,\r\n              max:100,\r\n              display:true,\r\n              afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n              ticks:{ display:false },\r\n              grid:{ drawOnChartArea:false, drawBorder:false },\r\n              border:{ display:false }\r\n            }\r\n          });\r\n\r\n          const buildDatasetsForMetric = (metricKey, fillLatest)=>{\r\n            return yearsVisible.map((year)=>{\r\n              const style = yearStyles[year];\r\n              const data = visibleRecords\r\n                .filter(r => r.year === year && r[metricKey] !== null)\r\n                .map(r => ({ x: r.x, y: r[metricKey] }))\r\n                .sort((a,b)=>a.x-b.x);\r\n\r\n              if (!data.length) return null;\r\n\r\n              return {\r\n                label: String(year),\r\n                data,\r\n                yAxisID:'y',\r\n                borderWidth: style.borderWidth,\r\n                pointRadius: 0,\r\n                pointHoverRadius: 4,\r\n                pointHitRadius: 10,\r\n                tension: 0.18,\r\n                spanGaps: false,\r\n                borderColor: style.borderColor,\r\n                backgroundColor: (fillLatest && year === latestYear) ? style.fillColor : 'transparent',\r\n                fill: !!(fillLatest && year === latestYear),\r\n                order: year === latestYear ? 999 : 1\r\n              };\r\n            }).filter(Boolean);\r\n          };\r\n\r\n          const buildChart = (canvas, tooltipSuffix, metricKey, showXAxis, fillLatest) => {\r\n            const ctx = canvas.getContext('2d');\r\n            const existing = Chart.getChart(canvas);\r\n            if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                datasets: buildDatasetsForMetric(metricKey, fillLatest)\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'nearest', axis:'x', intersect:false },\r\n                plugins:{\r\n                  tooltip:{\r\n                    enabled:false,\r\n                    external:makeExternalTooltip(tooltipSuffix),\r\n                    mode:'nearest',\r\n                    intersect:false\r\n                  },\r\n                  legend:{\r\n                    display:false\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true,\r\n                        mode:'x',\r\n                        threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales: makePercentScales(showXAxis)\r\n              }\r\n            });\r\n          };\r\n\r\n          const charts = [\r\n            buildChart(canvases.planting,  '1', 'planting',  false, false),\r\n            buildChart(canvases.silking,   '2', 'silking',   false, false),\r\n            buildChart(canvases.dough,     '3', 'dough',     false, false),\r\n            buildChart(canvases.dented,    '4', 'dented',    false, false),\r\n            buildChart(canvases.mature,    '5', 'mature',    false, false),\r\n            buildChart(canvases.harvested, '6', 'harvested', false, false),\r\n            buildChart(canvases.condition, '7', 'condition', true,  false)\r\n          ];\r\n\r\n          const syncX = (src, others)=>{\r\n            const x = src.scales && src.scales.x;\r\n            if(!x) return;\r\n            const min = x.min;\r\n            const max = x.max;\r\n\r\n            others.forEach(ch=>{\r\n              if(!ch || ch === src) return;\r\n              if(!ch.options || !ch.options.scales || !ch.options.scales.x) return;\r\n              ch.options.scales.x.min = min;\r\n              ch.options.scales.x.max = max;\r\n              ch.update('none');\r\n            });\r\n          };\r\n\r\n          const attachSyncHooks = (chart, others)=>{\r\n            const z = chart?.options?.plugins?.zoom;\r\n            if(!z) return;\r\n            const oldOnZoom = z.zoom && z.zoom.onZoomComplete;\r\n            const oldOnPan  = z.pan && z.pan.onPanComplete;\r\n\r\n            if(chart.options.plugins.zoom.zoom){\r\n              chart.options.plugins.zoom.zoom.onZoomComplete = ({chart:c})=>{\r\n                try{ syncX(c, others); }catch(e){}\r\n                if(typeof oldOnZoom === 'function') try{ oldOnZoom({chart:c}); }catch(e){}\r\n              };\r\n            }\r\n            if(chart.options.plugins.zoom.pan){\r\n              chart.options.plugins.zoom.pan.onPanComplete = ({chart:c})=>{\r\n                try{ syncX(c, others); }catch(e){}\r\n                if(typeof oldOnPan === 'function') try{ oldOnPan({chart:c}); }catch(e){}\r\n              };\r\n            }\r\n            chart.update('none');\r\n          };\r\n\r\n          charts.forEach((chart, idx)=>{\r\n            attachSyncHooks(chart, charts.filter((_,i)=>i!==idx));\r\n          });\r\n\r\n          const measureGlobalLegendHeight = (canvasWidth)=>{\r\n            if (!yearsVisible.length) return 0;\r\n            const probeCanvas = document.createElement('canvas');\r\n            const probe = probeCanvas.getContext('2d');\r\n            if (!probe) return 0;\r\n\r\n            const padX = 16;\r\n            const lineW = 24;\r\n            const rowGap = 20;\r\n            const maxRowWidth = canvasWidth - (padX * 2);\r\n\r\n            probe.font = '600 12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif';\r\n\r\n            let rows = 1;\r\n            let used = 0;\r\n\r\n            yearsVisible.forEach((year)=>{\r\n              const textW = probe.measureText(String(year)).width;\r\n              const itemW = lineW + 8 + textW + 16;\r\n              if (used > 0 && used + itemW > maxRowWidth) {\r\n                rows += 1;\r\n                used = 0;\r\n              }\r\n              used += itemW;\r\n            });\r\n\r\n            return 28 + (rows * rowGap) + 8;\r\n          };\r\n\r\n          const drawGlobalLegendToCanvas = (ctx, canvasWidth, startY)=>{\r\n            if (!yearsVisible.length) return 0;\r\n\r\n            const title = (UI_TXT && UI_TXT.legend_title) ? UI_TXT.legend_title : 'Years';\r\n            const padX = 16;\r\n            const lineW = 24;\r\n            const rowGap = 20;\r\n            const maxRowWidth = canvasWidth - (padX * 2);\r\n\r\n            ctx.save();\r\n            ctx.textBaseline = 'middle';\r\n\r\n            ctx.font = '700 12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif';\r\n            ctx.fillStyle = '#374151';\r\n            ctx.fillText(title, padX, startY + 8);\r\n\r\n            ctx.font = '600 12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif';\r\n\r\n            const rows = [];\r\n            let row = [];\r\n            let used = 0;\r\n\r\n            yearsVisible.forEach((year)=>{\r\n              const text = String(year);\r\n              const textW = ctx.measureText(text).width;\r\n              const itemW = lineW + 8 + textW + 16;\r\n\r\n              if (row.length && used + itemW > maxRowWidth) {\r\n                rows.push(row);\r\n                row = [];\r\n                used = 0;\r\n              }\r\n\r\n              row.push({ year, text });\r\n              used += itemW;\r\n            });\r\n\r\n            if (row.length) rows.push(row);\r\n\r\n            let y = startY + 28;\r\n\r\n            rows.forEach((items)=>{\r\n              let x = padX;\r\n\r\n              items.forEach((item)=>{\r\n                const style = yearStyles[item.year];\r\n\r\n                ctx.beginPath();\r\n                ctx.strokeStyle = style.legendColor || style.borderColor;\r\n                ctx.lineWidth = (item.year === latestYear ? 3 : 2);\r\n                ctx.moveTo(x, y);\r\n                ctx.lineTo(x + lineW, y);\r\n                ctx.stroke();\r\n\r\n                x += lineW + 8;\r\n                ctx.fillStyle = '#374151';\r\n                ctx.fillText(item.text, x, y);\r\n                x += ctx.measureText(item.text).width + 16;\r\n              });\r\n\r\n              y += rowGap;\r\n            });\r\n\r\n            ctx.restore();\r\n            return 28 + (rows.length * rowGap);\r\n          };\r\n\r\n          const resetBtn = wrap.querySelector('[data-action=\"reset\"]');\r\n          const pngBtn   = wrap.querySelector('[data-action=\"png\"]');\r\n\r\n          if (resetBtn){\r\n            resetBtn.addEventListener('click', ()=>{\r\n              charts.forEach(ch=>{\r\n                if (ch.resetZoom) ch.resetZoom();\r\n                ch.options.scales.x.min = ANCHOR_START;\r\n                ch.options.scales.x.max = ANCHOR_END;\r\n                ch.update('none');\r\n              });\r\n            });\r\n          }\r\n\r\n          if (pngBtn){\r\n            pngBtn.addEventListener('click', ()=>{\r\n              try{\r\n                const cvs = [\r\n                  canvases.planting,\r\n                  canvases.silking,\r\n                  canvases.dough,\r\n                  canvases.dented,\r\n                  canvases.mature,\r\n                  canvases.harvested,\r\n                  canvases.condition\r\n                ];\r\n\r\n                const gap = 8;\r\n                const w = Math.max.apply(null, cvs.map(c=>c.width));\r\n                const legendH = measureGlobalLegendHeight(w);\r\n                const h = cvs.reduce((sum,c)=>sum + c.height, 0) + gap * (cvs.length - 1) + legendH;\r\n\r\n                const out = document.createElement('canvas');\r\n                out.width = w;\r\n                out.height = h;\r\n                const octx = out.getContext('2d');\r\n\r\n                octx.fillStyle = '#ffffff';\r\n                octx.fillRect(0,0,w,h);\r\n\r\n                let y = 0;\r\n                cvs.forEach((c, idx)=>{\r\n                  octx.drawImage(c, 0, y);\r\n                  y += c.height + (idx < cvs.length - 1 ? gap : 0);\r\n                });\r\n\r\n                if (legendH > 0) {\r\n                  drawGlobalLegendToCanvas(octx, w, y + 8);\r\n                }\r\n\r\n                const url = out.toDataURL('image\/png', 1.0);\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = 'corn_chart173_us_corn_overlay_7panel.png';\r\n                a.click();\r\n              }catch(e){}\r\n            });\r\n          }\r\n\r\n          Object.values(canvases).forEach(cv=>{\r\n            cv.addEventListener('dblclick', ()=>{\r\n              charts.forEach(ch=>{\r\n                if (ch.resetZoom) ch.resetZoom();\r\n                ch.options.scales.x.min = ANCHOR_START;\r\n                ch.options.scales.x.max = ANCHOR_END;\r\n                ch.update('none');\r\n              });\r\n            });\r\n            cv.addEventListener('pointerdown', ()=>{\r\n              try{ cv.focus({preventScroll:true}); }catch(e){ try{ cv.focus(); }catch(e2){} }\r\n            }, { passive:true });\r\n          });\r\n\r\n          const panByArrow = (e)=>{\r\n            const k = e.key;\r\n            if (k !== 'ArrowLeft' && k !== 'ArrowRight') return;\r\n            if (!charts[0] || typeof charts[0].pan !== 'function') return;\r\n\r\n            const tag = (e.target && e.target.tagName) ? e.target.tagName.toLowerCase() : '';\r\n            if (tag==='input' || tag==='textarea' || tag==='select' || (e.target && e.target.isContentEditable)) return;\r\n\r\n            const a = charts[0].chartArea || null;\r\n            let step = a ? Math.max(24, Math.round(a.width * 0.08)) : 60;\r\n            if (e.shiftKey) step *= 2;\r\n\r\n            const dx = (k === 'ArrowLeft') ? step : -step;\r\n\r\n            e.preventDefault();\r\n            try{\r\n              charts[0].pan({ x: dx, y: 0 });\r\n              syncX(charts[0], charts.slice(1));\r\n            }catch(err){}\r\n          };\r\n\r\n          Object.values(canvases).forEach(cv=>{\r\n            cv.addEventListener('keydown', panByArrow);\r\n          });\r\n\r\n          ['mouseleave','scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt=>{\r\n            window.addEventListener(evt, ()=>{\r\n              ['1','2','3','4','5','6','7'].forEach(id=>{\r\n                const t = document.getElementById('__c173_exttip_' + id);\r\n                if (t) t.style.opacity = 0;\r\n              });\r\n            }, {passive:true});\r\n          });\r\n        });\r\n      <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-52087d7 e-con-full e-flex e-con e-child\" data-id=\"52087d7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e3d5182 elementor-widget elementor-widget-text-editor\" data-id=\"e3d5182\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Planted: Share of acreage where seeds have been placed in the ground.<br \/>Silking: Share of acreage where silk-like strands have emerged from the tips of the ears.<br \/>Dough: Share of acreage in the dough stage, when kernels contain a thick, dough-like substance.<br \/>Dented: Share of acreage where all kernels are fully dented, the ear is firm and solid, and most kernels no longer contain milk.<br \/>Mature: Share of acreage considered safe from frost and nearly ready for harvest, with husks opening and no green foliage present.<br \/>Harvested: Share of acreage where the crop has been cut, threshed, or otherwise gathered from the field.<br \/>US &#8211; Corn Crop Conditions Ratio Good to Excellent: Combined share of U.S. corn acreage rated Good or Excellent.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-715d152 e-flex e-con-boxed e-con e-parent\" data-id=\"715d152\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f31b86f elementor-widget elementor-widget-shortcode\" data-id=\"f31b86f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">      <div id=\"c174_wrap_168\" class=\"c174-wrap\">\r\n        <div class=\"c174-card\">\r\n          <div class=\"c174-controls\">\r\n            <strong class=\"c174-range-label\">Range:<\/strong>\r\n            <button type=\"button\" data-range=\"12\"  class=\"c174-btn\">1Y<\/button>\r\n            <button type=\"button\" data-range=\"24\"  class=\"c174-btn\">2Y<\/button>\r\n            <button type=\"button\" data-range=\"60\"  class=\"c174-btn\">5Y<\/button>\r\n            <button type=\"button\" data-range=\"all\" class=\"c174-btn\">ALL<\/button>\r\n\r\n            <span class=\"c174-flex-spacer\"><\/span>\r\n            <em class=\"c174-hint\">Wheel\/Pinch=Zoom \u00b7 Drag=Box Zoom \u00b7 Double-click=Reset \u00b7 Arrow keys=Pan (Shift=Faster)<\/em>\r\n\r\n            <button type=\"button\" data-action=\"reset\" class=\"c174-btn c174-btn-ghost\">Reset Zoom<\/button>\r\n            <button type=\"button\" data-action=\"png\"   class=\"c174-btn c174-btn-ghost\">Save PNG<\/button>\r\n          <\/div>\r\n\r\n          <div class=\"c174-title\">U.S. Corn Ethanol Production \/ Consumption \/ Stocks (Thousand Barrels)<\/div>\r\n\r\n          <div class=\"c174-panels\">\r\n            <div class=\"c174-panel c174-panel-top\">\r\n              <div class=\"c174-panel-label\">Ethanol Production \/ Ethanol Consumption<\/div>\r\n              <canvas id=\"Corn_chart174_top_168\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c174-panel c174-panel-bottom\">\r\n              <div class=\"c174-panel-label\">Ethanol Stocks<\/div>\r\n              <canvas id=\"Corn_chart174_bottom_168\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"c174-source-wrap\">\r\n            <a class=\"c174-source-pill\" href=\"https:\/\/www.eia.gov\/petroleum\/supply\/weekly\/\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n              Source: U.S. Energy Information Administration (EIA) \u2014 Weekly Petroleum Status Report            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <style>\r\n        .c174-wrap{\r\n          overflow-x:auto;\r\n          -webkit-overflow-scrolling:touch;\r\n          padding:16px;\r\n          border-radius:18px;\r\n          background:linear-gradient(135deg,#eef2ff,#e0f2fe);\r\n          box-shadow:0 18px 32px rgba(15,23,42,0.18);\r\n          margin:8px 0;\r\n        }\r\n        .c174-card{\r\n          background:#ffffff;\r\n          border-radius:14px;\r\n          padding:14px 16px 16px;\r\n          box-shadow:0 6px 18px rgba(15,23,42,0.14);\r\n          border:1px solid rgba(129,140,248,0.6);\r\n        }\r\n        .c174-controls{\r\n          display:flex;\r\n          gap:6px;\r\n          align-items:center;\r\n          margin:0 0 8px 0;\r\n          flex-wrap:wrap;\r\n          min-width:640px;\r\n        }\r\n        .c174-title{\r\n          font-weight:800;\r\n          font-size:18px;\r\n          color:#0f172a;\r\n          margin:0 0 10px 0;\r\n        }\r\n        .c174-range-label{\r\n          font:600 13px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#4b5563;\r\n        }\r\n        .c174-flex-spacer{flex:1 1 auto;}\r\n        .c174-btn{\r\n          padding:6px 10px;\r\n          border-radius:999px;\r\n          border:1px solid rgba(129,140,248,0.9);\r\n          background:linear-gradient(135deg,#eff6ff,#eef2ff);\r\n          font:500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          cursor:pointer;\r\n          color:#3730a3;\r\n          box-shadow:0 1px 2px rgba(15,23,42,0.07);\r\n          transition:background .15s ease,box-shadow .15s ease,transform .05s ease;\r\n        }\r\n        .c174-btn:hover{\r\n          background:linear-gradient(135deg,#e0f2fe,#eef2ff);\r\n          box-shadow:0 2px 4px rgba(15,23,42,0.12);\r\n          transform:translateY(-0.5px);\r\n        }\r\n        .c174-btn.is-active{\r\n          background:linear-gradient(135deg,#6366f1,#4f46e5);\r\n          color:#eef2ff;\r\n          border-color:#4338ca;\r\n          box-shadow:0 2px 6px rgba(79,70,229,0.55);\r\n        }\r\n        .c174-btn-ghost{\r\n          background:#ffffff;\r\n          border-color:rgba(209,213,219,0.9);\r\n          color:#374151;\r\n        }\r\n        .c174-hint{\r\n          font-size:12px;\r\n          color:#6b7280;\r\n        }\r\n\r\n        .c174-panels{\r\n          min-width:640px;\r\n          display:flex;\r\n          flex-direction:column;\r\n          gap:10px;\r\n        }\r\n        .c174-panel{\r\n          position:relative;\r\n          background:#ffffff;\r\n          border-radius:12px;\r\n          border:1px solid rgba(148,163,184,0.45);\r\n          overflow:hidden;\r\n        }\r\n        .c174-panel-label{\r\n          position:absolute;\r\n          left:10px;\r\n          top:8px;\r\n          z-index:2;\r\n          font:700 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#111827;\r\n          background:rgba(255,255,255,0.9);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          border-radius:999px;\r\n          padding:3px 10px;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          pointer-events:none;\r\n        }\r\n\r\n        .c174-panel canvas{\r\n          width:100%;\r\n          height:100%;\r\n          display:block;\r\n          user-select:none;\r\n          -webkit-user-select:none;\r\n          -webkit-user-drag:none;\r\n          touch-action:none;\r\n          cursor:crosshair;\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n          -webkit-tap-highlight-color:transparent;\r\n        }\r\n        .c174-panel canvas:focus,\r\n        .c174-panel canvas:focus-visible{\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n        }\r\n\r\n        .c174-panel-top{\r\n          height:260px;\r\n          min-height:260px;\r\n        }\r\n        .c174-panel-bottom{\r\n          height:220px;\r\n          min-height:220px;\r\n        }\r\n\r\n        .c174-source-wrap{\r\n          display:flex;\r\n          justify-content:flex-end;\r\n          min-width:640px;\r\n          margin-top:8px;\r\n        }\r\n        .c174-source-pill{\r\n          display:inline-block;\r\n          padding:4px 10px;\r\n          border-radius:999px;\r\n          background:rgba(255,255,255,0.96);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          font:11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n          color:#6b7280;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          text-decoration:none;\r\n        }\r\n\r\n        @media (max-width:768px){\r\n          .c174-wrap{padding:10px;}\r\n          .c174-controls{min-width:0;}\r\n          .c174-panels{min-width:0;}\r\n          .c174-source-wrap{min-width:0;}\r\n          .c174-panel-top{\r\n            height:220px;\r\n            min-height:220px;\r\n          }\r\n          .c174-panel-bottom{\r\n            height:190px;\r\n            min-height:190px;\r\n          }\r\n        }\r\n      <\/style>\r\n\r\n      <script>\r\n        document.addEventListener('DOMContentLoaded', function(){\r\n          try{\r\n            const Zoom = (window['chartjs-plugin-zoom'] && (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])) || null;\r\n            if (Zoom && window.Chart && Chart.register) {\r\n              Chart.register(Zoom);\r\n            }\r\n          }catch(e){}\r\n\r\n          const wrap = document.getElementById('c174_wrap_168');\r\n          if (!wrap || !window.Chart) return;\r\n\r\n          const labelsAll = [\"2010-05-01\",\"2010-06-01\",\"2010-07-01\",\"2010-08-01\",\"2010-09-01\",\"2010-10-01\",\"2010-11-01\",\"2010-12-01\",\"2011-01-01\",\"2011-02-01\",\"2011-03-01\",\"2011-04-01\",\"2011-05-01\",\"2011-06-01\",\"2011-07-01\",\"2011-08-01\",\"2011-09-01\",\"2011-10-01\",\"2011-11-01\",\"2011-12-01\",\"2012-01-01\",\"2012-02-01\",\"2012-03-01\",\"2012-04-01\",\"2012-05-01\",\"2012-06-01\",\"2012-07-01\",\"2012-08-01\",\"2012-09-01\",\"2012-10-01\",\"2012-11-01\",\"2012-12-01\",\"2013-01-01\",\"2013-02-01\",\"2013-03-01\",\"2013-04-01\",\"2013-05-01\",\"2013-06-01\",\"2013-07-01\",\"2013-08-01\",\"2013-09-01\",\"2013-10-01\",\"2013-11-01\",\"2013-12-01\",\"2014-01-01\",\"2014-02-01\",\"2014-03-01\",\"2014-04-01\",\"2014-05-01\",\"2014-06-01\",\"2014-07-01\",\"2014-08-01\",\"2014-09-01\",\"2014-10-01\",\"2014-11-01\",\"2014-12-01\",\"2015-01-01\",\"2015-02-01\",\"2015-03-01\",\"2015-04-01\",\"2015-05-01\",\"2015-06-01\",\"2015-07-01\",\"2015-08-01\",\"2015-09-01\",\"2015-10-01\",\"2015-11-01\",\"2015-12-01\",\"2016-01-01\",\"2016-02-01\",\"2016-03-01\",\"2016-04-01\",\"2016-05-01\",\"2016-06-01\",\"2016-07-01\",\"2016-08-01\",\"2016-09-01\",\"2016-10-01\",\"2016-11-01\",\"2016-12-01\",\"2017-01-01\",\"2017-02-01\",\"2017-03-01\",\"2017-04-01\",\"2017-05-01\",\"2017-06-01\",\"2017-07-01\",\"2017-08-01\",\"2017-09-01\",\"2017-10-01\",\"2017-11-01\",\"2017-12-01\",\"2018-01-01\",\"2018-02-01\",\"2018-03-01\",\"2018-04-01\",\"2018-05-01\",\"2018-06-01\",\"2018-07-01\",\"2018-08-01\",\"2018-09-01\",\"2018-10-01\",\"2018-11-01\",\"2018-12-01\",\"2019-01-01\",\"2019-02-01\",\"2019-03-01\",\"2019-04-01\",\"2019-05-01\",\"2019-06-01\",\"2019-07-01\",\"2019-08-01\",\"2019-09-01\",\"2019-10-01\",\"2019-11-01\",\"2019-12-01\",\"2020-01-01\",\"2020-02-01\",\"2020-03-01\",\"2020-04-01\",\"2020-05-01\",\"2020-06-01\",\"2020-07-01\",\"2020-08-01\",\"2020-09-01\",\"2020-10-01\",\"2020-11-01\",\"2020-12-01\",\"2021-01-01\",\"2021-02-01\",\"2021-03-01\",\"2021-04-01\",\"2021-05-01\",\"2021-06-01\",\"2021-07-01\",\"2021-08-01\",\"2021-09-01\",\"2021-10-01\",\"2021-11-01\",\"2021-12-01\",\"2022-01-01\",\"2022-02-01\",\"2022-03-01\",\"2022-04-01\",\"2022-05-01\",\"2022-06-01\",\"2022-07-01\",\"2022-08-01\",\"2022-09-01\",\"2022-10-01\",\"2022-11-01\",\"2022-12-01\",\"2023-01-01\",\"2023-02-01\",\"2023-03-01\",\"2023-04-01\",\"2023-05-01\",\"2023-06-01\",\"2023-07-01\",\"2023-08-01\",\"2023-09-01\",\"2023-10-01\",\"2023-11-01\",\"2023-12-01\",\"2024-01-01\",\"2024-02-01\",\"2024-03-01\",\"2024-04-01\",\"2024-05-01\",\"2024-06-01\",\"2024-07-01\",\"2024-08-01\",\"2024-09-01\",\"2024-10-01\",\"2024-11-01\",\"2024-12-01\",\"2025-01-01\",\"2025-02-01\",\"2025-03-01\",\"2025-04-01\",\"2025-05-01\",\"2025-06-01\",\"2025-07-01\",\"2025-08-01\",\"2025-09-01\",\"2025-10-01\",\"2025-11-01\",\"2025-12-01\",\"2026-01-01\"];\r\n          const prodAll   = [26244,25632,26584,26964,26221,27471,27747,28457,28467,25300,28178,26538,27720,27224,27541,27976,26588,28013,28383,29718,29038,26647,27548,26346,27616,26513,25236,26092,24376,24976,24744,25582,24778,22494,25620,25601,27197,26722,26923,26279,25564,27995,27915,29405,28194,25269,28120,27733,28888,28629,29413,28665,27807,28644,28588,30831,29770,26814,29485,27910,29666,29684,30249,29762,28571,29886,29675,31081,30452,28810,30957,28208,30346,30443,31469,31856,30048,31006,30706,32680,32887,29307,32393,29639,31863,30794,31384,32672,30701,32212,32631,32952,32577,29674,32390,30680,32389,31924,33430,33773,30667,32358,31529,31736,31603,28599,30863,30981,32466,31898,32541,31921,29232,30941,31358,33275,33346,30511,29409,17003,21157,25959,28708,28420,27779,29613.685,29914.573,30107.843,28809.069,22895.066,29327.262,28213.149,31224.16,30640.987,31449.422,29086.641,28080.42,32275.787,32383.289,33132.102,32190.667,28303.959,31580.802,28955.992,31255.659,31287.716,31498.308,30520.211,27071.582,31440.486,31579.533,30045.95,31064.147,27979.654,30602.222,29162,30819.791,31089.349,32013.825,31132.404,30103.643,31857.847,31602.912,33529.501,30843.154,31148.977,33129.495,29466.287,31783.485,31303.575,33809.546,33505.953,31219.663,32538.711,33383.125,34184.375,33595.659,30353.546,32682.696,30648.699,32097.719,32317.403,33461.368,33493.59,31505.449,34111.612,33522.349,34934.374,33738.13];\r\n          const stockAll  = [19851,18565,17809,17380,17437,17278,18150,17941,20826,21016,21593,21065,20609,19217,18788,18123,18465,18038,18308,18238,21475,22393,22583,22050,21635,21239,20224,19180,19921,18626,19992,20350,19894,19009,18410,17370,16804,16428,17072,16945,15986,15750,15569,16424,17153,16865,17310,17610,18330,18785,18696,18218,18724,17341,17035,18739,20647,21057,20878,20854,20154,20128,19701,19390,18944,18984,20099,21596,23347,23171,22730,21336,20962,21284,21381,21198,20713,20113,19463,19758,22679,23195,23981,23671,22855,21770,21167,21186,21507,21663,23203,23043,24342,24722,23084,23379,22654,21877,22668,22824,24412,23698,23618,23418,25115,24506,23396,23331,22843,22583,22892,22727,23012,21784,21646,22352,23884,24582,27505,26124,22190,19472,19784,20142,20008,21737.76,23502.487,24663.18,26117.099,24711.957,22868.778,22368.472,22056.734,21980.079,22655.862,21134.858,20235.302,20066.744,20502.772,22035.995,25873.957,26521.413,26700.237,24283.766,23425.856,23384.442,24197.306,23508.838,21540.135,21707.821,23574.755,24244.887,25239.595,26284.267,24966.236,24164.741,23108.151,22314.4,23056.691,21799.776,22159.414,21202.803,21791.411,23498.269,24780.832,26027.289,26740.806,25466.458,22749.858,22654.893,23327.988,23781.692,23462.349,22123.726,22972.978,24418.425,25774.024,27339.28,27378.35,25375.788,24707.538,23605.383,23396.967,22835.887,22740.186,22422.638,23764.867,23530.41,25851.012];\r\n          const consAll   = [26067.295,26576.838,26762.102,26698.481,25240.328,26799.966,25951.83,26955.203,24222.998,23684.754,25598.274,24201.321,26433.409,27082.96,25238.651,27975.849,24501.42,26051.595,25201.759,26790.662,24028.094,23951.29,25767.063,25330.085,27017.664,26312.036,25761.556,27790.081,24334.449,26885.055,24388.986,25145.051,24467.047,22652.114,26049.787,26090.243,27363.375,27228.086,26903.279,26818.704,26335.539,27463.871,26194.053,27091.495,25440.997,24083.713,25690.245,26230.547,27463.892,26895.587,28006.548,27860.322,25954.637,28107.64,26813.227,27547.303,26229.157,24781.006,27613.745,26429.51,28876.717,28219.601,29001.058,29168.017,28030.017,28266.603,27631.105,27817.412,26407.357,26961.597,28786.475,26683.382,29093.498,29076.396,29730.939,30115.498,28218.448,28659.581,28281.664,29802.487,27122.028,25185.725,28584.349,28030.866,29848.146,29833.764,29434.48,30624.345,28622.82,29636.522,29022.055,28937.331,28756.358,24456.109,28512.313,26709.945,30851.666,29116.129,30200.345,31123.234,26765.773,29457.864,28379.703,29012.347,26663.153,26925.466,28319.904,27851.143,30598.591,29818.078,29920.315,29689.496,27710.336,30170.773,29466.511,29334.546,28531.906,26166.895,22828.725,16203.92,23400.408,26976.651,26914.6,26608.68,26393.01,25358.441,26044.474,26497.094,23480.078,22073.248,27761.101,26205.124,29638.596,29049.353,29890.235,28964.646,27376.965,30237.321,28756.93,28576.028,26041.991,24236.642,28708.453,26744.12,29049.141,28968.767,28070.201,29739.613,26896.409,29429.641,28298.896,27707.573,27279.512,24383.67,29103.574,27110.65,29200.681,29227.595,28593.638,30243.056,27245.345,30036.971,28267.816,28115.933,25997.027,26629.07,28429.87,26272.25,30498.57,28204.921,30069.502,29408.316,27633.785,29986.157,27984.838,28059.066,27455.123,25475.688,27973.013,28541.449,28356.083,29276.063,29747.802,29550.567,28059.286,30014.896,27139.106,29912.938,26362.022];\r\n\r\n          const labelProd  = \"Ethanol Production\";\r\n          const labelStock = \"Ethanol Stocks\";\r\n          const labelCons  = \"Ethanol Consumption\";\r\n\r\n          const canvTop    = document.getElementById('Corn_chart174_top_168');\r\n          const canvBottom = document.getElementById('Corn_chart174_bottom_168');\r\n          if (!canvTop || !canvBottom) return;\r\n\r\n          const tsSecAll = labelsAll.map(l=>{\r\n            const s = String(l || '').trim();\r\n            let t = NaN;\r\n            if (\/^\\d{4}-\\d{2}-\\d{2}$\/.test(s)) {\r\n              t = Date.parse(s + 'T00:00:00Z');\r\n            } else {\r\n              t = Date.parse(s);\r\n            }\r\n            return isNaN(t) ? null : Math.floor(t\/1000);\r\n          });\r\n\r\n          const fmt = (n)=>{\r\n            try{\r\n              if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n              return Number(n).toLocaleString(undefined,{minimumFractionDigits:0,maximumFractionDigits:2});\r\n            }catch(e){ return n; }\r\n          };\r\n\r\n          const fmtCompact = (n)=>{\r\n            if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n            const x = Number(n);\r\n            const abs = Math.abs(x);\r\n            if (abs >= 1e9) return (x\/1e9).toFixed(1).replace(\/\\.0$\/,'') + 'B';\r\n            if (abs >= 1e6) return (x\/1e6).toFixed(1).replace(\/\\.0$\/,'') + 'M';\r\n            if (abs >= 1e3) return (x\/1e3).toFixed(0) + 'K';\r\n            return x.toLocaleString();\r\n          };\r\n\r\n          const FIX_Y_LEFT  = 56;\r\n          const FIX_Y_RIGHT = 66;\r\n\r\n          const CrosshairX = {\r\n            id:'crosshairX',\r\n            afterEvent(chart,args){\r\n              const e=args.event, a=chart.chartArea;\r\n              if(!a) return;\r\n              if(e.type==='mouseout'){ chart.$crossX=null; chart.draw(); return; }\r\n              if(e.x>=a.left && e.x<=a.right && e.y>=a.top && e.y<=a.bottom){\r\n                chart.$crossX={x:e.x};\r\n              }else{\r\n                chart.$crossX=null;\r\n              }\r\n              chart.draw();\r\n            },\r\n            afterDraw(chart){\r\n              const cross=chart.$crossX; if(!cross) return;\r\n              const {ctx,chartArea:a}=chart;\r\n              ctx.save();\r\n              ctx.strokeStyle='rgba(37,99,235,0.55)';\r\n              ctx.lineWidth=1;\r\n              ctx.setLineDash([4,3]);\r\n              ctx.beginPath();\r\n              ctx.moveTo(cross.x,a.top);\r\n              ctx.lineTo(cross.x,a.bottom);\r\n              ctx.stroke();\r\n              ctx.restore();\r\n            }\r\n          };\r\n\r\n          const makeExternalTooltip = (idSuffix) => (context)=>{\r\n            const { chart, tooltip } = context;\r\n            const area = chart.chartArea;\r\n            if(!area) return;\r\n\r\n            const tipId = '__c174_exttip_' + idSuffix;\r\n            let tip = document.getElementById(tipId);\r\n            if(!tip){\r\n              tip=document.createElement('div');\r\n              tip.id=tipId;\r\n              tip.style.position='fixed';\r\n              tip.style.left='0';\r\n              tip.style.top='0';\r\n              tip.style.opacity='0';\r\n              tip.style.pointerEvents='none';\r\n              tip.style.zIndex='99999';\r\n              document.body.appendChild(tip);\r\n            }\r\n\r\n            if(tooltip.opacity===0){ tip.style.opacity=0; return; }\r\n\r\n            const title = (tooltip.title && tooltip.title[0]) ? tooltip.title[0] : '';\r\n            const rows = (tooltip.dataPoints || []).map(dp=>{\r\n              const color = dp.dataset.borderColor || dp.dataset.backgroundColor || '#2563eb';\r\n              const label = dp.dataset.label || '';\r\n              let v = null;\r\n              if(typeof dp.raw === 'number'){ v = dp.raw; }\r\n              else if(dp.parsed && typeof dp.parsed.y === 'number'){ v = dp.parsed.y; }\r\n              const val = (v===null) ? '' : fmt(v);\r\n              return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                        <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                          <span style=\"width:10px;height:10px;border-radius:2px;background:${color};\r\n                                       border:1px solid rgba(255,255,255,.9);display:inline-block;\"><\/span>\r\n                          <span>${label}<\/span>\r\n                        <\/span>\r\n                        <span style=\"font-weight:700;\">${val}<\/span>\r\n                      <\/div>`;\r\n            }).join('');\r\n\r\n            tip.innerHTML =\r\n              `<div style=\"box-shadow:0 10px 24px rgba(15,23,42,.25);border:1px solid rgba(148,163,184,.7);\r\n                           background:#ffffff;color:#111827;border-radius:12px;padding:10px 12px;\r\n                           min-width:220px;max-width:360px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n                 <div style=\"color:#0f172a;font-weight:900;margin-bottom:6px;\">${title}<\/div>\r\n                 <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n               <\/div>`;\r\n\r\n            const cr = chart.canvas.getBoundingClientRect();\r\n            const box = tip.firstElementChild;\r\n            const boxW = box ? box.offsetWidth : 240;\r\n            const boxH = box ? box.offsetHeight : 130;\r\n            const pad  = 8;\r\n\r\n            const left   = Math.max(8, cr.left + area.left - boxW - pad);\r\n            const topMin = cr.top + area.top;\r\n            const topMax = cr.top + area.bottom - boxH;\r\n            const rawTop = cr.top + tooltip.caretY - boxH\/2;\r\n            const top    = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n            tip.style.left    = left + 'px';\r\n            tip.style.top     = top  + 'px';\r\n            tip.style.opacity = 1;\r\n          };\r\n\r\n          const makeScales = (showXAxis) => ({\r\n            x:{\r\n              type:'category',\r\n              ticks:{\r\n                display: !!showXAxis,\r\n                autoSkip:true,\r\n                maxTicksLimit:(window.innerWidth<768?6:10),\r\n                maxRotation:0,\r\n                minRotation:0,\r\n                color:'#4b5563'\r\n              },\r\n              grid:{ color:'rgba(148,163,184,0.20)' }\r\n            },\r\n            y:{\r\n              type:'linear',\r\n              position:'right',\r\n              afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n              ticks:{ color:'#111827', callback:(v)=>fmtCompact(v) },\r\n              grid:{ color:'rgba(209,213,219,0.55)' }\r\n            },\r\n            yL:{\r\n              type:'linear',\r\n              position:'left',\r\n              display:true,\r\n              afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n              ticks:{ display:false },\r\n              grid:{ drawOnChartArea:false, drawBorder:false },\r\n              border:{ display:false }\r\n            }\r\n          });\r\n\r\n          const buildChartTop = (labels, prod, cons) => {\r\n            const ctx = canvTop.getContext('2d');\r\n            const existing = Chart.getChart(canvTop);\r\n            if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    key:'prod',\r\n                    label: labelProd,\r\n                    data: prod.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.6,\r\n                    pointRadius:0,\r\n                    pointHoverRadius:4,\r\n                    pointHitRadius:10,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#2563eb',\r\n                    backgroundColor:'#2563eb',\r\n                    order:1\r\n                  },\r\n                  {\r\n                    key:'cons',\r\n                    label: labelCons,\r\n                    data: cons.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.6,\r\n                    pointRadius:0,\r\n                    pointHoverRadius:4,\r\n                    pointHitRadius:10,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#f59e0b',\r\n                    backgroundColor:'#f59e0b',\r\n                    order:2\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip('top'), mode:'index', intersect:false },\r\n                  legend:{\r\n                    display:true,\r\n                    position:'bottom',\r\n                    labels:{\r\n                      color:'#374151',\r\n                      font:{ size:12, weight:'600' },\r\n                      usePointStyle:true,\r\n                      pointStyle:'line'\r\n                    }\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true,\r\n                        mode:'x',\r\n                        threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales: makeScales(false)\r\n              }\r\n            });\r\n          };\r\n\r\n          const buildChartBottom = (labels, stock) => {\r\n            const ctx = canvBottom.getContext('2d');\r\n            const existing = Chart.getChart(canvBottom);\r\n            if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    key:'stock',\r\n                    label: labelStock,\r\n                    data: stock.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    fill:'origin',\r\n                    borderWidth:2.2,\r\n                    pointRadius:0,\r\n                    pointHoverRadius:4,\r\n                    pointHitRadius:10,\r\n                    tension:0.2,\r\n                    spanGaps:true,\r\n                    borderColor:'rgba(16,185,129,0.95)',\r\n                    backgroundColor:'rgba(16,185,129,0.22)',\r\n                    order:1\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip('bottom'), mode:'index', intersect:false },\r\n                  legend:{\r\n                    display:true,\r\n                    position:'bottom',\r\n                    labels:{\r\n                      color:'#374151',\r\n                      font:{ size:12, weight:'600' },\r\n                      usePointStyle:true,\r\n                      pointStyle:'line'\r\n                    }\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true,\r\n                        mode:'x',\r\n                        threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales: makeScales(true)\r\n              }\r\n            });\r\n          };\r\n\r\n          const syncX = (src, others)=>{\r\n            const x = src.scales && src.scales.x;\r\n            if(!x) return;\r\n            const min = x.min;\r\n            const max = x.max;\r\n\r\n            others.forEach(ch=>{\r\n              if(!ch || ch === src) return;\r\n              if(!ch.options || !ch.options.scales || !ch.options.scales.x) return;\r\n              ch.options.scales.x.min = min;\r\n              ch.options.scales.x.max = max;\r\n              ch.update('none');\r\n            });\r\n          };\r\n\r\n          let labels = labelsAll.slice();\r\n          let prod   = prodAll.slice();\r\n          let stock  = stockAll.slice();\r\n          let cons   = consAll.slice();\r\n\r\n          let chartTop    = buildChartTop(labels, prod, cons);\r\n          let chartBottom = buildChartBottom(labels, stock);\r\n\r\n          const attachSyncHooks = (chart, others)=>{\r\n            const z = chart?.options?.plugins?.zoom;\r\n            if(!z) return;\r\n            const oldOnZoom = z.zoom && z.zoom.onZoomComplete;\r\n            const oldOnPan  = z.pan && z.pan.onPanComplete;\r\n\r\n            if(chart.options.plugins.zoom.zoom){\r\n              chart.options.plugins.zoom.zoom.onZoomComplete = ({chart:c})=>{\r\n                try{ syncX(c, others); }catch(e){}\r\n                if(typeof oldOnZoom === 'function') try{ oldOnZoom({chart:c}); }catch(e){}\r\n              };\r\n            }\r\n            if(chart.options.plugins.zoom.pan){\r\n              chart.options.plugins.zoom.pan.onPanComplete = ({chart:c})=>{\r\n                try{ syncX(c, others); }catch(e){}\r\n                if(typeof oldOnPan === 'function') try{ oldOnPan({chart:c}); }catch(e){}\r\n              };\r\n            }\r\n            chart.update('none');\r\n          };\r\n\r\n          attachSyncHooks(chartTop,    [chartBottom]);\r\n          attachSyncHooks(chartBottom, [chartTop]);\r\n\r\n          const applyRange = (m)=>{\r\n            let idxKeep = null;\r\n\r\n            if(m !== 'all' && Array.isArray(tsSecAll) && tsSecAll.length){\r\n              const months = parseInt(m,10);\r\n              const validTs = tsSecAll.filter(t=>Number.isInteger(t) && t>0);\r\n              if(validTs.length){\r\n                const latest = Math.max.apply(null, validTs);\r\n                const cutDate = new Date(latest*1000);\r\n                cutDate.setUTCMonth(cutDate.getUTCMonth() - months);\r\n                const cutTs = Math.floor(cutDate.getTime()\/1000);\r\n\r\n                idxKeep = [];\r\n                tsSecAll.forEach((ts,idx)=>{\r\n                  if(Number.isInteger(ts) && ts >= cutTs) idxKeep.push(idx);\r\n                });\r\n              }\r\n            }\r\n\r\n            const sliceByIdx = (arr)=>{\r\n              if(!idxKeep || !idxKeep.length) return arr.slice();\r\n              return idxKeep.map(i => arr[i]);\r\n            };\r\n\r\n            labels = sliceByIdx(labelsAll);\r\n            prod   = sliceByIdx(prodAll);\r\n            stock  = sliceByIdx(stockAll);\r\n            cons   = sliceByIdx(consAll);\r\n\r\n            [chartTop, chartBottom].forEach(ch=>{\r\n              ch.data.labels = labels;\r\n              ch.options.scales.x.min = undefined;\r\n              ch.options.scales.x.max = undefined;\r\n            });\r\n\r\n            chartTop.data.datasets[0].data = prod;\r\n            chartTop.data.datasets[1].data = cons;\r\n            chartBottom.data.datasets[0].data = stock;\r\n\r\n            chartTop.update();\r\n            chartBottom.update();\r\n\r\n            if(chartTop.resetZoom) chartTop.resetZoom();\r\n            if(chartBottom.resetZoom) chartBottom.resetZoom();\r\n\r\n            btns.forEach(b=>b.classList.toggle('is-active', (b.dataset.range === String(m))));\r\n          };\r\n\r\n          const btns = wrap.querySelectorAll('.c174-btn[data-range]');\r\n          const resetBtn = wrap.querySelector('[data-action=\"reset\"]');\r\n          const pngBtn   = wrap.querySelector('[data-action=\"png\"]');\r\n\r\n          btns.forEach(b => b.addEventListener('click', ()=> applyRange(b.dataset.range)));\r\n\r\n          if(resetBtn){\r\n            resetBtn.addEventListener('click', ()=>{\r\n              if(chartTop.resetZoom) chartTop.resetZoom();\r\n              if(chartBottom.resetZoom) chartBottom.resetZoom();\r\n            });\r\n          }\r\n\r\n          if(pngBtn){\r\n            pngBtn.addEventListener('click', ()=>{\r\n              try{\r\n                const c1 = canvTop;\r\n                const c2 = canvBottom;\r\n                const gap = 10;\r\n\r\n                const w = Math.max(c1.width, c2.width);\r\n                const h = c1.height + c2.height + gap;\r\n\r\n                const out = document.createElement('canvas');\r\n                out.width = w;\r\n                out.height = h;\r\n                const octx = out.getContext('2d');\r\n\r\n                octx.fillStyle = '#ffffff';\r\n                octx.fillRect(0,0,w,h);\r\n\r\n                octx.drawImage(c1, 0, 0);\r\n                octx.drawImage(c2, 0, c1.height + gap);\r\n\r\n                const url = out.toDataURL('image\/png', 1.0);\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = 'corn_chart174_us_corn_ethanol.png';\r\n                a.click();\r\n              }catch(e){}\r\n            });\r\n          }\r\n\r\n          applyRange('24');\r\n\r\n          [canvTop, canvBottom].forEach(cv=>{\r\n            cv.addEventListener('dblclick', ()=>{\r\n              if(chartTop.resetZoom) chartTop.resetZoom();\r\n              if(chartBottom.resetZoom) chartBottom.resetZoom();\r\n            });\r\n            cv.addEventListener('pointerdown', ()=>{\r\n              try{ cv.focus({preventScroll:true}); }catch(e){ try{ cv.focus(); }catch(e2){} }\r\n            }, { passive:true });\r\n          });\r\n\r\n          const panByArrow = (e)=>{\r\n            const k = e.key;\r\n            if(k !== 'ArrowLeft' && k !== 'ArrowRight') return;\r\n            if(!chartTop || typeof chartTop.pan !== 'function') return;\r\n\r\n            const tag = (e.target && e.target.tagName) ? e.target.tagName.toLowerCase() : '';\r\n            if(tag==='input' || tag==='textarea' || tag==='select' || (e.target && e.target.isContentEditable)) return;\r\n\r\n            const a = chartTop.chartArea || null;\r\n            let step = a ? Math.max(24, Math.round(a.width * 0.08)) : 60;\r\n            if(e.shiftKey) step *= 2;\r\n\r\n            const dx = (k === 'ArrowLeft') ? step : -step;\r\n\r\n            e.preventDefault();\r\n            try{\r\n              chartTop.pan({ x: dx, y: 0 });\r\n              syncX(chartTop, [chartBottom]);\r\n            }catch(err){}\r\n          };\r\n\r\n          [canvTop, canvBottom].forEach(cv=>{\r\n            cv.addEventListener('keydown', panByArrow);\r\n          });\r\n\r\n          ['mouseleave','scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt=>{\r\n            window.addEventListener(evt, ()=>{\r\n              ['__c174_exttip_top','__c174_exttip_bottom'].forEach(id=>{\r\n                const t = document.getElementById(id);\r\n                if(t) t.style.opacity = 0;\r\n              });\r\n            }, {passive:true});\r\n          });\r\n        });\r\n      <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-61bfe15 e-con-full e-flex e-con e-child\" data-id=\"61bfe15\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-acf37d9 elementor-widget elementor-widget-text-editor\" data-id=\"acf37d9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Corn ethanol is a biofuel made from corn and used mainly by blending it with gasoline. In the chart, the blue line (production) generally stays above the orange line (consumption), which means corn ethanol supply in the U.S. market has remained relatively stable.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b5d2d0f e-flex e-con-boxed e-con e-parent\" data-id=\"b5d2d0f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-001dd67 elementor-widget elementor-widget-shortcode\" data-id=\"001dd67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">      <div id=\"c175_wrap_169\" class=\"c175-wrap\">\r\n        <div class=\"c175-card\">\r\n          <div class=\"c175-controls\">\r\n            <strong class=\"c175-range-label\">Range:<\/strong>\r\n            <button type=\"button\" data-range=\"12\"  class=\"c175-btn\">1Y<\/button>\r\n            <button type=\"button\" data-range=\"24\"  class=\"c175-btn\">2Y<\/button>\r\n            <button type=\"button\" data-range=\"60\"  class=\"c175-btn\">5Y<\/button>\r\n            <button type=\"button\" data-range=\"all\" class=\"c175-btn\">ALL<\/button>\r\n\r\n            <span class=\"c175-flex-spacer\"><\/span>\r\n            <em class=\"c175-hint\">Wheel\/Pinch=Zoom \u00b7 Drag=Box Zoom \u00b7 Double-click=Reset \u00b7 Arrow keys=Pan (Shift=Faster)<\/em>\r\n\r\n            <button type=\"button\" data-action=\"reset\" class=\"c175-btn c175-btn-ghost\">Reset Zoom<\/button>\r\n            <button type=\"button\" data-action=\"png\"   class=\"c175-btn c175-btn-ghost\">Save PNG<\/button>\r\n          <\/div>\r\n\r\n          <div class=\"c175-title\">U.S. Corn Sales (Thousand Metric Tons)<\/div>\r\n\r\n          <div class=\"c175-panels\">\r\n            <div class=\"c175-panel c175-panel-top\">\r\n              <div class=\"c175-panel-label\">FAS Corn Sales \/ FAS Corn Cancellations<\/div>\r\n              <canvas id=\"Corn_chart175_top_169\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n\r\n            <div class=\"c175-panel c175-panel-bottom\">\r\n              <div class=\"c175-panel-label\">FAS Corn Net Sales<\/div>\r\n              <canvas id=\"Corn_chart175_bottom_169\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"c175-source-wrap\">\r\n            <a class=\"c175-source-pill\" href=\"https:\/\/apps.fas.usda.gov\/export-sales\/\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n              Source: USDA Foreign Agricultural Service (FAS) \u2014 U.S. Export Sales            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <style>\r\n        .c175-wrap{\r\n          overflow-x:auto;\r\n          -webkit-overflow-scrolling:touch;\r\n          padding:16px;\r\n          border-radius:18px;\r\n          background:linear-gradient(135deg,#eef2ff,#e0f2fe);\r\n          box-shadow:0 18px 32px rgba(15,23,42,0.18);\r\n          margin:8px 0;\r\n        }\r\n        .c175-card{\r\n          background:#ffffff;\r\n          border-radius:14px;\r\n          padding:14px 16px 16px;\r\n          box-shadow:0 6px 18px rgba(15,23,42,0.14);\r\n          border:1px solid rgba(129,140,248,0.6);\r\n        }\r\n        .c175-controls{\r\n          display:flex;\r\n          gap:6px;\r\n          align-items:center;\r\n          margin:0 0 8px 0;\r\n          flex-wrap:wrap;\r\n          min-width:640px;\r\n        }\r\n        .c175-title{\r\n          font-weight:800;\r\n          font-size:18px;\r\n          color:#0f172a;\r\n          margin:0 0 10px 0;\r\n        }\r\n        .c175-range-label{\r\n          font:600 13px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#4b5563;\r\n        }\r\n        .c175-flex-spacer{flex:1 1 auto;}\r\n        .c175-btn{\r\n          padding:6px 10px;\r\n          border-radius:999px;\r\n          border:1px solid rgba(129,140,248,0.9);\r\n          background:linear-gradient(135deg,#eff6ff,#eef2ff);\r\n          font:500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          cursor:pointer;\r\n          color:#3730a3;\r\n          box-shadow:0 1px 2px rgba(15,23,42,0.07);\r\n          transition:background .15s ease,box-shadow .15s ease,transform .05s ease;\r\n        }\r\n        .c175-btn:hover{\r\n          background:linear-gradient(135deg,#e0f2fe,#eef2ff);\r\n          box-shadow:0 2px 4px rgba(15,23,42,0.12);\r\n          transform:translateY(-0.5px);\r\n        }\r\n        .c175-btn.is-active{\r\n          background:linear-gradient(135deg,#6366f1,#4f46e5);\r\n          color:#eef2ff;\r\n          border-color:#4338ca;\r\n          box-shadow:0 2px 6px rgba(79,70,229,0.55);\r\n        }\r\n        .c175-btn-ghost{\r\n          background:#ffffff;\r\n          border-color:rgba(209,213,219,0.9);\r\n          color:#374151;\r\n        }\r\n        .c175-hint{\r\n          font-size:12px;\r\n          color:#6b7280;\r\n        }\r\n\r\n        .c175-panels{\r\n          min-width:640px;\r\n          display:flex;\r\n          flex-direction:column;\r\n          gap:10px;\r\n        }\r\n        .c175-panel{\r\n          position:relative;\r\n          background:#ffffff;\r\n          border-radius:12px;\r\n          border:1px solid rgba(148,163,184,0.45);\r\n          overflow:hidden;\r\n        }\r\n        .c175-panel-label{\r\n          position:absolute;\r\n          left:10px;\r\n          top:8px;\r\n          z-index:2;\r\n          font:700 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#111827;\r\n          background:rgba(255,255,255,0.9);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          border-radius:999px;\r\n          padding:3px 10px;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          pointer-events:none;\r\n        }\r\n\r\n        .c175-panel canvas{\r\n          width:100%;\r\n          height:100%;\r\n          display:block;\r\n          user-select:none;\r\n          -webkit-user-select:none;\r\n          -webkit-user-drag:none;\r\n          touch-action:none;\r\n          cursor:crosshair;\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n          -webkit-tap-highlight-color:transparent;\r\n        }\r\n        .c175-panel canvas:focus,\r\n        .c175-panel canvas:focus-visible{\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n        }\r\n\r\n        .c175-panel-top{\r\n          height:260px;\r\n          min-height:260px;\r\n        }\r\n        .c175-panel-bottom{\r\n          height:220px;\r\n          min-height:220px;\r\n        }\r\n\r\n        .c175-source-wrap{\r\n          display:flex;\r\n          justify-content:flex-end;\r\n          min-width:640px;\r\n          margin-top:8px;\r\n        }\r\n        .c175-source-pill{\r\n          display:inline-block;\r\n          padding:4px 10px;\r\n          border-radius:999px;\r\n          background:rgba(255,255,255,0.96);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          font:11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n          color:#6b7280;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          text-decoration:none;\r\n        }\r\n\r\n        @media (max-width:768px){\r\n          .c175-wrap{padding:10px;}\r\n          .c175-controls{min-width:0;}\r\n          .c175-panels{min-width:0;}\r\n          .c175-source-wrap{min-width:0;}\r\n          .c175-panel-top{\r\n            height:220px;\r\n            min-height:220px;\r\n          }\r\n          .c175-panel-bottom{\r\n            height:190px;\r\n            min-height:190px;\r\n          }\r\n        }\r\n      <\/style>\r\n\r\n      <script>\r\n        document.addEventListener('DOMContentLoaded', function(){\r\n          try{\r\n            const Zoom = (window['chartjs-plugin-zoom'] && (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])) || null;\r\n            if (Zoom && window.Chart && Chart.register) {\r\n              Chart.register(Zoom);\r\n            }\r\n          }catch(e){}\r\n\r\n          const wrap = document.getElementById('c175_wrap_169');\r\n          if (!wrap || !window.Chart) return;\r\n\r\n          const labelsAll = [\"2010-04-15\",\"2010-04-22\",\"2010-04-29\",\"2010-05-06\",\"2010-05-13\",\"2010-05-20\",\"2010-05-27\",\"2010-06-03\",\"2010-06-10\",\"2010-06-17\",\"2010-06-24\",\"2010-07-01\",\"2010-07-08\",\"2010-07-15\",\"2010-07-22\",\"2010-07-29\",\"2010-08-05\",\"2010-08-12\",\"2010-08-19\",\"2010-08-26\",\"2010-09-02\",\"2010-09-09\",\"2010-09-16\",\"2010-09-23\",\"2010-09-30\",\"2010-10-07\",\"2010-10-14\",\"2010-10-21\",\"2010-10-28\",\"2010-11-04\",\"2010-11-11\",\"2010-11-18\",\"2010-11-25\",\"2010-12-02\",\"2010-12-09\",\"2010-12-16\",\"2010-12-23\",\"2010-12-30\",\"2011-01-06\",\"2011-01-13\",\"2011-01-20\",\"2011-01-27\",\"2011-02-03\",\"2011-02-10\",\"2011-02-17\",\"2011-02-24\",\"2011-03-03\",\"2011-03-10\",\"2011-03-17\",\"2011-03-24\",\"2011-03-31\",\"2011-04-07\",\"2011-04-14\",\"2011-04-21\",\"2011-04-28\",\"2011-05-05\",\"2011-05-12\",\"2011-05-19\",\"2011-05-26\",\"2011-06-02\",\"2011-06-09\",\"2011-06-16\",\"2011-06-23\",\"2011-06-30\",\"2011-07-07\",\"2011-07-14\",\"2011-07-21\",\"2011-07-28\",\"2011-08-04\",\"2011-08-11\",\"2011-08-18\",\"2011-08-25\",\"2011-09-01\",\"2011-09-08\",\"2011-09-15\",\"2011-09-22\",\"2011-09-29\",\"2011-10-06\",\"2011-10-13\",\"2011-10-20\",\"2011-10-27\",\"2011-11-03\",\"2011-11-10\",\"2011-11-17\",\"2011-11-24\",\"2011-12-01\",\"2011-12-08\",\"2011-12-15\",\"2011-12-22\",\"2011-12-29\",\"2012-01-05\",\"2012-01-12\",\"2012-01-19\",\"2012-01-26\",\"2012-02-02\",\"2012-02-09\",\"2012-02-16\",\"2012-02-23\",\"2012-03-01\",\"2012-03-08\",\"2012-03-15\",\"2012-03-22\",\"2012-03-29\",\"2012-04-05\",\"2012-04-12\",\"2012-04-19\",\"2012-04-26\",\"2012-05-03\",\"2012-05-10\",\"2012-05-17\",\"2012-05-24\",\"2012-05-31\",\"2012-06-07\",\"2012-06-14\",\"2012-06-21\",\"2012-06-28\",\"2012-07-05\",\"2012-07-12\",\"2012-07-19\",\"2012-07-26\",\"2012-08-02\",\"2012-08-09\",\"2012-08-16\",\"2012-08-23\",\"2012-08-30\",\"2012-09-06\",\"2012-09-13\",\"2012-09-20\",\"2012-09-27\",\"2012-10-04\",\"2012-10-11\",\"2012-10-18\",\"2012-10-25\",\"2012-11-01\",\"2012-11-08\",\"2012-11-15\",\"2012-11-22\",\"2012-11-29\",\"2012-12-06\",\"2012-12-13\",\"2012-12-20\",\"2012-12-27\",\"2013-01-03\",\"2013-01-10\",\"2013-01-17\",\"2013-01-24\",\"2013-01-31\",\"2013-02-07\",\"2013-02-14\",\"2013-02-21\",\"2013-02-28\",\"2013-03-07\",\"2013-03-14\",\"2013-03-21\",\"2013-03-28\",\"2013-04-04\",\"2013-04-11\",\"2013-04-18\",\"2013-04-25\",\"2013-05-02\",\"2013-05-09\",\"2013-05-16\",\"2013-05-23\",\"2013-05-30\",\"2013-06-06\",\"2013-06-13\",\"2013-06-20\",\"2013-06-27\",\"2013-07-04\",\"2013-07-11\",\"2013-07-18\",\"2013-07-25\",\"2013-08-01\",\"2013-08-08\",\"2013-08-15\",\"2013-08-22\",\"2013-08-29\",\"2013-09-05\",\"2013-09-12\",\"2013-09-19\",\"2013-09-26\",\"2013-10-03\",\"2013-10-10\",\"2013-10-17\",\"2013-10-24\",\"2013-10-31\",\"2013-11-07\",\"2013-11-14\",\"2013-11-21\",\"2013-11-28\",\"2013-12-05\",\"2013-12-12\",\"2013-12-19\",\"2013-12-26\",\"2014-01-02\",\"2014-01-09\",\"2014-01-16\",\"2014-01-23\",\"2014-01-30\",\"2014-02-06\",\"2014-02-13\",\"2014-02-20\",\"2014-02-27\",\"2014-03-06\",\"2014-03-13\",\"2014-03-20\",\"2014-03-27\",\"2014-04-03\",\"2014-04-10\",\"2014-04-17\",\"2014-04-24\",\"2014-05-01\",\"2014-05-08\",\"2014-05-15\",\"2014-05-22\",\"2014-05-29\",\"2014-06-05\",\"2014-06-12\",\"2014-06-19\",\"2014-06-26\",\"2014-07-03\",\"2014-07-10\",\"2014-07-17\",\"2014-07-24\",\"2014-07-31\",\"2014-08-07\",\"2014-08-14\",\"2014-08-21\",\"2014-08-28\",\"2014-09-04\",\"2014-09-11\",\"2014-09-18\",\"2014-09-25\",\"2014-10-02\",\"2014-10-09\",\"2014-10-16\",\"2014-10-23\",\"2014-10-30\",\"2014-11-06\",\"2014-11-13\",\"2014-11-20\",\"2014-11-27\",\"2014-12-04\",\"2014-12-11\",\"2014-12-18\",\"2014-12-25\",\"2015-01-01\",\"2015-01-08\",\"2015-01-15\",\"2015-01-22\",\"2015-01-29\",\"2015-02-05\",\"2015-02-12\",\"2015-02-19\",\"2015-02-26\",\"2015-03-05\",\"2015-03-12\",\"2015-03-19\",\"2015-03-26\",\"2015-04-02\",\"2015-04-09\",\"2015-04-16\",\"2015-04-23\",\"2015-04-30\",\"2015-05-07\",\"2015-05-14\",\"2015-05-21\",\"2015-05-28\",\"2015-06-04\",\"2015-06-11\",\"2015-06-18\",\"2015-06-25\",\"2015-07-02\",\"2015-07-09\",\"2015-07-16\",\"2015-07-23\",\"2015-07-30\",\"2015-08-06\",\"2015-08-13\",\"2015-08-20\",\"2015-08-27\",\"2015-09-03\",\"2015-09-10\",\"2015-09-17\",\"2015-09-24\",\"2015-10-01\",\"2015-10-08\",\"2015-10-15\",\"2015-10-22\",\"2015-10-29\",\"2015-11-05\",\"2015-11-12\",\"2015-11-19\",\"2015-11-26\",\"2015-12-03\",\"2015-12-10\",\"2015-12-17\",\"2015-12-24\",\"2015-12-31\",\"2016-01-07\",\"2016-01-14\",\"2016-01-21\",\"2016-01-28\",\"2016-02-04\",\"2016-02-11\",\"2016-02-18\",\"2016-02-25\",\"2016-03-03\",\"2016-03-10\",\"2016-03-17\",\"2016-03-24\",\"2016-03-31\",\"2016-04-07\",\"2016-04-14\",\"2016-04-21\",\"2016-04-28\",\"2016-05-05\",\"2016-05-12\",\"2016-05-19\",\"2016-05-26\",\"2016-06-02\",\"2016-06-09\",\"2016-06-16\",\"2016-06-23\",\"2016-06-30\",\"2016-07-07\",\"2016-07-14\",\"2016-07-21\",\"2016-07-28\",\"2016-08-04\",\"2016-08-11\",\"2016-08-18\",\"2016-08-25\",\"2016-09-01\",\"2016-09-08\",\"2016-09-15\",\"2016-09-22\",\"2016-09-29\",\"2016-10-06\",\"2016-10-13\",\"2016-10-20\",\"2016-10-27\",\"2016-11-03\",\"2016-11-10\",\"2016-11-17\",\"2016-11-24\",\"2016-12-01\",\"2016-12-08\",\"2016-12-15\",\"2016-12-22\",\"2016-12-29\",\"2017-01-05\",\"2017-01-12\",\"2017-01-19\",\"2017-01-26\",\"2017-02-02\",\"2017-02-09\",\"2017-02-16\",\"2017-02-23\",\"2017-03-02\",\"2017-03-09\",\"2017-03-16\",\"2017-03-23\",\"2017-03-30\",\"2017-04-06\",\"2017-04-13\",\"2017-04-20\",\"2017-04-27\",\"2017-05-04\",\"2017-05-11\",\"2017-05-18\",\"2017-05-25\",\"2017-06-01\",\"2017-06-08\",\"2017-06-15\",\"2017-06-22\",\"2017-06-29\",\"2017-07-06\",\"2017-07-13\",\"2017-07-20\",\"2017-07-27\",\"2017-08-03\",\"2017-08-10\",\"2017-08-17\",\"2017-08-24\",\"2017-08-31\",\"2017-09-07\",\"2017-09-14\",\"2017-09-21\",\"2017-09-28\",\"2017-10-05\",\"2017-10-12\",\"2017-10-19\",\"2017-10-26\",\"2017-11-02\",\"2017-11-09\",\"2017-11-16\",\"2017-11-23\",\"2017-11-30\",\"2017-12-07\",\"2017-12-14\",\"2017-12-21\",\"2017-12-28\",\"2018-01-04\",\"2018-01-11\",\"2018-01-18\",\"2018-01-25\",\"2018-02-01\",\"2018-02-08\",\"2018-02-15\",\"2018-02-22\",\"2018-03-01\",\"2018-03-08\",\"2018-03-15\",\"2018-03-22\",\"2018-03-29\",\"2018-04-05\",\"2018-04-12\",\"2018-04-19\",\"2018-04-26\",\"2018-05-03\",\"2018-05-10\",\"2018-05-17\",\"2018-05-24\",\"2018-05-31\",\"2018-06-07\",\"2018-06-14\",\"2018-06-21\",\"2018-06-28\",\"2018-07-05\",\"2018-07-12\",\"2018-07-19\",\"2018-07-26\",\"2018-08-02\",\"2018-08-09\",\"2018-08-16\",\"2018-08-23\",\"2018-08-30\",\"2018-09-06\",\"2018-09-13\",\"2018-09-20\",\"2018-09-27\",\"2018-10-04\",\"2018-10-11\",\"2018-10-18\",\"2018-10-25\",\"2018-11-01\",\"2018-11-08\",\"2018-11-15\",\"2018-11-22\",\"2018-11-29\",\"2018-12-06\",\"2018-12-13\",\"2018-12-20\",\"2018-12-27\",\"2019-01-03\",\"2019-01-10\",\"2019-01-17\",\"2019-01-24\",\"2019-01-31\",\"2019-02-07\",\"2019-02-14\",\"2019-02-21\",\"2019-02-28\",\"2019-03-07\",\"2019-03-14\",\"2019-03-21\",\"2019-03-28\",\"2019-04-04\",\"2019-04-11\",\"2019-04-18\",\"2019-04-25\",\"2019-05-02\",\"2019-05-09\",\"2019-05-16\",\"2019-05-23\",\"2019-05-30\",\"2019-06-06\",\"2019-06-13\",\"2019-06-20\",\"2019-06-27\",\"2019-07-04\",\"2019-07-11\",\"2019-07-18\",\"2019-07-25\",\"2019-08-01\",\"2019-08-08\",\"2019-08-15\",\"2019-08-22\",\"2019-08-29\",\"2019-09-05\",\"2019-09-12\",\"2019-09-19\",\"2019-09-26\",\"2019-10-03\",\"2019-10-10\",\"2019-10-17\",\"2019-10-24\",\"2019-10-31\",\"2019-11-07\",\"2019-11-14\",\"2019-11-21\",\"2019-11-28\",\"2019-12-05\",\"2019-12-12\",\"2019-12-19\",\"2019-12-26\",\"2020-01-02\",\"2020-01-09\",\"2020-01-16\",\"2020-01-23\",\"2020-01-30\",\"2020-02-06\",\"2020-02-13\",\"2020-02-20\",\"2020-02-27\",\"2020-03-05\",\"2020-03-12\",\"2020-03-19\",\"2020-03-26\",\"2020-04-02\",\"2020-04-09\",\"2020-04-16\",\"2020-04-23\",\"2020-04-30\",\"2020-05-07\",\"2020-05-14\",\"2020-05-21\",\"2020-05-28\",\"2020-06-04\",\"2020-06-11\",\"2020-06-18\",\"2020-06-25\",\"2020-07-02\",\"2020-07-09\",\"2020-07-16\",\"2020-07-23\",\"2020-07-30\",\"2020-08-06\",\"2020-08-13\",\"2020-08-20\",\"2020-08-27\",\"2020-09-03\",\"2020-09-10\",\"2020-09-17\",\"2020-09-24\",\"2020-10-01\",\"2020-10-08\",\"2020-10-15\",\"2020-10-22\",\"2020-10-29\",\"2020-11-05\",\"2020-11-12\",\"2020-11-19\",\"2020-11-26\",\"2020-12-03\",\"2020-12-10\",\"2020-12-17\",\"2020-12-24\",\"2020-12-31\",\"2021-01-07\",\"2021-01-14\",\"2021-01-21\",\"2021-01-28\",\"2021-02-04\",\"2021-02-11\",\"2021-02-18\",\"2021-02-25\",\"2021-03-04\",\"2021-03-11\",\"2021-03-18\",\"2021-03-25\",\"2021-04-01\",\"2021-04-08\",\"2021-04-15\",\"2021-04-22\",\"2021-04-29\",\"2021-05-06\",\"2021-05-13\",\"2021-05-20\",\"2021-05-27\",\"2021-06-03\",\"2021-06-10\",\"2021-06-17\",\"2021-06-24\",\"2021-07-01\",\"2021-07-08\",\"2021-07-15\",\"2021-07-22\",\"2021-07-29\",\"2021-08-05\",\"2021-08-12\",\"2021-08-19\",\"2021-08-26\",\"2021-09-02\",\"2021-09-09\",\"2021-09-16\",\"2021-09-23\",\"2021-09-30\",\"2021-10-07\",\"2021-10-14\",\"2021-10-21\",\"2021-10-28\",\"2021-11-04\",\"2021-11-11\",\"2021-11-18\",\"2021-11-25\",\"2021-12-02\",\"2021-12-09\",\"2021-12-16\",\"2021-12-23\",\"2021-12-30\",\"2022-01-06\",\"2022-01-13\",\"2022-01-20\",\"2022-01-27\",\"2022-02-03\",\"2022-02-10\",\"2022-02-17\",\"2022-02-24\",\"2022-03-03\",\"2022-03-10\",\"2022-03-17\",\"2022-03-24\",\"2022-03-31\",\"2022-04-07\",\"2022-04-14\",\"2022-04-21\",\"2022-04-28\",\"2022-05-05\",\"2022-05-12\",\"2022-05-19\",\"2022-05-26\",\"2022-06-02\",\"2022-06-09\",\"2022-06-16\",\"2022-06-23\",\"2022-06-30\",\"2022-07-07\",\"2022-07-14\",\"2022-07-21\",\"2022-07-28\",\"2022-08-04\",\"2022-08-11\",\"2022-08-18\",\"2022-08-25\",\"2022-09-01\",\"2022-09-08\",\"2022-09-15\",\"2022-09-22\",\"2022-09-29\",\"2022-10-06\",\"2022-10-13\",\"2022-10-20\",\"2022-10-27\",\"2022-11-03\",\"2022-11-10\",\"2022-11-17\",\"2022-11-24\",\"2022-12-01\",\"2022-12-08\",\"2022-12-15\",\"2022-12-22\",\"2022-12-29\",\"2023-01-05\",\"2023-01-12\",\"2023-01-19\",\"2023-01-26\",\"2023-02-02\",\"2023-02-09\",\"2023-02-16\",\"2023-02-23\",\"2023-03-02\",\"2023-03-09\",\"2023-03-16\",\"2023-03-23\",\"2023-03-30\",\"2023-04-06\",\"2023-04-13\",\"2023-04-20\",\"2023-04-27\",\"2023-05-04\",\"2023-05-11\",\"2023-05-18\",\"2023-05-25\",\"2023-06-01\",\"2023-06-08\",\"2023-06-15\",\"2023-06-22\",\"2023-06-29\",\"2023-07-06\",\"2023-07-13\",\"2023-07-20\",\"2023-07-27\",\"2023-08-03\",\"2023-08-10\",\"2023-08-17\",\"2023-08-24\",\"2023-08-31\",\"2023-09-07\",\"2023-09-14\",\"2023-09-21\",\"2023-09-28\",\"2023-10-05\",\"2023-10-12\",\"2023-10-19\",\"2023-10-26\",\"2023-11-02\",\"2023-11-09\",\"2023-11-16\",\"2023-11-23\",\"2023-11-30\",\"2023-12-07\",\"2023-12-14\",\"2023-12-21\",\"2023-12-28\",\"2024-01-04\",\"2024-01-11\",\"2024-01-18\",\"2024-01-25\",\"2024-02-01\",\"2024-02-08\",\"2024-02-15\",\"2024-02-22\",\"2024-02-29\",\"2024-03-07\",\"2024-03-14\",\"2024-03-21\",\"2024-03-28\",\"2024-04-04\",\"2024-04-11\",\"2024-04-18\",\"2024-04-25\",\"2024-05-02\",\"2024-05-09\",\"2024-05-16\",\"2024-05-23\",\"2024-05-30\",\"2024-06-06\",\"2024-06-13\",\"2024-06-20\",\"2024-06-27\",\"2024-07-04\",\"2024-07-11\",\"2024-07-18\",\"2024-07-25\",\"2024-08-01\",\"2024-08-08\",\"2024-08-15\",\"2024-08-22\",\"2024-08-29\",\"2024-09-05\",\"2024-09-12\",\"2024-09-19\",\"2024-09-26\",\"2024-10-03\",\"2024-10-10\",\"2024-10-17\",\"2024-10-24\",\"2024-10-31\",\"2024-11-07\",\"2024-11-14\",\"2024-11-21\",\"2024-11-28\",\"2024-12-05\",\"2024-12-12\",\"2024-12-19\",\"2024-12-26\",\"2025-01-02\",\"2025-01-09\",\"2025-01-16\",\"2025-01-23\",\"2025-01-30\",\"2025-02-06\",\"2025-02-13\",\"2025-02-20\",\"2025-02-27\",\"2025-03-06\",\"2025-03-13\",\"2025-03-20\",\"2025-03-27\",\"2025-04-03\",\"2025-04-10\",\"2025-04-17\",\"2025-04-24\",\"2025-05-01\",\"2025-05-08\",\"2025-05-15\",\"2025-05-22\",\"2025-05-29\",\"2025-06-05\",\"2025-06-12\",\"2025-06-19\",\"2025-06-26\",\"2025-07-03\",\"2025-07-10\",\"2025-07-17\",\"2025-07-24\",\"2025-07-31\",\"2025-08-07\",\"2025-08-14\",\"2025-08-21\",\"2025-08-28\",\"2025-09-04\",\"2025-09-11\",\"2025-09-18\",\"2025-09-25\",\"2025-10-02\",\"2025-10-09\",\"2025-10-16\",\"2025-10-23\",\"2025-10-30\",\"2025-11-06\",\"2025-11-13\",\"2025-11-20\",\"2025-11-27\",\"2025-12-04\",\"2025-12-11\",\"2025-12-18\",\"2025-12-25\",\"2026-01-01\",\"2026-01-08\",\"2026-01-15\",\"2026-01-22\",\"2026-01-29\",\"2026-02-05\",\"2026-02-12\",\"2026-02-19\",\"2026-02-26\",\"2026-03-05\",\"2026-03-12\",\"2026-03-19\",\"2026-04-16\",\"2026-04-23\",\"2026-04-30\"];\r\n          const salesAll  = [1532,1276.4,1902.4,845.5,1471.1,1115,434.7,1093.3,1186.5,1207.5,708.3,706.8,766.1,655.1,593.3,528.9,619.9,661,94.5,112.2,4837.7,663.9,770.9,943.8,729.1,927,323.9,576.2,533.5,638.4,634.5,847.9,803.2,709.9,845.9,966.6,877.7,391.7,484.9,939.4,530.3,1216.9,1188.5,1133,1520.1,1120.1,694.8,1088.8,940,1994.5,653.1,884.4,727.3,430.3,369.9,508.9,1022.4,815.1,514.9,371.6,380.2,615.5,799.6,944.7,575.1,460.1,353.9,383.1,518.6,318.2,405.9,297.6,3743.7,1163.3,810.3,869.9,1329.5,1281.4,1911.3,423,685.7,362.4,437.4,346.4,615.3,832.5,615.3,869.3,408.4,380.3,468.1,949.4,1007.4,1014,741,1034.2,943.2,722,500.3,875.3,884.1,307.3,982.9,1060.9,357.8,673.7,1402,347,505.9,249.3,266.5,317.4,127.6,191.9,209.3,196,293.7,259.6,94.1,210.3,184.9,162.9,206.9,63.6,46.1,1992.4,188.4,79.1,360.5,121.7,189.6,293.7,311.8,184.4,160.1,800.7,250.8,194.5,264.2,152.9,115.6,66.4,48.8,414.3,169.4,214.9,278.9,248.7,388.2,366.2,115.8,329.8,157.2,383.9,386.8,238.1,446.2,321.6,378,196.7,266.8,119.8,105.7,113.5,93.8,167.3,355.5,256.1,404.9,160.5,92.3,143.4,301.7,176.8,63.2,9.3,31.3,1214.7,462.8,659.4,890.2,1352.2,0,0,4643.2,1786.9,1360.9,968.9,1025.1,686.3,951.8,861.6,1634.4,573.9,227.8,1299.8,848.4,1854.1,1903.4,1523.3,739.8,929.4,1846.2,992.9,876.4,1652.1,1136.5,768.8,785.4,816.8,1091.7,411.7,618.2,922.8,864.9,676,498.5,556.2,545.5,481.4,500,746.7,309.6,335.7,240.6,150.4,131.7,159.1,181.4,2020.2,703,961.4,698.5,846.7,1966.2,1049.1,600.2,586.1,549.1,960.6,966.3,1261.9,1042.9,972,1750.4,990,397.5,957,2305.5,1154.4,1000.1,1103.4,994.7,762.8,970.4,556.7,550.2,643.4,752.3,878.4,680.7,1080.6,1149.1,1026.9,645.7,999.1,920.3,614.2,742.4,707.1,697,728.3,583.2,426.2,310.2,427.3,306,304.6,324.1,94.8,190.6,1902.8,729,519,806.5,617.6,624.4,298,766.6,612.5,654.8,858.2,2055,507.3,1103.3,695.8,817.9,710.4,279,712.4,1182.7,847.4,1130.2,580.1,1056.5,979.7,1386.4,1189.5,1309.7,935.3,905.5,1083.1,1338.4,1283.5,2241,898.4,1139.6,1524.7,1556.3,1334.7,1746.2,1087.8,919,617.4,558.7,772.5,507.2,542.4,459.4,668.1,256.9,177.1,304.1,4528,836.3,1087.6,714.4,2095.8,909,1118,908.4,1629.2,1282.6,1716.8,1845.1,1013.4,1606.9,1642.3,1430.9,1000.5,478.6,708.8,1484.6,1519.4,1299.7,1184.6,1020.8,818.4,745.1,892.4,1318.7,1408.1,875,1338.7,797.7,845.9,1042.5,879.4,405.8,771.2,473.1,552.3,436.8,680.1,612.5,340.1,265,262.3,592.3,300.3,189.6,191.5,250.8,175.9,214.5,75.3,1076.6,543.8,396.7,855.4,1655.4,1308.5,1347,817.5,2490.6,962,1233.2,606.1,921.7,878.3,1613.8,1475.3,369.4,676.3,1901.9,1528.1,1916.3,1855.8,2061.7,1603.2,1787.5,2042.1,2735.9,1686.4,1572.3,997,864.9,1361.6,1149.2,1159.4,809.2,1093,899.2,1093,908.2,1039.1,588.1,913.5,522.4,479.4,785.7,655.4,378.7,717.4,504.5,318.5,383.3,159.4,3757.8,1428.6,1865.1,1514.2,1381.8,658.9,583.2,612.5,895.1,1160.5,1332.5,1410,1243.3,1011.5,2065.9,1717.5,610.6,528,null,null,null,null,0,6330.8,1268.7,1110.3,646.7,874.3,957.5,811.3,759.7,1028.4,810,668.2,460,638.7,629.7,1068.3,221.2,235.9,143.4,337.7,194.7,560.4,293.2,149,199.4,95.2,210.7,141.1,106.2,70.2,1317.3,1477.9,514.4,615.2,319.2,396.3,507.4,607.7,563,599.8,908.8,834.6,593.7,1382.9,1753.1,646.8,537.4,266.2,810.5,1058.3,1277.5,1265.1,1007.9,1330.5,956.4,881.5,1599.1,956.5,1848.3,1162.8,1873.7,980.6,772.4,1540.9,914.7,1194.2,904.8,535.4,763.6,836.2,569.7,569.6,432.7,369.4,1015.4,232.2,132.3,214.9,395.6,88,322.5,166,3266.5,1672.6,2276.7,2177.9,1441.5,674.6,1908.2,2376.4,2649.6,1120.3,1252.3,1707.7,1660.2,1457.5,2105.7,707.4,1095.1,841,1523.5,1625.7,1968.1,7589.8,1759.6,1225.5,541.9,561.1,522.5,1122.9,4637.8,981.6,927.7,449.8,602.7,636.6,613,572.5,564.1,698.5,637.4,474.6,212.8,383.2,194.6,227.5,217.3,196,105.4,348.5,500.1,295,210.2,83.4,3899.4,329.5,458.7,508.6,1358.9,1110.2,1530,958.8,1283.8,1295.3,1082.4,1529.7,1204.9,1244,2057.6,1047.5,1363.7,426.2,560.5,1244.4,1597.6,1402.2,1002.4,1159.9,1150.2,651.9,2348.8,1979.3,1026.3,893.5,1003.5,1507.1,1019.9,1172.2,977.9,394.6,666.8,320.5,333.3,353.1,259.1,689.7,325.1,97.9,123.7,53.2,169,69.8,274.5,135.1,0,243.8,1937.8,599,403.7,599.9,296.1,390.8,458.4,298.2,504.1,380.7,1305.9,1941.6,619.3,726.9,1048.8,656.6,933,343.5,311.6,1136.8,1100.2,1714.7,1202.1,1094.7,965.7,695.6,1730.6,1334.2,3548.5,1201.7,1377.6,827.4,635.7,585.2,480.9,311.9,254.8,486.3,369.5,415,315.1,146.8,232.7,373.1,511.1,412.5,413.8,232.9,181.9,261.7,60.4,154.9,85.2,803,739.1,926.7,2156.2,927.3,905.1,1438.8,1002.2,1080.6,1882.5,1525.1,1996.3,1309.6,1512.8,1150,1404.6,583.4,617,1595.3,1141.9,1213.6,1355.6,1490.3,909.2,1210.7,1215.2,1414.7,1387.3,1274.1,1256.4,619.1,774.1,1414.9,1009.4,1056.2,1009.5,990.9,964.8,1230.9,1189.3,789.4,748,633.1,581.5,467.5,382.6,261.2,619.1,291.5,234,209.9,108.9,2148.4,876.2,719.5,1865,1364.4,2252.6,3617.7,2447.2,2854.9,1384.1,1519.7,1165.3,1878.9,1058.5,1254.5,1862.7,793.8,562,1166.2,1701.9,1408.1,1584.6,1840.7,1690.9,948,1271.2,1134.6,1911.1,1208.2,1333.4,989.1,1748.1,1176.4,1512.1,1932.5,1884.2,1339.1,1241.9,1137.3,941.1,1016.5,828.9,1068.5,1339.6,435.8,717.5,459.2,369,422.3,266.5,136.2,426.2,2013.6,1538.4,2010.4,1520.7,2394.2,1584.1,3149.3,2243.5,2362.6,1162.7,2592.7,1936,2050.5,1596.1,1848.4,2579.2,816.3,641,1185.8,4062.5,1694.9,1200.8,2105.5,1632,915.8,2112.2,1684.9,1312.7,1430.6,1664.5,1712,1535.9];\r\n          const cancelAll = [51,47.7,37.6,26.4,117,28.5,236.1,73.6,91.2,84.1,58.6,158.6,88,41,160.9,56.7,180.2,66.1,52.3,140.7,0,24.7,209.1,17.9,122,21,111.4,25.4,72,64.8,100.7,24.9,20.1,38.8,35,60.6,121.2,22.6,45.7,34.6,115.5,50.2,79.6,102.7,18.8,39.5,193.8,52.5,45,79.6,33.5,36.4,113.9,80.5,85.6,73.5,179.2,88.4,43.2,51.2,84.4,204.8,107.9,322.9,93.8,29.7,22.4,85.7,77.2,74.7,22.1,618.5,0,36,212.2,82,39.4,22.5,148.7,86.7,63.1,109.8,228.5,34.4,334.8,135.3,110.6,154.4,89.6,79.9,146.7,189.5,49.3,101.4,46.9,28.3,102.4,31.2,54.6,38,22,176.5,45.3,100.5,57.4,28.2,70.2,121.6,166.5,93.1,77.7,65.6,35.5,19.4,16.4,176,120.9,227.7,103.2,28.8,10.2,39.3,98.4,97.3,150.3,0,118.5,78.8,33.5,117.5,21.8,151.3,143.9,26.9,54.8,30.9,14.7,142.9,4.4,38.5,11.3,17.3,35.1,21,31,28,110,22.3,26.3,63.6,165.6,46.4,65,88.8,32.5,52.1,45.9,6.9,48.8,80.9,45.7,15.3,20,6.3,12.3,33,18.9,22.9,12.1,7.6,120.3,9.5,11.6,235.9,3.8,24.4,144.5,1.2,25.4,19.3,115,10.8,0,0,87,68.2,157.1,23.7,18.1,24.7,255.2,34.6,155.9,419.4,72.6,477.6,155.3,16.2,203.3,252.5,48.3,88.6,328.2,255.3,125.1,243.8,175.8,109.6,183.5,153.9,153.7,199.7,274.2,94,243.6,74.1,67.8,378.1,224.1,190.7,115.9,92,18.1,61.3,119.7,266.6,31.9,191.8,188.9,3,36.5,125.1,60.4,61.9,16.5,17.9,109.5,108,43.7,51.9,21.4,91.3,80.1,277.5,43.8,42.5,9.8,66.2,36.3,61.2,155.2,52.3,62.5,46.9,142.4,138.8,47.9,208.5,285.7,238.8,91.4,212.7,150.9,185,212.4,185.3,265.7,99.3,246.8,78.9,149.4,133.9,48,95.1,86.8,60.6,308.7,275.4,41.2,226.5,77.9,0,195.8,92.7,58.4,97.9,26,50,57.8,56.5,36.2,78.4,18.7,7.9,8,53.3,13.6,5.3,26.1,42.8,25,30.4,1.1,112.7,5.8,45.2,288.8,16.7,82.2,132.1,114.9,137.9,72.3,80.7,31.6,129.1,34.3,51.6,71.8,16.8,186.9,178.1,12.7,148.9,189,104.7,162.1,103.2,128.3,73.2,89.5,106,89.6,0,132.8,165.7,139.4,34.6,35.2,95.1,109.1,95.7,48.7,55.8,105.9,251.8,111.5,126.3,119.4,41.9,49.3,105.5,116.2,149,151.4,212.9,185.3,75.3,52.7,87.5,183.8,61,158.1,200.6,59.4,89.5,54.6,47.8,128.1,65.8,15.9,140.3,18.7,79.4,48.1,23.5,124.8,101.3,125.8,208.3,152.1,139.5,188.3,73.5,26.1,433.9,29.5,16.9,76.5,41.3,42.7,33.6,58.2,5.3,64.1,12.5,110.4,6.9,26.7,11.4,29.9,177.2,268.2,179.2,13.6,82.2,65.1,63.7,86.8,47.8,34.5,124.6,230.8,87,155.2,46.6,24.9,205.8,452.1,139.5,48,107.3,44.8,99.9,69.6,102.1,310.6,63.2,81.7,77.3,144.7,316.9,86.6,162.9,165.6,85.7,207.8,129.3,0,44.9,152.3,23.2,374.6,275.9,233.5,218,127.6,268,455.1,141.9,24.3,108.3,91.5,17.6,107.5,68.1,null,null,null,null,0,257.7,28.8,140.6,223.2,18.4,53,172,211.7,80.3,30.2,81.7,172.4,85.4,187.7,146.6,188.2,67.4,105,42.6,19.1,54.7,93.2,27.8,56.4,52.7,154.5,21.8,61.2,236.1,0,13.3,20.4,52.6,34.8,27.7,15,58.6,75,18.2,120.3,27.8,47.6,509.3,43.1,22.1,6,104.3,16.4,50.9,42.8,17.3,39,81.4,91.1,112.3,67.9,51.9,34.1,35.9,24.8,73.4,45.7,121.2,77.1,58.3,20.6,107.7,126.1,175.5,211.9,107.4,71.7,174.1,34.3,11.1,161.6,51.6,18.4,26.4,52.1,0.7,0,63.4,137.7,90.8,145.8,19.4,74.7,132.7,38.8,141.9,153.8,41.4,288.8,95.3,120.3,56.3,130.6,92.1,85.7,187.4,60.4,153.3,310.9,226.3,88.7,445.2,126.2,137,155.9,184.3,169.2,122.1,215.2,115.3,475.7,685.8,286.5,142.6,105.6,285,194.8,166.9,118.4,38.6,78.5,284.4,220.6,280.2,122.5,78.5,203.6,384.3,0,82.9,85.7,137.5,93.8,70.3,205.4,68.4,60,228,162.8,38.5,118.1,59.6,108.9,64.6,102.9,112.6,102.8,153.1,138.6,199.4,413.4,74.4,109.3,166.8,205.1,82.9,46.8,195,221.1,174.2,140.7,242.8,195.4,201.8,231.5,168.8,147.5,72.7,56.2,17.7,173.2,164.4,64.7,19.3,18.7,11.9,82.7,35.8,0,259.8,0,15.9,221.3,87.8,69.1,190.6,50.1,34.2,131.9,115.4,136.2,91.3,16.7,35.3,89.9,19.8,118.4,24.3,55.9,4.7,189.8,121.5,41.8,70.2,142.5,97.5,318.5,98,452.6,165.3,119.7,299.7,323.3,185.3,796.6,54.7,593.8,510.7,120.3,242.3,41.8,69.1,23.4,121.4,42.7,175.7,84.1,125.4,31.4,28.3,83.1,83.1,100.4,49.7,172.2,84.9,340.3,16.9,7.5,87.7,252.1,65.3,75,92.7,68.5,20.7,66.5,136.9,162.5,211.9,129.4,278.5,48.1,6.9,136.3,125.8,88.8,106.5,105.6,131.2,201.5,67.6,308.4,177.7,91.4,109.7,136.7,101.7,206.8,79.8,58,47.5,133.2,278,143.8,275.9,43.2,29.7,49,68.1,73.7,157.6,53.6,194.6,282,0,28.9,67.5,180.9,142.4,26.9,15.1,43.5,47.9,69,25.1,33.9,146.5,49.7,12,151.4,16.8,117.1,79.6,31.5,49.6,107.4,191.7,115.8,92,357.4,104.3,279.4,107.1,160.2,203.5,131,23.5,379,270,203.1,117.7,263.1,132,97.8,112.8,87.7,483.9,77.5,65.5,74.4,118.3,198.5,511,241.8,154,707.1,0,286.8,87,125.9,96.8,195.5,143.6,438.3,305.7,183.2,151.7,54,196.3,55.5,104.3,247.9,59.9,204.7,46.3,51.9,15.8,97.6,35.8,39.7,230,89.6,181.7,140.9,212.8,347.8,114.2,158.3];\r\n          const netAll    = [1481,1228.7,1850.7,819.1,1354.1,1030.8,198.6,1018.8,1090.4,1123.4,649.7,501.2,678.1,614.1,432.4,472.2,439.7,594.9,42.2,-28.5,null,584.2,561.8,925.9,607.1,906,212.5,550.8,461.5,573.6,533.8,823,758.1,671.1,810.9,906,756.5,369.1,439.2,904.8,414.8,1166.7,1107.3,1030.3,1501.3,1080.6,477.2,1036.3,895,1914.9,619.6,848,613.4,348.9,284.3,433.8,843.2,726.7,471.6,320.3,295.8,410.7,691.7,621.8,481.3,428.7,331.5,297.4,441.4,243.5,383.8,-320.9,null,1127.3,598.1,787.9,1289.4,1258.9,1762.6,336.3,622.6,251.8,208.9,312,280.5,695.5,504.7,714.9,318.8,299.5,321.4,759.9,958.1,912,694.1,1005.9,840.8,689.9,445.7,836.3,862.1,130.8,937.6,959.1,300.4,645.5,1331.8,224.2,339.4,156.2,188.8,251.8,92.1,171.4,192.9,19.2,172.8,31.9,-9.1,178.5,174.7,122.8,108.5,-33.7,-104.2,null,69.9,0.3,327,4.2,166.7,142.4,167.9,157.5,103.8,769.8,236.1,51.6,258.9,114.4,104.3,49.1,12.6,393.3,138.4,186.9,168.9,225.4,361.9,302.6,-49.8,282.2,92.2,295.1,354.3,185.1,400.3,314.7,329.2,115.8,219.9,104.5,85.7,107.2,81.5,133.4,336.6,233.2,392,152.9,-28,133.9,290.1,-59.1,58.2,-15.1,-113.2,null,437.4,640.1,775.2,1341.4,0,0,4555.4,1718.7,1202.8,945.2,1007,593.6,695.4,827,1478.5,154.5,155.2,821,693.1,1837.9,1700.1,1269.8,691.5,840.8,1518,683.4,745.8,1408.3,960.7,658.7,601.9,618.9,938,161.2,343,507.8,621.3,550.8,409.7,109,321.4,290.7,363,573.7,291.5,173.9,120.9,-117.2,99.8,-32.7,-7.5,null,659.7,836.3,638.1,784.8,1922.8,1031.2,489.9,478.1,505.4,908.7,944.9,1170.6,962.8,693.4,1705.6,895,387.7,818.7,2185.4,1068.2,844.9,1003.1,932.2,715.9,828,417.9,502.3,434.9,406.6,639.6,588.2,867.9,832.5,841.9,370,812.5,654.6,464.9,495.6,627.1,496.8,594.4,535.2,331.1,223.4,364.9,-2.7,29.2,282.7,-131.7,112.7,null,533,426.3,748.1,519.7,598.4,248,708.8,556,618.6,779.8,2036.3,499.4,1095.3,579.5,803.6,705.1,252.9,669.3,1157.7,817,1129.1,405,1050.7,934.5,1097.6,1172.3,1227.1,803.2,790.6,945.2,1135.7,1202.8,2160.6,769.3,1105.3,1473.1,1381.1,1317.9,1558.8,909.7,870.7,468.5,369.7,667.8,345.1,438.8,331.1,594.9,167.4,71.1,214.1,null,703.5,921.9,575,2060.8,873.4,1022.9,799.3,1473.5,1233.9,1661,1688.8,761.6,1495.4,1516,1251,958.6,429.3,603.3,1367.6,1370.4,1143.6,971.7,783.5,743.1,692.4,741.1,1134.9,1347.1,716.9,1138.1,738,756.4,987.9,771.6,277.7,705.4,457.2,412,348.6,600.7,528.8,316.1,140.2,161,466.5,92,36.7,52,62.5,102.4,188.4,-358.6,1046.7,526.9,320.2,814.1,1593.1,1254.9,1288.3,811.5,2364.5,949.5,1080.9,599.2,876.4,866.9,1558.4,1245.5,101.2,437.8,1888.3,1445.9,1850.5,1769.6,1974.4,1555.4,1753,1857.5,2505.1,1470.3,1353.1,898.3,840,1091.7,697.1,1019.9,695.6,985.7,854.3,993.1,838.6,936.4,165.9,849.9,440.7,402.1,641,338.5,292.1,554.5,338.9,173.4,175.5,30.1,null,1383.7,1712.8,1431,1006.6,382.5,349.5,394.5,701.5,892.5,877.4,1266.4,1177.5,903.2,1974.4,1699.4,503.1,459.9,0,0,0,0,0,6056.5,1239.9,969.7,372,855.9,904.5,537.2,548,947.6,779.8,586.5,287.6,553.3,442,906.8,-8.7,168.5,38.4,294.9,175.6,505.4,200,121.2,143,42.5,56.2,119.3,-2.6,-165.9,null,1464.6,494,562.6,284.4,368.6,491.5,549.1,488,581.6,788,806.8,546.1,873.6,1709.3,624.7,531.4,161.9,784.7,1006.8,1234.7,1247.8,968.9,1249.1,864.6,769.2,1471.2,904.6,1814.2,1075.4,1848.9,906.6,726.7,1356.6,774.6,1073.2,884.2,427.1,637.5,660.7,357.8,461.6,361,195.3,981.1,220.6,-29.3,101.5,377.2,61.6,270.4,95.8,null,1609.2,2139,2027.1,1225.7,655.2,1831.5,2243.7,2610.8,978.4,1088.6,1665.6,1371.4,1362.2,1924.5,651.1,964.5,748.9,1437.8,1437.6,1850.3,7436.5,1448.7,999.2,453.2,115.9,395.5,985.9,4481.9,797.3,757,327.7,387.5,521.3,137.3,-113.3,277.6,555.9,531.1,189.6,18,216.3,14.9,173.2,138.8,-88.4,-115.2,68.3,377.6,216.5,6.6,-300.9,null,246.6,373,370.4,1265.1,1039.9,1273.2,890.4,1223.8,1067.3,904.6,1429.1,1020.8,1132.4,1948.7,982.9,1246.5,256,457.7,1091.3,1402.4,1175.2,589,820.1,1040.9,485.1,2143.7,1836.4,979.5,636.8,782.4,1332.9,879.2,866.8,782.5,192.8,435.3,151.7,185.8,280.4,140.9,672,88.9,-66.5,59,33.9,150.3,57.9,191.8,99.3,0,-16.5,null,583.1,182.4,512.1,227,200.2,408.3,264,372.2,265.3,1169.7,1850.3,602.6,691.6,958.9,636.8,781.6,319.2,255.7,1132.1,910.4,1593.2,1160.3,1024.5,823.2,598.1,1412.1,1236.2,3095.9,1036.4,1246.6,527.7,312.4,399.9,-315.7,257.2,-339,-75.2,186.6,172.7,273.3,35.9,140.3,251.7,468.4,236.8,314.2,107.5,150.5,233.4,-22.7,71.8,-15.2,753.3,566.9,841.8,1815.9,910.4,881.3,1351.1,748.1,1015.3,1807.5,1432.4,1927.8,1288.9,1418.7,1013.1,1242.1,367.5,487.6,1251.1,954.8,1206.7,1219.3,1306.9,820.4,1082.4,1109.6,1283.5,1185.8,1206.5,948,325.5,501.1,1300,758.4,889.2,742.2,911.1,810.1,1180.9,1056.1,511.4,542.2,357.2,538.3,437.8,331.4,167.8,485.4,120.4,119,15.3,-173.1,null,847.3,535,1684.1,1222,2225.7,3602.6,2341.7,2766.5,1315.1,1494.6,1062.9,1732.4,946.8,1174.6,1711.3,777,444.9,1024.3,1660.9,1358.5,1477.2,1649,1453.8,794.7,909.1,967.3,1496.6,1039.7,1173.2,785.6,1561.9,1152.9,1014.4,1662.5,1677.2,1190.9,916.8,942.3,791.3,903.7,741.2,532.7,1262.1,97.6,643.1,340.9,170.5,-88.7,-27.1,-17.8,-280.9,null,1231.6,1923.4,1394.8,2259.8,1326.6,2822.6,1805.2,1994.9,979.5,2380.4,1843.1,1792.2,1478.8,1744.1,2202.3,756.4,377.6,1139.5,4010.6,1648.9,1041.2,2069.7,1469.6,685.8,2022.6,1503.3,1171.8,1217.8,1316.7,1597.8,1361.7];\r\n\r\n          const labelSales  = \"FAS Corn Sales\";\r\n          const labelCancel = \"FAS Corn Cancellations\";\r\n          const labelNet    = \"FAS Corn Net Sales\";\r\n\r\n          const canvTop    = document.getElementById('Corn_chart175_top_169');\r\n          const canvBottom = document.getElementById('Corn_chart175_bottom_169');\r\n          if (!canvTop || !canvBottom) return;\r\n\r\n          const tsSecAll = labelsAll.map(l=>{\r\n            const s = String(l || '').trim();\r\n            let t = NaN;\r\n            if (\/^\\d{4}-\\d{2}-\\d{2}$\/.test(s)) {\r\n              t = Date.parse(s + 'T00:00:00Z');\r\n            } else {\r\n              t = Date.parse(s);\r\n            }\r\n            return isNaN(t) ? null : Math.floor(t\/1000);\r\n          });\r\n\r\n          const fmt = (n)=>{\r\n            try{\r\n              if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n              return Number(n).toLocaleString(undefined,{minimumFractionDigits:0,maximumFractionDigits:2});\r\n            }catch(e){ return n; }\r\n          };\r\n\r\n          const fmtCompact = (n)=>{\r\n            if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n            const x = Number(n);\r\n            const abs = Math.abs(x);\r\n            if (abs >= 1e9) return (x\/1e9).toFixed(1).replace(\/\\.0$\/,'') + 'B';\r\n            if (abs >= 1e6) return (x\/1e6).toFixed(1).replace(\/\\.0$\/,'') + 'M';\r\n            if (abs >= 1e3) return (x\/1e3).toFixed(0) + 'K';\r\n            return x.toLocaleString();\r\n          };\r\n\r\n          const FIX_Y_LEFT  = 56;\r\n          const FIX_Y_RIGHT = 66;\r\n\r\n          const CrosshairX = {\r\n            id:'crosshairX',\r\n            afterEvent(chart,args){\r\n              const e=args.event, a=chart.chartArea;\r\n              if(!a) return;\r\n              if(e.type==='mouseout'){ chart.$crossX=null; chart.draw(); return; }\r\n              if(e.x>=a.left && e.x<=a.right && e.y>=a.top && e.y<=a.bottom){\r\n                chart.$crossX={x:e.x};\r\n              }else{\r\n                chart.$crossX=null;\r\n              }\r\n              chart.draw();\r\n            },\r\n            afterDraw(chart){\r\n              const cross=chart.$crossX; if(!cross) return;\r\n              const {ctx,chartArea:a}=chart;\r\n              ctx.save();\r\n              ctx.strokeStyle='rgba(37,99,235,0.55)';\r\n              ctx.lineWidth=1;\r\n              ctx.setLineDash([4,3]);\r\n              ctx.beginPath();\r\n              ctx.moveTo(cross.x,a.top);\r\n              ctx.lineTo(cross.x,a.bottom);\r\n              ctx.stroke();\r\n              ctx.restore();\r\n            }\r\n          };\r\n\r\n          const makeExternalTooltip = (idSuffix) => (context)=>{\r\n            const { chart, tooltip } = context;\r\n            const area = chart.chartArea;\r\n            if(!area) return;\r\n\r\n            const tipId = '__c175_exttip_' + idSuffix;\r\n            let tip = document.getElementById(tipId);\r\n            if(!tip){\r\n              tip=document.createElement('div');\r\n              tip.id=tipId;\r\n              tip.style.position='fixed';\r\n              tip.style.left='0';\r\n              tip.style.top='0';\r\n              tip.style.opacity='0';\r\n              tip.style.pointerEvents='none';\r\n              tip.style.zIndex='99999';\r\n              document.body.appendChild(tip);\r\n            }\r\n\r\n            if(tooltip.opacity===0){ tip.style.opacity=0; return; }\r\n\r\n            const title = (tooltip.title && tooltip.title[0]) ? tooltip.title[0] : '';\r\n            const rows = (tooltip.dataPoints || []).map(dp=>{\r\n              const color = dp.dataset.borderColor || dp.dataset.backgroundColor || '#2563eb';\r\n              const label = dp.dataset.label || '';\r\n              let v = null;\r\n              if(typeof dp.raw === 'number'){ v = dp.raw; }\r\n              else if(dp.parsed && typeof dp.parsed.y === 'number'){ v = dp.parsed.y; }\r\n              const val = (v===null) ? '' : fmt(v);\r\n              return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                        <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                          <span style=\"width:10px;height:10px;border-radius:2px;background:${color};\r\n                                       border:1px solid rgba(255,255,255,.9);display:inline-block;\"><\/span>\r\n                          <span>${label}<\/span>\r\n                        <\/span>\r\n                        <span style=\"font-weight:700;\">${val}<\/span>\r\n                      <\/div>`;\r\n            }).join('');\r\n\r\n            tip.innerHTML =\r\n              `<div style=\"box-shadow:0 10px 24px rgba(15,23,42,.25);border:1px solid rgba(148,163,184,.7);\r\n                           background:#ffffff;color:#111827;border-radius:12px;padding:10px 12px;\r\n                           min-width:220px;max-width:380px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n                 <div style=\"color:#0f172a;font-weight:900;margin-bottom:6px;\">${title}<\/div>\r\n                 <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n               <\/div>`;\r\n\r\n            const cr = chart.canvas.getBoundingClientRect();\r\n            const box = tip.firstElementChild;\r\n            const boxW = box ? box.offsetWidth : 240;\r\n            const boxH = box ? box.offsetHeight : 130;\r\n            const pad  = 8;\r\n\r\n            const left   = Math.max(8, cr.left + area.left - boxW - pad);\r\n            const topMin = cr.top + area.top;\r\n            const topMax = cr.top + area.bottom - boxH;\r\n            const rawTop = cr.top + tooltip.caretY - boxH\/2;\r\n            const top    = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n            tip.style.left    = left + 'px';\r\n            tip.style.top     = top  + 'px';\r\n            tip.style.opacity = 1;\r\n          };\r\n\r\n          const makeScales = (showXAxis) => ({\r\n            x:{\r\n              type:'category',\r\n              ticks:{\r\n                display: !!showXAxis,\r\n                autoSkip:true,\r\n                maxTicksLimit:(window.innerWidth<768?6:10),\r\n                maxRotation:0,\r\n                minRotation:0,\r\n                color:'#4b5563'\r\n              },\r\n              grid:{ color:'rgba(148,163,184,0.20)' }\r\n            },\r\n            y:{\r\n              type:'linear',\r\n              position:'right',\r\n              afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n              ticks:{ color:'#111827', callback:(v)=>fmtCompact(v) },\r\n              grid:{ color:'rgba(209,213,219,0.55)' }\r\n            },\r\n            yL:{\r\n              type:'linear',\r\n              position:'left',\r\n              display:true,\r\n              afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n              ticks:{ display:false },\r\n              grid:{ drawOnChartArea:false, drawBorder:false },\r\n              border:{ display:false }\r\n            }\r\n          });\r\n\r\n          const buildChartTop = (labels, sales, cancel) => {\r\n            const ctx = canvTop.getContext('2d');\r\n            const existing = Chart.getChart(canvTop);\r\n            if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    key:'sales',\r\n                    label: labelSales,\r\n                    data: sales.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.6,\r\n                    pointRadius:0,\r\n                    pointHoverRadius:4,\r\n                    pointHitRadius:10,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#2563eb',\r\n                    backgroundColor:'#2563eb',\r\n                    order:1\r\n                  },\r\n                  {\r\n                    key:'cancel',\r\n                    label: labelCancel,\r\n                    data: cancel.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.6,\r\n                    pointRadius:0,\r\n                    pointHoverRadius:4,\r\n                    pointHitRadius:10,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#ef4444',\r\n                    backgroundColor:'#ef4444',\r\n                    order:2\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip('top'), mode:'index', intersect:false },\r\n                  legend:{\r\n                    display:true,\r\n                    position:'bottom',\r\n                    labels:{\r\n                      color:'#374151',\r\n                      font:{ size:12, weight:'600' },\r\n                      usePointStyle:true,\r\n                      pointStyle:'line'\r\n                    }\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true,\r\n                        mode:'x',\r\n                        threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales: makeScales(false)\r\n              }\r\n            });\r\n          };\r\n\r\n          const buildChartBottom = (labels, net) => {\r\n            const ctx = canvBottom.getContext('2d');\r\n            const existing = Chart.getChart(canvBottom);\r\n            if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    key:'net',\r\n                    label: labelNet,\r\n                    data: net.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    fill:'origin',\r\n                    borderWidth:2.2,\r\n                    pointRadius:0,\r\n                    pointHoverRadius:4,\r\n                    pointHitRadius:10,\r\n                    tension:0.2,\r\n                    spanGaps:true,\r\n                    borderColor:'rgba(139,92,246,0.95)',\r\n                    backgroundColor:'rgba(139,92,246,0.20)',\r\n                    order:1\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip('bottom'), mode:'index', intersect:false },\r\n                  legend:{\r\n                    display:true,\r\n                    position:'bottom',\r\n                    labels:{\r\n                      color:'#374151',\r\n                      font:{ size:12, weight:'600' },\r\n                      usePointStyle:true,\r\n                      pointStyle:'line'\r\n                    }\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true,\r\n                        mode:'x',\r\n                        threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales: makeScales(true)\r\n              }\r\n            });\r\n          };\r\n\r\n          const syncX = (src, others)=>{\r\n            const x = src.scales && src.scales.x;\r\n            if(!x) return;\r\n            const min = x.min;\r\n            const max = x.max;\r\n\r\n            others.forEach(ch=>{\r\n              if(!ch || ch === src) return;\r\n              if(!ch.options || !ch.options.scales || !ch.options.scales.x) return;\r\n              ch.options.scales.x.min = min;\r\n              ch.options.scales.x.max = max;\r\n              ch.update('none');\r\n            });\r\n          };\r\n\r\n          let labels = labelsAll.slice();\r\n          let sales  = salesAll.slice();\r\n          let cancel = cancelAll.slice();\r\n          let net    = netAll.slice();\r\n\r\n          let chartTop    = buildChartTop(labels, sales, cancel);\r\n          let chartBottom = buildChartBottom(labels, net);\r\n\r\n          const attachSyncHooks = (chart, others)=>{\r\n            const z = chart?.options?.plugins?.zoom;\r\n            if(!z) return;\r\n            const oldOnZoom = z.zoom && z.zoom.onZoomComplete;\r\n            const oldOnPan  = z.pan && z.pan.onPanComplete;\r\n\r\n            if(chart.options.plugins.zoom.zoom){\r\n              chart.options.plugins.zoom.zoom.onZoomComplete = ({chart:c})=>{\r\n                try{ syncX(c, others); }catch(e){}\r\n                if(typeof oldOnZoom === 'function') try{ oldOnZoom({chart:c}); }catch(e){}\r\n              };\r\n            }\r\n            if(chart.options.plugins.zoom.pan){\r\n              chart.options.plugins.zoom.pan.onPanComplete = ({chart:c})=>{\r\n                try{ syncX(c, others); }catch(e){}\r\n                if(typeof oldOnPan === 'function') try{ oldOnPan({chart:c}); }catch(e){}\r\n              };\r\n            }\r\n            chart.update('none');\r\n          };\r\n\r\n          attachSyncHooks(chartTop,    [chartBottom]);\r\n          attachSyncHooks(chartBottom, [chartTop]);\r\n\r\n          const applyRange = (m)=>{\r\n            let idxKeep = null;\r\n\r\n            if(m !== 'all' && Array.isArray(tsSecAll) && tsSecAll.length){\r\n              const months = parseInt(m,10);\r\n              const validTs = tsSecAll.filter(t=>Number.isInteger(t) && t>0);\r\n              if(validTs.length){\r\n                const latest = Math.max.apply(null, validTs);\r\n                const cutDate = new Date(latest*1000);\r\n                cutDate.setUTCMonth(cutDate.getUTCMonth() - months);\r\n                const cutTs = Math.floor(cutDate.getTime()\/1000);\r\n\r\n                idxKeep = [];\r\n                tsSecAll.forEach((ts,idx)=>{\r\n                  if(Number.isInteger(ts) && ts >= cutTs) idxKeep.push(idx);\r\n                });\r\n              }\r\n            }\r\n\r\n            const sliceByIdx = (arr)=>{\r\n              if(!idxKeep || !idxKeep.length) return arr.slice();\r\n              return idxKeep.map(i => arr[i]);\r\n            };\r\n\r\n            labels = sliceByIdx(labelsAll);\r\n            sales  = sliceByIdx(salesAll);\r\n            cancel = sliceByIdx(cancelAll);\r\n            net    = sliceByIdx(netAll);\r\n\r\n            [chartTop, chartBottom].forEach(ch=>{\r\n              ch.data.labels = labels;\r\n              ch.options.scales.x.min = undefined;\r\n              ch.options.scales.x.max = undefined;\r\n            });\r\n\r\n            chartTop.data.datasets[0].data = sales;\r\n            chartTop.data.datasets[1].data = cancel;\r\n            chartBottom.data.datasets[0].data = net;\r\n\r\n            chartTop.update();\r\n            chartBottom.update();\r\n\r\n            if(chartTop.resetZoom) chartTop.resetZoom();\r\n            if(chartBottom.resetZoom) chartBottom.resetZoom();\r\n\r\n            btns.forEach(b=>b.classList.toggle('is-active', (b.dataset.range === String(m))));\r\n          };\r\n\r\n          const btns = wrap.querySelectorAll('.c175-btn[data-range]');\r\n          const resetBtn = wrap.querySelector('[data-action=\"reset\"]');\r\n          const pngBtn   = wrap.querySelector('[data-action=\"png\"]');\r\n\r\n          btns.forEach(b => b.addEventListener('click', ()=> applyRange(b.dataset.range)));\r\n\r\n          if(resetBtn){\r\n            resetBtn.addEventListener('click', ()=>{\r\n              if(chartTop.resetZoom) chartTop.resetZoom();\r\n              if(chartBottom.resetZoom) chartBottom.resetZoom();\r\n            });\r\n          }\r\n\r\n          if(pngBtn){\r\n            pngBtn.addEventListener('click', ()=>{\r\n              try{\r\n                const c1 = canvTop;\r\n                const c2 = canvBottom;\r\n                const gap = 10;\r\n\r\n                const w = Math.max(c1.width, c2.width);\r\n                const h = c1.height + c2.height + gap;\r\n\r\n                const out = document.createElement('canvas');\r\n                out.width = w;\r\n                out.height = h;\r\n                const octx = out.getContext('2d');\r\n\r\n                octx.fillStyle = '#ffffff';\r\n                octx.fillRect(0,0,w,h);\r\n\r\n                octx.drawImage(c1, 0, 0);\r\n                octx.drawImage(c2, 0, c1.height + gap);\r\n\r\n                const url = out.toDataURL('image\/png', 1.0);\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = 'corn_chart175_us_corn_sales.png';\r\n                a.click();\r\n              }catch(e){}\r\n            });\r\n          }\r\n\r\n          applyRange('24');\r\n\r\n          [canvTop, canvBottom].forEach(cv=>{\r\n            cv.addEventListener('dblclick', ()=>{\r\n              if(chartTop.resetZoom) chartTop.resetZoom();\r\n              if(chartBottom.resetZoom) chartBottom.resetZoom();\r\n            });\r\n            cv.addEventListener('pointerdown', ()=>{\r\n              try{ cv.focus({preventScroll:true}); }catch(e){ try{ cv.focus(); }catch(e2){} }\r\n            }, { passive:true });\r\n          });\r\n\r\n          const panByArrow = (e)=>{\r\n            const k = e.key;\r\n            if(k !== 'ArrowLeft' && k !== 'ArrowRight') return;\r\n            if(!chartTop || typeof chartTop.pan !== 'function') return;\r\n\r\n            const tag = (e.target && e.target.tagName) ? e.target.tagName.toLowerCase() : '';\r\n            if(tag==='input' || tag==='textarea' || tag==='select' || (e.target && e.target.isContentEditable)) return;\r\n\r\n            const a = chartTop.chartArea || null;\r\n            let step = a ? Math.max(24, Math.round(a.width * 0.08)) : 60;\r\n            if(e.shiftKey) step *= 2;\r\n\r\n            const dx = (k === 'ArrowLeft') ? step : -step;\r\n\r\n            e.preventDefault();\r\n            try{\r\n              chartTop.pan({ x: dx, y: 0 });\r\n              syncX(chartTop, [chartBottom]);\r\n            }catch(err){}\r\n          };\r\n\r\n          [canvTop, canvBottom].forEach(cv=>{\r\n            cv.addEventListener('keydown', panByArrow);\r\n          });\r\n\r\n          ['mouseleave','scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt=>{\r\n            window.addEventListener(evt, ()=>{\r\n              ['__c175_exttip_top','__c175_exttip_bottom'].forEach(id=>{\r\n                const t = document.getElementById(id);\r\n                if(t) t.style.opacity = 0;\r\n              });\r\n            }, {passive:true});\r\n          });\r\n        });\r\n      <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6b95c69 e-flex e-con-boxed e-con e-parent\" data-id=\"6b95c69\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c0bfd2 elementor-widget elementor-widget-shortcode\" data-id=\"5c0bfd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">      <div id=\"c176_wrap_170\" class=\"c176-wrap\">\r\n        <div class=\"c176-card\">\r\n          <div class=\"c176-controls\">\r\n            <strong class=\"c176-range-label\">Range:<\/strong>\r\n            <button type=\"button\" data-range=\"12\"  class=\"c176-btn\">1Y<\/button>\r\n            <button type=\"button\" data-range=\"24\"  class=\"c176-btn\">2Y<\/button>\r\n            <button type=\"button\" data-range=\"60\"  class=\"c176-btn\">5Y<\/button>\r\n            <button type=\"button\" data-range=\"all\" class=\"c176-btn\">ALL<\/button>\r\n\r\n            <span class=\"c176-flex-spacer\"><\/span>\r\n            <em class=\"c176-hint\">Wheel\/Pinch=Zoom \u00b7 Drag=Box Zoom \u00b7 Double-click=Reset \u00b7 Arrow keys=Pan (Shift=Faster)<\/em>\r\n\r\n            <button type=\"button\" data-action=\"reset\" class=\"c176-btn c176-btn-ghost\">Reset Zoom<\/button>\r\n            <button type=\"button\" data-action=\"png\"   class=\"c176-btn c176-btn-ghost\">Save PNG<\/button>\r\n          <\/div>\r\n\r\n          <div class=\"c176-title\">U.S. Corn Exports (Thousand Metric Tons)<\/div>\r\n\r\n          <div class=\"c176-panels\">\r\n            <div class=\"c176-panel c176-panel-main\">\r\n              <div class=\"c176-panel-label\">FGIS Corn Export Inspections \/ FAS Corn Exports<\/div>\r\n              <canvas id=\"Corn_chart176_170\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"c176-source-wrap\">\r\n            <a class=\"c176-source-pill\" href=\"https:\/\/fgisonline.ams.usda.gov\/ExportGrainReport\/default.aspx\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n              Source: USDA AMS\/FGIS \u2014 Grain Inspected for Export            <\/a>\r\n            <a class=\"c176-source-pill\" href=\"https:\/\/apps.fas.usda.gov\/export-sales\/complete.htm\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n              Source: USDA FAS \u2014 U.S. Export Sales            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <style>\r\n        .c176-wrap{\r\n          overflow-x:auto;\r\n          -webkit-overflow-scrolling:touch;\r\n          padding:16px;\r\n          border-radius:18px;\r\n          background:linear-gradient(135deg,#eef2ff,#e0f2fe);\r\n          box-shadow:0 18px 32px rgba(15,23,42,0.18);\r\n          margin:8px 0;\r\n        }\r\n        .c176-card{\r\n          background:#ffffff;\r\n          border-radius:14px;\r\n          padding:14px 16px 16px;\r\n          box-shadow:0 6px 18px rgba(15,23,42,0.14);\r\n          border:1px solid rgba(129,140,248,0.6);\r\n        }\r\n        .c176-controls{\r\n          display:flex;\r\n          gap:6px;\r\n          align-items:center;\r\n          margin:0 0 8px 0;\r\n          flex-wrap:wrap;\r\n          min-width:640px;\r\n        }\r\n        .c176-title{\r\n          font-weight:800;\r\n          font-size:18px;\r\n          color:#0f172a;\r\n          margin:0 0 10px 0;\r\n        }\r\n        .c176-range-label{\r\n          font:600 13px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#4b5563;\r\n        }\r\n        .c176-flex-spacer{flex:1 1 auto;}\r\n        .c176-btn{\r\n          padding:6px 10px;\r\n          border-radius:999px;\r\n          border:1px solid rgba(129,140,248,0.9);\r\n          background:linear-gradient(135deg,#eff6ff,#eef2ff);\r\n          font:500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          cursor:pointer;\r\n          color:#3730a3;\r\n          box-shadow:0 1px 2px rgba(15,23,42,0.07);\r\n          transition:background .15s ease,box-shadow .15s ease,transform .05s ease;\r\n        }\r\n        .c176-btn:hover{\r\n          background:linear-gradient(135deg,#e0f2fe,#eef2ff);\r\n          box-shadow:0 2px 4px rgba(15,23,42,0.12);\r\n          transform:translateY(-0.5px);\r\n        }\r\n        .c176-btn.is-active{\r\n          background:linear-gradient(135deg,#6366f1,#4f46e5);\r\n          color:#eef2ff;\r\n          border-color:#4338ca;\r\n          box-shadow:0 2px 6px rgba(79,70,229,0.55);\r\n        }\r\n        .c176-btn-ghost{\r\n          background:#ffffff;\r\n          border-color:rgba(209,213,219,0.9);\r\n          color:#374151;\r\n        }\r\n        .c176-hint{\r\n          font-size:12px;\r\n          color:#6b7280;\r\n        }\r\n\r\n        .c176-panels{\r\n          min-width:640px;\r\n          display:flex;\r\n          flex-direction:column;\r\n          gap:10px;\r\n        }\r\n        .c176-panel{\r\n          position:relative;\r\n          background:#ffffff;\r\n          border-radius:12px;\r\n          border:1px solid rgba(148,163,184,0.45);\r\n          overflow:hidden;\r\n        }\r\n        .c176-panel-label{\r\n          position:absolute;\r\n          left:10px;\r\n          top:8px;\r\n          z-index:2;\r\n          font:700 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#111827;\r\n          background:rgba(255,255,255,0.9);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          border-radius:999px;\r\n          padding:3px 10px;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          pointer-events:none;\r\n        }\r\n\r\n        .c176-panel canvas{\r\n          width:100%;\r\n          height:100%;\r\n          display:block;\r\n          user-select:none;\r\n          -webkit-user-select:none;\r\n          -webkit-user-drag:none;\r\n          touch-action:none;\r\n          cursor:crosshair;\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n          -webkit-tap-highlight-color:transparent;\r\n        }\r\n        .c176-panel canvas:focus,\r\n        .c176-panel canvas:focus-visible{\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n        }\r\n\r\n        .c176-panel-main{\r\n          height:300px;\r\n          min-height:300px;\r\n        }\r\n\r\n        .c176-source-wrap{\r\n          display:flex;\r\n          justify-content:flex-end;\r\n          flex-wrap:wrap;\r\n          gap:8px;\r\n          min-width:640px;\r\n          margin-top:8px;\r\n        }\r\n        .c176-source-pill{\r\n          display:inline-block;\r\n          padding:4px 10px;\r\n          border-radius:999px;\r\n          background:rgba(255,255,255,0.96);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          font:11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n          color:#6b7280;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          text-decoration:none;\r\n        }\r\n\r\n        @media (max-width:768px){\r\n          .c176-wrap{padding:10px;}\r\n          .c176-controls{min-width:0;}\r\n          .c176-panels{min-width:0;}\r\n          .c176-source-wrap{min-width:0;}\r\n          .c176-panel-main{\r\n            height:240px;\r\n            min-height:240px;\r\n          }\r\n        }\r\n      <\/style>\r\n\r\n      <script>\r\n        document.addEventListener('DOMContentLoaded', function(){\r\n          try{\r\n            const Zoom = (window['chartjs-plugin-zoom'] && (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])) || null;\r\n            if (Zoom && window.Chart && Chart.register) {\r\n              Chart.register(Zoom);\r\n            }\r\n          }catch(e){}\r\n\r\n          const wrap = document.getElementById('c176_wrap_170');\r\n          if (!wrap || !window.Chart) return;\r\n\r\n          const labelsAll = [\"2010-04-15\",\"2010-04-22\",\"2010-04-29\",\"2010-05-06\",\"2010-05-13\",\"2010-05-20\",\"2010-05-27\",\"2010-06-03\",\"2010-06-10\",\"2010-06-17\",\"2010-06-24\",\"2010-07-01\",\"2010-07-08\",\"2010-07-15\",\"2010-07-22\",\"2010-07-29\",\"2010-08-05\",\"2010-08-12\",\"2010-08-19\",\"2010-08-26\",\"2010-09-02\",\"2010-09-09\",\"2010-09-16\",\"2010-09-23\",\"2010-09-30\",\"2010-10-07\",\"2010-10-14\",\"2010-10-21\",\"2010-10-28\",\"2010-11-04\",\"2010-11-11\",\"2010-11-18\",\"2010-11-25\",\"2010-12-02\",\"2010-12-09\",\"2010-12-16\",\"2010-12-23\",\"2010-12-30\",\"2011-01-06\",\"2011-01-13\",\"2011-01-20\",\"2011-01-27\",\"2011-02-03\",\"2011-02-10\",\"2011-02-17\",\"2011-02-24\",\"2011-03-03\",\"2011-03-10\",\"2011-03-17\",\"2011-03-24\",\"2011-03-31\",\"2011-04-07\",\"2011-04-14\",\"2011-04-21\",\"2011-04-28\",\"2011-05-05\",\"2011-05-12\",\"2011-05-19\",\"2011-05-26\",\"2011-06-02\",\"2011-06-09\",\"2011-06-16\",\"2011-06-23\",\"2011-06-30\",\"2011-07-07\",\"2011-07-14\",\"2011-07-21\",\"2011-07-28\",\"2011-08-04\",\"2011-08-11\",\"2011-08-18\",\"2011-08-25\",\"2011-09-01\",\"2011-09-08\",\"2011-09-15\",\"2011-09-22\",\"2011-09-29\",\"2011-10-06\",\"2011-10-13\",\"2011-10-20\",\"2011-10-27\",\"2011-11-03\",\"2011-11-10\",\"2011-11-17\",\"2011-11-24\",\"2011-12-01\",\"2011-12-08\",\"2011-12-15\",\"2011-12-22\",\"2011-12-29\",\"2012-01-05\",\"2012-01-12\",\"2012-01-19\",\"2012-01-26\",\"2012-02-02\",\"2012-02-09\",\"2012-02-16\",\"2012-02-23\",\"2012-03-01\",\"2012-03-08\",\"2012-03-15\",\"2012-03-22\",\"2012-03-29\",\"2012-04-05\",\"2012-04-12\",\"2012-04-19\",\"2012-04-26\",\"2012-05-03\",\"2012-05-10\",\"2012-05-17\",\"2012-05-24\",\"2012-05-31\",\"2012-06-07\",\"2012-06-14\",\"2012-06-21\",\"2012-06-28\",\"2012-07-05\",\"2012-07-12\",\"2012-07-19\",\"2012-07-26\",\"2012-08-02\",\"2012-08-09\",\"2012-08-16\",\"2012-08-23\",\"2012-08-30\",\"2012-09-06\",\"2012-09-13\",\"2012-09-20\",\"2012-09-27\",\"2012-10-04\",\"2012-10-11\",\"2012-10-18\",\"2012-10-25\",\"2012-11-01\",\"2012-11-08\",\"2012-11-15\",\"2012-11-22\",\"2012-11-29\",\"2012-12-06\",\"2012-12-13\",\"2012-12-20\",\"2012-12-27\",\"2013-01-03\",\"2013-01-10\",\"2013-01-17\",\"2013-01-24\",\"2013-01-31\",\"2013-02-07\",\"2013-02-14\",\"2013-02-21\",\"2013-02-28\",\"2013-03-07\",\"2013-03-14\",\"2013-03-21\",\"2013-03-28\",\"2013-04-04\",\"2013-04-11\",\"2013-04-18\",\"2013-04-25\",\"2013-05-02\",\"2013-05-09\",\"2013-05-16\",\"2013-05-23\",\"2013-05-30\",\"2013-06-06\",\"2013-06-13\",\"2013-06-20\",\"2013-06-27\",\"2013-07-04\",\"2013-07-11\",\"2013-07-18\",\"2013-07-25\",\"2013-08-01\",\"2013-08-08\",\"2013-08-15\",\"2013-08-22\",\"2013-08-29\",\"2013-09-05\",\"2013-09-12\",\"2013-09-19\",\"2013-09-26\",\"2013-10-03\",\"2013-10-10\",\"2013-10-17\",\"2013-10-24\",\"2013-10-31\",\"2013-11-07\",\"2013-11-14\",\"2013-11-21\",\"2013-11-28\",\"2013-12-05\",\"2013-12-12\",\"2013-12-19\",\"2013-12-26\",\"2014-01-02\",\"2014-01-09\",\"2014-01-16\",\"2014-01-23\",\"2014-01-30\",\"2014-02-06\",\"2014-02-13\",\"2014-02-20\",\"2014-02-27\",\"2014-03-06\",\"2014-03-13\",\"2014-03-20\",\"2014-03-27\",\"2014-04-03\",\"2014-04-10\",\"2014-04-17\",\"2014-04-24\",\"2014-05-01\",\"2014-05-08\",\"2014-05-15\",\"2014-05-22\",\"2014-05-29\",\"2014-06-05\",\"2014-06-12\",\"2014-06-19\",\"2014-06-26\",\"2014-07-03\",\"2014-07-10\",\"2014-07-17\",\"2014-07-24\",\"2014-07-31\",\"2014-08-07\",\"2014-08-14\",\"2014-08-21\",\"2014-08-28\",\"2014-09-04\",\"2014-09-11\",\"2014-09-18\",\"2014-09-25\",\"2014-10-02\",\"2014-10-09\",\"2014-10-16\",\"2014-10-23\",\"2014-10-30\",\"2014-11-06\",\"2014-11-13\",\"2014-11-20\",\"2014-11-27\",\"2014-12-04\",\"2014-12-11\",\"2014-12-18\",\"2014-12-25\",\"2015-01-01\",\"2015-01-08\",\"2015-01-15\",\"2015-01-22\",\"2015-01-29\",\"2015-02-05\",\"2015-02-12\",\"2015-02-19\",\"2015-02-26\",\"2015-03-05\",\"2015-03-12\",\"2015-03-19\",\"2015-03-26\",\"2015-04-02\",\"2015-04-09\",\"2015-04-16\",\"2015-04-23\",\"2015-04-30\",\"2015-05-07\",\"2015-05-14\",\"2015-05-21\",\"2015-05-28\",\"2015-06-04\",\"2015-06-11\",\"2015-06-18\",\"2015-06-25\",\"2015-07-02\",\"2015-07-09\",\"2015-07-16\",\"2015-07-23\",\"2015-07-30\",\"2015-08-06\",\"2015-08-13\",\"2015-08-20\",\"2015-08-27\",\"2015-09-03\",\"2015-09-10\",\"2015-09-17\",\"2015-09-24\",\"2015-10-01\",\"2015-10-08\",\"2015-10-15\",\"2015-10-22\",\"2015-10-29\",\"2015-11-05\",\"2015-11-12\",\"2015-11-19\",\"2015-11-26\",\"2015-12-03\",\"2015-12-10\",\"2015-12-17\",\"2015-12-24\",\"2015-12-31\",\"2016-01-07\",\"2016-01-14\",\"2016-01-21\",\"2016-01-28\",\"2016-02-04\",\"2016-02-11\",\"2016-02-18\",\"2016-02-25\",\"2016-03-03\",\"2016-03-10\",\"2016-03-17\",\"2016-03-24\",\"2016-03-31\",\"2016-04-07\",\"2016-04-14\",\"2016-04-21\",\"2016-04-28\",\"2016-05-05\",\"2016-05-12\",\"2016-05-19\",\"2016-05-26\",\"2016-06-02\",\"2016-06-09\",\"2016-06-16\",\"2016-06-23\",\"2016-06-30\",\"2016-07-07\",\"2016-07-14\",\"2016-07-21\",\"2016-07-28\",\"2016-08-04\",\"2016-08-11\",\"2016-08-18\",\"2016-08-25\",\"2016-09-01\",\"2016-09-08\",\"2016-09-15\",\"2016-09-22\",\"2016-09-29\",\"2016-10-06\",\"2016-10-13\",\"2016-10-20\",\"2016-10-27\",\"2016-11-03\",\"2016-11-10\",\"2016-11-17\",\"2016-11-24\",\"2016-12-01\",\"2016-12-08\",\"2016-12-15\",\"2016-12-22\",\"2016-12-29\",\"2017-01-05\",\"2017-01-12\",\"2017-01-19\",\"2017-01-26\",\"2017-02-02\",\"2017-02-09\",\"2017-02-16\",\"2017-02-23\",\"2017-03-02\",\"2017-03-09\",\"2017-03-16\",\"2017-03-23\",\"2017-03-30\",\"2017-04-06\",\"2017-04-13\",\"2017-04-20\",\"2017-04-27\",\"2017-05-04\",\"2017-05-11\",\"2017-05-18\",\"2017-05-25\",\"2017-06-01\",\"2017-06-08\",\"2017-06-15\",\"2017-06-22\",\"2017-06-29\",\"2017-07-06\",\"2017-07-13\",\"2017-07-20\",\"2017-07-27\",\"2017-08-03\",\"2017-08-10\",\"2017-08-17\",\"2017-08-24\",\"2017-08-31\",\"2017-09-07\",\"2017-09-14\",\"2017-09-21\",\"2017-09-28\",\"2017-10-05\",\"2017-10-12\",\"2017-10-19\",\"2017-10-26\",\"2017-11-02\",\"2017-11-09\",\"2017-11-16\",\"2017-11-23\",\"2017-11-30\",\"2017-12-07\",\"2017-12-14\",\"2017-12-21\",\"2017-12-28\",\"2018-01-04\",\"2018-01-11\",\"2018-01-18\",\"2018-01-25\",\"2018-02-01\",\"2018-02-08\",\"2018-02-15\",\"2018-02-22\",\"2018-03-01\",\"2018-03-08\",\"2018-03-15\",\"2018-03-22\",\"2018-03-29\",\"2018-04-05\",\"2018-04-12\",\"2018-04-19\",\"2018-04-26\",\"2018-05-03\",\"2018-05-10\",\"2018-05-17\",\"2018-05-24\",\"2018-05-31\",\"2018-06-07\",\"2018-06-14\",\"2018-06-21\",\"2018-06-28\",\"2018-07-05\",\"2018-07-12\",\"2018-07-19\",\"2018-07-26\",\"2018-08-02\",\"2018-08-09\",\"2018-08-16\",\"2018-08-23\",\"2018-08-30\",\"2018-09-06\",\"2018-09-13\",\"2018-09-20\",\"2018-09-27\",\"2018-10-04\",\"2018-10-11\",\"2018-10-18\",\"2018-10-25\",\"2018-11-01\",\"2018-11-08\",\"2018-11-15\",\"2018-11-22\",\"2018-11-29\",\"2018-12-06\",\"2018-12-13\",\"2018-12-20\",\"2018-12-27\",\"2019-01-03\",\"2019-01-10\",\"2019-01-17\",\"2019-01-24\",\"2019-01-31\",\"2019-02-07\",\"2019-02-14\",\"2019-02-21\",\"2019-02-28\",\"2019-03-07\",\"2019-03-14\",\"2019-03-21\",\"2019-03-28\",\"2019-04-04\",\"2019-04-11\",\"2019-04-18\",\"2019-04-25\",\"2019-05-02\",\"2019-05-09\",\"2019-05-16\",\"2019-05-23\",\"2019-05-30\",\"2019-06-06\",\"2019-06-13\",\"2019-06-20\",\"2019-06-27\",\"2019-07-04\",\"2019-07-11\",\"2019-07-18\",\"2019-07-25\",\"2019-08-01\",\"2019-08-08\",\"2019-08-15\",\"2019-08-22\",\"2019-08-29\",\"2019-09-05\",\"2019-09-12\",\"2019-09-19\",\"2019-09-26\",\"2019-10-03\",\"2019-10-10\",\"2019-10-17\",\"2019-10-24\",\"2019-10-31\",\"2019-11-07\",\"2019-11-14\",\"2019-11-21\",\"2019-11-28\",\"2019-12-05\",\"2019-12-12\",\"2019-12-19\",\"2019-12-26\",\"2020-01-02\",\"2020-01-09\",\"2020-01-16\",\"2020-01-23\",\"2020-01-30\",\"2020-02-06\",\"2020-02-13\",\"2020-02-20\",\"2020-02-27\",\"2020-03-05\",\"2020-03-12\",\"2020-03-19\",\"2020-03-26\",\"2020-04-02\",\"2020-04-09\",\"2020-04-16\",\"2020-04-23\",\"2020-04-30\",\"2020-05-07\",\"2020-05-14\",\"2020-05-21\",\"2020-05-28\",\"2020-06-04\",\"2020-06-11\",\"2020-06-18\",\"2020-06-25\",\"2020-07-02\",\"2020-07-09\",\"2020-07-16\",\"2020-07-23\",\"2020-07-30\",\"2020-08-06\",\"2020-08-13\",\"2020-08-20\",\"2020-08-27\",\"2020-09-03\",\"2020-09-10\",\"2020-09-17\",\"2020-09-24\",\"2020-10-01\",\"2020-10-08\",\"2020-10-15\",\"2020-10-22\",\"2020-10-29\",\"2020-11-05\",\"2020-11-12\",\"2020-11-19\",\"2020-11-26\",\"2020-12-03\",\"2020-12-10\",\"2020-12-17\",\"2020-12-24\",\"2020-12-31\",\"2021-01-07\",\"2021-01-14\",\"2021-01-21\",\"2021-01-28\",\"2021-02-04\",\"2021-02-11\",\"2021-02-18\",\"2021-02-25\",\"2021-03-04\",\"2021-03-11\",\"2021-03-18\",\"2021-03-25\",\"2021-04-01\",\"2021-04-08\",\"2021-04-15\",\"2021-04-22\",\"2021-04-29\",\"2021-05-06\",\"2021-05-13\",\"2021-05-20\",\"2021-05-27\",\"2021-06-03\",\"2021-06-10\",\"2021-06-17\",\"2021-06-24\",\"2021-07-01\",\"2021-07-08\",\"2021-07-15\",\"2021-07-22\",\"2021-07-29\",\"2021-08-05\",\"2021-08-12\",\"2021-08-19\",\"2021-08-26\",\"2021-09-02\",\"2021-09-09\",\"2021-09-16\",\"2021-09-23\",\"2021-09-30\",\"2021-10-07\",\"2021-10-14\",\"2021-10-21\",\"2021-10-28\",\"2021-11-04\",\"2021-11-11\",\"2021-11-18\",\"2021-11-25\",\"2021-12-02\",\"2021-12-09\",\"2021-12-16\",\"2021-12-23\",\"2021-12-30\",\"2022-01-06\",\"2022-01-13\",\"2022-01-20\",\"2022-01-27\",\"2022-02-03\",\"2022-02-10\",\"2022-02-17\",\"2022-02-24\",\"2022-03-03\",\"2022-03-10\",\"2022-03-17\",\"2022-03-24\",\"2022-03-31\",\"2022-04-07\",\"2022-04-14\",\"2022-04-21\",\"2022-04-28\",\"2022-05-05\",\"2022-05-12\",\"2022-05-19\",\"2022-05-26\",\"2022-06-02\",\"2022-06-09\",\"2022-06-16\",\"2022-06-23\",\"2022-06-30\",\"2022-07-07\",\"2022-07-14\",\"2022-07-21\",\"2022-07-28\",\"2022-08-04\",\"2022-08-11\",\"2022-08-18\",\"2022-08-25\",\"2022-09-01\",\"2022-09-08\",\"2022-09-15\",\"2022-09-22\",\"2022-09-29\",\"2022-10-06\",\"2022-10-13\",\"2022-10-20\",\"2022-10-27\",\"2022-11-03\",\"2022-11-10\",\"2022-11-17\",\"2022-11-24\",\"2022-12-01\",\"2022-12-08\",\"2022-12-15\",\"2022-12-22\",\"2022-12-29\",\"2023-01-05\",\"2023-01-12\",\"2023-01-19\",\"2023-01-26\",\"2023-02-02\",\"2023-02-09\",\"2023-02-16\",\"2023-02-23\",\"2023-03-02\",\"2023-03-09\",\"2023-03-16\",\"2023-03-23\",\"2023-03-30\",\"2023-04-06\",\"2023-04-13\",\"2023-04-20\",\"2023-04-27\",\"2023-05-04\",\"2023-05-11\",\"2023-05-18\",\"2023-05-25\",\"2023-06-01\",\"2023-06-08\",\"2023-06-15\",\"2023-06-22\",\"2023-06-29\",\"2023-07-06\",\"2023-07-13\",\"2023-07-20\",\"2023-07-27\",\"2023-08-03\",\"2023-08-10\",\"2023-08-17\",\"2023-08-24\",\"2023-08-31\",\"2023-09-07\",\"2023-09-14\",\"2023-09-21\",\"2023-09-28\",\"2023-10-05\",\"2023-10-12\",\"2023-10-19\",\"2023-10-26\",\"2023-11-02\",\"2023-11-09\",\"2023-11-16\",\"2023-11-23\",\"2023-11-30\",\"2023-12-07\",\"2023-12-14\",\"2023-12-21\",\"2023-12-28\",\"2024-01-04\",\"2024-01-11\",\"2024-01-18\",\"2024-01-25\",\"2024-02-01\",\"2024-02-08\",\"2024-02-15\",\"2024-02-22\",\"2024-02-29\",\"2024-03-07\",\"2024-03-14\",\"2024-03-21\",\"2024-03-28\",\"2024-04-04\",\"2024-04-11\",\"2024-04-18\",\"2024-04-25\",\"2024-05-02\",\"2024-05-09\",\"2024-05-16\",\"2024-05-23\",\"2024-05-30\",\"2024-06-06\",\"2024-06-13\",\"2024-06-20\",\"2024-06-27\",\"2024-07-04\",\"2024-07-11\",\"2024-07-18\",\"2024-07-25\",\"2024-08-01\",\"2024-08-08\",\"2024-08-15\",\"2024-08-22\",\"2024-08-29\",\"2024-09-05\",\"2024-09-12\",\"2024-09-19\",\"2024-09-26\",\"2024-10-03\",\"2024-10-10\",\"2024-10-17\",\"2024-10-24\",\"2024-10-31\",\"2024-11-07\",\"2024-11-14\",\"2024-11-21\",\"2024-11-28\",\"2024-12-05\",\"2024-12-12\",\"2024-12-19\",\"2024-12-26\",\"2025-01-02\",\"2025-01-09\",\"2025-01-16\",\"2025-01-23\",\"2025-01-30\",\"2025-02-06\",\"2025-02-13\",\"2025-02-20\",\"2025-02-27\",\"2025-03-06\",\"2025-03-13\",\"2025-03-20\",\"2025-03-27\",\"2025-04-03\",\"2025-04-10\",\"2025-04-17\",\"2025-04-24\",\"2025-05-01\",\"2025-05-08\",\"2025-05-15\",\"2025-05-22\",\"2025-05-29\",\"2025-06-05\",\"2025-06-12\",\"2025-06-19\",\"2025-06-26\",\"2025-07-03\",\"2025-07-10\",\"2025-07-17\",\"2025-07-24\",\"2025-07-31\",\"2025-08-07\",\"2025-08-14\",\"2025-08-21\",\"2025-08-28\",\"2025-09-04\",\"2025-09-11\",\"2025-09-18\",\"2025-09-25\",\"2025-10-02\",\"2025-10-09\",\"2025-10-16\",\"2025-10-23\",\"2025-10-30\",\"2025-11-06\",\"2025-11-13\",\"2025-11-20\",\"2025-11-27\",\"2025-12-04\",\"2025-12-11\",\"2025-12-18\",\"2025-12-25\",\"2026-01-01\",\"2026-01-08\",\"2026-01-15\",\"2026-01-22\",\"2026-01-29\",\"2026-02-05\",\"2026-02-12\",\"2026-02-19\",\"2026-02-26\",\"2026-03-05\",\"2026-03-12\",\"2026-03-19\",\"2026-03-26\",\"2026-04-02\",\"2026-04-09\",\"2026-04-16\",\"2026-04-23\",\"2026-04-30\"];\r\n          const fgisAll   = [1031.222,933.307,853.358,993.315,1033.477,1151.85,1246.838,908.711,1059.572,750.422,1008.185,1043.962,985.396,1037.958,1087.91,863.826,1136.991,838.837,1118.886,1355.921,1018.207,1101.064,912.593,938.718,964.565,856.092,765.447,624.374,781.083,829.212,790.094,789.233,821.552,720.44,889.358,804.49,1142.682,578.162,353.12,593.787,684.433,793.738,741.695,700.415,998.435,640.704,1169.502,1002.363,784.585,1121.304,1026.276,1043.836,990.879,952.7,957.941,777.772,972.165,916.25,919.242,961.888,900.132,1103.061,778.978,942.144,887.354,911.397,986.267,908.163,922.373,1007.391,815.431,764.234,619.878,477.612,619.629,883.436,752.316,813.034,539.398,754.038,789.709,617.94,958.16,961.237,916.635,989.109,940.407,1149.359,1006.683,639.235,400.725,763.451,926.594,580.146,1027.193,742.397,885.319,731.813,789.635,978.152,591.025,628.87,799.435,674.902,1103.039,790.044,636.69,759.673,704.129,680.729,773.001,721.558,466.901,690.164,763.325,580.322,614.621,565.796,498.86,547.739,517.043,589.735,566.405,382.434,219.579,257.962,718.612,630.718,512.696,441.555,439.03,265.092,395.293,392.042,240.361,366.401,410.802,267.022,204.623,419.301,352.382,204.395,24.659,244.17,289.921,544.77,161.294,376.316,246.722,298.378,411.424,369.435,404.363,451.807,501.851,267.851,373.445,326.249,295.795,173.637,322.341,369.791,315.505,296.055,162.569,359.193,148.848,379.237,208.893,414.912,262.971,293.333,387.958,397.101,181.988,308.342,440.103,253.586,512.734,456.768,558.054,643.36,569.688,820.807,684.584,796.414,437.112,783.414,769.223,916.175,1028.529,640.933,957.648,738.532,112.704,541.902,758.201,736.756,562.732,696.048,843.34,804.488,1057.113,936.202,976.742,1150.102,1335.029,1310.564,1479.84,1633.18,1158.028,1251.021,1220.334,1063.857,1168.964,980.053,1157.396,1151.654,988.08,886.949,1263.667,946.313,941.977,816.065,1140.546,907.463,971.305,1102.685,884.986,1214.45,760.224,1054.237,602.916,888.244,941.21,719.613,735.112,433.211,529.462,410.926,532.36,756.107,535.758,564.91,802.368,609.611,null,501.625,747.634,907.881,661.675,701.389,728.959,908.797,1281.604,1180.784,735.311,1002.607,763.786,1042.144,859.343,1071.311,1370.605,1055.889,1136.396,1114.946,1007.891,984.275,750.975,1107.939,1115.832,1041.387,938.324,1057.085,1162.766,1108.281,920.708,819.736,901.408,883.987,1000.175,905.985,722.155,735.535,810.386,501.131,604.769,495.223,413.352,485.421,295.701,381.911,500.83,333.556,501.64,566.835,718.888,575.701,379.138,550.306,581.479,599.765,726.818,457.893,697.439,908.81,739.488,972.407,815.173,1014.034,989.062,1091.905,1122.094,1100.778,1144.479,1170.325,1148.155,1133.462,1147.856,786.507,1067.586,1707.891,1235.07,1451.227,1194.824,1359.886,1328.851,1319.331,1144.341,1488.516,1172.762,1279.604,1422.274,1469.123,1344.928,1296.515,1357.463,1485.276,1162.178,879.101,551.307,881.326,929.281,684.99,876,828.927,1183.956,872.303,805.241,981.879,638.577,632.218,910.845,986.268,1066.099,1123.191,1255.893,1181.973,1459.795,1450.003,1565.131,1360.484,1569.779,1487.93,1212.682,1338.551,1466.978,1131.042,862.344,1420.269,1178.751,1194.729,1177.107,1072.9,1220.45,969.602,1127.21,1010.889,1122.852,983.291,993.045,979.006,761.317,720.213,835.796,828.036,677.939,687.996,779.971,853.7,582.248,330.456,636.029,547.417,456.819,406.632,678.621,643.301,605.129,720.414,636.851,620.834,726.499,507.299,633.623,723.171,1011.214,1093.241,846.524,943.587,1316.368,980.045,1377.244,1439.155,1330.442,1445.186,1951.37,1589.565,1738.785,1484.877,1920.681,1588.806,1558.039,1716.832,1565.564,1410.564,1691.905,1540.434,1549.832,1477.999,1270.278,1338.723,1661.593,1299.272,1282.54,1096.647,1286.142,1366.445,793.574,1045.907,1376.035,1399.716,1462.556,1025.226,1036.251,738.335,1324.441,1173.297,866.813,1215.364,1063.695,909.735,919.393,1014.931,960.904,180.95,1013.97,1138.256,988.644,922.17,764.234,941.811,761.656,865.617,793.57,822.772,996.165,1259.267,1072.959,1213.795,1355.316,1388.033,999.594,1012.011,840.474,1120.203,766.893,851.765,700.577,617.74,307.077,732.695,690.451,449.82,670.962,668.574,731.186,510.334,657.416,357.783,621.944,434.505,235.389,443.59,495.163,480.647,581.237,400.811,295.08,581.856,651.147,616.902,439.633,489.612,699.697,401.894,418.926,99.636,483.559,396.914,680.459,562.38,788.549,805.379,923.999,896.221,829.865,998.179,868.864,1270.152,1279.364,1176.514,742.249,1089.765,1349.204,1407.281,1193.448,1097.249,1192.384,1231.962,921.649,1305.824,1241.038,1047.731,928.945,1220.792,851.773,737.634,1312.53,1150.109,903.008,424.965,900.366,939.113,768.084,826.995,910.973,846.596,912.646,680.823,740.612,692.565,862.235,833.297,1045.8,824.506,924.246,770.122,1266.318,1089.44,1345.489,934.164,1403.577,1116.097,1587.768,1315.474,1277.454,2047.398,1683.788,2276.033,2017.549,1789.432,2160.49,1728.498,1559.267,1954.012,2211.448,1716.495,1994.436,1746.162,2104.632,1426.869,1610.988,1775.716,1045.595,1251.583,1002.342,1076.692,1254.483,1467.379,816.753,792.963,766.758,583.498,338.716,179.166,403.422,705.288,941.56,850.831,1048.617,634.864,671.085,659.901,866.891,826.14,806.39,786.873,929.668,1002.287,954.488,759.563,854.274,1237.811,1186.575,1035.979,1065.14,1455.864,1578.256,1555.227,1582.167,1146.807,1496.798,1614.664,1540.562,1474.547,1182.821,1665.741,1696.45,1477.246,1060.575,1752.461,1412.248,1458.519,1221.822,1192.567,1246.95,876.729,934.9,1087.185,753.793,905.293,555.62,539.336,821.533,699.829,542.943,474.388,549.476,549.608,683.612,457.366,460.063,472.594,445.693,254.288,535.954,499.068,311.658,833.61,517.417,826.955,922.142,683.042,277.903,779.788,728.841,544.456,494,563.448,623.795,649.303,944.803,1026.995,1224.924,688.379,1098.461,839.165,1237.26,938.841,1518.569,974.45,1173.783,1328.829,1346.392,1206.808,1170.114,830.999,550.584,675.889,375.646,419.214,329.773,538.22,387.973,459.03,510.559,599.91,482.789,636.221,676.323,710.605,670.124,804.418,466.604,472.413,540.785,574.558,718.664,601.068,419.862,1176.452,725.33,959.925,1227.239,569.857,578.52,956.396,746.933,926.349,645.494,892.457,1052.245,1289.093,1146.082,1166.253,1326.287,1255.165,1471.882,1464.97,1364.692,1661.444,1298.351,1299.008,1004.571,1236.179,1130.328,1416.488,1340.755,1380.803,1152.95,831.219,1023.905,1099.615,991.257,1070.719,1272.227,986.232,1217.576,940.155,966.544,849.776,568.915,1150.305,1149.524,948.187,514.1,1001.162,859.795,800.209,807.42,873.661,1008.867,948.812,1068.25,1153.344,1146.871,907.565,127.878,1441.006,1542.329,1250.775,1260.984,1364.905,1623.127,1166.368,1352.573,1844.188,1692.298,1548.021,1718.304,1613.46,1829.98,1726.344,1666.415,1616.806,1300.112,1760.433,1419.437,1641.722,1728.889,1695.505,1504.081,1380.943,1563.946,1314.302,984.901,1532.153,1295.823,1522.561,1051.695,1338.532,1409.72,1443.179,1533.81,1385.966,1539.257,1701.634,1210.281,1324.992,1242.451,1712.164,1484.784,2066.21,1695.682,1630.296,1740.898,1604.831,1747.372,1345.007,74.32,1504.364,1486.755,1548.264,1148.252,1610.459,1573.053,2020.239,1859.089,1522.501,1670.829,1702.651,1879.892,2027.676,1631.829,1742.938,1656.665,2039.386];\r\n          const fasAll    = [1155.7,913.8,855.5,1033.2,979,1239.8,1226.6,911.9,1073,818.1,952.4,1030.5,1042.8,948.4,1199.2,833.3,1008.2,1006.1,1171.9,1142.2,65.7,1099.2,991.8,941.8,978.6,807.7,833.5,581.7,880.3,751,778.8,783,784.4,695.2,810.5,828.8,1140.2,613.8,515.7,587.2,770.1,861.8,669.1,675.9,1060.6,800.2,1204.9,880.6,879.8,1020,1015.5,1098.1,935.3,907.8,798.6,860.4,961.6,953.8,900.5,1004,820.3,1167.8,655.3,1040.8,860.4,925.8,1005.9,778.5,948.6,902.5,826.2,765.8,127.4,484.9,627.4,823.1,755.7,911,563.4,677.1,746.9,624.4,895.1,974,810.3,1036.6,886.9,1300.9,946.3,576.2,748.2,753.8,940.7,669.6,1089,686,776.3,818.1,769.2,1035.6,508.1,643.7,793.1,657.9,1114.5,700.2,664.6,696.9,666.7,689.3,815.1,732.9,432.9,713.3,665.4,645.1,605.4,682.2,513.3,582.7,476.6,632.9,601.3,372.8,235.4,110.4,740,679.6,430,520.8,417.7,290.1,388.4,395.5,232,394.6,368.8,292.8,258.5,433.4,286.6,205.3,106.8,246.9,369.5,609.2,208.7,392.3,256.8,296.3,367.2,408.2,418.5,384.8,565.9,279.8,301.6,322,403.8,192.1,298.5,270,354.7,359.8,232.8,322.4,151.2,353.4,265.8,407.3,239.9,328.1,430.4,377.5,173.5,329.3,371.4,4.9,518.8,479.1,546.2,618,0,0,2094.4,710.3,463.8,756.4,701,1042.1,977.5,693.4,1348.2,844.4,603.3,674.5,799.1,1004.1,747.4,952.5,745,853.1,1138.2,907.4,927.1,1230,1425.7,1217.4,1111,1621.1,1216,1415.1,1023.3,1159.1,1210.2,1159.5,1070.5,1123,1154.5,909.5,1207.1,907.9,992.5,865.5,1071.7,721.8,1144.3,1002.7,1022.6,112.6,722.4,1038.6,620.4,978.1,901.7,676.7,829.5,444,600.8,386.9,616.4,746.4,678.3,754,799.4,667.8,510.4,400.2,762.5,942.6,714.8,618.9,696.2,865.1,1378.8,1165.3,692.7,1065.9,683.4,1171.2,870.9,1041.1,1269.3,1135.2,1109.3,1079.5,1070.8,957.4,826.1,1044.9,1126,1024.9,966.2,1131.7,1156.8,1072.7,1005,840.6,918.1,820.6,1077.2,64.5,806.7,795.4,813.8,489.9,606.9,409.8,433.3,492.7,270.9,389,531.7,373.8,549.8,495,823.6,556.4,357.8,638.2,571.6,648.7,660.7,528.7,728.9,870.7,789.8,1052.5,873.9,997.5,1136,1137.5,1008.4,1283.5,1090.6,1226,1141.6,1175.1,1125,752.3,1242.2,1507.9,1208.2,1497.2,1270.5,1242.6,1240.9,1379.8,1138.5,1444.2,1166.3,1045.9,1464.5,4.7,1128.5,1353.1,1261.5,1390.2,1253.1,851,524.3,868.7,892.7,540.8,591.8,808.8,1366.4,835.7,781,992,609,693.9,927.9,978.5,764.6,1124.8,1251.7,1205.3,1497.8,1453.7,1580.4,1382.2,1402.8,1597.7,1076.3,1408.3,1374.3,1226.1,722.9,1543.4,1052.4,1332.5,1213.8,992.3,1211.5,1020.8,1108.9,880.5,1041.9,894.3,1090.6,973.5,698.5,725,983.8,695.4,714.6,703.7,727.5,966,669.6,339.3,604.4,598.3,489.8,417.5,695.8,651.2,592.3,690.8,701.9,521.1,657.7,889.8,659.7,599,1046.1,961.2,864.5,852.1,1275.7,1076.8,1406.3,1375.3,1376.1,1265.7,1912.1,1593.8,1701,1474.3,1784.7,1563.8,1469.3,1894.8,1448.5,1405.7,1762.9,1479.9,1514.8,1396.7,1293,1281.9,1624.6,1428.8,1220,1313.4,1344.4,1208.4,57.4,1077.7,1358.8,1408.1,1605.2,1100.4,1213.2,755,1355.4,1113,834.9,1053.2,1166.3,952.1,975.6,899.6,1006,665,0,0,0,0,0,5517.6,769.1,744,785.8,764.3,959.6,1262.2,983,1224.2,1248.7,1366.1,1154.1,983.9,879.3,1720.4,770,888.6,640.9,696.4,293.3,1135.8,682.4,578.6,704.1,692.6,707.9,539.7,611.2,382,84.8,457.3,278.9,458.3,474.4,556.6,489,494.3,317.9,602.2,673.1,635.3,494.8,531.4,720.1,331.7,447.5,514.6,544.7,392.1,681.9,599,782.8,761.2,844.7,884.6,851.7,970.2,846,1258.5,1290.3,1222.1,830.8,1051.5,1400.4,1311.1,1261.3,1061.2,1346.8,1241.2,877.5,1313,1439.9,1084.3,1014.3,1050.9,971.2,685.5,1333.1,1197,939.1,464.2,192.9,902,845.2,750.2,934.8,815.1,898,734.2,728.8,730.9,844.6,871.1,1072.3,715,965.4,835.7,1339.6,1027.9,1464.3,886.7,1414,995.5,1565.7,1387.1,1190.1,2010.2,1592.9,2199.4,2036,1977.5,2053.4,1816.3,1605.7,1915.2,2195.1,1544.1,2239.9,1850,2127.4,1647,1661.6,1689.7,1136.7,1286.4,1061.8,1003.5,1361,1410.7,1060.1,829.2,760.6,529.3,15.5,192,485.8,676.3,974.6,918.1,1041.7,688.5,748.5,718,1167.7,929,938.4,904.6,1093.5,1101.4,921.4,985.1,1011.8,1297.7,1436.9,1166.6,1149.4,1617.6,1886.2,1550.8,1763.3,1273.5,1492.1,1882.4,1633,1560.2,1196.4,1562.1,1904.9,1504.3,1380.1,1821.1,1579.7,1381.6,1387.1,1147.3,1254.7,1027.4,916.1,1109.1,867.9,1021.1,705.4,623,0,1008,83.9,426.8,563,574.7,645.5,422.6,407.2,619,450.2,259.4,564.4,462.3,344.5,900.1,590.5,958.8,1012.5,761.8,387.1,715.7,912.6,598.3,394.9,670.5,687.4,666.4,1052,1164.9,1381.3,668.2,1136.8,917,1298.5,1076.3,1699.2,1146.1,1086.5,1502.8,1434.8,1244.7,1192.6,668.3,605.3,707.5,492.7,383.8,411.4,626.2,478.4,444.8,496.5,663.4,515,726,602.5,730,612.4,812.9,516.3,483.7,505.9,824.9,683.1,623.8,499.9,1086.1,851,870.9,1279.5,681.5,1037.1,1000.4,931.8,911.4,782.8,903.3,1024.5,1216.2,1159.5,1258.6,1528.5,1234.1,1641.4,1556.8,1546.3,1709.3,1382.4,1231.2,952.4,1448.6,1044.4,1488.7,1249,1481.7,1177.2,894.4,879.1,1103.8,1209.8,1035.1,1303.3,1032.7,1155.9,1049,1061.2,28.2,572.9,1104.1,1170.4,1059.4,501.8,999.1,788,917.6,698.7,957,1010.8,1045.4,1183.4,1054.5,1123.9,1002.5,863.7,1484.3,1516.7,1320.2,1352.3,1354.3,1606.2,1321.9,1266.9,1863,1686.8,1651.8,1805.9,1699.4,1880.4,1780.3,1598.1,1819.5,1411.9,1589.4,1598.3,1647.8,1691,1745.7,1471.5,1465.6,1679,1210.7,1058.6,1488.7,1229.2,1520.4,1041,1149,1741.7,304,1555.9,1315.9,1429.2,1830.6,1122.5,1410.1,1332.5,1540.7,1528.6,2476.8,1531.6,1897.6,1754.2,1445.6,1758.7,1419.6,1396.5,1555.6,1433.8,1671.5,1147,1512.5,1626.9,1967.4,1696,1684.8,1749.8,1678.2,null,null,null,1952.5,1611.3,2056.6];\r\n\r\n          const labelFGIS = \"FGIS Corn Export Inspections\";\r\n          const labelFAS  = \"FAS Corn Exports\";\r\n\r\n          const canvas = document.getElementById('Corn_chart176_170');\r\n          if (!canvas) return;\r\n\r\n          const tsSecAll = labelsAll.map(l=>{\r\n            const s = String(l || '').trim();\r\n            let t = NaN;\r\n            if (\/^\\d{4}-\\d{2}-\\d{2}$\/.test(s)) {\r\n              t = Date.parse(s + 'T00:00:00Z');\r\n            } else {\r\n              t = Date.parse(s);\r\n            }\r\n            return isNaN(t) ? null : Math.floor(t\/1000);\r\n          });\r\n\r\n          const fmt = (n)=>{\r\n            try{\r\n              if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n              return Number(n).toLocaleString(undefined,{minimumFractionDigits:0,maximumFractionDigits:2});\r\n            }catch(e){ return n; }\r\n          };\r\n\r\n          const fmtCompact = (n)=>{\r\n            if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n            const x = Number(n);\r\n            const abs = Math.abs(x);\r\n            if (abs >= 1e9) return (x\/1e9).toFixed(1).replace(\/\\.0$\/,'') + 'B';\r\n            if (abs >= 1e6) return (x\/1e6).toFixed(1).replace(\/\\.0$\/,'') + 'M';\r\n            if (abs >= 1e3) return (x\/1e3).toFixed(0) + 'K';\r\n            return x.toLocaleString();\r\n          };\r\n\r\n          const FIX_Y_LEFT  = 56;\r\n          const FIX_Y_RIGHT = 66;\r\n\r\n          const CrosshairX = {\r\n            id:'crosshairX',\r\n            afterEvent(chart,args){\r\n              const e=args.event, a=chart.chartArea;\r\n              if(!a) return;\r\n              if(e.type==='mouseout'){ chart.$crossX=null; chart.draw(); return; }\r\n              if(e.x>=a.left && e.x<=a.right && e.y>=a.top && e.y<=a.bottom){\r\n                chart.$crossX={x:e.x};\r\n              }else{\r\n                chart.$crossX=null;\r\n              }\r\n              chart.draw();\r\n            },\r\n            afterDraw(chart){\r\n              const cross=chart.$crossX; if(!cross) return;\r\n              const {ctx,chartArea:a}=chart;\r\n              ctx.save();\r\n              ctx.strokeStyle='rgba(37,99,235,0.55)';\r\n              ctx.lineWidth=1;\r\n              ctx.setLineDash([4,3]);\r\n              ctx.beginPath();\r\n              ctx.moveTo(cross.x,a.top);\r\n              ctx.lineTo(cross.x,a.bottom);\r\n              ctx.stroke();\r\n              ctx.restore();\r\n            }\r\n          };\r\n\r\n          const makeExternalTooltip = () => (context)=>{\r\n            const { chart, tooltip } = context;\r\n            const area = chart.chartArea;\r\n            if(!area) return;\r\n\r\n            const tipId = '__c176_exttip';\r\n            let tip = document.getElementById(tipId);\r\n            if(!tip){\r\n              tip=document.createElement('div');\r\n              tip.id=tipId;\r\n              tip.style.position='fixed';\r\n              tip.style.left='0';\r\n              tip.style.top='0';\r\n              tip.style.opacity='0';\r\n              tip.style.pointerEvents='none';\r\n              tip.style.zIndex='99999';\r\n              document.body.appendChild(tip);\r\n            }\r\n\r\n            if(tooltip.opacity===0){ tip.style.opacity=0; return; }\r\n\r\n            const title = (tooltip.title && tooltip.title[0]) ? tooltip.title[0] : '';\r\n            const rows = (tooltip.dataPoints || []).map(dp=>{\r\n              const color = dp.dataset.borderColor || dp.dataset.backgroundColor || '#2563eb';\r\n              const label = dp.dataset.label || '';\r\n              let v = null;\r\n              if(typeof dp.raw === 'number'){ v = dp.raw; }\r\n              else if(dp.parsed && typeof dp.parsed.y === 'number'){ v = dp.parsed.y; }\r\n              const val = (v===null) ? '' : fmt(v);\r\n              return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                        <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                          <span style=\"width:10px;height:10px;border-radius:2px;background:${color};\r\n                                       border:1px solid rgba(255,255,255,.9);display:inline-block;\"><\/span>\r\n                          <span>${label}<\/span>\r\n                        <\/span>\r\n                        <span style=\"font-weight:700;\">${val}<\/span>\r\n                      <\/div>`;\r\n            }).join('');\r\n\r\n            tip.innerHTML =\r\n              `<div style=\"box-shadow:0 10px 24px rgba(15,23,42,.25);border:1px solid rgba(148,163,184,.7);\r\n                           background:#ffffff;color:#111827;border-radius:12px;padding:10px 12px;\r\n                           min-width:220px;max-width:380px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n                 <div style=\"color:#0f172a;font-weight:900;margin-bottom:6px;\">${title}<\/div>\r\n                 <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n               <\/div>`;\r\n\r\n            const cr = chart.canvas.getBoundingClientRect();\r\n            const box = tip.firstElementChild;\r\n            const boxW = box ? box.offsetWidth : 240;\r\n            const boxH = box ? box.offsetHeight : 130;\r\n            const pad  = 8;\r\n\r\n            const left   = Math.max(8, cr.left + area.left - boxW - pad);\r\n            const topMin = cr.top + area.top;\r\n            const topMax = cr.top + area.bottom - boxH;\r\n            const rawTop = cr.top + tooltip.caretY - boxH\/2;\r\n            const top    = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n            tip.style.left    = left + 'px';\r\n            tip.style.top     = top  + 'px';\r\n            tip.style.opacity = 1;\r\n          };\r\n\r\n          const buildChart = (labels, fgis, fas) => {\r\n            const ctx = canvas.getContext('2d');\r\n            const existing = Chart.getChart(canvas);\r\n            if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    label: labelFGIS,\r\n                    data: fgis.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.6,\r\n                    pointRadius:0,\r\n                    pointHoverRadius:4,\r\n                    pointHitRadius:10,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#2563eb',\r\n                    backgroundColor:'#2563eb',\r\n                    order:1\r\n                  },\r\n                  {\r\n                    label: labelFAS,\r\n                    data: fas.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.6,\r\n                    pointRadius:0,\r\n                    pointHoverRadius:4,\r\n                    pointHitRadius:10,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#f59e0b',\r\n                    backgroundColor:'#f59e0b',\r\n                    order:2\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip(), mode:'index', intersect:false },\r\n                  legend:{\r\n                    display:true,\r\n                    position:'bottom',\r\n                    labels:{\r\n                      color:'#374151',\r\n                      font:{ size:12, weight:'600' },\r\n                      usePointStyle:true,\r\n                      pointStyle:'line'\r\n                    }\r\n                  },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true,\r\n                        mode:'x',\r\n                        threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales:{\r\n                  x:{\r\n                    type:'category',\r\n                    ticks:{\r\n                      autoSkip:true,\r\n                      maxTicksLimit:(window.innerWidth<768?6:10),\r\n                      maxRotation:0,\r\n                      minRotation:0,\r\n                      color:'#4b5563'\r\n                    },\r\n                    grid:{ color:'rgba(148,163,184,0.20)' }\r\n                  },\r\n                  y:{\r\n                    type:'linear',\r\n                    position:'right',\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n                    ticks:{ color:'#111827', callback:(v)=>fmtCompact(v) },\r\n                    grid:{ color:'rgba(209,213,219,0.55)' }\r\n                  },\r\n                  yL:{\r\n                    type:'linear',\r\n                    position:'left',\r\n                    display:true,\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n                    ticks:{ display:false },\r\n                    grid:{ drawOnChartArea:false, drawBorder:false },\r\n                    border:{ display:false }\r\n                  }\r\n                }\r\n              }\r\n            });\r\n          };\r\n\r\n          let labels = labelsAll.slice();\r\n          let fgis   = fgisAll.slice();\r\n          let fas    = fasAll.slice();\r\n\r\n          let chart = buildChart(labels, fgis, fas);\r\n\r\n          const applyRange = (m)=>{\r\n            let idxKeep = null;\r\n\r\n            if(m !== 'all' && Array.isArray(tsSecAll) && tsSecAll.length){\r\n              const months = parseInt(m,10);\r\n              const validTs = tsSecAll.filter(t=>Number.isInteger(t) && t>0);\r\n              if(validTs.length){\r\n                const latest = Math.max.apply(null, validTs);\r\n                const cutDate = new Date(latest*1000);\r\n                cutDate.setUTCMonth(cutDate.getUTCMonth() - months);\r\n                const cutTs = Math.floor(cutDate.getTime()\/1000);\r\n\r\n                idxKeep = [];\r\n                tsSecAll.forEach((ts,idx)=>{\r\n                  if(Number.isInteger(ts) && ts >= cutTs) idxKeep.push(idx);\r\n                });\r\n              }\r\n            }\r\n\r\n            const sliceByIdx = (arr)=>{\r\n              if(!idxKeep || !idxKeep.length) return arr.slice();\r\n              return idxKeep.map(i => arr[i]);\r\n            };\r\n\r\n            labels = sliceByIdx(labelsAll);\r\n            fgis   = sliceByIdx(fgisAll);\r\n            fas    = sliceByIdx(fasAll);\r\n\r\n            chart.data.labels = labels;\r\n            chart.options.scales.x.min = undefined;\r\n            chart.options.scales.x.max = undefined;\r\n            chart.data.datasets[0].data = fgis;\r\n            chart.data.datasets[1].data = fas;\r\n            chart.update();\r\n\r\n            if(chart.resetZoom) chart.resetZoom();\r\n\r\n            btns.forEach(b=>b.classList.toggle('is-active', (b.dataset.range === String(m))));\r\n          };\r\n\r\n          const btns = wrap.querySelectorAll('.c176-btn[data-range]');\r\n          const resetBtn = wrap.querySelector('[data-action=\"reset\"]');\r\n          const pngBtn   = wrap.querySelector('[data-action=\"png\"]');\r\n\r\n          btns.forEach(b => b.addEventListener('click', ()=> applyRange(b.dataset.range)));\r\n\r\n          if(resetBtn){\r\n            resetBtn.addEventListener('click', ()=>{\r\n              if(chart.resetZoom) chart.resetZoom();\r\n            });\r\n          }\r\n\r\n          if(pngBtn){\r\n            pngBtn.addEventListener('click', ()=>{\r\n              try{\r\n                const out = document.createElement('a');\r\n                out.href = canvas.toDataURL('image\/png', 1.0);\r\n                out.download = 'corn_chart176_us_corn_exports.png';\r\n                out.click();\r\n              }catch(e){}\r\n            });\r\n          }\r\n\r\n          applyRange('24');\r\n\r\n          canvas.addEventListener('dblclick', ()=>{\r\n            if(chart.resetZoom) chart.resetZoom();\r\n          });\r\n\r\n          canvas.addEventListener('pointerdown', ()=>{\r\n            try{ canvas.focus({preventScroll:true}); }catch(e){ try{ canvas.focus(); }catch(e2){} }\r\n          }, { passive:true });\r\n\r\n          const panByArrow = (e)=>{\r\n            const k = e.key;\r\n            if(k !== 'ArrowLeft' && k !== 'ArrowRight') return;\r\n            if(!chart || typeof chart.pan !== 'function') return;\r\n\r\n            const tag = (e.target && e.target.tagName) ? e.target.tagName.toLowerCase() : '';\r\n            if(tag==='input' || tag==='textarea' || tag==='select' || (e.target && e.target.isContentEditable)) return;\r\n\r\n            const a = chart.chartArea || null;\r\n            let step = a ? Math.max(24, Math.round(a.width * 0.08)) : 60;\r\n            if(e.shiftKey) step *= 2;\r\n\r\n            const dx = (k === 'ArrowLeft') ? step : -step;\r\n\r\n            e.preventDefault();\r\n            try{\r\n              chart.pan({ x: dx, y: 0 });\r\n            }catch(err){}\r\n          };\r\n\r\n          canvas.addEventListener('keydown', panByArrow);\r\n\r\n          ['mouseleave','scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt=>{\r\n            window.addEventListener(evt, ()=>{\r\n              const t = document.getElementById('__c176_exttip');\r\n              if(t) t.style.opacity = 0;\r\n            }, {passive:true});\r\n          });\r\n        });\r\n      <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-04ca63b e-con-full e-flex e-con e-child\" data-id=\"04ca63b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-29b3532 elementor-widget elementor-widget-text-editor\" data-id=\"29b3532\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Because export inspections are released before export volume data, investors can view them as an early signal of whether exports are actually moving. The export volume data released later can then be understood as an indicator that confirms whether that trend turned into actual results.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-210bc24 elementor-widget elementor-widget-shortcode\" data-id=\"210bc24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">      <div id=\"c177_wrap_171\" class=\"c177-wrap\">\r\n        <div class=\"c177-card\">\r\n          <div class=\"c177-controls\">\r\n            <strong class=\"c177-range-label\">Range:<\/strong>\r\n            <button type=\"button\" data-range=\"12\"  class=\"c177-btn\">1Y<\/button>\r\n            <button type=\"button\" data-range=\"24\"  class=\"c177-btn\">2Y<\/button>\r\n            <button type=\"button\" data-range=\"60\"  class=\"c177-btn\">5Y<\/button>\r\n            <button type=\"button\" data-range=\"all\" class=\"c177-btn\">ALL<\/button>\r\n\r\n            <span class=\"c177-flex-spacer\"><\/span>\r\n            <em class=\"c177-hint\">Wheel\/Pinch=Zoom \u00b7 Drag=Box Zoom \u00b7 Double-click=Reset \u00b7 Arrow keys=Pan (Shift=Faster)<\/em>\r\n\r\n            <button type=\"button\" data-action=\"reset\" class=\"c177-btn c177-btn-ghost\">Reset Zoom<\/button>\r\n            <button type=\"button\" data-action=\"png\"   class=\"c177-btn c177-btn-ghost\">Save PNG<\/button>\r\n          <\/div>\r\n\r\n          <div class=\"c177-title\">U.S. Corn Outstanding Sales (Thousand Metric Tons)<\/div>\r\n\r\n          <div class=\"c177-panels\">\r\n            <div class=\"c177-panel c177-panel-main\">\r\n              <div class=\"c177-panel-label\">Corn Outstanding Sales<\/div>\r\n              <canvas id=\"Corn_chart177_171\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"c177-source-wrap\">\r\n            <a class=\"c177-source-pill\" href=\"https:\/\/apps.fas.usda.gov\/export-sales\/h401.htm\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n              Source: USDA FAS \u2014 Export Sales Weekly Historical Data            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <style>\r\n        .c177-wrap{\r\n          overflow-x:auto;\r\n          -webkit-overflow-scrolling:touch;\r\n          padding:16px;\r\n          border-radius:18px;\r\n          background:linear-gradient(135deg,#eef2ff,#e0f2fe);\r\n          box-shadow:0 18px 32px rgba(15,23,42,0.18);\r\n          margin:8px 0;\r\n        }\r\n        .c177-card{\r\n          background:#ffffff;\r\n          border-radius:14px;\r\n          padding:14px 16px 16px;\r\n          box-shadow:0 6px 18px rgba(15,23,42,0.14);\r\n          border:1px solid rgba(129,140,248,0.6);\r\n        }\r\n        .c177-controls{\r\n          display:flex;\r\n          gap:6px;\r\n          align-items:center;\r\n          margin:0 0 8px 0;\r\n          flex-wrap:wrap;\r\n          min-width:640px;\r\n        }\r\n        .c177-title{\r\n          font-weight:800;\r\n          font-size:18px;\r\n          color:#0f172a;\r\n          margin:0 0 10px 0;\r\n        }\r\n        .c177-range-label{\r\n          font:600 13px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#4b5563;\r\n        }\r\n        .c177-flex-spacer{flex:1 1 auto;}\r\n        .c177-btn{\r\n          padding:6px 10px;\r\n          border-radius:999px;\r\n          border:1px solid rgba(129,140,248,0.9);\r\n          background:linear-gradient(135deg,#eff6ff,#eef2ff);\r\n          font:500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          cursor:pointer;\r\n          color:#3730a3;\r\n          box-shadow:0 1px 2px rgba(15,23,42,0.07);\r\n          transition:background .15s ease,box-shadow .15s ease,transform .05s ease;\r\n        }\r\n        .c177-btn:hover{\r\n          background:linear-gradient(135deg,#e0f2fe,#eef2ff);\r\n          box-shadow:0 2px 4px rgba(15,23,42,0.12);\r\n          transform:translateY(-0.5px);\r\n        }\r\n        .c177-btn.is-active{\r\n          background:linear-gradient(135deg,#6366f1,#4f46e5);\r\n          color:#eef2ff;\r\n          border-color:#4338ca;\r\n          box-shadow:0 2px 6px rgba(79,70,229,0.55);\r\n        }\r\n        .c177-btn-ghost{\r\n          background:#ffffff;\r\n          border-color:rgba(209,213,219,0.9);\r\n          color:#374151;\r\n        }\r\n        .c177-hint{\r\n          font-size:12px;\r\n          color:#6b7280;\r\n        }\r\n\r\n        .c177-panels{\r\n          min-width:640px;\r\n          display:flex;\r\n          flex-direction:column;\r\n          gap:10px;\r\n        }\r\n        .c177-panel{\r\n          position:relative;\r\n          background:#ffffff;\r\n          border-radius:12px;\r\n          border:1px solid rgba(148,163,184,0.45);\r\n          overflow:hidden;\r\n        }\r\n        .c177-panel-label{\r\n          position:absolute;\r\n          left:10px;\r\n          top:8px;\r\n          z-index:2;\r\n          font:700 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#111827;\r\n          background:rgba(255,255,255,0.9);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          border-radius:999px;\r\n          padding:3px 10px;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          pointer-events:none;\r\n        }\r\n\r\n        .c177-panel canvas{\r\n          width:100%;\r\n          height:100%;\r\n          display:block;\r\n          user-select:none;\r\n          -webkit-user-select:none;\r\n          -webkit-user-drag:none;\r\n          touch-action:none;\r\n          cursor:crosshair;\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n          -webkit-tap-highlight-color:transparent;\r\n        }\r\n        .c177-panel canvas:focus,\r\n        .c177-panel canvas:focus-visible{\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n        }\r\n\r\n        .c177-panel-main{\r\n          height:300px;\r\n          min-height:300px;\r\n        }\r\n\r\n        .c177-source-wrap{\r\n          display:flex;\r\n          justify-content:flex-end;\r\n          min-width:640px;\r\n          margin-top:8px;\r\n        }\r\n        .c177-source-pill{\r\n          display:inline-block;\r\n          padding:4px 10px;\r\n          border-radius:999px;\r\n          background:rgba(255,255,255,0.96);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          font:11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n          color:#6b7280;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          text-decoration:none;\r\n        }\r\n\r\n        @media (max-width:768px){\r\n          .c177-wrap{padding:10px;}\r\n          .c177-controls{min-width:0;}\r\n          .c177-panels{min-width:0;}\r\n          .c177-source-wrap{min-width:0;}\r\n          .c177-panel-main{\r\n            height:240px;\r\n            min-height:240px;\r\n          }\r\n        }\r\n      <\/style>\r\n\r\n      <script>\r\n        document.addEventListener('DOMContentLoaded', function(){\r\n          try{\r\n            const Zoom = (window['chartjs-plugin-zoom'] && (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])) || null;\r\n            if (Zoom && window.Chart && Chart.register) {\r\n              Chart.register(Zoom);\r\n            }\r\n          }catch(e){}\r\n\r\n          const wrap = document.getElementById('c177_wrap_171');\r\n          if (!wrap || !window.Chart) return;\r\n\r\n          const labelsAll      = [\"2010-04-15\",\"2010-04-22\",\"2010-04-29\",\"2010-05-06\",\"2010-05-13\",\"2010-05-20\",\"2010-05-27\",\"2010-06-03\",\"2010-06-10\",\"2010-06-17\",\"2010-06-24\",\"2010-07-01\",\"2010-07-08\",\"2010-07-15\",\"2010-07-22\",\"2010-07-29\",\"2010-08-05\",\"2010-08-12\",\"2010-08-19\",\"2010-08-26\",\"2010-09-02\",\"2010-09-09\",\"2010-09-16\",\"2010-09-23\",\"2010-09-30\",\"2010-10-07\",\"2010-10-14\",\"2010-10-21\",\"2010-10-28\",\"2010-11-04\",\"2010-11-11\",\"2010-11-18\",\"2010-11-25\",\"2010-12-02\",\"2010-12-09\",\"2010-12-16\",\"2010-12-23\",\"2010-12-30\",\"2011-01-06\",\"2011-01-13\",\"2011-01-20\",\"2011-01-27\",\"2011-02-03\",\"2011-02-10\",\"2011-02-17\",\"2011-02-24\",\"2011-03-03\",\"2011-03-10\",\"2011-03-17\",\"2011-03-24\",\"2011-03-31\",\"2011-04-07\",\"2011-04-14\",\"2011-04-21\",\"2011-04-28\",\"2011-05-05\",\"2011-05-12\",\"2011-05-19\",\"2011-05-26\",\"2011-06-02\",\"2011-06-09\",\"2011-06-16\",\"2011-06-23\",\"2011-06-30\",\"2011-07-07\",\"2011-07-14\",\"2011-07-21\",\"2011-07-28\",\"2011-08-04\",\"2011-08-11\",\"2011-08-18\",\"2011-08-25\",\"2011-09-01\",\"2011-09-08\",\"2011-09-15\",\"2011-09-22\",\"2011-09-29\",\"2011-10-06\",\"2011-10-13\",\"2011-10-20\",\"2011-10-27\",\"2011-11-03\",\"2011-11-10\",\"2011-11-17\",\"2011-11-24\",\"2011-12-01\",\"2011-12-08\",\"2011-12-15\",\"2011-12-22\",\"2011-12-29\",\"2012-01-05\",\"2012-01-12\",\"2012-01-19\",\"2012-01-26\",\"2012-02-02\",\"2012-02-09\",\"2012-02-16\",\"2012-02-23\",\"2012-03-01\",\"2012-03-08\",\"2012-03-15\",\"2012-03-22\",\"2012-03-29\",\"2012-04-05\",\"2012-04-12\",\"2012-04-19\",\"2012-04-26\",\"2012-05-03\",\"2012-05-10\",\"2012-05-17\",\"2012-05-24\",\"2012-05-31\",\"2012-06-07\",\"2012-06-14\",\"2012-06-21\",\"2012-06-28\",\"2012-07-05\",\"2012-07-12\",\"2012-07-19\",\"2012-07-26\",\"2012-08-02\",\"2012-08-09\",\"2012-08-16\",\"2012-08-23\",\"2012-08-30\",\"2012-09-06\",\"2012-09-13\",\"2012-09-20\",\"2012-09-27\",\"2012-10-04\",\"2012-10-11\",\"2012-10-18\",\"2012-10-25\",\"2012-11-01\",\"2012-11-08\",\"2012-11-15\",\"2012-11-22\",\"2012-11-29\",\"2012-12-06\",\"2012-12-13\",\"2012-12-20\",\"2012-12-27\",\"2013-01-03\",\"2013-01-10\",\"2013-01-17\",\"2013-01-24\",\"2013-01-31\",\"2013-02-07\",\"2013-02-14\",\"2013-02-21\",\"2013-02-28\",\"2013-03-07\",\"2013-03-14\",\"2013-03-21\",\"2013-03-28\",\"2013-04-04\",\"2013-04-11\",\"2013-04-18\",\"2013-04-25\",\"2013-05-02\",\"2013-05-09\",\"2013-05-16\",\"2013-05-23\",\"2013-05-30\",\"2013-06-06\",\"2013-06-13\",\"2013-06-20\",\"2013-06-27\",\"2013-07-04\",\"2013-07-11\",\"2013-07-18\",\"2013-07-25\",\"2013-08-01\",\"2013-08-08\",\"2013-08-15\",\"2013-08-22\",\"2013-08-29\",\"2013-09-05\",\"2013-09-12\",\"2013-09-19\",\"2013-09-26\",\"2013-10-03\",\"2013-10-10\",\"2013-10-17\",\"2013-10-24\",\"2013-10-31\",\"2013-11-07\",\"2013-11-14\",\"2013-11-21\",\"2013-11-28\",\"2013-12-05\",\"2013-12-12\",\"2013-12-19\",\"2013-12-26\",\"2014-01-02\",\"2014-01-09\",\"2014-01-16\",\"2014-01-23\",\"2014-01-30\",\"2014-02-06\",\"2014-02-13\",\"2014-02-20\",\"2014-02-27\",\"2014-03-06\",\"2014-03-13\",\"2014-03-20\",\"2014-03-27\",\"2014-04-03\",\"2014-04-10\",\"2014-04-17\",\"2014-04-24\",\"2014-05-01\",\"2014-05-08\",\"2014-05-15\",\"2014-05-22\",\"2014-05-29\",\"2014-06-05\",\"2014-06-12\",\"2014-06-19\",\"2014-06-26\",\"2014-07-03\",\"2014-07-10\",\"2014-07-17\",\"2014-07-24\",\"2014-07-31\",\"2014-08-07\",\"2014-08-14\",\"2014-08-21\",\"2014-08-28\",\"2014-09-04\",\"2014-09-11\",\"2014-09-18\",\"2014-09-25\",\"2014-10-02\",\"2014-10-09\",\"2014-10-16\",\"2014-10-23\",\"2014-10-30\",\"2014-11-06\",\"2014-11-13\",\"2014-11-20\",\"2014-11-27\",\"2014-12-04\",\"2014-12-11\",\"2014-12-18\",\"2014-12-25\",\"2015-01-01\",\"2015-01-08\",\"2015-01-15\",\"2015-01-22\",\"2015-01-29\",\"2015-02-05\",\"2015-02-12\",\"2015-02-19\",\"2015-02-26\",\"2015-03-05\",\"2015-03-12\",\"2015-03-19\",\"2015-03-26\",\"2015-04-02\",\"2015-04-09\",\"2015-04-16\",\"2015-04-23\",\"2015-04-30\",\"2015-05-07\",\"2015-05-14\",\"2015-05-21\",\"2015-05-28\",\"2015-06-04\",\"2015-06-11\",\"2015-06-18\",\"2015-06-25\",\"2015-07-02\",\"2015-07-09\",\"2015-07-16\",\"2015-07-23\",\"2015-07-30\",\"2015-08-06\",\"2015-08-13\",\"2015-08-20\",\"2015-08-27\",\"2015-09-03\",\"2015-09-10\",\"2015-09-17\",\"2015-09-24\",\"2015-10-01\",\"2015-10-08\",\"2015-10-15\",\"2015-10-22\",\"2015-10-29\",\"2015-11-05\",\"2015-11-12\",\"2015-11-19\",\"2015-11-26\",\"2015-12-03\",\"2015-12-10\",\"2015-12-17\",\"2015-12-24\",\"2015-12-31\",\"2016-01-07\",\"2016-01-14\",\"2016-01-21\",\"2016-01-28\",\"2016-02-04\",\"2016-02-11\",\"2016-02-18\",\"2016-02-25\",\"2016-03-03\",\"2016-03-10\",\"2016-03-17\",\"2016-03-24\",\"2016-03-31\",\"2016-04-07\",\"2016-04-14\",\"2016-04-21\",\"2016-04-28\",\"2016-05-05\",\"2016-05-12\",\"2016-05-19\",\"2016-05-26\",\"2016-06-02\",\"2016-06-09\",\"2016-06-16\",\"2016-06-23\",\"2016-06-30\",\"2016-07-07\",\"2016-07-14\",\"2016-07-21\",\"2016-07-28\",\"2016-08-04\",\"2016-08-11\",\"2016-08-18\",\"2016-08-25\",\"2016-09-01\",\"2016-09-08\",\"2016-09-15\",\"2016-09-22\",\"2016-09-29\",\"2016-10-06\",\"2016-10-13\",\"2016-10-20\",\"2016-10-27\",\"2016-11-03\",\"2016-11-10\",\"2016-11-17\",\"2016-11-24\",\"2016-12-01\",\"2016-12-08\",\"2016-12-15\",\"2016-12-22\",\"2016-12-29\",\"2017-01-05\",\"2017-01-12\",\"2017-01-19\",\"2017-01-26\",\"2017-02-02\",\"2017-02-09\",\"2017-02-16\",\"2017-02-23\",\"2017-03-02\",\"2017-03-09\",\"2017-03-16\",\"2017-03-23\",\"2017-03-30\",\"2017-04-06\",\"2017-04-13\",\"2017-04-20\",\"2017-04-27\",\"2017-05-04\",\"2017-05-11\",\"2017-05-18\",\"2017-05-25\",\"2017-06-01\",\"2017-06-08\",\"2017-06-15\",\"2017-06-22\",\"2017-06-29\",\"2017-07-06\",\"2017-07-13\",\"2017-07-20\",\"2017-07-27\",\"2017-08-03\",\"2017-08-10\",\"2017-08-17\",\"2017-08-24\",\"2017-08-31\",\"2017-09-07\",\"2017-09-14\",\"2017-09-21\",\"2017-09-28\",\"2017-10-05\",\"2017-10-12\",\"2017-10-19\",\"2017-10-26\",\"2017-11-02\",\"2017-11-09\",\"2017-11-16\",\"2017-11-23\",\"2017-11-30\",\"2017-12-07\",\"2017-12-14\",\"2017-12-21\",\"2017-12-28\",\"2018-01-04\",\"2018-01-11\",\"2018-01-18\",\"2018-01-25\",\"2018-02-01\",\"2018-02-08\",\"2018-02-15\",\"2018-02-22\",\"2018-03-01\",\"2018-03-08\",\"2018-03-15\",\"2018-03-22\",\"2018-03-29\",\"2018-04-05\",\"2018-04-12\",\"2018-04-19\",\"2018-04-26\",\"2018-05-03\",\"2018-05-10\",\"2018-05-17\",\"2018-05-24\",\"2018-05-31\",\"2018-06-07\",\"2018-06-14\",\"2018-06-21\",\"2018-06-28\",\"2018-07-05\",\"2018-07-12\",\"2018-07-19\",\"2018-07-26\",\"2018-08-02\",\"2018-08-09\",\"2018-08-16\",\"2018-08-23\",\"2018-08-30\",\"2018-09-06\",\"2018-09-13\",\"2018-09-20\",\"2018-09-27\",\"2018-10-04\",\"2018-10-11\",\"2018-10-18\",\"2018-10-25\",\"2018-11-01\",\"2018-11-08\",\"2018-11-15\",\"2018-11-22\",\"2018-11-29\",\"2018-12-06\",\"2018-12-13\",\"2018-12-20\",\"2018-12-27\",\"2019-01-03\",\"2019-01-10\",\"2019-01-17\",\"2019-01-24\",\"2019-01-31\",\"2019-02-07\",\"2019-02-14\",\"2019-02-21\",\"2019-02-28\",\"2019-03-07\",\"2019-03-14\",\"2019-03-21\",\"2019-03-28\",\"2019-04-04\",\"2019-04-11\",\"2019-04-18\",\"2019-04-25\",\"2019-05-02\",\"2019-05-09\",\"2019-05-16\",\"2019-05-23\",\"2019-05-30\",\"2019-06-06\",\"2019-06-13\",\"2019-06-20\",\"2019-06-27\",\"2019-07-04\",\"2019-07-11\",\"2019-07-18\",\"2019-07-25\",\"2019-08-01\",\"2019-08-08\",\"2019-08-15\",\"2019-08-22\",\"2019-08-29\",\"2019-09-05\",\"2019-09-12\",\"2019-09-19\",\"2019-09-26\",\"2019-10-03\",\"2019-10-10\",\"2019-10-17\",\"2019-10-24\",\"2019-10-31\",\"2019-11-07\",\"2019-11-14\",\"2019-11-21\",\"2019-11-28\",\"2019-12-05\",\"2019-12-12\",\"2019-12-19\",\"2019-12-26\",\"2020-01-02\",\"2020-01-09\",\"2020-01-16\",\"2020-01-23\",\"2020-01-30\",\"2020-02-06\",\"2020-02-13\",\"2020-02-20\",\"2020-02-27\",\"2020-03-05\",\"2020-03-12\",\"2020-03-19\",\"2020-03-26\",\"2020-04-02\",\"2020-04-09\",\"2020-04-16\",\"2020-04-23\",\"2020-04-30\",\"2020-05-07\",\"2020-05-14\",\"2020-05-21\",\"2020-05-28\",\"2020-06-04\",\"2020-06-11\",\"2020-06-18\",\"2020-06-25\",\"2020-07-02\",\"2020-07-09\",\"2020-07-16\",\"2020-07-23\",\"2020-07-30\",\"2020-08-06\",\"2020-08-13\",\"2020-08-20\",\"2020-08-27\",\"2020-09-03\",\"2020-09-10\",\"2020-09-17\",\"2020-09-24\",\"2020-10-01\",\"2020-10-08\",\"2020-10-15\",\"2020-10-22\",\"2020-10-29\",\"2020-11-05\",\"2020-11-12\",\"2020-11-19\",\"2020-11-26\",\"2020-12-03\",\"2020-12-10\",\"2020-12-17\",\"2020-12-24\",\"2020-12-31\",\"2021-01-07\",\"2021-01-14\",\"2021-01-21\",\"2021-01-28\",\"2021-02-04\",\"2021-02-11\",\"2021-02-18\",\"2021-02-25\",\"2021-03-04\",\"2021-03-11\",\"2021-03-18\",\"2021-03-25\",\"2021-04-01\",\"2021-04-08\",\"2021-04-15\",\"2021-04-22\",\"2021-04-29\",\"2021-05-06\",\"2021-05-13\",\"2021-05-20\",\"2021-05-27\",\"2021-06-03\",\"2021-06-10\",\"2021-06-17\",\"2021-06-24\",\"2021-07-01\",\"2021-07-08\",\"2021-07-15\",\"2021-07-22\",\"2021-07-29\",\"2021-08-05\",\"2021-08-12\",\"2021-08-19\",\"2021-08-26\",\"2021-09-02\",\"2021-09-09\",\"2021-09-16\",\"2021-09-23\",\"2021-09-30\",\"2021-10-07\",\"2021-10-14\",\"2021-10-21\",\"2021-10-28\",\"2021-11-04\",\"2021-11-11\",\"2021-11-18\",\"2021-11-25\",\"2021-12-02\",\"2021-12-09\",\"2021-12-16\",\"2021-12-23\",\"2021-12-30\",\"2022-01-06\",\"2022-01-13\",\"2022-01-20\",\"2022-01-27\",\"2022-02-03\",\"2022-02-10\",\"2022-02-17\",\"2022-02-24\",\"2022-03-03\",\"2022-03-10\",\"2022-03-17\",\"2022-03-24\",\"2022-03-31\",\"2022-04-07\",\"2022-04-14\",\"2022-04-21\",\"2022-04-28\",\"2022-05-05\",\"2022-05-12\",\"2022-05-19\",\"2022-05-26\",\"2022-06-02\",\"2022-06-09\",\"2022-06-16\",\"2022-06-23\",\"2022-06-30\",\"2022-07-07\",\"2022-07-14\",\"2022-07-21\",\"2022-07-28\",\"2022-08-04\",\"2022-08-11\",\"2022-08-18\",\"2022-08-25\",\"2022-09-01\",\"2022-09-08\",\"2022-09-15\",\"2022-09-22\",\"2022-09-29\",\"2022-10-06\",\"2022-10-13\",\"2022-10-20\",\"2022-10-27\",\"2022-11-03\",\"2022-11-10\",\"2022-11-17\",\"2022-11-24\",\"2022-12-01\",\"2022-12-08\",\"2022-12-15\",\"2022-12-22\",\"2022-12-29\",\"2023-01-05\",\"2023-01-12\",\"2023-01-19\",\"2023-01-26\",\"2023-02-02\",\"2023-02-09\",\"2023-02-16\",\"2023-02-23\",\"2023-03-02\",\"2023-03-09\",\"2023-03-16\",\"2023-03-23\",\"2023-03-30\",\"2023-04-06\",\"2023-04-13\",\"2023-04-20\",\"2023-04-27\",\"2023-05-04\",\"2023-05-11\",\"2023-05-18\",\"2023-05-25\",\"2023-06-01\",\"2023-06-08\",\"2023-06-15\",\"2023-06-22\",\"2023-06-29\",\"2023-07-06\",\"2023-07-13\",\"2023-07-20\",\"2023-07-27\",\"2023-08-03\",\"2023-08-10\",\"2023-08-17\",\"2023-08-24\",\"2023-08-31\",\"2023-09-07\",\"2023-09-14\",\"2023-09-21\",\"2023-09-28\",\"2023-10-05\",\"2023-10-12\",\"2023-10-19\",\"2023-10-26\",\"2023-11-02\",\"2023-11-09\",\"2023-11-16\",\"2023-11-23\",\"2023-11-30\",\"2023-12-07\",\"2023-12-14\",\"2023-12-21\",\"2023-12-28\",\"2024-01-04\",\"2024-01-11\",\"2024-01-18\",\"2024-01-25\",\"2024-02-01\",\"2024-02-08\",\"2024-02-15\",\"2024-02-22\",\"2024-02-29\",\"2024-03-07\",\"2024-03-14\",\"2024-03-21\",\"2024-03-28\",\"2024-04-04\",\"2024-04-11\",\"2024-04-18\",\"2024-04-25\",\"2024-05-02\",\"2024-05-09\",\"2024-05-16\",\"2024-05-23\",\"2024-05-30\",\"2024-06-06\",\"2024-06-13\",\"2024-06-20\",\"2024-06-27\",\"2024-07-04\",\"2024-07-11\",\"2024-07-18\",\"2024-07-25\",\"2024-08-01\",\"2024-08-08\",\"2024-08-15\",\"2024-08-22\",\"2024-08-29\",\"2024-09-05\",\"2024-09-12\",\"2024-09-19\",\"2024-09-26\",\"2024-10-03\",\"2024-10-10\",\"2024-10-17\",\"2024-10-24\",\"2024-10-31\",\"2024-11-07\",\"2024-11-14\",\"2024-11-21\",\"2024-11-28\",\"2024-12-05\",\"2024-12-12\",\"2024-12-19\",\"2024-12-26\",\"2025-01-02\",\"2025-01-09\",\"2025-01-16\",\"2025-01-23\",\"2025-01-30\",\"2025-02-06\",\"2025-02-13\",\"2025-02-20\",\"2025-02-27\",\"2025-03-06\",\"2025-03-13\",\"2025-03-20\",\"2025-03-27\",\"2025-04-03\",\"2025-04-10\",\"2025-04-17\",\"2025-04-24\",\"2025-05-01\",\"2025-05-08\",\"2025-05-15\",\"2025-05-22\",\"2025-05-29\",\"2025-06-05\",\"2025-06-12\",\"2025-06-19\",\"2025-06-26\",\"2025-07-03\",\"2025-07-10\",\"2025-07-17\",\"2025-07-24\",\"2025-07-31\",\"2025-08-07\",\"2025-08-14\",\"2025-08-21\",\"2025-08-28\",\"2025-09-04\",\"2025-09-11\",\"2025-09-18\",\"2025-09-25\",\"2025-10-02\",\"2025-10-09\",\"2025-10-16\",\"2025-10-23\",\"2025-10-30\",\"2025-11-06\",\"2025-11-13\",\"2025-11-20\",\"2025-11-27\",\"2025-12-04\",\"2025-12-11\",\"2025-12-18\",\"2025-12-25\",\"2026-01-01\",\"2026-01-08\",\"2026-01-15\",\"2026-01-22\",\"2026-01-29\",\"2026-02-05\",\"2026-02-12\",\"2026-02-19\",\"2026-02-26\",\"2026-03-05\",\"2026-03-12\",\"2026-03-19\",\"2026-04-16\",\"2026-04-23\",\"2026-04-30\"];\r\n          const outstandingAll = [10027.6,10342.5,11337.8,11123.7,11498.9,11289.9,10262.1,10369,10386.4,10691.7,10388.9,9859.6,9495,9160.7,8393.7,8032.6,7464.1,7052.9,5923.3,4752.6,285.8,14587.5,14157.5,14141.6,13770.2,13868.4,13247.4,13216.5,12797.8,12620.4,12375.4,12415.5,12389.1,12365,12365.3,12442.6,12058.9,11814.2,11737.7,12055.4,11700,12004.9,12443.1,12797.6,13238.3,13518.7,12791,12946.7,12961.9,13856.8,13460.9,13210.8,12888.9,12330,11815.7,11389.2,11270.8,11043.7,10614.8,9931.1,9406.6,8649.6,8686.1,8267.1,7888,7390.9,6716.5,6235.5,5728.2,5069.2,4626.7,3540.1,136,13812.9,13783.6,13748.4,14282.1,14630,15829.2,15488.3,15364,14991.4,14305.3,13643.3,13113.6,12772.5,12390.3,11804.4,11176.9,10900.2,10473.5,10479.6,10497.1,10739.5,10344.6,10664.4,10728.9,10600.7,10277.2,10078,10432,9919,10063.5,10364.8,9550.7,9496.1,10163.4,9690.7,9363.5,8830.3,8203.9,7722.8,7382,6840.2,6367.6,5741.8,5309.2,4658.9,4136.5,3732.3,3430.4,2920.3,2427.4,2020.9,1681.4,249.4,9112.9,8433.7,8330.5,7813.9,7563,7415.2,7194.7,6956.8,6828.6,7203.8,7071.1,6830,6830.4,6511.4,6329.1,6173,6078.8,6225.2,5994.2,5571.8,5532.1,5365.2,5470.2,5476.5,5059.4,4933.5,4607.2,4517.6,4306,4211.4,4310.2,4302.9,4228.3,4152.1,4073.5,3908.1,3639.1,3386.5,3235.2,3046.2,3231.6,3111.3,3237.5,2983.1,2715.3,2521.2,2380.9,1944.4,1829.1,1484.7,1000.1,171.2,12530.6,12691.6,12920.6,13644,13644,13644,16105.1,17113.5,17852.6,18041.4,18347.4,17898.9,17616.9,17750.6,17880.9,17191.1,16743.1,16889.6,16783.5,17617.3,18570,18887.3,18833.8,18821.5,19201.4,18977.4,18796.1,18974.4,18509.4,17950.7,17441.6,16439.5,16161.4,14907.6,14227.3,13576.1,12987.2,12378.3,11717.5,10703.6,9870.5,9251.7,8407.6,8073.4,7372.4,6680.8,5729.9,4891,3846.5,2811.1,1781.1,695.5,11621.3,11419.1,11436.7,11243.3,12264.5,12619,12279.3,12313.5,12218,12739.8,13068.3,13492.5,13776.9,13716.4,14622.6,14849.8,14727.1,15145.7,16568.7,16694.3,16824.4,17208.6,17444.6,17295.3,16744.6,15997.3,15806.8,15175.9,14899.1,14367.6,14084.8,13911.7,13474.9,13181.6,12442.3,12175.4,11759.2,11266.7,10936.2,10518.6,9889.4,9458.8,9027.9,8227.3,7293.9,6586.1,5578.5,4767.1,4131.8,3179.4,2214.9,267.4,8265.2,7896.2,7830.5,7860.3,7851.8,7690.1,7965.6,8028.9,8376.7,8767.5,10272.2,10397.7,10943.2,11027.6,11007.6,11156.4,11051.5,11082.5,11668.6,11836.9,12305.3,12181.6,12503.4,12567.2,12875,12994.8,13348,13153.7,12808.3,12616,12743.4,12662.6,13732.6,13276,13239.6,13537.7,13793.8,14359.4,14676.1,14077.8,13740.4,12711.7,11810.9,11236.1,10340.4,9399.4,8592,7742.7,6743.8,5769,4518.6,299,15618.5,15187.3,14500.9,15171.5,14791.9,14963.9,15238.9,15843.6,16184.8,17304.9,18401.9,18354.7,18483.7,19164,19634.1,19600.7,19420.9,19330.3,19770.1,20161.9,20540.9,20387.9,19919.7,19457.5,18652.1,17939.5,17614.5,17579.3,16893.4,16433.8,16095.5,15443.5,15057.2,14602.6,14157.4,13319.3,12724.1,11803.7,10938.5,10547,9864.3,9159.7,8191.1,7471.7,6896.3,6094,5040,4118.5,3482.5,2859.8,2064.5,1010.5,9788.4,9611.6,9204.4,9052.4,9976,10891.6,11575.6,11788.7,13663.4,14195.5,14580.6,14528.5,14812.6,14988.7,15845.1,16569.5,16013,15561,16789.6,17636.5,18441,19249.4,20359.4,21062.7,21540,22320.8,23419.5,23514.4,23491.4,23124,22051.9,21549.7,20545.8,20091.3,19002.1,18424.1,17809,16907.3,16297.5,15828.2,14231.2,13601.2,12527.1,11532.5,10880.5,9937.1,8604.6,7730.3,6849.3,5709.2,4540.3,3362.1,727.2,14750.3,15104.3,15127.2,14528.7,13810.8,12947.1,12586.5,11932.6,11712.2,11754.7,11968,11979.1,11930.2,12929,13728.8,13226,13020.8,13020.8,13020.8,13020.8,13020.8,13020.8,13559.8,14030.6,14256.3,13842.6,13934.3,13879.2,13154.3,12719.3,12442.7,11973.9,11194.3,10327.8,9897.3,9460.1,8646.5,7867.7,7147.6,6545.1,6143.6,6025.9,5395.5,4913.1,4455.7,3894.6,3244.5,2592.8,2172.4,1558.6,1010.8,412.2,7785.4,8000.4,8104.7,7914.8,7726.8,7729.2,7784,7954.1,7933.4,8048.4,8219.8,8271.1,8613.3,9602.6,9895.6,9979.6,9626.9,9867,10481.8,11034.5,11683.3,11869.4,12357.3,12377.3,12261.9,12881.3,12815.7,13783.9,13600.8,14159.5,13844,13740,14045.2,13419.4,13181.6,12804.5,12170.5,11461.2,10880.7,10361.1,9509.7,8430.9,7541.8,7508.6,6678.2,5677.7,5093.8,4137.9,3002.5,2333.8,1965.3,245.7,19308.4,20602.2,21879.2,22170,22010.1,22943.7,24453.2,26335.3,26582.7,26826.7,27621.1,27920.3,28567.5,29526.6,29342.1,28967,28688.1,28661.5,29212.4,29648.8,36089.8,35972.7,35584.7,34847.9,32953.6,31756.3,30542.7,32988.6,31808.4,30512.1,29023.6,27805.3,26411.4,24353.6,22696.2,20733.8,19439.7,17843.5,16386.1,14742.5,13269.2,12147.5,11034.3,10111.4,9019.4,7543.2,6200.8,5518.3,4905.6,4151.6,3321.5,167.9,24212.8,24100,23794.1,24084.6,24206.3,24437.8,24639.7,25115,25464.2,25201.1,25701.2,25783.6,26011.4,26866.6,26748.1,27073.1,26344.1,25790,25583.6,25549,25557.6,24997.3,24199.8,23354.5,22288.8,22669.2,23232.1,22719.4,21473.8,20623.3,20395.9,20078.7,19383.4,18261.1,16949.6,16004.8,14335.4,12941.4,11840.2,10594.1,10118.8,8952.8,7858.9,7001.8,5926.6,5209,4245.8,3732.3,3208.6,0,2113.6,36.8,11837.7,11457,11394.3,10975.9,10753.5,10754.6,10399.7,10321.7,10327.6,10932.9,12320.9,12579.1,12370.6,12739,12417,12186.1,11743.6,11612.2,12028.6,12026.4,13021.4,13786.7,14140.7,14276.5,14208.2,14568.2,14639.5,16354.1,16722.4,16832.1,16442.9,15456.8,14780.5,12765.7,11876.9,10451.4,8873.4,7625.4,6553.3,5634,5001.6,4536.7,4080.9,4056.7,3909.6,3812.4,3293.8,2965.8,2754.4,2235.2,1643.6,1113.4,10433.9,10398.2,10510,11713.6,11811.2,12176.2,13043.6,13285.8,13476.2,14600.7,15409.3,16837.2,17040,17607.7,17749.9,17712.6,17398.6,16849.1,17099.8,17122.8,17418.2,17854.8,18258.4,18054.3,17920.4,17870.6,17895.4,17552.7,17525.1,16831.7,15600.4,14555.3,14146,13522.1,13180.1,12969.9,12432.5,12198.2,11890.5,11697.6,10727.4,10092.4,9555.1,9214.3,8548.4,7669.9,6802.7,5984.8,5072.6,4035.8,3002.2,1767.9,558.6,13077.1,12508.1,13021.7,13184.5,14908.3,17511.9,19065.6,20914.5,21530.9,22068.5,22120.7,22807.7,22571.2,22691.3,23278.6,23053.1,22634.3,22174.3,22318.6,22357,22481.9,22776.5,22624.1,22097,21739.1,20843.5,20653.3,20041.1,19408.5,18494.7,18176.2,17548.8,16965.1,16808.2,17073.5,16674.9,15993.3,15287.8,14388.1,13546.2,12816,11883.1,11466.2,10353.1,9937.5,8789.7,7730.9,6121.8,5053.7,3886.9,1864.3,687.3,21589.9,22197.5,22163.1,22564.7,22796.4,24208.8,24681.6,25135.8,24586.7,24490.3,24801.8,24696.4,24421.1,24719.6,25163.2,24500.1,23481.2,23065.2,25642,25619.4,25513.6,26070.7,25913.4,24631.8,24958.3,24776.8,24198.8,23738.4,21630.8,21617.3,20922.4];\r\n          const seriesLabel    = \"Corn Outstanding Sales\";\r\n\r\n          const canvas = document.getElementById('Corn_chart177_171');\r\n          if (!canvas) return;\r\n\r\n          const tsSecAll = labelsAll.map(l=>{\r\n            const s = String(l || '').trim();\r\n            let t = NaN;\r\n            if (\/^\\d{4}-\\d{2}-\\d{2}$\/.test(s)) {\r\n              t = Date.parse(s + 'T00:00:00Z');\r\n            } else {\r\n              t = Date.parse(s);\r\n            }\r\n            return isNaN(t) ? null : Math.floor(t\/1000);\r\n          });\r\n\r\n          const fmt = (n)=>{\r\n            try{\r\n              if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n              return Number(n).toLocaleString(undefined,{minimumFractionDigits:0,maximumFractionDigits:2});\r\n            }catch(e){ return n; }\r\n          };\r\n\r\n          const fmtCompact = (n)=>{\r\n            if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n            const x = Number(n);\r\n            const abs = Math.abs(x);\r\n            if (abs >= 1e9) return (x\/1e9).toFixed(1).replace(\/\\.0$\/,'') + 'B';\r\n            if (abs >= 1e6) return (x\/1e6).toFixed(1).replace(\/\\.0$\/,'') + 'M';\r\n            if (abs >= 1e3) return (x\/1e3).toFixed(0) + 'K';\r\n            return x.toLocaleString();\r\n          };\r\n\r\n          const FIX_Y_LEFT  = 56;\r\n          const FIX_Y_RIGHT = 66;\r\n\r\n          const CrosshairX = {\r\n            id:'crosshairX',\r\n            afterEvent(chart,args){\r\n              const e=args.event, a=chart.chartArea;\r\n              if(!a) return;\r\n              if(e.type==='mouseout'){ chart.$crossX=null; chart.draw(); return; }\r\n              if(e.x>=a.left && e.x<=a.right && e.y>=a.top && e.y<=a.bottom){\r\n                chart.$crossX={x:e.x};\r\n              }else{\r\n                chart.$crossX=null;\r\n              }\r\n              chart.draw();\r\n            },\r\n            afterDraw(chart){\r\n              const cross=chart.$crossX; if(!cross) return;\r\n              const {ctx,chartArea:a}=chart;\r\n              ctx.save();\r\n              ctx.strokeStyle='rgba(37,99,235,0.55)';\r\n              ctx.lineWidth=1;\r\n              ctx.setLineDash([4,3]);\r\n              ctx.beginPath();\r\n              ctx.moveTo(cross.x,a.top);\r\n              ctx.lineTo(cross.x,a.bottom);\r\n              ctx.stroke();\r\n              ctx.restore();\r\n            }\r\n          };\r\n\r\n          const makeExternalTooltip = () => (context)=>{\r\n            const { chart, tooltip } = context;\r\n            const area = chart.chartArea;\r\n            if(!area) return;\r\n\r\n            const tipId = '__c177_exttip';\r\n            let tip = document.getElementById(tipId);\r\n            if(!tip){\r\n              tip=document.createElement('div');\r\n              tip.id=tipId;\r\n              tip.style.position='fixed';\r\n              tip.style.left='0';\r\n              tip.style.top='0';\r\n              tip.style.opacity='0';\r\n              tip.style.pointerEvents='none';\r\n              tip.style.zIndex='99999';\r\n              document.body.appendChild(tip);\r\n            }\r\n\r\n            if(tooltip.opacity===0){ tip.style.opacity=0; return; }\r\n\r\n            const title = (tooltip.title && tooltip.title[0]) ? tooltip.title[0] : '';\r\n            const rows = (tooltip.dataPoints || []).map(dp=>{\r\n              const color = dp.dataset.borderColor || dp.dataset.backgroundColor || '#2563eb';\r\n              const label = dp.dataset.label || '';\r\n              let v = null;\r\n              if(typeof dp.raw === 'number'){ v = dp.raw; }\r\n              else if(dp.parsed && typeof dp.parsed.y === 'number'){ v = dp.parsed.y; }\r\n              const val = (v===null) ? '' : fmt(v);\r\n              return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                        <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                          <span style=\"width:10px;height:10px;border-radius:2px;background:${color};\r\n                                       border:1px solid rgba(255,255,255,.9);display:inline-block;\"><\/span>\r\n                          <span>${label}<\/span>\r\n                        <\/span>\r\n                        <span style=\"font-weight:700;\">${val}<\/span>\r\n                      <\/div>`;\r\n            }).join('');\r\n\r\n            tip.innerHTML =\r\n              `<div style=\"box-shadow:0 10px 24px rgba(15,23,42,.25);border:1px solid rgba(148,163,184,.7);\r\n                           background:#ffffff;color:#111827;border-radius:12px;padding:10px 12px;\r\n                           min-width:220px;max-width:380px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n                 <div style=\"color:#0f172a;font-weight:900;margin-bottom:6px;\">${title}<\/div>\r\n                 <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n               <\/div>`;\r\n\r\n            const cr = chart.canvas.getBoundingClientRect();\r\n            const box = tip.firstElementChild;\r\n            const boxW = box ? box.offsetWidth : 240;\r\n            const boxH = box ? box.offsetHeight : 130;\r\n            const pad  = 8;\r\n\r\n            const left   = Math.max(8, cr.left + area.left - boxW - pad);\r\n            const topMin = cr.top + area.top;\r\n            const topMax = cr.top + area.bottom - boxH;\r\n            const rawTop = cr.top + tooltip.caretY - boxH\/2;\r\n            const top    = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n            tip.style.left    = left + 'px';\r\n            tip.style.top     = top  + 'px';\r\n            tip.style.opacity = 1;\r\n          };\r\n\r\n          const buildChart = (labels, values) => {\r\n            const ctx = canvas.getContext('2d');\r\n            const existing = Chart.getChart(canvas);\r\n            if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    label: seriesLabel,\r\n                    data: values.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.6,\r\n                    pointRadius:0,\r\n                    pointHoverRadius:4,\r\n                    pointHitRadius:10,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#2563eb',\r\n                    backgroundColor:'#2563eb',\r\n                    order:1\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip(), mode:'index', intersect:false },\r\n                  legend:{ display:false },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true,\r\n                        mode:'x',\r\n                        threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales:{\r\n                  x:{\r\n                    type:'category',\r\n                    ticks:{\r\n                      autoSkip:true,\r\n                      maxTicksLimit:(window.innerWidth<768?6:10),\r\n                      maxRotation:0,\r\n                      minRotation:0,\r\n                      color:'#4b5563'\r\n                    },\r\n                    grid:{ color:'rgba(148,163,184,0.20)' }\r\n                  },\r\n                  y:{\r\n                    type:'linear',\r\n                    position:'right',\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n                    ticks:{ color:'#111827', callback:(v)=>fmtCompact(v) },\r\n                    grid:{ color:'rgba(209,213,219,0.55)' }\r\n                  },\r\n                  yL:{\r\n                    type:'linear',\r\n                    position:'left',\r\n                    display:true,\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n                    ticks:{ display:false },\r\n                    grid:{ drawOnChartArea:false, drawBorder:false },\r\n                    border:{ display:false }\r\n                  }\r\n                }\r\n              }\r\n            });\r\n          };\r\n\r\n          let labels = labelsAll.slice();\r\n          let values = outstandingAll.slice();\r\n\r\n          let chart = buildChart(labels, values);\r\n\r\n          const applyRange = (m)=>{\r\n            let idxKeep = null;\r\n\r\n            if(m !== 'all' && Array.isArray(tsSecAll) && tsSecAll.length){\r\n              const months = parseInt(m,10);\r\n              const validTs = tsSecAll.filter(t=>Number.isInteger(t) && t>0);\r\n              if(validTs.length){\r\n                const latest = Math.max.apply(null, validTs);\r\n                const cutDate = new Date(latest*1000);\r\n                cutDate.setUTCMonth(cutDate.getUTCMonth() - months);\r\n                const cutTs = Math.floor(cutDate.getTime()\/1000);\r\n\r\n                idxKeep = [];\r\n                tsSecAll.forEach((ts,idx)=>{\r\n                  if(Number.isInteger(ts) && ts >= cutTs) idxKeep.push(idx);\r\n                });\r\n              }\r\n            }\r\n\r\n            const sliceByIdx = (arr)=>{\r\n              if(!idxKeep || !idxKeep.length) return arr.slice();\r\n              return idxKeep.map(i => arr[i]);\r\n            };\r\n\r\n            labels = sliceByIdx(labelsAll);\r\n            values = sliceByIdx(outstandingAll);\r\n\r\n            chart.data.labels = labels;\r\n            chart.options.scales.x.min = undefined;\r\n            chart.options.scales.x.max = undefined;\r\n            chart.data.datasets[0].data = values;\r\n            chart.update();\r\n\r\n            if(chart.resetZoom) chart.resetZoom();\r\n\r\n            btns.forEach(b=>b.classList.toggle('is-active', (b.dataset.range === String(m))));\r\n          };\r\n\r\n          const btns = wrap.querySelectorAll('.c177-btn[data-range]');\r\n          const resetBtn = wrap.querySelector('[data-action=\"reset\"]');\r\n          const pngBtn   = wrap.querySelector('[data-action=\"png\"]');\r\n\r\n          btns.forEach(b => b.addEventListener('click', ()=> applyRange(b.dataset.range)));\r\n\r\n          if(resetBtn){\r\n            resetBtn.addEventListener('click', ()=>{\r\n              if(chart.resetZoom) chart.resetZoom();\r\n            });\r\n          }\r\n\r\n          if(pngBtn){\r\n            pngBtn.addEventListener('click', ()=>{\r\n              try{\r\n                const out = document.createElement('a');\r\n                out.href = canvas.toDataURL('image\/png', 1.0);\r\n                out.download = 'corn_chart177_us_corn_outstanding_sales.png';\r\n                out.click();\r\n              }catch(e){}\r\n            });\r\n          }\r\n\r\n          applyRange('24');\r\n\r\n          canvas.addEventListener('dblclick', ()=>{\r\n            if(chart.resetZoom) chart.resetZoom();\r\n          });\r\n\r\n          canvas.addEventListener('pointerdown', ()=>{\r\n            try{ canvas.focus({preventScroll:true}); }catch(e){ try{ canvas.focus(); }catch(e2){} }\r\n          }, { passive:true });\r\n\r\n          const panByArrow = (e)=>{\r\n            const k = e.key;\r\n            if(k !== 'ArrowLeft' && k !== 'ArrowRight') return;\r\n            if(!chart || typeof chart.pan !== 'function') return;\r\n\r\n            const tag = (e.target && e.target.tagName) ? e.target.tagName.toLowerCase() : '';\r\n            if(tag==='input' || tag==='textarea' || tag==='select' || (e.target && e.target.isContentEditable)) return;\r\n\r\n            const a = chart.chartArea || null;\r\n            let step = a ? Math.max(24, Math.round(a.width * 0.08)) : 60;\r\n            if(e.shiftKey) step *= 2;\r\n\r\n            const dx = (k === 'ArrowLeft') ? step : -step;\r\n\r\n            e.preventDefault();\r\n            try{\r\n              chart.pan({ x: dx, y: 0 });\r\n            }catch(err){}\r\n          };\r\n\r\n          canvas.addEventListener('keydown', panByArrow);\r\n\r\n          ['mouseleave','scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt=>{\r\n            window.addEventListener(evt, ()=>{\r\n              const t = document.getElementById('__c177_exttip');\r\n              if(t) t.style.opacity = 0;\r\n            }, {passive:true});\r\n          });\r\n        });\r\n      <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3f9997b e-con-full e-flex e-con e-child\" data-id=\"3f9997b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-48b4011 e-con-full e-flex e-con e-child\" data-id=\"48b4011\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8c60e8d elementor-widget elementor-widget-text-editor\" data-id=\"8c60e8d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>This chart shows U.S. corn sales that have already been contracted but not yet shipped. A higher level means more export volume is still waiting to go out, while a lower level can mean shipments have moved out or fewer new contracts are building up.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-21cd5ae elementor-widget elementor-widget-shortcode\" data-id=\"21cd5ae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">      <div id=\"c178_wrap_172\" class=\"c178-wrap\">\r\n        <div class=\"c178-card\">\r\n          <div class=\"c178-controls\">\r\n            <strong class=\"c178-range-label\">Range:<\/strong>\r\n            <button type=\"button\" data-range=\"12\"  class=\"c178-btn\">1Y<\/button>\r\n            <button type=\"button\" data-range=\"24\"  class=\"c178-btn\">2Y<\/button>\r\n            <button type=\"button\" data-range=\"60\"  class=\"c178-btn\">5Y<\/button>\r\n            <button type=\"button\" data-range=\"all\" class=\"c178-btn\">ALL<\/button>\r\n\r\n            <span class=\"c178-flex-spacer\"><\/span>\r\n            <em class=\"c178-hint\">Wheel\/Pinch=Zoom \u00b7 Drag=Box Zoom \u00b7 Double-click=Reset \u00b7 Arrow keys=Pan (Shift=Faster)<\/em>\r\n\r\n            <button type=\"button\" data-action=\"reset\" class=\"c178-btn c178-btn-ghost\">Reset Zoom<\/button>\r\n            <button type=\"button\" data-action=\"png\"   class=\"c178-btn c178-btn-ghost\">Save PNG<\/button>\r\n          <\/div>\r\n\r\n          <div class=\"c178-title\">U.S. Corn Next Marketing Year Sales (Thousand Metric Tons)<\/div>\r\n\r\n          <div class=\"c178-panels\">\r\n            <div class=\"c178-panel c178-panel-main\">\r\n              <div class=\"c178-panel-label\">Corn Next Marketing Year Sales<\/div>\r\n              <canvas id=\"Corn_chart178_172\" loading=\"lazy\" tabindex=\"0\"><\/canvas>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"c178-source-wrap\">\r\n            <a class=\"c178-source-pill\" href=\"https:\/\/apps.fas.usda.gov\/export-sales\/h401.htm\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n              Source: USDA FAS \u2014 Export Sales Weekly Historical Data (Corn - Unmilled)            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <style>\r\n        .c178-wrap{\r\n          overflow-x:auto;\r\n          -webkit-overflow-scrolling:touch;\r\n          padding:16px;\r\n          border-radius:18px;\r\n          background:linear-gradient(135deg,#eef2ff,#e0f2fe);\r\n          box-shadow:0 18px 32px rgba(15,23,42,0.18);\r\n          margin:8px 0;\r\n        }\r\n        .c178-card{\r\n          background:#ffffff;\r\n          border-radius:14px;\r\n          padding:14px 16px 16px;\r\n          box-shadow:0 6px 18px rgba(15,23,42,0.14);\r\n          border:1px solid rgba(129,140,248,0.6);\r\n        }\r\n        .c178-controls{\r\n          display:flex;\r\n          gap:6px;\r\n          align-items:center;\r\n          margin:0 0 8px 0;\r\n          flex-wrap:wrap;\r\n          min-width:640px;\r\n        }\r\n        .c178-title{\r\n          font-weight:800;\r\n          font-size:18px;\r\n          color:#0f172a;\r\n          margin:0 0 10px 0;\r\n        }\r\n        .c178-range-label{\r\n          font:600 13px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#4b5563;\r\n        }\r\n        .c178-flex-spacer{flex:1 1 auto;}\r\n        .c178-btn{\r\n          padding:6px 10px;\r\n          border-radius:999px;\r\n          border:1px solid rgba(129,140,248,0.9);\r\n          background:linear-gradient(135deg,#eff6ff,#eef2ff);\r\n          font:500 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          cursor:pointer;\r\n          color:#3730a3;\r\n          box-shadow:0 1px 2px rgba(15,23,42,0.07);\r\n          transition:background .15s ease,box-shadow .15s ease,transform .05s ease;\r\n        }\r\n        .c178-btn:hover{\r\n          background:linear-gradient(135deg,#e0f2fe,#eef2ff);\r\n          box-shadow:0 2px 4px rgba(15,23,42,0.12);\r\n          transform:translateY(-0.5px);\r\n        }\r\n        .c178-btn.is-active{\r\n          background:linear-gradient(135deg,#6366f1,#4f46e5);\r\n          color:#eef2ff;\r\n          border-color:#4338ca;\r\n          box-shadow:0 2px 6px rgba(79,70,229,0.55);\r\n        }\r\n        .c178-btn-ghost{\r\n          background:#ffffff;\r\n          border-color:rgba(209,213,219,0.9);\r\n          color:#374151;\r\n        }\r\n        .c178-hint{\r\n          font-size:12px;\r\n          color:#6b7280;\r\n        }\r\n\r\n        .c178-panels{\r\n          min-width:640px;\r\n          display:flex;\r\n          flex-direction:column;\r\n          gap:10px;\r\n        }\r\n        .c178-panel{\r\n          position:relative;\r\n          background:#ffffff;\r\n          border-radius:12px;\r\n          border:1px solid rgba(148,163,184,0.45);\r\n          overflow:hidden;\r\n        }\r\n        .c178-panel-label{\r\n          position:absolute;\r\n          left:10px;\r\n          top:8px;\r\n          z-index:2;\r\n          font:700 12px system-ui,-apple-system,Segoe UI,Roboto;\r\n          color:#111827;\r\n          background:rgba(255,255,255,0.9);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          border-radius:999px;\r\n          padding:3px 10px;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          pointer-events:none;\r\n        }\r\n\r\n        .c178-panel canvas{\r\n          width:100%;\r\n          height:100%;\r\n          display:block;\r\n          user-select:none;\r\n          -webkit-user-select:none;\r\n          -webkit-user-drag:none;\r\n          touch-action:none;\r\n          cursor:crosshair;\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n          -webkit-tap-highlight-color:transparent;\r\n        }\r\n        .c178-panel canvas:focus,\r\n        .c178-panel canvas:focus-visible{\r\n          outline:none !important;\r\n          box-shadow:none !important;\r\n        }\r\n\r\n        .c178-panel-main{\r\n          height:300px;\r\n          min-height:300px;\r\n        }\r\n\r\n        .c178-source-wrap{\r\n          display:flex;\r\n          justify-content:flex-end;\r\n          min-width:640px;\r\n          margin-top:8px;\r\n        }\r\n        .c178-source-pill{\r\n          display:inline-block;\r\n          padding:4px 10px;\r\n          border-radius:999px;\r\n          background:rgba(255,255,255,0.96);\r\n          border:1px solid rgba(0,0,0,0.06);\r\n          font:11px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\r\n          color:#6b7280;\r\n          box-shadow:0 2px 6px rgba(15,23,42,0.08);\r\n          text-decoration:none;\r\n        }\r\n\r\n        @media (max-width:768px){\r\n          .c178-wrap{padding:10px;}\r\n          .c178-controls{min-width:0;}\r\n          .c178-panels{min-width:0;}\r\n          .c178-source-wrap{min-width:0;}\r\n          .c178-panel-main{\r\n            height:240px;\r\n            min-height:240px;\r\n          }\r\n        }\r\n      <\/style>\r\n\r\n      <script>\r\n        document.addEventListener('DOMContentLoaded', function(){\r\n          try{\r\n            const Zoom = (window['chartjs-plugin-zoom'] && (window['chartjs-plugin-zoom'].default || window['chartjs-plugin-zoom'])) || null;\r\n            if (Zoom && window.Chart && Chart.register) {\r\n              Chart.register(Zoom);\r\n            }\r\n          }catch(e){}\r\n\r\n          const wrap = document.getElementById('c178_wrap_172');\r\n          if (!wrap || !window.Chart) return;\r\n\r\n          const labelsAll     = [\"2010-04-15\",\"2010-04-22\",\"2010-04-29\",\"2010-05-06\",\"2010-05-13\",\"2010-05-20\",\"2010-05-27\",\"2010-06-03\",\"2010-06-10\",\"2010-06-17\",\"2010-06-24\",\"2010-07-01\",\"2010-07-08\",\"2010-07-15\",\"2010-07-22\",\"2010-07-29\",\"2010-08-05\",\"2010-08-12\",\"2010-08-19\",\"2010-08-26\",\"2010-09-02\",\"2010-09-09\",\"2010-09-16\",\"2010-09-23\",\"2010-09-30\",\"2010-10-07\",\"2010-10-14\",\"2010-10-21\",\"2010-10-28\",\"2010-11-04\",\"2010-11-11\",\"2010-11-18\",\"2010-11-25\",\"2010-12-02\",\"2010-12-09\",\"2010-12-16\",\"2010-12-23\",\"2010-12-30\",\"2011-01-06\",\"2011-01-13\",\"2011-01-20\",\"2011-01-27\",\"2011-02-03\",\"2011-02-10\",\"2011-02-17\",\"2011-02-24\",\"2011-03-03\",\"2011-03-10\",\"2011-03-17\",\"2011-03-24\",\"2011-03-31\",\"2011-04-07\",\"2011-04-14\",\"2011-04-21\",\"2011-04-28\",\"2011-05-05\",\"2011-05-12\",\"2011-05-19\",\"2011-05-26\",\"2011-06-02\",\"2011-06-09\",\"2011-06-16\",\"2011-06-23\",\"2011-06-30\",\"2011-07-07\",\"2011-07-14\",\"2011-07-21\",\"2011-07-28\",\"2011-08-04\",\"2011-08-11\",\"2011-08-18\",\"2011-08-25\",\"2011-09-01\",\"2011-09-08\",\"2011-09-15\",\"2011-09-22\",\"2011-09-29\",\"2011-10-06\",\"2011-10-13\",\"2011-10-20\",\"2011-10-27\",\"2011-11-03\",\"2011-11-10\",\"2011-11-17\",\"2011-11-24\",\"2011-12-01\",\"2011-12-08\",\"2011-12-15\",\"2011-12-22\",\"2011-12-29\",\"2012-01-05\",\"2012-01-12\",\"2012-01-19\",\"2012-01-26\",\"2012-02-02\",\"2012-02-09\",\"2012-02-16\",\"2012-02-23\",\"2012-03-01\",\"2012-03-08\",\"2012-03-15\",\"2012-03-22\",\"2012-03-29\",\"2012-04-05\",\"2012-04-12\",\"2012-04-19\",\"2012-04-26\",\"2012-05-03\",\"2012-05-10\",\"2012-05-17\",\"2012-05-24\",\"2012-05-31\",\"2012-06-07\",\"2012-06-14\",\"2012-06-21\",\"2012-06-28\",\"2012-07-05\",\"2012-07-12\",\"2012-07-19\",\"2012-07-26\",\"2012-08-02\",\"2012-08-09\",\"2012-08-16\",\"2012-08-23\",\"2012-08-30\",\"2012-09-06\",\"2012-09-13\",\"2012-09-20\",\"2012-09-27\",\"2012-10-04\",\"2012-10-11\",\"2012-10-18\",\"2012-10-25\",\"2012-11-01\",\"2012-11-08\",\"2012-11-15\",\"2012-11-22\",\"2012-11-29\",\"2012-12-06\",\"2012-12-13\",\"2012-12-20\",\"2012-12-27\",\"2013-01-03\",\"2013-01-10\",\"2013-01-17\",\"2013-01-24\",\"2013-01-31\",\"2013-02-07\",\"2013-02-14\",\"2013-02-21\",\"2013-02-28\",\"2013-03-07\",\"2013-03-14\",\"2013-03-21\",\"2013-03-28\",\"2013-04-04\",\"2013-04-11\",\"2013-04-18\",\"2013-04-25\",\"2013-05-02\",\"2013-05-09\",\"2013-05-16\",\"2013-05-23\",\"2013-05-30\",\"2013-06-06\",\"2013-06-13\",\"2013-06-20\",\"2013-06-27\",\"2013-07-04\",\"2013-07-11\",\"2013-07-18\",\"2013-07-25\",\"2013-08-01\",\"2013-08-08\",\"2013-08-15\",\"2013-08-22\",\"2013-08-29\",\"2013-09-05\",\"2013-09-12\",\"2013-09-19\",\"2013-09-26\",\"2013-10-03\",\"2013-10-10\",\"2013-10-17\",\"2013-10-24\",\"2013-10-31\",\"2013-11-07\",\"2013-11-14\",\"2013-11-21\",\"2013-11-28\",\"2013-12-05\",\"2013-12-12\",\"2013-12-19\",\"2013-12-26\",\"2014-01-02\",\"2014-01-09\",\"2014-01-16\",\"2014-01-23\",\"2014-01-30\",\"2014-02-06\",\"2014-02-13\",\"2014-02-20\",\"2014-02-27\",\"2014-03-06\",\"2014-03-13\",\"2014-03-20\",\"2014-03-27\",\"2014-04-03\",\"2014-04-10\",\"2014-04-17\",\"2014-04-24\",\"2014-05-01\",\"2014-05-08\",\"2014-05-15\",\"2014-05-22\",\"2014-05-29\",\"2014-06-05\",\"2014-06-12\",\"2014-06-19\",\"2014-06-26\",\"2014-07-03\",\"2014-07-10\",\"2014-07-17\",\"2014-07-24\",\"2014-07-31\",\"2014-08-07\",\"2014-08-14\",\"2014-08-21\",\"2014-08-28\",\"2014-09-04\",\"2014-09-11\",\"2014-09-18\",\"2014-09-25\",\"2014-10-02\",\"2014-10-09\",\"2014-10-16\",\"2014-10-23\",\"2014-10-30\",\"2014-11-06\",\"2014-11-13\",\"2014-11-20\",\"2014-11-27\",\"2014-12-04\",\"2014-12-11\",\"2014-12-18\",\"2014-12-25\",\"2015-01-01\",\"2015-01-08\",\"2015-01-15\",\"2015-01-22\",\"2015-01-29\",\"2015-02-05\",\"2015-02-12\",\"2015-02-19\",\"2015-02-26\",\"2015-03-05\",\"2015-03-12\",\"2015-03-19\",\"2015-03-26\",\"2015-04-02\",\"2015-04-09\",\"2015-04-16\",\"2015-04-23\",\"2015-04-30\",\"2015-05-07\",\"2015-05-14\",\"2015-05-21\",\"2015-05-28\",\"2015-06-04\",\"2015-06-11\",\"2015-06-18\",\"2015-06-25\",\"2015-07-02\",\"2015-07-09\",\"2015-07-16\",\"2015-07-23\",\"2015-07-30\",\"2015-08-06\",\"2015-08-13\",\"2015-08-20\",\"2015-08-27\",\"2015-09-03\",\"2015-09-10\",\"2015-09-17\",\"2015-09-24\",\"2015-10-01\",\"2015-10-08\",\"2015-10-15\",\"2015-10-22\",\"2015-10-29\",\"2015-11-05\",\"2015-11-12\",\"2015-11-19\",\"2015-11-26\",\"2015-12-03\",\"2015-12-10\",\"2015-12-17\",\"2015-12-24\",\"2015-12-31\",\"2016-01-07\",\"2016-01-14\",\"2016-01-21\",\"2016-01-28\",\"2016-02-04\",\"2016-02-11\",\"2016-02-18\",\"2016-02-25\",\"2016-03-03\",\"2016-03-10\",\"2016-03-17\",\"2016-03-24\",\"2016-03-31\",\"2016-04-07\",\"2016-04-14\",\"2016-04-21\",\"2016-04-28\",\"2016-05-05\",\"2016-05-12\",\"2016-05-19\",\"2016-05-26\",\"2016-06-02\",\"2016-06-09\",\"2016-06-16\",\"2016-06-23\",\"2016-06-30\",\"2016-07-07\",\"2016-07-14\",\"2016-07-21\",\"2016-07-28\",\"2016-08-04\",\"2016-08-11\",\"2016-08-18\",\"2016-08-25\",\"2016-09-01\",\"2016-09-08\",\"2016-09-15\",\"2016-09-22\",\"2016-09-29\",\"2016-10-06\",\"2016-10-13\",\"2016-10-20\",\"2016-10-27\",\"2016-11-03\",\"2016-11-10\",\"2016-11-17\",\"2016-11-24\",\"2016-12-01\",\"2016-12-08\",\"2016-12-15\",\"2016-12-22\",\"2016-12-29\",\"2017-01-05\",\"2017-01-12\",\"2017-01-19\",\"2017-01-26\",\"2017-02-02\",\"2017-02-09\",\"2017-02-16\",\"2017-02-23\",\"2017-03-02\",\"2017-03-09\",\"2017-03-16\",\"2017-03-23\",\"2017-03-30\",\"2017-04-06\",\"2017-04-13\",\"2017-04-20\",\"2017-04-27\",\"2017-05-04\",\"2017-05-11\",\"2017-05-18\",\"2017-05-25\",\"2017-06-01\",\"2017-06-08\",\"2017-06-15\",\"2017-06-22\",\"2017-06-29\",\"2017-07-06\",\"2017-07-13\",\"2017-07-20\",\"2017-07-27\",\"2017-08-03\",\"2017-08-10\",\"2017-08-17\",\"2017-08-24\",\"2017-08-31\",\"2017-09-07\",\"2017-09-14\",\"2017-09-21\",\"2017-09-28\",\"2017-10-05\",\"2017-10-12\",\"2017-10-19\",\"2017-10-26\",\"2017-11-02\",\"2017-11-09\",\"2017-11-16\",\"2017-11-23\",\"2017-11-30\",\"2017-12-07\",\"2017-12-14\",\"2017-12-21\",\"2017-12-28\",\"2018-01-04\",\"2018-01-11\",\"2018-01-18\",\"2018-01-25\",\"2018-02-01\",\"2018-02-08\",\"2018-02-15\",\"2018-02-22\",\"2018-03-01\",\"2018-03-08\",\"2018-03-15\",\"2018-03-22\",\"2018-03-29\",\"2018-04-05\",\"2018-04-12\",\"2018-04-19\",\"2018-04-26\",\"2018-05-03\",\"2018-05-10\",\"2018-05-17\",\"2018-05-24\",\"2018-05-31\",\"2018-06-07\",\"2018-06-14\",\"2018-06-21\",\"2018-06-28\",\"2018-07-05\",\"2018-07-12\",\"2018-07-19\",\"2018-07-26\",\"2018-08-02\",\"2018-08-09\",\"2018-08-16\",\"2018-08-23\",\"2018-08-30\",\"2018-09-06\",\"2018-09-13\",\"2018-09-20\",\"2018-09-27\",\"2018-10-04\",\"2018-10-11\",\"2018-10-18\",\"2018-10-25\",\"2018-11-01\",\"2018-11-08\",\"2018-11-15\",\"2018-11-22\",\"2018-11-29\",\"2018-12-06\",\"2018-12-13\",\"2018-12-20\",\"2018-12-27\",\"2019-01-03\",\"2019-02-07\",\"2019-02-14\",\"2019-02-21\",\"2019-02-28\",\"2019-03-07\",\"2019-03-14\",\"2019-03-21\",\"2019-03-28\",\"2019-04-04\",\"2019-04-11\",\"2019-04-18\",\"2019-04-25\",\"2019-05-02\",\"2019-05-09\",\"2019-05-16\",\"2019-05-23\",\"2019-05-30\",\"2019-06-06\",\"2019-06-13\",\"2019-06-20\",\"2019-06-27\",\"2019-07-04\",\"2019-07-11\",\"2019-07-18\",\"2019-07-25\",\"2019-08-01\",\"2019-08-08\",\"2019-08-15\",\"2019-08-22\",\"2019-08-29\",\"2019-09-05\",\"2019-09-12\",\"2019-09-19\",\"2019-09-26\",\"2019-10-03\",\"2019-10-10\",\"2019-10-17\",\"2019-10-24\",\"2019-10-31\",\"2019-11-07\",\"2019-11-14\",\"2019-11-21\",\"2019-11-28\",\"2019-12-05\",\"2019-12-12\",\"2019-12-19\",\"2019-12-26\",\"2020-01-02\",\"2020-01-09\",\"2020-01-16\",\"2020-01-23\",\"2020-01-30\",\"2020-02-06\",\"2020-02-13\",\"2020-02-20\",\"2020-02-27\",\"2020-03-05\",\"2020-03-12\",\"2020-03-19\",\"2020-03-26\",\"2020-04-02\",\"2020-04-09\",\"2020-04-16\",\"2020-04-23\",\"2020-04-30\",\"2020-05-07\",\"2020-05-14\",\"2020-05-21\",\"2020-05-28\",\"2020-06-04\",\"2020-06-11\",\"2020-06-18\",\"2020-06-25\",\"2020-07-02\",\"2020-07-09\",\"2020-07-16\",\"2020-07-23\",\"2020-07-30\",\"2020-08-06\",\"2020-08-13\",\"2020-08-20\",\"2020-08-27\",\"2020-09-03\",\"2020-09-10\",\"2020-09-17\",\"2020-09-24\",\"2020-10-01\",\"2020-10-08\",\"2020-10-15\",\"2020-10-22\",\"2020-10-29\",\"2020-11-05\",\"2020-11-12\",\"2020-11-19\",\"2020-11-26\",\"2020-12-03\",\"2020-12-10\",\"2020-12-17\",\"2020-12-24\",\"2020-12-31\",\"2021-01-07\",\"2021-01-14\",\"2021-01-21\",\"2021-01-28\",\"2021-02-04\",\"2021-02-11\",\"2021-02-18\",\"2021-02-25\",\"2021-03-04\",\"2021-03-11\",\"2021-03-18\",\"2021-03-25\",\"2021-04-01\",\"2021-04-08\",\"2021-04-15\",\"2021-04-22\",\"2021-04-29\",\"2021-05-06\",\"2021-05-13\",\"2021-05-20\",\"2021-05-27\",\"2021-06-03\",\"2021-06-10\",\"2021-06-17\",\"2021-06-24\",\"2021-07-01\",\"2021-07-08\",\"2021-07-15\",\"2021-07-22\",\"2021-07-29\",\"2021-08-05\",\"2021-08-12\",\"2021-08-19\",\"2021-08-26\",\"2021-09-02\",\"2021-09-09\",\"2021-09-16\",\"2021-09-23\",\"2021-09-30\",\"2021-10-07\",\"2021-10-14\",\"2021-10-21\",\"2021-10-28\",\"2021-11-04\",\"2021-11-11\",\"2021-11-18\",\"2021-11-25\",\"2021-12-02\",\"2021-12-09\",\"2021-12-16\",\"2021-12-23\",\"2021-12-30\",\"2022-01-06\",\"2022-01-13\",\"2022-01-20\",\"2022-01-27\",\"2022-02-03\",\"2022-02-10\",\"2022-02-17\",\"2022-02-24\",\"2022-03-03\",\"2022-03-10\",\"2022-03-17\",\"2022-03-24\",\"2022-03-31\",\"2022-04-07\",\"2022-04-14\",\"2022-04-21\",\"2022-04-28\",\"2022-05-05\",\"2022-05-12\",\"2022-05-19\",\"2022-05-26\",\"2022-06-02\",\"2022-06-09\",\"2022-06-16\",\"2022-06-23\",\"2022-06-30\",\"2022-07-07\",\"2022-07-14\",\"2022-07-21\",\"2022-07-28\",\"2022-08-04\",\"2022-08-11\",\"2022-08-18\",\"2022-08-25\",\"2022-09-01\",\"2022-09-08\",\"2022-09-15\",\"2022-09-22\",\"2022-09-29\",\"2022-10-06\",\"2022-10-13\",\"2022-10-20\",\"2022-10-27\",\"2022-11-03\",\"2022-11-10\",\"2022-11-17\",\"2022-11-24\",\"2022-12-01\",\"2022-12-08\",\"2022-12-15\",\"2022-12-22\",\"2022-12-29\",\"2023-01-05\",\"2023-01-12\",\"2023-01-19\",\"2023-01-26\",\"2023-02-02\",\"2023-02-09\",\"2023-02-16\",\"2023-02-23\",\"2023-03-02\",\"2023-03-09\",\"2023-03-16\",\"2023-03-23\",\"2023-03-30\",\"2023-04-06\",\"2023-04-13\",\"2023-04-20\",\"2023-04-27\",\"2023-05-04\",\"2023-05-11\",\"2023-05-18\",\"2023-05-25\",\"2023-06-01\",\"2023-06-08\",\"2023-06-15\",\"2023-06-22\",\"2023-06-29\",\"2023-07-06\",\"2023-07-13\",\"2023-07-20\",\"2023-07-27\",\"2023-08-03\",\"2023-08-10\",\"2023-08-17\",\"2023-08-24\",\"2023-08-31\",\"2023-09-07\",\"2023-09-14\",\"2023-09-21\",\"2023-09-28\",\"2023-10-05\",\"2023-10-12\",\"2023-10-19\",\"2023-10-26\",\"2023-11-02\",\"2023-11-09\",\"2023-11-16\",\"2023-11-23\",\"2023-11-30\",\"2023-12-07\",\"2023-12-14\",\"2023-12-21\",\"2023-12-28\",\"2024-01-04\",\"2024-01-11\",\"2024-01-18\",\"2024-01-25\",\"2024-02-01\",\"2024-02-08\",\"2024-02-15\",\"2024-02-22\",\"2024-02-29\",\"2024-03-07\",\"2024-03-14\",\"2024-03-21\",\"2024-03-28\",\"2024-04-04\",\"2024-04-11\",\"2024-04-18\",\"2024-04-25\",\"2024-05-02\",\"2024-05-09\",\"2024-05-16\",\"2024-05-23\",\"2024-05-30\",\"2024-06-06\",\"2024-06-13\",\"2024-06-20\",\"2024-06-27\",\"2024-07-04\",\"2024-07-11\",\"2024-07-18\",\"2024-07-25\",\"2024-08-01\",\"2024-08-08\",\"2024-08-15\",\"2024-08-22\",\"2024-08-29\",\"2024-09-05\",\"2024-09-12\",\"2024-09-19\",\"2024-09-26\",\"2024-10-03\",\"2024-10-10\",\"2024-10-17\",\"2024-10-24\",\"2024-10-31\",\"2024-11-07\",\"2024-11-14\",\"2024-11-21\",\"2024-11-28\",\"2024-12-05\",\"2024-12-12\",\"2024-12-19\",\"2024-12-26\",\"2025-01-02\",\"2025-01-09\",\"2025-01-16\",\"2025-01-23\",\"2025-01-30\",\"2025-02-06\",\"2025-02-13\",\"2025-02-20\",\"2025-02-27\",\"2025-03-06\",\"2025-03-13\",\"2025-03-20\",\"2025-03-27\",\"2025-04-03\",\"2025-04-10\",\"2025-04-17\",\"2025-04-24\",\"2025-05-01\",\"2025-05-08\",\"2025-05-15\",\"2025-05-22\",\"2025-05-29\",\"2025-06-05\",\"2025-06-12\",\"2025-06-19\",\"2025-06-26\",\"2025-07-03\",\"2025-07-10\",\"2025-07-17\",\"2025-07-24\",\"2025-07-31\",\"2025-08-07\",\"2025-08-14\",\"2025-08-21\",\"2025-08-28\",\"2025-09-04\",\"2025-09-11\",\"2025-09-18\",\"2025-09-25\",\"2025-10-02\",\"2025-10-09\",\"2025-10-16\",\"2025-10-23\",\"2025-10-30\",\"2025-11-06\",\"2025-11-13\",\"2025-11-20\",\"2025-11-27\",\"2025-12-04\",\"2025-12-11\",\"2025-12-18\",\"2025-12-25\",\"2026-01-01\",\"2026-01-08\",\"2026-01-15\",\"2026-01-22\",\"2026-01-29\",\"2026-02-05\",\"2026-02-12\",\"2026-02-19\",\"2026-02-26\",\"2026-03-05\",\"2026-03-12\",\"2026-03-19\",\"2026-04-16\",\"2026-04-23\",\"2026-04-30\"];\r\n          const nextSalesAll  = [0,202,30.4,120.9,295.9,11.1,114.4,153.5,192.3,384.3,82.8,386.3,345.3,540.8,536.7,824.4,484.1,2293.7,1718.4,1688.7,0,3.7,0,0,25.4,274.3,0,0,0,55,0,0,0,136.4,69.2,0,0,0,68.3,125,132.8,85,104.5,151.4,172.9,121.7,298.8,300.8,0.1,316.5,189.3,268.7,243.9,94.7,0,23.7,313.1,52.9,229.3,62,598.9,120.3,242.6,887.6,1206.7,473.6,213.4,470.5,319.7,294.6,161.6,1032.5,50,41.2,0,25,1.8,110.4,83.2,25.2,0,0,0,38,71.6,12.5,1.2,238,26.9,6.5,0,0,82.5,66,113.7,61.5,0,23,60,0,55,27,185.1,16.7,0,180.6,2140.3,249.2,525.7,358,94,162.2,77.7,210.6,99.9,134.2,502.6,181.8,172.8,83.2,1111,161.6,278.3,194.6,252.9,212.5,0,0,0,10,0,0,0,51.8,208.2,188.8,27.4,0,13.7,5.8,0,0,0,0,52,67.6,22,61,20.3,210,206.4,371,183.3,19,33,290.8,16.9,21.2,663,170,38.6,348.6,789.6,51.6,75.2,92.9,153.6,89.3,657.8,1590.8,515.9,1093.2,220.9,836.1,457.4,687.8,350.5,0,0,0,0,0,0,0,738,0,0,37.6,0,0,109.4,45.2,509.2,20.3,0,0,0.3,105.7,0,71.1,0,1.5,164.5,103.6,0,30.4,38,58,192.6,420.8,16.3,121.1,85.3,65,91,19.6,105.5,78.9,232.4,474.7,485.8,497.6,1143.4,1093.9,758.7,795.1,722.8,815.1,591.9,0,0,270,47.9,0,510.5,0,44.5,0,0,0,0,0,0,5,0,0,210,25.2,0,16,8.5,117.7,143.2,148.2,158.7,96.4,64.8,29,25.2,62.9,28.5,6.2,113.3,55.4,8.6,80.7,51.3,26.2,170.5,200.4,338.2,238.9,149,325.1,311.4,455.3,277,501.9,578,1039.9,353.6,0,0,0,53.1,0,60,0,0,18.9,22,0,546.6,0,1.8,98.2,0,0,0,0,189,38.4,15.2,0,247.2,131.8,0,20,61.4,139.1,75.2,235,111.4,181.1,440,60.5,150.4,540.7,246.2,133.9,120.4,178.7,550.3,536.1,461.3,749.8,506.3,506.5,912.4,1109.6,1181.7,1077.2,676.6,30.5,21.1,0,0,541,30.5,0,0,0,0,0,0,0,1,24.1,0,46.2,0,151.7,12.3,21,14,34.5,285.2,264.6,20.7,93.1,218.1,127.1,125.3,45.6,50,91.8,11.1,24.2,16.4,168,0.5,139.7,128,13.5,124,68.4,74.5,279.7,212.1,486.6,438.3,638.7,671.8,434.3,814.3,2545.9,0,0,0,0,15.2,15,96.8,90,600.5,5,38,0,0,0,2.3,102.9,0,0,2.4,85.1,46.2,0,97.5,65.5,0,70.3,100,5.5,287,11,56.2,112.2,0.6,49.3,90,129.2,273.4,149.3,418.3,240.2,340.7,636.8,232.1,128,774.5,747.5,987,657.7,1048.4,1054.7,596.6,1095.2,0,9.7,0,0,0,0,28,5,0,1.4,5,0,0,161.4,542.6,53.4,0,0,0,29.2,120.5,280.9,474.6,60,85.4,93,0,18.4,3,209.5,6.9,80.8,183.9,76.5,23.5,104.3,362.3,110.1,157,25.6,133,386.9,147.9,202,309.9,394,871.5,423.6,0,64.9,0,2.5,0,0,91.4,0,0,0,45.9,0,2.4,2.4,536.1,1.4,8.6,0,207,2,143.6,102.5,0,1,113.6,100,128.1,79.3,91.4,20.3,608.8,62.9,23.4,339,97.5,554.5,5.2,46.5,27.5,65.6,115.7,77.6,262.7,813.4,720.4,2327.7,642.7,2646,582.3,734.3,1186.8,2423.2,0,0,0,0,0,0,0,0,541,0,0,0,0,0,10,0,0,0,0,46.4,0,83.8,12.2,182.6,145.9,38.8,287.3,240.9,144.6,60,100,52.6,29.5,553.4,106.2,2084.2,4095.3,5901.4,440.2,26.4,276.1,340.8,67.6,228.2,153.2,107.7,529.3,840.9,704.6,514.2,758.6,1197.6,0,2.3,0,0,0.1,3.9,0.5,0,0,0,140,90,0.3,0,754.4,136.7,60,0,0,105,0,0,0,113.5,117.4,222.8,22.9,204,6.1,286.8,145.2,408,389.6,843.4,737.9,46.6,660.2,83.2,48.8,83.6,140.1,358.4,119.3,143.8,358.2,572.7,194.2,293.6,334.1,750,0,1074.9,30.5,0,0,160,0,60.5,0,0,0,0,0,628.1,30,0,0,0,170,0,22.4,87,15.5,163.2,10,100,25.6,0,113.2,183.5,103.1,21.8,26.2,0,422,0,121,83.1,74,52.1,314.5,32.7,21.1,87.2,123.5,465.5,493.4,491.6,335.8,348.9,759.2,705.5,686,1017.1,2103,25.4,0,15.2,611.4,87.4,10.1,16,12.7,140,0,0,0,22.9,0,1,11.2,4.1,0,20,37.6,144.5,0,2.3,186.1,165,0,0,0,126.4,11.4,9.5,65,262.3,33.7,49.1,128.2,305,187.8,137.1,78.6,95.6,139.3,311.5,181.5,485.7,745.2,755.4,434.8,800.5,1455.2,1494.4,1881.9,0,0,0,0,0,0,581.2,0,65.5,0,0,67.2,22.1,0,2.5,10,0,0,0.2,9.2,45.8,50,350.1,0,128,52.1,17.4,61.8,0,165,236.2,10,0,409.7,18,508.9,218.4,41,160.1,46.5,155,305.5,951.6,982.8,652.2,756.4,1957.9,3165.8,2083,3097.1,2188,2276.1,0,0,0,22.4,0,0,571.5,160.1,0,0,0,0,5.1,0,0,21.4,0,11.9,1.3,0,0,16.4,60,65.7,11.7,154,0.5,12,135,440.1,0,122.8];\r\n          const seriesLabel   = \"Corn Next Marketing Year Sales\";\r\n\r\n          const canvas = document.getElementById('Corn_chart178_172');\r\n          if (!canvas) return;\r\n\r\n          const tsSecAll = labelsAll.map(l=>{\r\n            const s = String(l || '').trim();\r\n            let t = NaN;\r\n            if (\/^\\d{4}-\\d{2}-\\d{2}$\/.test(s)) {\r\n              t = Date.parse(s + 'T00:00:00Z');\r\n            } else {\r\n              t = Date.parse(s);\r\n            }\r\n            return isNaN(t) ? null : Math.floor(t\/1000);\r\n          });\r\n\r\n          const fmt = (n)=>{\r\n            try{\r\n              if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n              return Number(n).toLocaleString(undefined,{minimumFractionDigits:0,maximumFractionDigits:2});\r\n            }catch(e){ return n; }\r\n          };\r\n\r\n          const fmtCompact = (n)=>{\r\n            if (n===null || n===undefined || Number.isNaN(n)) return '';\r\n            const x = Number(n);\r\n            const abs = Math.abs(x);\r\n            if (abs >= 1e9) return (x\/1e9).toFixed(1).replace(\/\\.0$\/,'') + 'B';\r\n            if (abs >= 1e6) return (x\/1e6).toFixed(1).replace(\/\\.0$\/,'') + 'M';\r\n            if (abs >= 1e3) return (x\/1e3).toFixed(0) + 'K';\r\n            return x.toLocaleString();\r\n          };\r\n\r\n          const FIX_Y_LEFT  = 56;\r\n          const FIX_Y_RIGHT = 66;\r\n\r\n          const CrosshairX = {\r\n            id:'crosshairX',\r\n            afterEvent(chart,args){\r\n              const e=args.event, a=chart.chartArea;\r\n              if(!a) return;\r\n              if(e.type==='mouseout'){ chart.$crossX=null; chart.draw(); return; }\r\n              if(e.x>=a.left && e.x<=a.right && e.y>=a.top && e.y<=a.bottom){\r\n                chart.$crossX={x:e.x};\r\n              }else{\r\n                chart.$crossX=null;\r\n              }\r\n              chart.draw();\r\n            },\r\n            afterDraw(chart){\r\n              const cross=chart.$crossX; if(!cross) return;\r\n              const {ctx,chartArea:a}=chart;\r\n              ctx.save();\r\n              ctx.strokeStyle='rgba(37,99,235,0.55)';\r\n              ctx.lineWidth=1;\r\n              ctx.setLineDash([4,3]);\r\n              ctx.beginPath();\r\n              ctx.moveTo(cross.x,a.top);\r\n              ctx.lineTo(cross.x,a.bottom);\r\n              ctx.stroke();\r\n              ctx.restore();\r\n            }\r\n          };\r\n\r\n          const makeExternalTooltip = () => (context)=>{\r\n            const { chart, tooltip } = context;\r\n            const area = chart.chartArea;\r\n            if(!area) return;\r\n\r\n            const tipId = '__c178_exttip';\r\n            let tip = document.getElementById(tipId);\r\n            if(!tip){\r\n              tip=document.createElement('div');\r\n              tip.id=tipId;\r\n              tip.style.position='fixed';\r\n              tip.style.left='0';\r\n              tip.style.top='0';\r\n              tip.style.opacity='0';\r\n              tip.style.pointerEvents='none';\r\n              tip.style.zIndex='99999';\r\n              document.body.appendChild(tip);\r\n            }\r\n\r\n            if(tooltip.opacity===0){ tip.style.opacity=0; return; }\r\n\r\n            const title = (tooltip.title && tooltip.title[0]) ? tooltip.title[0] : '';\r\n            const rows = (tooltip.dataPoints || []).map(dp=>{\r\n              const color = dp.dataset.borderColor || dp.dataset.backgroundColor || '#2563eb';\r\n              const label = dp.dataset.label || '';\r\n              let v = null;\r\n              if(typeof dp.raw === 'number'){ v = dp.raw; }\r\n              else if(dp.parsed && typeof dp.parsed.y === 'number'){ v = dp.parsed.y; }\r\n              const val = (v===null) ? '' : fmt(v);\r\n              return `<div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;\">\r\n                        <span style=\"display:flex;align-items:center;gap:8px;\">\r\n                          <span style=\"width:10px;height:10px;border-radius:2px;background:${color};\r\n                                       border:1px solid rgba(255,255,255,.9);display:inline-block;\"><\/span>\r\n                          <span>${label}<\/span>\r\n                        <\/span>\r\n                        <span style=\"font-weight:700;\">${val}<\/span>\r\n                      <\/div>`;\r\n            }).join('');\r\n\r\n            tip.innerHTML =\r\n              `<div style=\"box-shadow:0 10px 24px rgba(15,23,42,.25);border:1px solid rgba(148,163,184,.7);\r\n                           background:#ffffff;color:#111827;border-radius:12px;padding:10px 12px;\r\n                           min-width:220px;max-width:380px;font:12px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\">\r\n                 <div style=\"color:#0f172a;font-weight:900;margin-bottom:6px;\">${title}<\/div>\r\n                 <div style=\"display:flex;flex-direction:column;gap:3px;\">${rows}<\/div>\r\n               <\/div>`;\r\n\r\n            const cr = chart.canvas.getBoundingClientRect();\r\n            const box = tip.firstElementChild;\r\n            const boxW = box ? box.offsetWidth : 240;\r\n            const boxH = box ? box.offsetHeight : 130;\r\n            const pad  = 8;\r\n\r\n            const left   = Math.max(8, cr.left + area.left - boxW - pad);\r\n            const topMin = cr.top + area.top;\r\n            const topMax = cr.top + area.bottom - boxH;\r\n            const rawTop = cr.top + tooltip.caretY - boxH\/2;\r\n            const top    = Math.min(Math.max(rawTop, topMin), topMax);\r\n\r\n            tip.style.left    = left + 'px';\r\n            tip.style.top     = top  + 'px';\r\n            tip.style.opacity = 1;\r\n          };\r\n\r\n          const buildChart = (labels, values) => {\r\n            const ctx = canvas.getContext('2d');\r\n            const existing = Chart.getChart(canvas);\r\n            if(existing) existing.destroy();\r\n\r\n            return new Chart(ctx, {\r\n              type:'line',\r\n              plugins:[CrosshairX],\r\n              data:{\r\n                labels: labels.slice(),\r\n                datasets:[\r\n                  {\r\n                    label: seriesLabel,\r\n                    data: values.slice(),\r\n                    yAxisID:'y',\r\n                    type:'line',\r\n                    borderWidth:2.6,\r\n                    pointRadius:0,\r\n                    pointHoverRadius:4,\r\n                    pointHitRadius:10,\r\n                    tension:0.25,\r\n                    spanGaps:true,\r\n                    borderColor:'#2563eb',\r\n                    backgroundColor:'#2563eb',\r\n                    order:1\r\n                  }\r\n                ]\r\n              },\r\n              options:{\r\n                responsive:true,\r\n                maintainAspectRatio:false,\r\n                normalized:true,\r\n                animation:false,\r\n                interaction:{ mode:'index', intersect:false },\r\n                plugins:{\r\n                  tooltip:{ enabled:false, external:makeExternalTooltip(), mode:'index', intersect:false },\r\n                  legend:{ display:false },\r\n                  zoom:{\r\n                    pan:{ enabled:true, mode:'x', modifierKey:'alt' },\r\n                    zoom:{\r\n                      wheel:{ enabled:true },\r\n                      pinch:{ enabled:true },\r\n                      drag:{\r\n                        enabled:true,\r\n                        mode:'x',\r\n                        threshold:8,\r\n                        backgroundColor:'rgba(129,140,248,.10)',\r\n                        borderColor:'rgba(79,70,229,.7)',\r\n                        borderWidth:1\r\n                      },\r\n                      mode:'x'\r\n                    }\r\n                  }\r\n                },\r\n                scales:{\r\n                  x:{\r\n                    type:'category',\r\n                    ticks:{\r\n                      autoSkip:true,\r\n                      maxTicksLimit:(window.innerWidth<768?6:10),\r\n                      maxRotation:0,\r\n                      minRotation:0,\r\n                      color:'#4b5563'\r\n                    },\r\n                    grid:{ color:'rgba(148,163,184,0.20)' }\r\n                  },\r\n                  y:{\r\n                    type:'linear',\r\n                    position:'right',\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_RIGHT; }catch(e){} },\r\n                    ticks:{ color:'#111827', callback:(v)=>fmtCompact(v) },\r\n                    grid:{ color:'rgba(209,213,219,0.55)' }\r\n                  },\r\n                  yL:{\r\n                    type:'linear',\r\n                    position:'left',\r\n                    display:true,\r\n                    afterFit:(s)=>{ try{ s.width = FIX_Y_LEFT; }catch(e){} },\r\n                    ticks:{ display:false },\r\n                    grid:{ drawOnChartArea:false, drawBorder:false },\r\n                    border:{ display:false }\r\n                  }\r\n                }\r\n              }\r\n            });\r\n          };\r\n\r\n          let labels = labelsAll.slice();\r\n          let values = nextSalesAll.slice();\r\n\r\n          let chart = buildChart(labels, values);\r\n\r\n          const applyRange = (m)=>{\r\n            let idxKeep = null;\r\n\r\n            if(m !== 'all' && Array.isArray(tsSecAll) && tsSecAll.length){\r\n              const months = parseInt(m,10);\r\n              const validTs = tsSecAll.filter(t=>Number.isInteger(t) && t>0);\r\n              if(validTs.length){\r\n                const latest = Math.max.apply(null, validTs);\r\n                const cutDate = new Date(latest*1000);\r\n                cutDate.setUTCMonth(cutDate.getUTCMonth() - months);\r\n                const cutTs = Math.floor(cutDate.getTime()\/1000);\r\n\r\n                idxKeep = [];\r\n                tsSecAll.forEach((ts,idx)=>{\r\n                  if(Number.isInteger(ts) && ts >= cutTs) idxKeep.push(idx);\r\n                });\r\n              }\r\n            }\r\n\r\n            const sliceByIdx = (arr)=>{\r\n              if(!idxKeep || !idxKeep.length) return arr.slice();\r\n              return idxKeep.map(i => arr[i]);\r\n            };\r\n\r\n            labels = sliceByIdx(labelsAll);\r\n            values = sliceByIdx(nextSalesAll);\r\n\r\n            chart.data.labels = labels;\r\n            chart.options.scales.x.min = undefined;\r\n            chart.options.scales.x.max = undefined;\r\n            chart.data.datasets[0].data = values;\r\n            chart.update();\r\n\r\n            if(chart.resetZoom) chart.resetZoom();\r\n\r\n            btns.forEach(b=>b.classList.toggle('is-active', (b.dataset.range === String(m))));\r\n          };\r\n\r\n          const btns = wrap.querySelectorAll('.c178-btn[data-range]');\r\n          const resetBtn = wrap.querySelector('[data-action=\"reset\"]');\r\n          const pngBtn   = wrap.querySelector('[data-action=\"png\"]');\r\n\r\n          btns.forEach(b => b.addEventListener('click', ()=> applyRange(b.dataset.range)));\r\n\r\n          if(resetBtn){\r\n            resetBtn.addEventListener('click', ()=>{\r\n              if(chart.resetZoom) chart.resetZoom();\r\n            });\r\n          }\r\n\r\n          if(pngBtn){\r\n            pngBtn.addEventListener('click', ()=>{\r\n              try{\r\n                const out = document.createElement('a');\r\n                out.href = canvas.toDataURL('image\/png', 1.0);\r\n                out.download = 'corn_chart178_us_corn_next_marketing_year_sales.png';\r\n                out.click();\r\n              }catch(e){}\r\n            });\r\n          }\r\n\r\n          applyRange('24');\r\n\r\n          canvas.addEventListener('dblclick', ()=>{\r\n            if(chart.resetZoom) chart.resetZoom();\r\n          });\r\n\r\n          canvas.addEventListener('pointerdown', ()=>{\r\n            try{ canvas.focus({preventScroll:true}); }catch(e){ try{ canvas.focus(); }catch(e2){} }\r\n          }, { passive:true });\r\n\r\n          const panByArrow = (e)=>{\r\n            const k = e.key;\r\n            if(k !== 'ArrowLeft' && k !== 'ArrowRight') return;\r\n            if(!chart || typeof chart.pan !== 'function') return;\r\n\r\n            const tag = (e.target && e.target.tagName) ? e.target.tagName.toLowerCase() : '';\r\n            if(tag==='input' || tag==='textarea' || tag==='select' || (e.target && e.target.isContentEditable)) return;\r\n\r\n            const a = chart.chartArea || null;\r\n            let step = a ? Math.max(24, Math.round(a.width * 0.08)) : 60;\r\n            if(e.shiftKey) step *= 2;\r\n\r\n            const dx = (k === 'ArrowLeft') ? step : -step;\r\n\r\n            e.preventDefault();\r\n            try{\r\n              chart.pan({ x: dx, y: 0 });\r\n            }catch(err){}\r\n          };\r\n\r\n          canvas.addEventListener('keydown', panByArrow);\r\n\r\n          ['mouseleave','scroll','touchstart','pointerdown','visibilitychange','orientationchange','resize'].forEach(evt=>{\r\n            window.addEventListener(evt, ()=>{\r\n              const t = document.getElementById('__c178_exttip');\r\n              if(t) t.style.opacity = 0;\r\n            }, {passive:true});\r\n          });\r\n        });\r\n      <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-21a1672 e-con-full e-flex e-con e-child\" data-id=\"21a1672\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8a37195 elementor-widget elementor-widget-text-editor\" data-id=\"8a37195\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>This chart shows how many U.S. corn export contracts are coming in for next season. A higher value means buyers are purchasing more of next season\u2019s supply in advance, while a lower value means pre-orders are lighter.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a05a6fe e-flex e-con-boxed e-con e-parent\" data-id=\"a05a6fe\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-71f8021 e-con-full e-flex e-con e-child\" data-id=\"71f8021\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-43d8f22 elementor-widget elementor-widget-text-editor\" data-id=\"43d8f22\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>This data is provided for general informational purposes only and may not be entirely accurate. All investment decisions are solely the responsibility of the investor, and we assume no liability for any losses arising from the use of this data. Please consult a qualified professional if necessary.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-59ad8eb e-flex e-con-boxed e-con e-parent\" data-id=\"59ad8eb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ab5709 elementor-widget elementor-widget-heading\" data-id=\"6ab5709\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">\u00a9 2025 Comidra. All rights reserved.  \nComidra provides data-driven insights for smarter commodity investments.\n<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7ef1cce e-flex e-con-boxed e-con e-parent\" data-id=\"7ef1cce\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6b02466 elementor-widget elementor-widget-image\" data-id=\"6b02466\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/comidra.com\/wp-content\/uploads\/elementor\/thumbs\/cropped-logo-razavpn8gx5cvowey8hjmzaqh604h2tc5a9ha01h2k.gif\" title=\"cropped-logo.gif\" alt=\"natural gas investment chart\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a43522 elementor-widget elementor-widget-text-editor\" data-id=\"9a43522\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4>comidramaster@gmail.com<\/h4>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-18ae4f7 e-flex e-con-boxed e-con e-parent\" data-id=\"18ae4f7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4110cd7 elementor-widget elementor-widget-heading\" data-id=\"4110cd7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Data sources used in creating this WTI investment chart include Yahoo Finance, the U.S. Energy Information Administration (EIA), Baker Hughes,OPEC\n<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>COMIDRA.COM Comidra is a data site that organizes key commodity market data\u2014such as natural gas and WTI crude oil\u2014so you can grasp it at a glance. It presents multiple indicators in intuitive charts to help you quickly understand complex market moves and use them to support decision-making. Natural Gas WTI GOLD SILVER COPPER CORN Corn [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"disabled","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"disabled","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2392","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/comidra.com\/en\/wp-json\/wp\/v2\/pages\/2392","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/comidra.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/comidra.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/comidra.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/comidra.com\/en\/wp-json\/wp\/v2\/comments?post=2392"}],"version-history":[{"count":0,"href":"https:\/\/comidra.com\/en\/wp-json\/wp\/v2\/pages\/2392\/revisions"}],"wp:attachment":[{"href":"https:\/\/comidra.com\/en\/wp-json\/wp\/v2\/media?parent=2392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}