{"id":24852,"date":"2026-09-08T06:12:52","date_gmt":"2026-09-08T06:12:52","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=24852"},"modified":"2026-09-08T06:42:00","modified_gmt":"2026-09-08T06:42:00","slug":"blanking-processability-assessment-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/ru\/blanking-processability-assessment-calculator\/","title":{"rendered":"Blanking Processability Assessment Calculator"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>Blanking Processability Assessment Calculator<\/strong> is a practical engineering tool designed to evaluate how suitable a material and tooling setup are for sheet metal blanking and punching operations. It helps engineers estimate blanking force, punch-to-die clearance, press utilization, burr risk, tool wear tendency, and overall processability based on material properties, thickness, geometry, and tooling conditions. The Blanking Processability Assessment Calculator is useful for stamping, die design, press selection, quality control, and sheet metal production planning.<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>Blanking Processability Assessment Calculator<\/title>\n  <meta name=\"description\" content=\"Blanking Processability Assessment Calculator for estimating blanking force, punching force, punch die clearance, press utilization, burr risk, tool wear, stripping force, and sheet metal blanking processability.\">\n  <style>\n    #bpac-widget {\n      max-width: 1000px;\n      margin: 0 auto;\n      padding: 14px 12px 28px;\n      box-sizing: border-box;\n    }\n\n    #bpac {\n      --ink: #172026;\n      --muted: #5d6a73;\n      --panel: #ffffff;\n      --line: #c7d2fe;\n      --soft: #eff6ff;\n      --brand: #2563eb;\n      --brand-dark: #1d4ed8;\n      --accent: #60a5fa;\n      --danger: #b42318;\n      --warn: #b54708;\n      --ok: #2563eb;\n      --shadow: 0 14px 40px rgba(23, 32, 38, 0.08);\n      --radius: 8px;\n      display: block;\n      width: 100%;\n      color: var(--ink);\n      font-family: Arial, Helvetica, sans-serif;\n      line-height: 1.5;\n    }\n\n    #bpac,\n    #bpac * {\n      box-sizing: border-box;\n    }\n\n    #bpac h1,\n    #bpac h2,\n    #bpac h3,\n    #bpac p {\n      margin-top: 0;\n    }\n\n    #bpac .eyebrow {\n      color: var(--brand-dark);\n      font-weight: 700;\n      text-transform: uppercase;\n      font-size: 12px;\n      letter-spacing: 0;\n      margin-bottom: 6px;\n    }\n\n    #bpac-widget #bpac .segmented,\n    #bpac-widget #bpac .bpac-unit-switch {\n      display: inline-grid !important;\n      grid-auto-flow: column !important;\n      grid-auto-columns: minmax(86px, 1fr) !important;\n      border: 1px solid #c7d2fe !important;\n      border-radius: 8px !important;\n      background: #eff6ff !important;\n      overflow: hidden !important;\n      width: auto !important;\n      max-width: none !important;\n      margin: 0 !important;\n      padding: 0 !important;\n      box-shadow: none !important;\n      vertical-align: top !important;\n    }\n\n    #bpac-widget #bpac .segmented button,\n    #bpac-widget #bpac .bpac-unit-switch button,\n    #bpac-widget #bpac #unitMetric,\n    #bpac-widget #bpac #unitImperial {\n      appearance: none !important;\n      -webkit-appearance: none !important;\n      display: inline-flex !important;\n      align-items: center !important;\n      justify-content: center !important;\n      border: 0 !important;\n      border-radius: 0 !important;\n      background: transparent !important;\n      background-color: transparent !important;\n      background-image: none !important;\n      box-shadow: none !important;\n      padding: 9px 14px !important;\n      min-width: 86px !important;\n      width: auto !important;\n      max-width: none !important;\n      min-height: 0 !important;\n      height: auto !important;\n      margin: 0 !important;\n      cursor: pointer !important;\n      color: #5d6a73 !important;\n      font-family: Arial, Helvetica, sans-serif !important;\n      font-size: 14px !important;\n      font-weight: 400 !important;\n      line-height: 1.4 !important;\n      letter-spacing: normal !important;\n      text-transform: none !important;\n      text-decoration: none !important;\n      text-align: center !important;\n      white-space: nowrap !important;\n      float: none !important;\n      outline: none !important;\n      transition: none !important;\n    }\n\n    #bpac-widget #bpac .segmented button.active,\n    #bpac-widget #bpac .bpac-unit-switch button.active,\n    #bpac-widget #bpac #unitMetric.active,\n    #bpac-widget #bpac #unitImperial.active {\n      color: #ffffff !important;\n      background: #2563eb !important;\n      background-color: #2563eb !important;\n    }\n\n    #bpac-widget #bpac .segmented button:not(.active):hover,\n    #bpac-widget #bpac .bpac-unit-switch button:not(.active):hover {\n      color: #5d6a73 !important;\n      background: transparent !important;\n      background-color: transparent !important;\n    }\n\n    #bpac-widget #bpac .segmented button:focus,\n    #bpac-widget #bpac .segmented button:focus-visible,\n    #bpac-widget #bpac .bpac-unit-switch button:focus,\n    #bpac-widget #bpac .bpac-unit-switch button:focus-visible {\n      outline: none !important;\n      box-shadow: none !important;\n    }\n\n    #bpac .segmented {\n      display: inline-grid;\n      grid-auto-flow: column;\n      border: 1px solid var(--line);\n      border-radius: 8px;\n      background: var(--soft);\n      overflow: hidden;\n    }\n\n    #bpac .segmented button {\n      border: 0;\n      background: transparent;\n      padding: 9px 14px;\n      min-width: 86px;\n      cursor: pointer;\n      color: var(--muted);\n    }\n\n    #bpac .segmented button.active {\n      color: #fff;\n      background: var(--brand);\n    }\n\n    #bpac .inputs-panel {\n      background: var(--panel);\n      border: 1px solid var(--line);\n      border-radius: var(--radius);\n      box-shadow: var(--shadow);\n      padding: 16px;\n    }\n\n    #bpac-widget #bpac .inputs-panel-head {\n      display: flex !important;\n      align-items: flex-start !important;\n      justify-content: flex-end !important;\n      gap: 16px !important;\n      margin-bottom: 14px !important;\n    }\n\n    #bpac-widget #bpac .inputs-panel-switch {\n      flex: 0 0 auto !important;\n      width: auto !important;\n      max-width: none !important;\n    }\n\n    #bpac .inputs-panel-head {\n      display: flex;\n      align-items: flex-start;\n      justify-content: flex-end;\n      gap: 16px;\n      margin-bottom: 14px;\n    }\n\n    #bpac .inputs-panel-switch {\n      flex: 0 0 auto;\n    }\n\n    #bpac .app-grid {\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 18px;\n      align-items: start;\n    }\n\n    #bpac .inputs {\n      display: grid;\n      gap: 14px;\n    }\n\n    #bpac .panel {\n      background: transparent;\n      border: 0;\n      border-radius: 0;\n      box-shadow: none;\n      padding: 0;\n    }\n\n    #bpac .inputs-panel .panel + .panel {\n      border-top: 1px solid var(--line);\n      margin-top: 16px;\n      padding-top: 16px;\n    }\n\n    #bpac .panel-title {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      gap: 10px;\n      margin-bottom: 12px;\n    }\n\n    #bpac .field-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 12px;\n    }\n\n    #bpac .field {\n      min-width: 0;\n    }\n\n    #bpac .field.full {\n      grid-column: 1 \/ -1;\n    }\n\n    #bpac label {\n      display: flex;\n      align-items: center;\n      gap: 6px;\n      color: #31414c;\n      font-size: 13px;\n      font-weight: 700;\n      margin-bottom: 5px;\n    }\n\n    #bpac input,\n    #bpac select {\n      width: 100%;\n      min-height: 40px;\n      border: 1px solid #cbd7df;\n      border-radius: 7px;\n      color: var(--ink);\n      background: #fff;\n      padding: 8px 10px;\n      font: inherit;\n    }\n\n    #bpac input:focus,\n    #bpac select:focus,\n    #bpac button:focus-visible,\n    #bpac summary:focus-visible {\n      outline: 3px solid rgba(37, 99, 235, 0.24);\n      outline-offset: 2px;\n    }\n\n    #bpac .hint {\n      color: var(--muted);\n      font-size: 12px;\n      margin-top: 4px;\n    }\n\n    #bpac .tooltip {\n      position: relative;\n      display: inline-grid;\n      place-items: center;\n      width: 18px;\n      height: 18px;\n      border-radius: 50%;\n      border: 1px solid var(--line);\n      color: var(--brand-dark);\n      font-size: 12px;\n      cursor: help;\n      flex: 0 0 auto;\n    }\n\n    #bpac .tooltip span {\n      position: absolute;\n      z-index: 4;\n      left: 50%;\n      bottom: calc(100% + 8px);\n      transform: translateX(-50%);\n      width: min(260px, 80vw);\n      padding: 8px 10px;\n      background: #172026;\n      color: #fff;\n      border-radius: 6px;\n      font-weight: 400;\n      font-size: 12px;\n      opacity: 0;\n      pointer-events: none;\n      transition: opacity 0.15s ease;\n    }\n\n    #bpac .tooltip:hover span,\n    #bpac .tooltip:focus span {\n      opacity: 1;\n    }\n\n    #bpac .buttons {\n      display: flex;\n      justify-content: center;\n      gap: 10px;\n    }\n\n    #bpac .btn {\n      border: 1px solid transparent;\n      border-radius: 8px;\n      min-height: 44px;\n      padding: 10px 14px;\n      cursor: pointer;\n      font-weight: 700;\n      display: inline-flex;\n      justify-content: center;\n      align-items: center;\n      gap: 8px;\n    }\n\n    #bpac .btn-primary {\n      width: 16.666%;\n      min-width: 150px;\n      background: var(--brand);\n      color: #fff;\n    }\n\n    #bpac .btn-primary:hover {\n      background: var(--brand-dark);\n    }\n\n    #bpac .btn-ghost {\n      background: #fff;\n      color: var(--ink);\n      border-color: var(--line);\n    }\n\n    #bpac .result-grid {\n      display: grid;\n      grid-template-columns: repeat(4, minmax(0, 1fr));\n      gap: 12px;\n    }\n\n    #bpac .results {\n      display: none !important;\n      gap: 14px;\n    }\n\n    #bpac .results.is-visible {\n      display: grid !important;\n    }\n\n    #bpac .metric {\n      border: 1px solid var(--line);\n      border-radius: 8px;\n      padding: 13px;\n      background: #fff;\n      min-height: 104px;\n      min-width: 0;\n    }\n\n    #bpac .metric .label {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 8px;\n      color: var(--muted);\n      font-size: 12px;\n      font-weight: 700;\n      margin-bottom: 8px;\n    }\n\n    #bpac .metric .value {\n      font-size: clamp(20px, 2.4vw, 30px);\n      line-height: 1.1;\n      font-weight: 800;\n      overflow-wrap: anywhere;\n    }\n\n    #bpac .metric .sub {\n      margin-top: 6px;\n      color: var(--muted);\n      font-size: 12px;\n    }\n\n    #bpac .badge {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      border-radius: 999px;\n      padding: 4px 8px;\n      font-size: 12px;\n      font-weight: 800;\n      background: #eff6ff;\n      color: var(--brand-dark);\n      white-space: nowrap;\n    }\n\n    #bpac .badge.ok {\n      background: #dbeafe;\n      color: var(--ok);\n    }\n\n    #bpac .badge.warn {\n      background: #dbeafe;\n      color: var(--warn);\n    }\n\n    #bpac .badge.danger {\n      background: #dbeafe;\n      color: var(--danger);\n    }\n\n    #bpac .score-wrap {\n      display: grid;\n      grid-template-columns: minmax(160px, 240px) 1fr;\n      gap: 18px;\n      align-items: center;\n    }\n\n    #bpac .gauge {\n      --score: 0;\n      aspect-ratio: 1;\n      border-radius: 50%;\n      background:\n        radial-gradient(circle at center, #fff 0 54%, transparent 55%),\n        conic-gradient(var(--brand) calc(var(--score) * 1%), #dbeafe 0);\n      display: grid;\n      place-items: center;\n      border: 1px solid var(--line);\n      min-width: 0;\n    }\n\n    #bpac .gauge strong {\n      font-size: clamp(30px, 6vw, 54px);\n      line-height: 1;\n    }\n\n    #bpac .bar-list {\n      display: grid;\n      gap: 10px;\n    }\n\n    #bpac .bar-row {\n      display: grid;\n      grid-template-columns: 160px 1fr 64px;\n      gap: 10px;\n      align-items: center;\n      font-size: 13px;\n    }\n\n    #bpac .bar-track {\n      height: 10px;\n      background: #dbeafe;\n      border-radius: 999px;\n      overflow: hidden;\n    }\n\n    #bpac .bar-fill {\n      width: 0;\n      height: 100%;\n      background: var(--brand);\n      border-radius: inherit;\n      transition: width 0.2s ease;\n    }\n\n    @media (max-width: 1180px) {\n      #bpac .result-grid {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n      }\n    }\n\n    @media (max-width: 760px) {\n      #bpac-widget {\n        padding: 12px 9px 24px;\n      }\n\n      #bpac .panel-title,\n      #bpac .score-wrap {\n        grid-template-columns: 1fr;\n        flex-direction: column;\n        align-items: stretch;\n      }\n\n      #bpac .field-grid,\n      #bpac .result-grid {\n        grid-template-columns: 1fr;\n      }\n\n      #bpac .buttons {\n        justify-content: stretch;\n      }\n\n      #bpac .btn-primary {\n        width: 100%;\n        min-width: 0;\n      }\n\n      #bpac .bar-row {\n        grid-template-columns: 1fr;\n        gap: 4px;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n  <div id=\"bpac-widget\">\n  <div id=\"bpac\">\n    <section class=\"app-grid\">\n      <form class=\"inputs inputs-panel\" id=\"calculatorForm\">\n        <div class=\"inputs-panel-head\">\n          <div class=\"segmented inputs-panel-switch bpac-unit-switch\" aria-label=\"Unit system\">\n            <button type=\"button\" id=\"unitMetric\" class=\"active\">Metric<\/button>\n            <button type=\"button\" id=\"unitImperial\">Imperial<\/button>\n          <\/div>\n        <\/div>\n\n        <section class=\"panel\">\n          <div class=\"panel-title\">\n            <h2>Calculation Mode<\/h2>\n          <\/div>\n          <div class=\"field-grid\">\n            <div class=\"field full\">\n              <label for=\"calculationMode\">Calculation mode<\/label>\n              <select id=\"calculationMode\">\n                <option value=\"overall\">Overall Blanking Processability Score<\/option>\n                <option value=\"force\">Blanking Force Calculation<\/option>\n                <option value=\"clearance\">Recommended Clearance Estimation<\/option>\n                <option value=\"existing\">Existing Clearance Evaluation<\/option>\n                <option value=\"press\">Press Capacity Check<\/option>\n                <option value=\"edge\">Edge Quality Risk Assessment<\/option>\n                <option value=\"wear\">Tool Wear Risk Assessment<\/option>\n                <option value=\"compare\">Material Processability Comparison<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section class=\"panel\">\n          <div class=\"panel-title\">\n            <h2>Material<\/h2>\n          <\/div>\n          <div class=\"field-grid\">\n            <div class=\"field full\">\n              <label for=\"materialType\">Material type<\/label>\n              <select id=\"materialType\">\n                <option value=\"lowCarbonSteel\">Low Carbon Steel<\/option>\n                <option value=\"stainlessSteel\">Stainless Steel<\/option>\n                <option value=\"highStrengthSteel\">High Strength Steel<\/option>\n                <option value=\"aluminum\">Aluminum Alloy<\/option>\n                <option value=\"copper\">Copper<\/option>\n                <option value=\"brass\">Brass<\/option>\n                <option value=\"titanium\">Titanium<\/option>\n                <option value=\"custom\">Custom<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"field\">\n              <label for=\"materialGrade\">Material grade<\/label>\n              <input id=\"materialGrade\" value=\"Mild steel sheet\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"thickness\">Sheet thickness <span class=\"unit-label length-unit\">mm<\/span><\/label>\n              <input id=\"thickness\" type=\"number\" step=\"0.001\" min=\"0\" value=\"2\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"uts\">Ultimate tensile strength <span class=\"unit-label stress-unit\">MPa<\/span><\/label>\n              <input id=\"uts\" type=\"number\" step=\"1\" min=\"0\" value=\"420\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"shearStrength\">\n                Shear strength <span class=\"unit-label stress-unit\">MPa<\/span>\n                <span class=\"tooltip\" tabindex=\"0\">?<span>Leave blank to estimate shear strength as coefficient times tensile strength.<\/span><\/span>\n              <\/label>\n              <input id=\"shearStrength\" type=\"number\" step=\"1\" min=\"0\" placeholder=\"Estimated if blank\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"shearCoefficient\">Shear coefficient<\/label>\n              <input id=\"shearCoefficient\" type=\"number\" step=\"0.01\" min=\"0\" value=\"0.75\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"yieldStrength\">Yield strength <span class=\"unit-label stress-unit\">MPa<\/span><\/label>\n              <input id=\"yieldStrength\" type=\"number\" step=\"1\" min=\"0\" value=\"250\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"elongation\">Elongation %<\/label>\n              <input id=\"elongation\" type=\"number\" step=\"0.1\" min=\"0\" value=\"25\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"hardness\">Hardness HB<\/label>\n              <input id=\"hardness\" type=\"number\" step=\"1\" min=\"0\" value=\"120\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"clearanceRatio\">Clearance ratio per side %<\/label>\n              <input id=\"clearanceRatio\" type=\"number\" step=\"0.1\" min=\"0\" value=\"6\">\n              <div class=\"hint\">Starting value only. Adjust for your tooling supplier guidance.<\/div>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section class=\"panel\">\n          <div class=\"panel-title\">\n            <h2>Geometry<\/h2>\n          <\/div>\n          <div class=\"field-grid\">\n            <div class=\"field full\">\n              <label for=\"geometryType\">Cut geometry<\/label>\n              <select id=\"geometryType\">\n                <option value=\"round\">Round hole<\/option>\n                <option value=\"rectangle\">Rectangle<\/option>\n                <option value=\"custom\">Custom perimeter<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"field geom geom-round\">\n              <label for=\"diameter\">Hole diameter <span class=\"length-unit\">mm<\/span><\/label>\n              <input id=\"diameter\" type=\"number\" step=\"0.001\" min=\"0\" value=\"20\">\n            <\/div>\n            <div class=\"field geom geom-rectangle\" hidden>\n              <label for=\"width\">Width <span class=\"length-unit\">mm<\/span><\/label>\n              <input id=\"width\" type=\"number\" step=\"0.001\" min=\"0\" value=\"30\">\n            <\/div>\n            <div class=\"field geom geom-rectangle\" hidden>\n              <label for=\"height\">Height <span class=\"length-unit\">mm<\/span><\/label>\n              <input id=\"height\" type=\"number\" step=\"0.001\" min=\"0\" value=\"20\">\n            <\/div>\n            <div class=\"field geom geom-custom\" hidden>\n              <label for=\"customPerimeter\">Cut perimeter <span class=\"length-unit\">mm<\/span><\/label>\n              <input id=\"customPerimeter\" type=\"number\" step=\"0.001\" min=\"0\" value=\"62.832\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"featureCount\">Simultaneous features<\/label>\n              <input id=\"featureCount\" type=\"number\" step=\"1\" min=\"1\" value=\"1\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"staggerFactor\">Stagger\/load factor<\/label>\n              <input id=\"staggerFactor\" type=\"number\" step=\"0.01\" min=\"0.1\" max=\"1\" value=\"1\">\n              <div class=\"hint\">Use below 1.0 for staggered punches.<\/div>\n            <\/div>\n            <div class=\"field\">\n              <label for=\"minFeature\">Smallest feature <span class=\"length-unit\">mm<\/span><\/label>\n              <input id=\"minFeature\" type=\"number\" step=\"0.001\" min=\"0\" value=\"20\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"webDistance\">Web or edge distance <span class=\"length-unit\">mm<\/span><\/label>\n              <input id=\"webDistance\" type=\"number\" step=\"0.001\" min=\"0\" value=\"6\">\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section class=\"panel\">\n          <div class=\"panel-title\">\n            <h2>Tooling<\/h2>\n          <\/div>\n          <div class=\"field-grid\">\n            <div class=\"field\">\n              <label for=\"actualClearance\">\n                Clearance per side <span class=\"length-unit\">mm<\/span>\n                <span class=\"tooltip\" tabindex=\"0\">?<span>Punch-to-die clearance measured per side. Total die clearance is twice this value.<\/span><\/span>\n              <\/label>\n              <input id=\"actualClearance\" type=\"number\" step=\"0.001\" min=\"0\" value=\"0.12\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"punchDiameter\">Punch diameter <span class=\"length-unit\">mm<\/span><\/label>\n              <input id=\"punchDiameter\" type=\"number\" step=\"0.001\" min=\"0\" value=\"20\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"dieOpening\">Die opening <span class=\"length-unit\">mm<\/span><\/label>\n              <input id=\"dieOpening\" type=\"number\" step=\"0.001\" min=\"0\" value=\"20.24\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"punchCondition\">Punch edge condition<\/label>\n              <select id=\"punchCondition\">\n                <option value=\"sharp\">New \/ Sharp<\/option>\n                <option value=\"normal\" selected>Normal<\/option>\n                <option value=\"worn\">Worn<\/option>\n                <option value=\"severe\">Severely Worn<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"field\">\n              <label for=\"dieCondition\">Die edge condition<\/label>\n              <select id=\"dieCondition\">\n                <option value=\"sharp\">New \/ Sharp<\/option>\n                <option value=\"normal\" selected>Normal<\/option>\n                <option value=\"worn\">Worn<\/option>\n                <option value=\"severe\">Severely Worn<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"field\">\n              <label for=\"toolMaterial\">Tool material<\/label>\n              <select id=\"toolMaterial\">\n                <option value=\"standard\">Standard tool steel<\/option>\n                <option value=\"premium\">Premium tool steel<\/option>\n                <option value=\"carbide\">Carbide<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"field\">\n              <label for=\"toolCoating\">Tool coating<\/label>\n              <select id=\"toolCoating\">\n                <option value=\"none\">None<\/option>\n                <option value=\"tin\">TiN<\/option>\n                <option value=\"ticn\">TiCN<\/option>\n                <option value=\"dlc\">DLC \/ anti-galling<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"field\">\n              <label for=\"lubrication\">Lubrication<\/label>\n              <select id=\"lubrication\">\n                <option value=\"good\">Good Lubrication<\/option>\n                <option value=\"normal\" selected>Normal Lubrication<\/option>\n                <option value=\"dry\">Dry<\/option>\n                <option value=\"unknown\">Unknown<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"field\">\n              <label for=\"alignment\">Tool alignment quality<\/label>\n              <select id=\"alignment\">\n                <option value=\"excellent\">Excellent<\/option>\n                <option value=\"normal\" selected>Normal<\/option>\n                <option value=\"poor\">Poor<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"field\">\n              <label for=\"toolFactor\">Tooling force factor<\/label>\n              <input id=\"toolFactor\" type=\"number\" step=\"0.01\" min=\"0.8\" value=\"1.08\">\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section class=\"panel\">\n          <div class=\"panel-title\">\n            <h2>Press and Production<\/h2>\n          <\/div>\n          <div class=\"field-grid\">\n            <div class=\"field\">\n              <label for=\"pressType\">Press type<\/label>\n              <select id=\"pressType\">\n                <option>Mechanical Press<\/option>\n                <option>Hydraulic Press<\/option>\n                <option>Servo Press<\/option>\n                <option>Turret Punch Press<\/option>\n                <option>Custom<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"field\">\n              <label for=\"pressCapacity\">Press capacity <span class=\"force-unit\">kN<\/span><\/label>\n              <input id=\"pressCapacity\" type=\"number\" step=\"0.1\" min=\"0\" value=\"100\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"processFactor\">Process correction factor<\/label>\n              <input id=\"processFactor\" type=\"number\" step=\"0.01\" min=\"1\" value=\"1.2\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"stripCoefficient\">\n                Stripping coefficient\n                <span class=\"tooltip\" tabindex=\"0\">?<span>Typical preliminary estimates often use about 5% to 20% of blanking force.<\/span><\/span>\n              <\/label>\n              <input id=\"stripCoefficient\" type=\"number\" step=\"0.01\" min=\"0\" value=\"0.1\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"energyForceCoefficient\">Average force factor<\/label>\n              <input id=\"energyForceCoefficient\" type=\"number\" step=\"0.01\" min=\"0\" value=\"0.55\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"penetrationCoefficient\">Penetration factor<\/label>\n              <input id=\"penetrationCoefficient\" type=\"number\" step=\"0.01\" min=\"0\" value=\"0.35\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"productionQuantity\">Production quantity<\/label>\n              <input id=\"productionQuantity\" type=\"number\" step=\"1\" min=\"0\" value=\"10000\">\n            <\/div>\n            <div class=\"field\">\n              <label for=\"strokeRate\">Stroke rate spm<\/label>\n              <input id=\"strokeRate\" type=\"number\" step=\"1\" min=\"0\" value=\"60\">\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section class=\"panel\">\n          <div class=\"buttons\">\n            <button class=\"btn btn-primary\" type=\"button\" id=\"assessBtn\">\n              Calculate\n            <\/button>\n          <\/div>\n        <\/section>\n      <\/form>\n\n      <section class=\"results\" id=\"results\" hidden>\n        <div class=\"panel\">\n          <div class=\"panel-title\">\n            <h2>Results<\/h2>\n          <\/div>\n          <div class=\"result-grid\">\n            <div class=\"metric\">\n              <div class=\"label\">Estimated shear strength <span class=\"tooltip\" tabindex=\"0\">?<span>Direct shear strength is used when entered; otherwise it is estimated from tensile strength.<\/span><\/span><\/div>\n              <div class=\"value\" id=\"outShear\">315 MPa<\/div>\n              <div class=\"sub\" id=\"outShearSub\">0.75 x UTS<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Total cut perimeter<\/div>\n              <div class=\"value\" id=\"outPerimeter\">62.83 mm<\/div>\n              <div class=\"sub\" id=\"outPerimeterSub\">Round hole x 1<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Blanking force <span class=\"tooltip\" tabindex=\"0\">?<span>F = perimeter x thickness x shear strength.<\/span><\/span><\/div>\n              <div class=\"value\" id=\"outForce\">39.6 kN<\/div>\n              <div class=\"sub\" id=\"outForceSub\">Base cutting load<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Design force<\/div>\n              <div class=\"value\" id=\"outDesignForce\">51.3 kN<\/div>\n              <div class=\"sub\" id=\"outDesignForceSub\">With tooling and process factors<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Recommended clearance<\/div>\n              <div class=\"value\" id=\"outClearance\">0.120 mm<\/div>\n              <div class=\"sub\" id=\"outClearanceSub\">Total die clearance: 0.240 mm<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Existing clearance status<\/div>\n              <div class=\"value\" id=\"outClearanceStatus\">Recommended<\/div>\n              <div class=\"sub\" id=\"outClearancePct\">6.0% of thickness<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Press utilization<\/div>\n              <div class=\"value\" id=\"outPress\">51%<\/div>\n              <div class=\"sub\" id=\"outPressStatus\">Acceptable utilization<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Stripping force<\/div>\n              <div class=\"value\" id=\"outStrip\">4.0 kN<\/div>\n              <div class=\"sub\">Estimated from blanking force<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Cutting energy<\/div>\n              <div class=\"value\" id=\"outEnergy\">15.2 J<\/div>\n              <div class=\"sub\">Approximate press work<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Burr risk <span class=\"tooltip\" tabindex=\"0\">?<span>Calculator-specific index from clearance, tool wear, strength, and alignment contributions.<\/span><\/span><\/div>\n              <div class=\"value\" id=\"outBurr\">Low<\/div>\n              <div class=\"sub\" id=\"outBurrIndex\">24 \/ 100<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Tool wear risk<\/div>\n              <div class=\"value\" id=\"outWear\">Moderate<\/div>\n              <div class=\"sub\" id=\"outWearIndex\">42 \/ 100<\/div>\n            <\/div>\n            <div class=\"metric\">\n              <div class=\"label\">Edge quality<\/div>\n              <div class=\"value\" id=\"outEdge\">Good<\/div>\n              <div class=\"sub\" id=\"outEdgeSub\">Balanced clearance and tool condition<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n    <\/section>\n  <\/div>\n\n  <textarea id=\"bpac-js-b64\" aria-hidden=\"true\" style=\"display:none!important;width:0;height:0;border:0;padding:0;position:absolute;left:-9999px\">KGZ1bmN0aW9uICgpIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnBhYyIpIHx8IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJicGFjLXdpZGdldCIpOwogIGlmICghcm9vdCB8fCByb290LmdldEF0dHJpYnV0ZSgiZGF0YS1icGFjLXJlYWR5IikgPT09ICIxIikgcmV0dXJuOwogIHJvb3Quc2V0QXR0cmlidXRlKCJkYXRhLWJwYWMtcmVhZHkiLCAiMSIpOwoKICB2YXIgc3RhdGUgPSB7IHVuaXQ6ICJtZXRyaWMiIH07CiAgdmFyICQgPSBmdW5jdGlvbiAoaWQpIHsKICAgIHJldHVybiAocm9vdC5xdWVyeVNlbGVjdG9yKCIjIiArIGlkKSB8fCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkpOwogIH07CgogIGZ1bmN0aW9uIHNob3dSZXN1bHRzKCkgewogICAgdmFyIHJlc3VsdHMgPSAkKCJyZXN1bHRzIik7CiAgICBpZiAoIXJlc3VsdHMpIHJldHVybjsKICAgIHJlc3VsdHMuaGlkZGVuID0gZmFsc2U7CiAgICByZXN1bHRzLmNsYXNzTGlzdC5hZGQoImlzLXZpc2libGUiKTsKICAgIGNhbGN1bGF0ZSgpOwogICAgdHJ5IHsKICAgICAgcmVzdWx0cy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAic21vb3RoIiwgYmxvY2s6ICJzdGFydCIgfSk7CiAgICB9IGNhdGNoIChlcnIpIHt9CiAgfQoKCgogIHZhciBtYXRlcmlhbHMgPSB7CiAgICAgIGxvd0NhcmJvblN0ZWVsOiB7CiAgICAgICAgbmFtZTogIkxvdyBDYXJib24gU3RlZWwiLAogICAgICAgIGdyYWRlOiAiTWlsZCBzdGVlbCBzaGVldCIsCiAgICAgICAgdXRzOiA0MjAsCiAgICAgICAgc2hlYXJDb2VmZmljaWVudDogMC43NSwKICAgICAgICBjbGVhcmFuY2VSYXRpbzogNiwKICAgICAgICBjbGVhcmFuY2VNaW46IDUsCiAgICAgICAgY2xlYXJhbmNlTWF4OiA4LAogICAgICAgIGhhcmRuZXNzOiAxMjAsCiAgICAgICAgZWxvbmdhdGlvbjogMjUsCiAgICAgICAgeWllbGRTdHJlbmd0aDogMjUwLAogICAgICAgIG1pbkhvbGVDb2VmZmljaWVudDogMS4wLAogICAgICAgIG1pbkRpc3RhbmNlQ29lZmZpY2llbnQ6IDEuNQogICAgICB9LAogICAgICBzdGFpbmxlc3NTdGVlbDogewogICAgICAgIG5hbWU6ICJTdGFpbmxlc3MgU3RlZWwiLAogICAgICAgIGdyYWRlOiAiMzA0IHN0YWlubGVzcyBzaGVldCIsCiAgICAgICAgdXRzOiA2MjAsCiAgICAgICAgc2hlYXJDb2VmZmljaWVudDogMC43MiwKICAgICAgICBjbGVhcmFuY2VSYXRpbzogOSwKICAgICAgICBjbGVhcmFuY2VNaW46IDcsCiAgICAgICAgY2xlYXJhbmNlTWF4OiAxMiwKICAgICAgICBoYXJkbmVzczogMTgwLAogICAgICAgIGVsb25nYXRpb246IDQwLAogICAgICAgIHlpZWxkU3RyZW5ndGg6IDI5MCwKICAgICAgICBtaW5Ib2xlQ29lZmZpY2llbnQ6IDEuMiwKICAgICAgICBtaW5EaXN0YW5jZUNvZWZmaWNpZW50OiAyLjAKICAgICAgfSwKICAgICAgaGlnaFN0cmVuZ3RoU3RlZWw6IHsKICAgICAgICBuYW1lOiAiSGlnaCBTdHJlbmd0aCBTdGVlbCIsCiAgICAgICAgZ3JhZGU6ICJIU0xBIHNoZWV0IiwKICAgICAgICB1dHM6IDkwMCwKICAgICAgICBzaGVhckNvZWZmaWNpZW50OiAwLjc1LAogICAgICAgIGNsZWFyYW5jZVJhdGlvOiAxMSwKICAgICAgICBjbGVhcmFuY2VNaW46IDgsCiAgICAgICAgY2xlYXJhbmNlTWF4OiAxNCwKICAgICAgICBoYXJkbmVzczogMjYwLAogICAgICAgIGVsb25nYXRpb246IDE0LAogICAgICAgIHlpZWxkU3RyZW5ndGg6IDcwMCwKICAgICAgICBtaW5Ib2xlQ29lZmZpY2llbnQ6IDEuNSwKICAgICAgICBtaW5EaXN0YW5jZUNvZWZmaWNpZW50OiAyLjIKICAgICAgfSwKICAgICAgYWx1bWludW06IHsKICAgICAgICBuYW1lOiAiQWx1bWludW0gQWxsb3kiLAogICAgICAgIGdyYWRlOiAiNTA1Mi1IMzIiLAogICAgICAgIHV0czogMjMwLAogICAgICAgIHNoZWFyQ29lZmZpY2llbnQ6IDAuNjIsCiAgICAgICAgY2xlYXJhbmNlUmF0aW86IDUuNSwKICAgICAgICBjbGVhcmFuY2VNaW46IDQsCiAgICAgICAgY2xlYXJhbmNlTWF4OiA4LAogICAgICAgIGhhcmRuZXNzOiA2NSwKICAgICAgICBlbG9uZ2F0aW9uOiAxMiwKICAgICAgICB5aWVsZFN0cmVuZ3RoOiAxOTUsCiAgICAgICAgbWluSG9sZUNvZWZmaWNpZW50OiAwLjksCiAgICAgICAgbWluRGlzdGFuY2VDb2VmZmljaWVudDogMS41CiAgICAgIH0sCiAgICAgIGNvcHBlcjogewogICAgICAgIG5hbWU6ICJDb3BwZXIiLAogICAgICAgIGdyYWRlOiAiQzExMCIsCiAgICAgICAgdXRzOiAyNTAsCiAgICAgICAgc2hlYXJDb2VmZmljaWVudDogMC42NSwKICAgICAgICBjbGVhcmFuY2VSYXRpbzogNS41LAogICAgICAgIGNsZWFyYW5jZU1pbjogNCwKICAgICAgICBjbGVhcmFuY2VNYXg6IDcsCiAgICAgICAgaGFyZG5lc3M6IDgwLAogICAgICAgIGVsb25nYXRpb246IDM1LAogICAgICAgIHlpZWxkU3RyZW5ndGg6IDcwLAogICAgICAgIG1pbkhvbGVDb2VmZmljaWVudDogMC45LAogICAgICAgIG1pbkRpc3RhbmNlQ29lZmZpY2llbnQ6IDEuNQogICAgICB9LAogICAgICBicmFzczogewogICAgICAgIG5hbWU6ICJCcmFzcyIsCiAgICAgICAgZ3JhZGU6ICJDYXJ0cmlkZ2UgYnJhc3MiLAogICAgICAgIHV0czogMzYwLAogICAgICAgIHNoZWFyQ29lZmZpY2llbnQ6IDAuNjgsCiAgICAgICAgY2xlYXJhbmNlUmF0aW86IDUuNSwKICAgICAgICBjbGVhcmFuY2VNaW46IDQsCiAgICAgICAgY2xlYXJhbmNlTWF4OiA3LAogICAgICAgIGhhcmRuZXNzOiAxMDAsCiAgICAgICAgZWxvbmdhdGlvbjogMzAsCiAgICAgICAgeWllbGRTdHJlbmd0aDogMTUwLAogICAgICAgIG1pbkhvbGVDb2VmZmljaWVudDogMC45LAogICAgICAgIG1pbkRpc3RhbmNlQ29lZmZpY2llbnQ6IDEuNAogICAgICB9LAogICAgICB0aXRhbml1bTogewogICAgICAgIG5hbWU6ICJUaXRhbml1bSIsCiAgICAgICAgZ3JhZGU6ICJHcmFkZSAyIC8gY3VzdG9tIiwKICAgICAgICB1dHM6IDU1MCwKICAgICAgICBzaGVhckNvZWZmaWNpZW50OiAwLjcsCiAgICAgICAgY2xlYXJhbmNlUmF0aW86IDEwLAogICAgICAgIGNsZWFyYW5jZU1pbjogOCwKICAgICAgICBjbGVhcmFuY2VNYXg6IDE0LAogICAgICAgIGhhcmRuZXNzOiAxOTAsCiAgICAgICAgZWxvbmdhdGlvbjogMjAsCiAgICAgICAgeWllbGRTdHJlbmd0aDogMzgwLAogICAgICAgIG1pbkhvbGVDb2VmZmljaWVudDogMS40LAogICAgICAgIG1pbkRpc3RhbmNlQ29lZmZpY2llbnQ6IDIuMgogICAgICB9LAogICAgICBjdXN0b206IHsKICAgICAgICBuYW1lOiAiQ3VzdG9tIiwKICAgICAgICBncmFkZTogIkN1c3RvbSBtYXRlcmlhbCIsCiAgICAgICAgdXRzOiA0MjAsCiAgICAgICAgc2hlYXJDb2VmZmljaWVudDogMC43NSwKICAgICAgICBjbGVhcmFuY2VSYXRpbzogNiwKICAgICAgICBjbGVhcmFuY2VNaW46IDUsCiAgICAgICAgY2xlYXJhbmNlTWF4OiAxMCwKICAgICAgICBoYXJkbmVzczogMTIwLAogICAgICAgIGVsb25nYXRpb246IDIwLAogICAgICAgIHlpZWxkU3RyZW5ndGg6IDI1MCwKICAgICAgICBtaW5Ib2xlQ29lZmZpY2llbnQ6IDEuMCwKICAgICAgICBtaW5EaXN0YW5jZUNvZWZmaWNpZW50OiAxLjgKICAgICAgfQogICAgfTsKCiAgdmFyIGZpZWxkSWRzID0gWwogICAgICAiY2FsY3VsYXRpb25Nb2RlIiwgIm1hdGVyaWFsVHlwZSIsICJtYXRlcmlhbEdyYWRlIiwgInRoaWNrbmVzcyIsICJ1dHMiLCAic2hlYXJTdHJlbmd0aCIsCiAgICAgICJzaGVhckNvZWZmaWNpZW50IiwgInlpZWxkU3RyZW5ndGgiLCAiZWxvbmdhdGlvbiIsICJoYXJkbmVzcyIsICJjbGVhcmFuY2VSYXRpbyIsCiAgICAgICJnZW9tZXRyeVR5cGUiLCAiZGlhbWV0ZXIiLCAid2lkdGgiLCAiaGVpZ2h0IiwgImN1c3RvbVBlcmltZXRlciIsICJmZWF0dXJlQ291bnQiLAogICAgICAic3RhZ2dlckZhY3RvciIsICJtaW5GZWF0dXJlIiwgIndlYkRpc3RhbmNlIiwgImFjdHVhbENsZWFyYW5jZSIsICJwdW5jaERpYW1ldGVyIiwKICAgICAgImRpZU9wZW5pbmciLCAicHVuY2hDb25kaXRpb24iLCAiZGllQ29uZGl0aW9uIiwgInRvb2xNYXRlcmlhbCIsICJ0b29sQ29hdGluZyIsCiAgICAgICJsdWJyaWNhdGlvbiIsICJhbGlnbm1lbnQiLCAidG9vbEZhY3RvciIsICJwcmVzc1R5cGUiLCAicHJlc3NDYXBhY2l0eSIsICJwcm9jZXNzRmFjdG9yIiwKICAgICAgInN0cmlwQ29lZmZpY2llbnQiLCAiZW5lcmd5Rm9yY2VDb2VmZmljaWVudCIsICJwZW5ldHJhdGlvbkNvZWZmaWNpZW50IiwgInByb2R1Y3Rpb25RdWFudGl0eSIsCiAgICAgICJzdHJva2VSYXRlIgogICAgXTsKCiAgICBmdW5jdGlvbiBudW0oaWQsIGZhbGxiYWNrID0gMCkgewogICAgICB2YXIgdmFsdWUgPSBwYXJzZUZsb2F0KCQoaWQpLnZhbHVlKTsKICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgPyB2YWx1ZSA6IGZhbGxiYWNrOwogICAgfQoKICAgIGZ1bmN0aW9uIGNsYW1wKHZhbHVlLCBtaW4sIG1heCkgewogICAgICByZXR1cm4gTWF0aC5taW4obWF4LCBNYXRoLm1heChtaW4sIHZhbHVlKSk7CiAgICB9CgogICAgZnVuY3Rpb24gcm91bmQodmFsdWUsIGRpZ2l0cyA9IDEpIHsKICAgICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpKSByZXR1cm4gIjAiOwogICAgICByZXR1cm4gdmFsdWUudG9Mb2NhbGVTdHJpbmcoImVuLVVTIiwgewogICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogZGlnaXRzLAogICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMTAgPiB2YWx1ZSAmJiBkaWdpdHMgPiAwID8gTWF0aC5taW4oZGlnaXRzLCAxKSA6IDAKICAgICAgfSk7CiAgICB9CgogICAgZnVuY3Rpb24gbGVuZ3RoVG9NbSh2YWx1ZSkgewogICAgICByZXR1cm4gc3RhdGUudW5pdCA9PT0gIm1ldHJpYyIgPyB2YWx1ZSA6IHZhbHVlICogMjUuNDsKICAgIH0KCiAgICBmdW5jdGlvbiBtbVRvTGVuZ3RoKHZhbHVlKSB7CiAgICAgIHJldHVybiBzdGF0ZS51bml0ID09PSAibWV0cmljIiA\/IHZhbHVlIDogdmFsdWUgLyAyNS40OwogICAgfQoKICAgIGZ1bmN0aW9uIHN0cmVzc1RvTXBhKHZhbHVlKSB7CiAgICAgIHJldHVybiBzdGF0ZS51bml0ID09PSAibWV0cmljIiA\/IHZhbHVlIDogdmFsdWUgKiA2Ljg5NDc1NzsKICAgIH0KCiAgICBmdW5jdGlvbiBtcGFUb1N0cmVzcyh2YWx1ZSkgewogICAgICByZXR1cm4gc3RhdGUudW5pdCA9PT0gIm1ldHJpYyIgPyB2YWx1ZSA6IHZhbHVlIC8gNi44OTQ3NTc7CiAgICB9CgogICAgZnVuY3Rpb24gZm9yY2VUb0tuKHZhbHVlTikgewogICAgICByZXR1cm4gdmFsdWVOIC8gMTAwMDsKICAgIH0KCiAgICBmdW5jdGlvbiBkaXNwbGF5TGVuZ3RoKHZhbHVlTW0sIGRpZ2l0cyA9IDMpIHsKICAgICAgcmV0dXJuICIiICsgKHJvdW5kKG1tVG9MZW5ndGgodmFsdWVNbSksIGRpZ2l0cykpICsgIiAiICsgKHN0YXRlLnVuaXQgPT09ICJtZXRyaWMiID8gIm1tIiA6ICJpbiIpICsgIiI7CiAgICB9CgogICAgZnVuY3Rpb24gZGlzcGxheVN0cmVzcyh2YWx1ZU1wYSwgZGlnaXRzID0gMCkgewogICAgICByZXR1cm4gIiIgKyAocm91bmQobXBhVG9TdHJlc3ModmFsdWVNcGEpLCBkaWdpdHMpKSArICIgIiArIChzdGF0ZS51bml0ID09PSAibWV0cmljIiA\/ICJNUGEiIDogImtzaSIpICsgIiI7CiAgICB9CgogICAgZnVuY3Rpb24gZGlzcGxheUZvcmNlKHZhbHVlTiwgZGlnaXRzID0gMSkgewogICAgICBpZiAoc3RhdGUudW5pdCA9PT0gIm1ldHJpYyIpIHsKICAgICAgICByZXR1cm4gIiIgKyAocm91bmQoZm9yY2VUb0tuKHZhbHVlTiksIGRpZ2l0cykpICsgIiBrTiI7CiAgICAgIH0KICAgICAgcmV0dXJuICIiICsgKHJvdW5kKHZhbHVlTiAqIDAuMjI0ODA5LCAwKSkgKyAiIGxiZiI7CiAgICB9CgogICAgZnVuY3Rpb24gZGlzcGxheUVuZXJneSh2YWx1ZUopIHsKICAgICAgaWYgKDEwMDAgPD0gdmFsdWVKKSByZXR1cm4gIiIgKyAocm91bmQodmFsdWVKIC8gMTAwMCwgMikpICsgIiBrSiI7CiAgICAgIHJldHVybiAiIiArIChyb3VuZCh2YWx1ZUosIDEpKSArICIgSiI7CiAgICB9CgogICAgZnVuY3Rpb24gc2V0QmFkZ2UoZWwsIHN0YXR1cykgewogICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKCJvayIsICJ3YXJuIiwgImRhbmdlciIpOwogICAgICBpZiAoc3RhdHVzID09PSAiZGFuZ2VyIikgZWwuY2xhc3NMaXN0LmFkZCgiZGFuZ2VyIik7CiAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PT0gIndhcm4iKSBlbC5jbGFzc0xpc3QuYWRkKCJ3YXJuIik7CiAgICAgIGVsc2UgZWwuY2xhc3NMaXN0LmFkZCgib2siKTsKICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVNYXRlcmlhbEZpZWxkcygpIHsKICAgICAgdmFyIHByZXNldCA9IG1hdGVyaWFsc1skKCJtYXRlcmlhbFR5cGUiKS52YWx1ZV07CiAgICAgICQoIm1hdGVyaWFsR3JhZGUiKS52YWx1ZSA9IHByZXNldC5ncmFkZTsKICAgICAgJCgidXRzIikudmFsdWUgPSByb3VuZChtcGFUb1N0cmVzcyhwcmVzZXQudXRzKSwgc3RhdGUudW5pdCA9PT0gIm1ldHJpYyIgPyAwIDogMSk7CiAgICAgICQoInNoZWFyU3RyZW5ndGgiKS52YWx1ZSA9ICIiOwogICAgICAkKCJzaGVhckNvZWZmaWNpZW50IikudmFsdWUgPSBwcmVzZXQuc2hlYXJDb2VmZmljaWVudDsKICAgICAgJCgieWllbGRTdHJlbmd0aCIpLnZhbHVlID0gcm91bmQobXBhVG9TdHJlc3MocHJlc2V0LnlpZWxkU3RyZW5ndGgpLCBzdGF0ZS51bml0ID09PSAibWV0cmljIiA\/IDAgOiAxKTsKICAgICAgJCgiZWxvbmdhdGlvbiIpLnZhbHVlID0gcHJlc2V0LmVsb25nYXRpb247CiAgICAgICQoImhhcmRuZXNzIikudmFsdWUgPSBwcmVzZXQuaGFyZG5lc3M7CiAgICAgICQoImNsZWFyYW5jZVJhdGlvIikudmFsdWUgPSBwcmVzZXQuY2xlYXJhbmNlUmF0aW87CiAgICAgIHZhciB0aGlja25lc3NNbSA9IGxlbmd0aFRvTW0obnVtKCJ0aGlja25lc3MiLCAyKSk7CiAgICAgICQoImFjdHVhbENsZWFyYW5jZSIpLnZhbHVlID0gcm91bmQobW1Ub0xlbmd0aCh0aGlja25lc3NNbSAqIHByZXNldC5jbGVhcmFuY2VSYXRpbyAvIDEwMCksIDMpOwogICAgICAkKCJkaWVPcGVuaW5nIikudmFsdWUgPSByb3VuZChudW0oInB1bmNoRGlhbWV0ZXIiLCAyMCkgKyAyICogbnVtKCJhY3R1YWxDbGVhcmFuY2UiLCAwLjEyKSwgMyk7CiAgICAgIGNhbGN1bGF0ZSgpOwogICAgfQoKICAgIGZ1bmN0aW9uIHVwZGF0ZVVuaXRMYWJlbHMoKSB7CiAgICAgIHJvb3QucXVlcnlTZWxlY3RvckFsbCgiLmxlbmd0aC11bml0IikuZm9yRWFjaCgoZWwpID0+IHsgZWwudGV4dENvbnRlbnQgPSBzdGF0ZS51bml0ID09PSAibWV0cmljIiA\/ICJtbSIgOiAiaW4iOyB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuc3RyZXNzLXVuaXQiKS5mb3JFYWNoKChlbCkgPT4geyBlbC50ZXh0Q29udGVudCA9IHN0YXRlLnVuaXQgPT09ICJtZXRyaWMiID8gIk1QYSIgOiAia3NpIjsgfSk7CiAgICAgIHJvb3QucXVlcnlTZWxlY3RvckFsbCgiLmZvcmNlLXVuaXQiKS5mb3JFYWNoKChlbCkgPT4geyBlbC50ZXh0Q29udGVudCA9IHN0YXRlLnVuaXQgPT09ICJtZXRyaWMiID8gImtOIiA6ICJsYmYiOyB9KTsKICAgIH0KCiAgICBmdW5jdGlvbiBjb252ZXJ0Q3VycmVudElucHV0cyh0b1VuaXQpIHsKICAgICAgaWYgKHN0YXRlLnVuaXQgPT09IHRvVW5pdCkgcmV0dXJuOwogICAgICB2YXIgbGVuZ3RoRmllbGRzID0gWyJ0aGlja25lc3MiLCAiZGlhbWV0ZXIiLCAid2lkdGgiLCAiaGVpZ2h0IiwgImN1c3RvbVBlcmltZXRlciIsICJtaW5GZWF0dXJlIiwgIndlYkRpc3RhbmNlIiwgImFjdHVhbENsZWFyYW5jZSIsICJwdW5jaERpYW1ldGVyIiwgImRpZU9wZW5pbmciXTsKICAgICAgdmFyIHN0cmVzc0ZpZWxkcyA9IFsidXRzIiwgInNoZWFyU3RyZW5ndGgiLCAieWllbGRTdHJlbmd0aCJdOwogICAgICBsZW5ndGhGaWVsZHMuZm9yRWFjaCgoaWQpID0+IHsKICAgICAgICBpZiAoJChpZCkudmFsdWUgIT09ICIiKSB7CiAgICAgICAgICB2YXIgbW0gPSBsZW5ndGhUb01tKG51bShpZCkpOwogICAgICAgICAgJChpZCkudmFsdWUgPSByb3VuZCh0b1VuaXQgPT09ICJtZXRyaWMiID8gbW0gOiBtbSAvIDI1LjQsIDMpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHN0cmVzc0ZpZWxkcy5mb3JFYWNoKChpZCkgPT4gewogICAgICAgIGlmICgkKGlkKS52YWx1ZSAhPT0gIiIpIHsKICAgICAgICAgIHZhciBtcGEgPSBzdHJlc3NUb01wYShudW0oaWQpKTsKICAgICAgICAgICQoaWQpLnZhbHVlID0gcm91bmQodG9Vbml0ID09PSAibWV0cmljIiA\/IG1wYSA6IG1wYSAvIDYuODk0NzU3LCB0b1VuaXQgPT09ICJtZXRyaWMiID8gMCA6IDEpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIGlmICgkKCJwcmVzc0NhcGFjaXR5IikudmFsdWUgIT09ICIiKSB7CiAgICAgICAgdmFyIGNhcGFjaXR5TiA9IHN0YXRlLnVuaXQgPT09ICJtZXRyaWMiID8gbnVtKCJwcmVzc0NhcGFjaXR5IikgKiAxMDAwIDogbnVtKCJwcmVzc0NhcGFjaXR5IikgLyAwLjIyNDgwOTsKICAgICAgICAkKCJwcmVzc0NhcGFjaXR5IikudmFsdWUgPSByb3VuZCh0b1VuaXQgPT09ICJtZXRyaWMiID8gY2FwYWNpdHlOIC8gMTAwMCA6IGNhcGFjaXR5TiAqIDAuMjI0ODA5LCB0b1VuaXQgPT09ICJtZXRyaWMiID8gMSA6IDApOwogICAgICB9CiAgICAgIHN0YXRlLnVuaXQgPSB0b1VuaXQ7CiAgICAgIHVwZGF0ZVVuaXRMYWJlbHMoKTsKICAgICAgJCgidW5pdE1ldHJpYyIpLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsIHRvVW5pdCA9PT0gIm1ldHJpYyIpOwogICAgICAkKCJ1bml0SW1wZXJpYWwiKS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCB0b1VuaXQgPT09ICJpbXBlcmlhbCIpOwogICAgICBjYWxjdWxhdGUoKTsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRQZXJpbWV0ZXJNbSgpIHsKICAgICAgdmFyIHR5cGUgPSAkKCJnZW9tZXRyeVR5cGUiKS52YWx1ZTsKICAgICAgdmFyIGNvdW50ID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChudW0oImZlYXR1cmVDb3VudCIsIDEpKSk7CiAgICAgIHZhciBzaW5nbGUgPSAwOwogICAgICBpZiAodHlwZSA9PT0gInJvdW5kIikgc2luZ2xlID0gTWF0aC5QSSAqIGxlbmd0aFRvTW0obnVtKCJkaWFtZXRlciIpKTsKICAgICAgaWYgKHR5cGUgPT09ICJyZWN0YW5nbGUiKSBzaW5nbGUgPSAyICogKGxlbmd0aFRvTW0obnVtKCJ3aWR0aCIpKSArIGxlbmd0aFRvTW0obnVtKCJoZWlnaHQiKSkpOwogICAgICBpZiAodHlwZSA9PT0gImN1c3RvbSIpIHNpbmdsZSA9IGxlbmd0aFRvTW0obnVtKCJjdXN0b21QZXJpbWV0ZXIiKSk7CiAgICAgIHJldHVybiB7IHNpbmdsZSwgdG90YWw6IHNpbmdsZSAqIGNvdW50LCB0eXBlLCBjb3VudCB9OwogICAgfQoKICAgIGZ1bmN0aW9uIGdldFByZXNzQ2FwYWNpdHlOKCkgewogICAgICB2YXIgdmFsdWUgPSBudW0oInByZXNzQ2FwYWNpdHkiLCAwKTsKICAgICAgcmV0dXJuIHN0YXRlLnVuaXQgPT09ICJtZXRyaWMiID8gdmFsdWUgKiAxMDAwIDogdmFsdWUgLyAwLjIyNDgwOTsKICAgIH0KCiAgICBmdW5jdGlvbiBjbGFzc2lmeVNjb3JlKHNjb3JlKSB7CiAgICAgIGlmIChzY29yZSA+PSA4MCkgcmV0dXJuIFsiRXhjZWxsZW50IiwgIm9rIl07CiAgICAgIGlmIChzY29yZSA+PSA2NSkgcmV0dXJuIFsiR29vZCIsICJvayJdOwogICAgICBpZiAoc2NvcmUgPj0gNTApIHJldHVybiBbIk1vZGVyYXRlIiwgIndhcm4iXTsKICAgICAgaWYgKHNjb3JlID49IDM1KSByZXR1cm4gWyJEaWZmaWN1bHQiLCAid2FybiJdOwogICAgICByZXR1cm4gWyJIaWdoIFJpc2siLCAiZGFuZ2VyIl07CiAgICB9CgogICAgZnVuY3Rpb24gY2xhc3NpZnlSaXNrKHNjb3JlKSB7CiAgICAgIGlmIChzY29yZSA8PSAzMCkgcmV0dXJuIFsiTG93IiwgIm9rIl07CiAgICAgIGlmIChzY29yZSA8PSA2MCkgcmV0dXJuIFsiTW9kZXJhdGUiLCAid2FybiJdOwogICAgICByZXR1cm4gWyJIaWdoIiwgImRhbmdlciJdOwogICAgfQoKICAgIGZ1bmN0aW9uIGNsYXNzaWZ5UHJlc3ModXRpbGl6YXRpb24pIHsKICAgICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodXRpbGl6YXRpb24pKSByZXR1cm4gWyJObyBjYXBhY2l0eSIsICJkYW5nZXIiXTsKICAgICAgaWYgKDQ1ID4gdXRpbGl6YXRpb24pIHJldHVybiBbIkxvdyB1dGlsaXphdGlvbiIsICJvayJdOwogICAgICBpZiAodXRpbGl6YXRpb24gPD0gNzUpIHJldHVybiBbIkFjY2VwdGFibGUgdXRpbGl6YXRpb24iLCAib2siXTsKICAgICAgaWYgKHV0aWxpemF0aW9uIDw9IDk1KSByZXR1cm4gWyJIaWdoIHV0aWxpemF0aW9uIiwgIndhcm4iXTsKICAgICAgcmV0dXJuIFsiSW5zdWZmaWNpZW50IHByZXNzIGNhcGFjaXR5IiwgImRhbmdlciJdOwogICAgfQoKICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZUZvck1hdGVyaWFsKG1hdGVyaWFsLCBiYXNlKSB7CiAgICAgIHZhciBzaGVhciA9IG1hdGVyaWFsLnV0cyAqIG1hdGVyaWFsLnNoZWFyQ29lZmZpY2llbnQ7CiAgICAgIHZhciBjbGVhcmFuY2UgPSBiYXNlLnRoaWNrbmVzc01tICogbWF0ZXJpYWwuY2xlYXJhbmNlUmF0aW8gLyAxMDA7CiAgICAgIHZhciBmb3JjZU4gPSBiYXNlLnBlcmltZXRlck1tICogYmFzZS50aGlja25lc3NNbSAqIHNoZWFyOwogICAgICB2YXIgY2xlYXJhbmNlRGV2aWF0aW9uID0gTWF0aC5hYnMoYmFzZS5hY3R1YWxDbGVhcmFuY2VNbSAtIGNsZWFyYW5jZSkgLyBNYXRoLm1heChjbGVhcmFuY2UsIDAuMDAwMSk7CiAgICAgIHZhciBzdHJlbmd0aFJpc2sgPSBjbGFtcCgobWF0ZXJpYWwudXRzIC0gMjUwKSAvIDksIDAsIDc1KTsKICAgICAgdmFyIGR1Y3RpbGl0eVJpc2sgPSAxMiA+IG1hdGVyaWFsLmVsb25nYXRpb24gPyAxOCA6IG1hdGVyaWFsLmVsb25nYXRpb24gPiAzNSA\/IDEwIDogNDsKICAgICAgdmFyIGJ1cnJSaXNrID0gY2xhbXAoY2xlYXJhbmNlRGV2aWF0aW9uICogNTUgKyBzdHJlbmd0aFJpc2sgKiAwLjIyICsgZHVjdGlsaXR5UmlzayArIGJhc2UudG9vbFdlYXJDb250cmlidXRpb24gKyBiYXNlLmFsaWdubWVudENvbnRyaWJ1dGlvbiwgMCwgMTAwKTsKICAgICAgdmFyIHdlYXJSaXNrID0gY2xhbXAoKG1hdGVyaWFsLmhhcmRuZXNzIC0gODApIC8gMi44ICsgKG1hdGVyaWFsLnV0cyAtIDMwMCkgLyAxNiArIGJhc2Uudm9sdW1lQ29udHJpYnV0aW9uICsgYmFzZS5sdWJlQ29udHJpYnV0aW9uICsgYmFzZS5jb2F0aW5nQ29udHJpYnV0aW9uLCAwLCAxMDApOwogICAgICB2YXIgbWF0ZXJpYWxTY29yZSA9IGNsYW1wKDEwMCAtICgobWF0ZXJpYWwudXRzIC0gMjAwKSAvIDEwICsgKG1hdGVyaWFsLmhhcmRuZXNzIC0gODApIC8gNCArIE1hdGgubWF4KDAsIDEyIC0gbWF0ZXJpYWwuZWxvbmdhdGlvbikgKiAyKSwgMCwgMTAwKTsKICAgICAgdmFyIGNsZWFyYW5jZVNjb3JlID0gY2xhbXAoMTAwIC0gY2xlYXJhbmNlRGV2aWF0aW9uICogOTAsIDAsIDEwMCk7CiAgICAgIHZhciB0b29saW5nU2NvcmUgPSBjbGFtcCgxMDAgLSBiYXNlLnRvb2xXZWFyQ29udHJpYnV0aW9uICogMiAtIGJhc2UubHViZUNvbnRyaWJ1dGlvbiAtIGJhc2UuYWxpZ25tZW50Q29udHJpYnV0aW9uICogMiAtIGJhc2UuY29hdGluZ0NvbnRyaWJ1dGlvbiwgMCwgMTAwKTsKICAgICAgdmFyIGZvcmNlQ2FwYWNpdHlTY29yZSA9IGNsYW1wKDEwMCAtIE1hdGgubWF4KDAsIGJhc2UuZGVzaWduRm9yY2VOIC8gTWF0aC5tYXgoYmFzZS5wcmVzc0NhcGFjaXR5TiwgMSkgKiAxMDAgLSA2MCkgKiAyLCAwLCAxMDApOwogICAgICB2YXIgZWRnZVNjb3JlID0gY2xhbXAoMTAwIC0gYnVyclJpc2sgKiAwLjgsIDAsIDEwMCk7CiAgICAgIHZhciBzY29yZSA9IGNsYW1wKG1hdGVyaWFsU2NvcmUgKiAwLjI0ICsgY2xlYXJhbmNlU2NvcmUgKiAwLjIyICsgdG9vbGluZ1Njb3JlICogMC4xOCArIGZvcmNlQ2FwYWNpdHlTY29yZSAqIDAuMTggKyBlZGdlU2NvcmUgKiAwLjE4LCAwLCAxMDApOwogICAgICByZXR1cm4geyBtYXRlcmlhbCwgc2hlYXIsIGNsZWFyYW5jZSwgZm9yY2VOLCBidXJyUmlzaywgd2VhclJpc2ssIHNjb3JlIH07CiAgICB9CgogICAgZnVuY3Rpb24gZHJhd0xpbmVDaGFydChjYW52YXMsIGxhYmVscywgdmFsdWVzLCBjb2xvciwgc3VmZml4KSB7CiAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgdmFyIHdpZHRoID0gY2FudmFzLndpZHRoOwogICAgICB2YXIgaGVpZ2h0ID0gY2FudmFzLmhlaWdodDsKICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgY3R4LmZpbGxTdHlsZSA9ICIjZmZmZmZmIjsKICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOwogICAgICB2YXIgcGFkID0geyBsZWZ0OiA0OCwgcmlnaHQ6IDE4LCB0b3A6IDE4LCBib3R0b206IDQwIH07CiAgICAgIHZhciBtYXggPSBNYXRoLm1heCguLi52YWx1ZXMsIDEpICogMS4xNTsKICAgICAgdmFyIG1pbiA9IDA7CiAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICIjZDllMmU4IjsKICAgICAgY3R4LmxpbmVXaWR0aCA9IDE7CiAgICAgIGN0eC5mb250ID0gIjEycHggQXJpYWwiOwogICAgICBjdHguZmlsbFN0eWxlID0gIiM1ZDZhNzMiOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8PSA0OyBpKyspIHsKICAgICAgICB2YXIgeSA9IHBhZC50b3AgKyAoaGVpZ2h0IC0gcGFkLnRvcCAtIHBhZC5ib3R0b20pICogKGkgLyA0KTsKICAgICAgICBjdHguYmVnaW5QYXRoKCk7CiAgICAgICAgY3R4Lm1vdmVUbyhwYWQubGVmdCwgeSk7CiAgICAgICAgY3R4LmxpbmVUbyh3aWR0aCAtIHBhZC5yaWdodCwgeSk7CiAgICAgICAgY3R4LnN0cm9rZSgpOwogICAgICAgIHZhciB0aWNrID0gbWF4IC0gKG1heCAtIG1pbikgKiAoaSAvIDQpOwogICAgICAgIGN0eC5maWxsVGV4dChyb3VuZCh0aWNrLCAwKSwgOCwgeSArIDQpOwogICAgICB9CiAgICAgIHZhciB4U3RlcCA9ICh3aWR0aCAtIHBhZC5sZWZ0IC0gcGFkLnJpZ2h0KSAvIE1hdGgubWF4KDEsIHZhbHVlcy5sZW5ndGggLSAxKTsKICAgICAgdmFyIHlGb3IgPSAodikgPT4gcGFkLnRvcCArIChoZWlnaHQgLSBwYWQudG9wIC0gcGFkLmJvdHRvbSkgKiAoMSAtICh2IC0gbWluKSAvIChtYXggLSBtaW4pKTsKICAgICAgY3R4LnN0cm9rZVN0eWxlID0gY29sb3I7CiAgICAgIGN0eC5saW5lV2lkdGggPSAzOwogICAgICBjdHguYmVnaW5QYXRoKCk7CiAgICAgIHZhbHVlcy5mb3JFYWNoKCh2LCBpKSA9PiB7CiAgICAgICAgdmFyIHggPSBwYWQubGVmdCArIGkgKiB4U3RlcDsKICAgICAgICB2YXIgeSA9IHlGb3Iodik7CiAgICAgICAgaWYgKGkgPT09IDApIGN0eC5tb3ZlVG8oeCwgeSk7CiAgICAgICAgZWxzZSBjdHgubGluZVRvKHgsIHkpOwogICAgICB9KTsKICAgICAgY3R4LnN0cm9rZSgpOwogICAgICB2YWx1ZXMuZm9yRWFjaCgodiwgaSkgPT4gewogICAgICAgIHZhciB4ID0gcGFkLmxlZnQgKyBpICogeFN0ZXA7CiAgICAgICAgdmFyIHkgPSB5Rm9yKHYpOwogICAgICAgIGN0eC5maWxsU3R5bGUgPSBjb2xvcjsKICAgICAgICBjdHguYmVnaW5QYXRoKCk7CiAgICAgICAgY3R4LmFyYyh4LCB5LCA0LCAwLCBNYXRoLlBJICogMik7CiAgICAgICAgY3R4LmZpbGwoKTsKICAgICAgICBjdHguZmlsbFN0eWxlID0gIiM1ZDZhNzMiOwogICAgICAgIGN0eC5maWxsVGV4dChsYWJlbHNbaV0sIHggLSAxMiwgaGVpZ2h0IC0gMTYpOwogICAgICB9KTsKICAgICAgY3R4LmZpbGxTdHlsZSA9ICIjMzE0MTRjIjsKICAgICAgY3R4LmZpbGxUZXh0KHN1ZmZpeCwgd2lkdGggLSAxMjAsIDE4KTsKICAgIH0KCiAgICBmdW5jdGlvbiBkcmF3R2F1Z2UoY2FudmFzLCB1dGlsaXphdGlvbikgewogICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CiAgICAgIHZhciB3aWR0aCA9IGNhbnZhcy53aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7CiAgICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7CiAgICAgIGN0eC5maWxsU3R5bGUgPSAiI2ZmZiI7CiAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgdmFyIGN4ID0gd2lkdGggLyAyOwogICAgICB2YXIgY3kgPSBoZWlnaHQgLSAyNDsKICAgICAgdmFyIHJhZGl1cyA9IE1hdGgubWluKHdpZHRoICogMC4zOCwgaGVpZ2h0ICogMC43Mik7CiAgICAgIGN0eC5saW5lV2lkdGggPSAyMjsKICAgICAgY3R4LnN0cm9rZVN0eWxlID0gIiNkYmVhZmUiOwogICAgICBjdHguYmVnaW5QYXRoKCk7CiAgICAgIGN0eC5hcmMoY3gsIGN5LCByYWRpdXMsIE1hdGguUEksIDApOwogICAgICBjdHguc3Ryb2tlKCk7CiAgICAgIHZhciBjYXBwZWQgPSBjbGFtcCh1dGlsaXphdGlvbiwgMCwgMTIwKTsKICAgICAgdmFyIGFuZ2xlID0gTWF0aC5QSSArIE1hdGguUEkgKiBjYXBwZWQgLyAxMjA7CiAgICAgIHZhciBncmFkID0gY3R4LmNyZWF0ZUxpbmVhckdyYWRpZW50KGN4IC0gcmFkaXVzLCAwLCBjeCArIHJhZGl1cywgMCk7CiAgICAgIGdyYWQuYWRkQ29sb3JTdG9wKDAsICIjNjBhNWZhIik7CiAgICAgIGdyYWQuYWRkQ29sb3JTdG9wKDAuNjUsICIjMjU2M2ViIik7CiAgICAgIGdyYWQuYWRkQ29sb3JTdG9wKDEsICIjMWQ0ZWQ4Iik7CiAgICAgIGN0eC5zdHJva2VTdHlsZSA9IGdyYWQ7CiAgICAgIGN0eC5iZWdpblBhdGgoKTsKICAgICAgY3R4LmFyYyhjeCwgY3ksIHJhZGl1cywgTWF0aC5QSSwgYW5nbGUpOwogICAgICBjdHguc3Ryb2tlKCk7CiAgICAgIGN0eC5saW5lV2lkdGggPSAzOwogICAgICBjdHguc3Ryb2tlU3R5bGUgPSAiIzE3MjAyNiI7CiAgICAgIGN0eC5iZWdpblBhdGgoKTsKICAgICAgY3R4Lm1vdmVUbyhjeCwgY3kpOwogICAgICBjdHgubGluZVRvKGN4ICsgTWF0aC5jb3MoYW5nbGUpICogKHJhZGl1cyAtIDQpLCBjeSArIE1hdGguc2luKGFuZ2xlKSAqIChyYWRpdXMgLSA0KSk7CiAgICAgIGN0eC5zdHJva2UoKTsKICAgICAgY3R4LmZpbGxTdHlsZSA9ICIjMTcyMDI2IjsKICAgICAgY3R4LmZvbnQgPSAiNzAwIDMycHggQXJpYWwiOwogICAgICBjdHgudGV4dEFsaWduID0gImNlbnRlciI7CiAgICAgIGN0eC5maWxsVGV4dCgiIiArIChyb3VuZCh1dGlsaXphdGlvbiwgMCkpICsgIiUiLCBjeCwgY3kgLSAzNCk7CiAgICAgIGN0eC5mb250ID0gIjEycHggQXJpYWwiOwogICAgICBjdHguZmlsbFN0eWxlID0gIiM1ZDZhNzMiOwogICAgICBjdHguZmlsbFRleHQoIlByZXNzIHV0aWxpemF0aW9uIiwgY3gsIGN5IC0gOCk7CiAgICAgIGN0eC50ZXh0QWxpZ24gPSAibGVmdCI7CiAgICB9CgogICAgZnVuY3Rpb24gY2FsY3VsYXRlKCkgewogICAgICB2YXIgbWF0ZXJpYWwgPSB7IC4uLm1hdGVyaWFsc1skKCJtYXRlcmlhbFR5cGUiKS52YWx1ZV0gfTsKICAgICAgbWF0ZXJpYWwuZ3JhZGUgPSAkKCJtYXRlcmlhbEdyYWRlIikudmFsdWU7CiAgICAgIG1hdGVyaWFsLnV0cyA9IHN0cmVzc1RvTXBhKG51bSgidXRzIikpOwogICAgICBtYXRlcmlhbC5zaGVhckNvZWZmaWNpZW50ID0gbnVtKCJzaGVhckNvZWZmaWNpZW50IiwgbWF0ZXJpYWwuc2hlYXJDb2VmZmljaWVudCk7CiAgICAgIG1hdGVyaWFsLnlpZWxkU3RyZW5ndGggPSBzdHJlc3NUb01wYShudW0oInlpZWxkU3RyZW5ndGgiKSk7CiAgICAgIG1hdGVyaWFsLmVsb25nYXRpb24gPSBudW0oImVsb25nYXRpb24iLCBtYXRlcmlhbC5lbG9uZ2F0aW9uKTsKICAgICAgbWF0ZXJpYWwuaGFyZG5lc3MgPSBudW0oImhhcmRuZXNzIiwgbWF0ZXJpYWwuaGFyZG5lc3MpOwogICAgICBtYXRlcmlhbC5jbGVhcmFuY2VSYXRpbyA9IG51bSgiY2xlYXJhbmNlUmF0aW8iLCBtYXRlcmlhbC5jbGVhcmFuY2VSYXRpbyk7CgogICAgICB2YXIgdGhpY2tuZXNzTW0gPSBsZW5ndGhUb01tKG51bSgidGhpY2tuZXNzIikpOwogICAgICB2YXIgYWN0dWFsQ2xlYXJhbmNlTW0gPSBsZW5ndGhUb01tKG51bSgiYWN0dWFsQ2xlYXJhbmNlIikpOwogICAgICB2YXIgcGVyaW1ldGVyID0gZ2V0UGVyaW1ldGVyTW0oKTsKICAgICAgdmFyIGRpcmVjdFNoZWFyID0gJCgic2hlYXJTdHJlbmd0aCIpLnZhbHVlICE9PSAiIiA\/IHN0cmVzc1RvTXBhKG51bSgic2hlYXJTdHJlbmd0aCIpKSA6IDA7CiAgICAgIHZhciBzaGVhck1wYSA9IGRpcmVjdFNoZWFyID4gMCA\/IGRpcmVjdFNoZWFyIDogbWF0ZXJpYWwudXRzICogbWF0ZXJpYWwuc2hlYXJDb2VmZmljaWVudDsKICAgICAgdmFyIHRvb2xDb25kaXRpb25NYXAgPSB7IHNoYXJwOiAwLCBub3JtYWw6IDgsIHdvcm46IDIyLCBzZXZlcmU6IDQwIH07CiAgICAgIHZhciBlZGdlV2VhciA9ICh0b29sQ29uZGl0aW9uTWFwWyQoInB1bmNoQ29uZGl0aW9uIikudmFsdWVdICsgdG9vbENvbmRpdGlvbk1hcFskKCJkaWVDb25kaXRpb24iKS52YWx1ZV0pIC8gMjsKICAgICAgdmFyIGx1YmVNYXAgPSB7IGdvb2Q6IC04LCBub3JtYWw6IDAsIGRyeTogMTYsIHVua25vd246IDggfTsKICAgICAgdmFyIGFsaWdubWVudE1hcCA9IHsgZXhjZWxsZW50OiAwLCBub3JtYWw6IDcsIHBvb3I6IDIyIH07CiAgICAgIHZhciBjb2F0aW5nTWFwID0geyBub25lOiA4LCB0aW46IDAsIHRpY246IC01LCBkbGM6IC04IH07CiAgICAgIHZhciB0b29sTWF0ZXJpYWxNYXAgPSB7IHN0YW5kYXJkOiA4LCBwcmVtaXVtOiAwLCBjYXJiaWRlOiAtOCB9OwogICAgICB2YXIgdm9sdW1lQ29udHJpYnV0aW9uID0gY2xhbXAobnVtKCJwcm9kdWN0aW9uUXVhbnRpdHkiKSAvIDE1MDAwLCAwLCAxNik7CiAgICAgIHZhciBsdWJlQ29udHJpYnV0aW9uID0gbHViZU1hcFskKCJsdWJyaWNhdGlvbiIpLnZhbHVlXSB8fCAwOwogICAgICB2YXIgYWxpZ25tZW50Q29udHJpYnV0aW9uID0gYWxpZ25tZW50TWFwWyQoImFsaWdubWVudCIpLnZhbHVlXSB8fCAwOwogICAgICB2YXIgY29hdGluZ0NvbnRyaWJ1dGlvbiA9IChjb2F0aW5nTWFwWyQoInRvb2xDb2F0aW5nIikudmFsdWVdIHx8IDApICsgKHRvb2xNYXRlcmlhbE1hcFskKCJ0b29sTWF0ZXJpYWwiKS52YWx1ZV0gfHwgMCk7CiAgICAgIHZhciByZWNvbW1lbmRlZENsZWFyYW5jZU1tID0gdGhpY2tuZXNzTW0gKiBtYXRlcmlhbC5jbGVhcmFuY2VSYXRpbyAvIDEwMDsKICAgICAgdmFyIGZvcmNlQmFzZU4gPSBwZXJpbWV0ZXIudG90YWwgKiB0aGlja25lc3NNbSAqIHNoZWFyTXBhOwogICAgICB2YXIgdG9vbEZhY3RvciA9IG51bSgidG9vbEZhY3RvciIsIDEpOwogICAgICB2YXIgcHJvY2Vzc0ZhY3RvciA9IG51bSgicHJvY2Vzc0ZhY3RvciIsIDEpOwogICAgICB2YXIgc3RhZ2dlckZhY3RvciA9IG51bSgic3RhZ2dlckZhY3RvciIsIDEpOwogICAgICB2YXIgZGVzaWduRm9yY2VOID0gZm9yY2VCYXNlTiAqIHRvb2xGYWN0b3IgKiBwcm9jZXNzRmFjdG9yICogc3RhZ2dlckZhY3RvcjsKICAgICAgdmFyIHByZXNzQ2FwYWNpdHlOID0gZ2V0UHJlc3NDYXBhY2l0eU4oKTsKICAgICAgdmFyIHV0aWxpemF0aW9uID0gcHJlc3NDYXBhY2l0eU4gPiAwID8gZGVzaWduRm9yY2VOIC8gcHJlc3NDYXBhY2l0eU4gKiAxMDAgOiBOYU47CiAgICAgIHZhciBzdHJpcEZvcmNlTiA9IGZvcmNlQmFzZU4gKiBudW0oInN0cmlwQ29lZmZpY2llbnQiLCAwLjEpOwogICAgICB2YXIgZW5lcmd5SiA9IG51bSgiZW5lcmd5Rm9yY2VDb2VmZmljaWVudCIsIDAuNTUpICogZGVzaWduRm9yY2VOICogKG51bSgicGVuZXRyYXRpb25Db2VmZmljaWVudCIsIDAuMzUpICogdGhpY2tuZXNzTW0gLyAxMDAwKTsKICAgICAgdmFyIGNsZWFyYW5jZVBlcmNlbnQgPSB0aGlja25lc3NNbSA+IDAgPyBhY3R1YWxDbGVhcmFuY2VNbSAvIHRoaWNrbmVzc01tICogMTAwIDogMDsKICAgICAgdmFyIGNsZWFyYW5jZVJhdGlvQWN0dWFsID0gYWN0dWFsQ2xlYXJhbmNlTW0gLyBNYXRoLm1heChyZWNvbW1lbmRlZENsZWFyYW5jZU1tLCAwLjAwMDEpOwogICAgICB2YXIgY2xlYXJhbmNlRGV2aWF0aW9uID0gTWF0aC5hYnMoMSAtIGNsZWFyYW5jZVJhdGlvQWN0dWFsKTsKICAgICAgdmFyIHN0cmVuZ3RoUmlzayA9IGNsYW1wKChtYXRlcmlhbC51dHMgLSAyNTApIC8gOSwgMCwgNzUpOwogICAgICB2YXIgZHVjdGlsaXR5UmlzayA9IDEyID4gbWF0ZXJpYWwuZWxvbmdhdGlvbiA\/IDE4IDogbWF0ZXJpYWwuZWxvbmdhdGlvbiA+IDM1ID8gMTAgOiA0OwogICAgICB2YXIgYnVyclJpc2sgPSBjbGFtcChjbGVhcmFuY2VEZXZpYXRpb24gKiA1NSArIGVkZ2VXZWFyICsgc3RyZW5ndGhSaXNrICogMC4yMiArIGR1Y3RpbGl0eVJpc2sgKyBhbGlnbm1lbnRDb250cmlidXRpb24sIDAsIDEwMCk7CiAgICAgIHZhciB3ZWFyUmlzayA9IGNsYW1wKChtYXRlcmlhbC5oYXJkbmVzcyAtIDgwKSAvIDIuOCArIChtYXRlcmlhbC51dHMgLSAzMDApIC8gMTYgKyBlZGdlV2VhciArIHZvbHVtZUNvbnRyaWJ1dGlvbiArIGx1YmVDb250cmlidXRpb24gKyBjb2F0aW5nQ29udHJpYnV0aW9uLCAwLCAxMDApOwogICAgICB2YXIgW2NsZWFyYW5jZVN0YXR1c10gPSAwLjg1ID4gY2xlYXJhbmNlUmF0aW9BY3R1YWwgPyBbIlRvbyBTbWFsbCJdIDogY2xlYXJhbmNlUmF0aW9BY3R1YWwgPiAxLjIgPyBbIlRvbyBMYXJnZSJdIDogWyJSZWNvbW1lbmRlZCJdOwogICAgICB2YXIgW3ByZXNzTGFiZWxdID0gY2xhc3NpZnlQcmVzcyh1dGlsaXphdGlvbik7CiAgICAgIHZhciBbYnVyckxhYmVsXSA9IGNsYXNzaWZ5UmlzayhidXJyUmlzayk7CiAgICAgIHZhciBbd2VhckxhYmVsXSA9IGNsYXNzaWZ5Umlzayh3ZWFyUmlzayk7CiAgICAgIHZhciBlZGdlUXVhbGl0eSA9IGJ1cnJSaXNrID4gNjAgfHwgY2xlYXJhbmNlRGV2aWF0aW9uID4gMC40NSA\/ICJQb29yIiA6IGJ1cnJSaXNrID4gMzUgfHwgY2xlYXJhbmNlRGV2aWF0aW9uID4gMC4yID8gIkFjY2VwdGFibGUiIDogIkdvb2QiOwogICAgICB2YXIgZWRnZURldGFpbCA9IGVkZ2VRdWFsaXR5ID09PSAiUG9vciIKICAgICAgICA\/ICJIaWdoIGJ1cnIsIHJvbGxvdmVyLCBvciBmcmFjdHVyZS16b25lIHJpc2siCiAgICAgICAgOiBlZGdlUXVhbGl0eSA9PT0gIkFjY2VwdGFibGUiCiAgICAgICAgICA\/ICJNb25pdG9yIGJ1cnIgZ3Jvd3RoIGFuZCBkaW1lbnNpb25hbCBkcmlmdCIKICAgICAgICAgIDogIkJhbGFuY2VkIGNsZWFyYW5jZSBhbmQgdG9vbCBjb25kaXRpb24iOwoKICAgICAgJCgib3V0U2hlYXIiKS50ZXh0Q29udGVudCA9IGRpc3BsYXlTdHJlc3Moc2hlYXJNcGEpOwogICAgICAkKCJvdXRTaGVhclN1YiIpLnRleHRDb250ZW50ID0gZGlyZWN0U2hlYXIgPiAwID8gIkRpcmVjdCBpbnB1dCIgOiAiIiArIChyb3VuZChtYXRlcmlhbC5zaGVhckNvZWZmaWNpZW50LCAyKSkgKyAiIHggVVRTIjsKICAgICAgJCgib3V0UGVyaW1ldGVyIikudGV4dENvbnRlbnQgPSBkaXNwbGF5TGVuZ3RoKHBlcmltZXRlci50b3RhbCwgMik7CiAgICAgICQoIm91dFBlcmltZXRlclN1YiIpLnRleHRDb250ZW50ID0gIiIgKyAocGVyaW1ldGVyLnR5cGUucmVwbGFjZSgvXlx3LywgKGMpID0+IGMudG9VcHBlckNhc2UoKSkpICsgIiB4ICIgKyAocGVyaW1ldGVyLmNvdW50KSArICIiOwogICAgICAkKCJvdXRGb3JjZSIpLnRleHRDb250ZW50ID0gZGlzcGxheUZvcmNlKGZvcmNlQmFzZU4pOwogICAgICAkKCJvdXREZXNpZ25Gb3JjZSIpLnRleHRDb250ZW50ID0gZGlzcGxheUZvcmNlKGRlc2lnbkZvcmNlTik7CiAgICAgICQoIm91dENsZWFyYW5jZSIpLnRleHRDb250ZW50ID0gZGlzcGxheUxlbmd0aChyZWNvbW1lbmRlZENsZWFyYW5jZU1tKTsKICAgICAgJCgib3V0Q2xlYXJhbmNlU3ViIikudGV4dENvbnRlbnQgPSAiVG90YWwgZGllIGNsZWFyYW5jZTogIiArIChkaXNwbGF5TGVuZ3RoKHJlY29tbWVuZGVkQ2xlYXJhbmNlTW0gKiAyKSkgKyAiIjsKICAgICAgJCgib3V0Q2xlYXJhbmNlU3RhdHVzIikudGV4dENvbnRlbnQgPSBjbGVhcmFuY2VTdGF0dXM7CiAgICAgICQoIm91dENsZWFyYW5jZVBjdCIpLnRleHRDb250ZW50ID0gIiIgKyAocm91bmQoY2xlYXJhbmNlUGVyY2VudCwgMSkpICsgIiUgb2YgdGhpY2tuZXNzIjsKICAgICAgJCgib3V0UHJlc3MiKS50ZXh0Q29udGVudCA9IE51bWJlci5pc0Zpbml0ZSh1dGlsaXphdGlvbikgPyAiIiArIChyb3VuZCh1dGlsaXphdGlvbiwgMCkpICsgIiUiIDogIk4vQSI7CiAgICAgICQoIm91dFByZXNzU3RhdHVzIikudGV4dENvbnRlbnQgPSBwcmVzc0xhYmVsOwogICAgICAkKCJvdXRTdHJpcCIpLnRleHRDb250ZW50ID0gZGlzcGxheUZvcmNlKHN0cmlwRm9yY2VOKTsKICAgICAgJCgib3V0RW5lcmd5IikudGV4dENvbnRlbnQgPSBkaXNwbGF5RW5lcmd5KGVuZXJneUopOwogICAgICAkKCJvdXRCdXJyIikudGV4dENvbnRlbnQgPSBidXJyTGFiZWw7CiAgICAgICQoIm91dEJ1cnJJbmRleCIpLnRleHRDb250ZW50ID0gIiIgKyAocm91bmQoYnVyclJpc2ssIDApKSArICIgLyAxMDAiOwogICAgICAkKCJvdXRXZWFyIikudGV4dENvbnRlbnQgPSB3ZWFyTGFiZWw7CiAgICAgICQoIm91dFdlYXJJbmRleCIpLnRleHRDb250ZW50ID0gIiIgKyAocm91bmQod2VhclJpc2ssIDApKSArICIgLyAxMDAiOwogICAgICAkKCJvdXRFZGdlIikudGV4dENvbnRlbnQgPSBlZGdlUXVhbGl0eTsKICAgICAgJCgib3V0RWRnZVN1YiIpLnRleHRDb250ZW50ID0gZWRnZURldGFpbDsKICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVHZW9tZXRyeVZpc2liaWxpdHkoKSB7CiAgICAgIHZhciB0eXBlID0gJCgiZ2VvbWV0cnlUeXBlIikudmFsdWU7CiAgICAgIHJvb3QucXVlcnlTZWxlY3RvckFsbCgiLmdlb20iKS5mb3JFYWNoKChlbCkgPT4geyBlbC5oaWRkZW4gPSB0cnVlOyB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuZ2VvbS0iICsgKHR5cGUpICsgIiIpLmZvckVhY2goKGVsKSA9PiB7IGVsLmhpZGRlbiA9IGZhbHNlOyB9KTsKICAgIH0KCiAgICBmaWVsZElkcy5mb3JFYWNoKChpZCkgPT4gewogICAgICB2YXIgZWwgPSAkKGlkKTsKICAgICAgaWYgKCFlbCkgcmV0dXJuOwogICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIGNhbGN1bGF0ZSk7CiAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGNhbGN1bGF0ZSk7CiAgICB9KTsKCiAgICAkKCJtYXRlcmlhbFR5cGUiKS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB1cGRhdGVNYXRlcmlhbEZpZWxkcyk7CiAgICAkKCJnZW9tZXRyeVR5cGUiKS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB1cGRhdGVHZW9tZXRyeVZpc2liaWxpdHkpOwogICAgdmFyIGNhbGN1bGF0b3JGb3JtID0gJCgiY2FsY3VsYXRvckZvcm0iKTsgaWYgKGNhbGN1bGF0b3JGb3JtKSBjYWxjdWxhdG9yRm9ybS5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLCAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpOwogICAgdmFyIGFzc2Vzc0J0biA9ICQoImFzc2Vzc0J0biIpOyBpZiAoYXNzZXNzQnRuKSBhc3Nlc3NCdG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBzaG93UmVzdWx0cyk7CiAgICAkKCJ1bml0TWV0cmljIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiBjb252ZXJ0Q3VycmVudElucHV0cygibWV0cmljIikpOwogICAgJCgidW5pdEltcGVyaWFsIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiBjb252ZXJ0Q3VycmVudElucHV0cygiaW1wZXJpYWwiKSk7CgogICAgdXBkYXRlVW5pdExhYmVscygpOwogICAgdXBkYXRlR2VvbWV0cnlWaXNpYmlsaXR5KCk7Cn0pKCk7<\/textarea>\n<script id=\"bpac-boot-script\" type=\"text\/javascript\" data-no-minify=\"1\" data-no-defer=\"1\" data-cfasync=\"false\">\n(function(){\nfunction boot(){\nif(window.bpacCalculate){return;}\nvar el=document.getElementById(\"bpac-js-b64\");\nif(!el){return;}\nvar code=el.value;\nif(!code){code=el.textContent;}\nif(!code){return;}\ncode=code.replace(\/\\s\/g,\"\");\nvar js=atob(code);\nvar s=document.createElement(\"script\");\ns.type=\"text\/javascript\";\ns.setAttribute(\"data-no-minify\",\"1\");\ns.setAttribute(\"data-cfasync\",\"false\");\ns.text=js;\nvar p=document.body;\nif(!p){p=document.getElementsByTagName(\"head\")[0];}\nif(p){p.appendChild(s);}\nwindow.bpacCalculate=function(){var btn=document.getElementById(\"assessBtn\");if(btn){btn.click();}};\n}\nwindow.bpacBoot=boot;\nif(document.readyState===\"loading\"){document.addEventListener(\"DOMContentLoaded\",boot);}\nelse{boot();}\n})();\n<\/script>\n  <\/div>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>The Blanking Processability Assessment Calculator is a practical engineering tool designed to evaluate how suitable a material and tooling setup are for sheet metal blanking&#8230;<\/p>","protected":false},"author":2,"featured_media":24853,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[8647],"tags":[8708,8707,8706,8705],"class_list":["post-24852","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-materials-science-and-properties","tag-blanking-process","tag-die-clearance","tag-punching-force","tag-tool-wear","pmpro-has-access"],"acf":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2026\/09\/Blanking-Processability-Assessment-Calculator.png","_links":{"self":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts\/24852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/comments?post=24852"}],"version-history":[{"count":7,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts\/24852\/revisions"}],"predecessor-version":[{"id":24860,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts\/24852\/revisions\/24860"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/media\/24853"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/media?parent=24852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/categories?post=24852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/tags?post=24852"}],"curies":[{"name":"WP","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}