{"id":25123,"date":"2026-11-13T05:56:40","date_gmt":"2026-11-13T05:56:40","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=25123"},"modified":"2026-11-13T06:05:40","modified_gmt":"2026-11-13T06:05:40","slug":"welding-consumable-consumption-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/ru\/welding-consumable-consumption-calculator\/","title":{"rendered":"Welding Consumable Consumption Calculator"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>Welding Consumable Consumption Calculator<\/strong> estimates the filler metal needed for a welding project based on weld dimensions, total weld length, deposition efficiency, and waste allowance. Use it to plan material requirements for fillet and butt welds and estimate how many packages may be needed. Actual consumption varies with joint design, welding process, fit-up, and operator technique.<\/p>\n\n\n\n<!-- Welding Consumable Consumption Calculator: self-contained embed. All CSS is scoped to #wcc-app; all IDs\/classes are prefixed \"wcc-\". -->\n<div id=\"wcc-app\">\n<style>\n\/* ===== Scoped styles: every rule starts with #wcc-app so nothing leaks into the host page ===== *\/\n#wcc-app {\n  --wcc-surface: #ffffff;\n  --wcc-ink: #17202b;\n  --wcc-muted: #4b5563;\n  --wcc-line: #d1d6dd;\n  --wcc-field: #9aa3ae;\n  --wcc-accent: #1d5fbf;       \/* blue, 6.1:1 on white *\/\n  --wcc-accent-dark: #164a96;\n  --wcc-accent-soft: #eaf2fc;\n  --wcc-badge: #1f2933;\n  --wcc-error: #b42318;\n  --wcc-error-soft: #fef3f2;\n  --wcc-warn: #7a4f00;\n  --wcc-warn-soft: #fff7e0;\n  --wcc-focus: #0f2f6b;\n  max-width: 880px;\n  margin: 0 auto;\n  font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  font-size: 16px;\n  line-height: 1.5;\n  color: var(--wcc-ink);\n  text-align: left;\n}\n#wcc-app, #wcc-app *, #wcc-app *::before, #wcc-app *::after { box-sizing: border-box; }\n#wcc-app p { margin: 0; }\n#wcc-app .wcc-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }\n#wcc-app .wcc-card { background: var(--wcc-surface); border: 1px solid var(--wcc-line); border-radius: 10px; padding: 20px; margin: 0; }\n#wcc-app fieldset { border: 0; margin: 0 0 22px; padding: 0; min-width: 0; background: none; }\n#wcc-app legend {\n  display: block; float: none; width: 100%; margin: 0 0 12px; padding: 0 0 8px;\n  font-size: 1.05rem; font-weight: 700; line-height: 1.4; color: var(--wcc-ink);\n  border: 0; border-bottom: 1px solid var(--wcc-line); text-transform: none; letter-spacing: normal;\n}\n#wcc-app .wcc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }\n#wcc-app .wcc-span-2 { grid-column: 1 \/ -1; }\n@media (max-width: 600px) { #wcc-app .wcc-grid { grid-template-columns: minmax(0, 1fr); } }\n#wcc-app label { display: block; margin: 0 0 4px; padding: 0; font-weight: 600; font-size: 0.95rem; line-height: 1.4; color: var(--wcc-ink); text-transform: none; letter-spacing: normal; }\n#wcc-app .wcc-opt { font-weight: 400; color: var(--wcc-muted); }\n#wcc-app .wcc-hint { margin-top: 4px; font-size: 0.85rem; color: var(--wcc-muted); }\n#wcc-app input[type=\"text\"], #wcc-app select {\n  display: block; width: 100%; height: auto; min-height: 42px; margin: 0; padding: 9px 10px;\n  font: inherit; font-size: 1rem; line-height: 1.4; color: var(--wcc-ink);\n  background: #fff; border: 1px solid var(--wcc-field); border-radius: 6px; box-shadow: none; max-width: none;\n}\n#wcc-app select { cursor: pointer; }\n#wcc-app input[type=\"text\"]:focus, #wcc-app select:focus { border-color: var(--wcc-accent); box-shadow: none; outline: none; }\n#wcc-app input:focus-visible, #wcc-app select:focus-visible, #wcc-app button:focus-visible,\n#wcc-app .wcc-seg input:focus-visible + span, #wcc-app [tabindex=\"-1\"]:focus-visible {\n  outline: 3px solid var(--wcc-focus); outline-offset: 2px;\n}\n#wcc-app input[aria-invalid=\"true\"] { border-color: var(--wcc-error); background: var(--wcc-error-soft); }\n#wcc-app .wcc-input-group { display: flex; }\n#wcc-app .wcc-input-group input[type=\"text\"] { flex: 1 1 auto; min-width: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }\n#wcc-app .wcc-input-group select {\n  flex: 0 0 auto; width: auto; border-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; background: #eef0f3;\n}\n#wcc-app .wcc-suffix {\n  flex: 0 0 auto; display: flex; align-items: center; justify-content: center; min-width: 52px; padding: 0 12px;\n  border: 1px solid var(--wcc-field); border-left: 0; border-radius: 0 6px 6px 0;\n  background: #eef0f3; color: var(--wcc-muted); font-size: 0.95rem;\n}\n#wcc-app .wcc-msg { margin-top: 4px; font-size: 0.87rem; }\n#wcc-app .wcc-msg:empty { display: none; }\n#wcc-app .wcc-msg.wcc-error { color: var(--wcc-error); font-weight: 600; }\n#wcc-app .wcc-msg.wcc-warn { color: var(--wcc-warn); }\n#wcc-app .wcc-msg.wcc-error::before { content: \"\\2716  \"; }\n#wcc-app .wcc-msg.wcc-warn::before { content: \"\\26A0  \"; }\n\/* Segmented control (calculation method) *\/\n#wcc-app .wcc-seg { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--wcc-field); border-radius: 8px; overflow: hidden; }\n#wcc-app .wcc-seg label { position: relative; margin: 0; cursor: pointer; }\n#wcc-app .wcc-seg input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }\n#wcc-app .wcc-seg span { display: block; height: 100%; padding: 10px 8px; text-align: center; font-weight: 600; font-size: 0.95rem; background: #fff; color: var(--wcc-ink); }\n#wcc-app .wcc-seg label + label span { border-left: 1px solid var(--wcc-field); }\n#wcc-app .wcc-seg input:checked + span { background: var(--wcc-accent); color: #fff; }\n\/* Buttons *\/\n#wcc-app button {\n  font: inherit; text-transform: none; letter-spacing: normal; text-shadow: none; box-shadow: none; margin: 0;\n}\n#wcc-app .wcc-inline-btn {\n  display: inline-block; margin-top: 6px; padding: 2px 0; border: 0; background: none;\n  font-size: 0.85rem; line-height: 1.4; color: var(--wcc-accent-dark); text-decoration: underline; cursor: pointer;\n}\n#wcc-app .wcc-actions { display: flex; justify-content: center; margin-top: 26px; }\n#wcc-app .wcc-btn-primary {\n  display: block; width: 100%; max-width: 360px; min-height: 48px; padding: 13px 24px;\n  font-size: 1.05rem; font-weight: 700; line-height: 1.2; color: #fff;\n  background: var(--wcc-accent); border: 2px solid var(--wcc-accent); border-radius: 6px; cursor: pointer;\n}\n#wcc-app .wcc-btn-primary:hover { background: var(--wcc-accent-dark); border-color: var(--wcc-accent-dark); color: #fff; }\n\/* Results *\/\n#wcc-app .wcc-results { scroll-margin-top: 90px; }\n#wcc-app .wcc-results h2 {\n  margin: 0 0 12px; padding: 0; font-family: inherit; font-size: 1.2rem; font-weight: 700; line-height: 1.3;\n  color: var(--wcc-ink); text-transform: none; letter-spacing: normal; border: 0;\n}\n#wcc-app .wcc-hero { margin-bottom: 16px; padding: 16px; background: var(--wcc-accent-soft); border: 1px solid #b9d3f3; border-radius: 8px; }\n#wcc-app .wcc-badge {\n  display: inline-block; margin-bottom: 6px; padding: 2px 8px; border-radius: 999px;\n  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; background: var(--wcc-badge); color: #fff;\n}\n#wcc-app .wcc-k { font-size: 0.9rem; font-weight: 600; color: var(--wcc-muted); }\n#wcc-app .wcc-big { margin-top: 2px; font-size: clamp(1.8rem, 4vw, 2.3rem); font-weight: 800; line-height: 1.15; color: var(--wcc-accent-dark); }\n#wcc-app .wcc-sub { margin-top: 2px; font-size: 1.15rem; font-weight: 700; }\n#wcc-app .wcc-pkg { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #9fc0ea; font-weight: 600; }\n#wcc-app table.wcc-summary { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: 0.93rem; background: none; }\n#wcc-app table.wcc-summary caption { padding: 4px 0 6px; text-align: left; font-weight: 700; color: var(--wcc-ink); caption-side: top; }\n#wcc-app table.wcc-summary th, #wcc-app table.wcc-summary td {\n  padding: 7px 4px; text-align: left; vertical-align: top; background: none; border: 0; border-bottom: 1px solid #e5e7eb; color: var(--wcc-ink);\n}\n#wcc-app table.wcc-summary th { width: 50%; font-weight: 600; color: var(--wcc-muted); }\n#wcc-app .wcc-alert { margin-bottom: 14px; padding: 12px 14px; border-radius: 8px; font-size: 0.92rem; background: var(--wcc-warn-soft); border: 1px solid #f1d58a; color: var(--wcc-warn); }\n#wcc-app .wcc-alert p { font-weight: 700; }\n#wcc-app .wcc-alert ul { margin: 6px 0 0; padding-left: 20px; list-style: disc; }\n#wcc-app .wcc-alert li { margin: 0; }\n#wcc-app .wcc-disclaimer { margin-top: 14px; font-size: 0.86rem; color: var(--wcc-muted); }\n#wcc-app .wcc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }\n#wcc-app [hidden] { display: none !important; }\n<\/style>\n<div class=\"wcc-layout\">\n<form id=\"wcc-form\" class=\"wcc-card\" novalidate aria-labelledby=\"wcc-title\">\n<h2 id=\"wcc-title\" class=\"wcc-sr-only\">Welding Consumable Consumption Calculator<\/h2>\n<fieldset>\n<legend>1. Calculation method<\/legend>\n<div class=\"wcc-seg\" role=\"radiogroup\" aria-label=\"Calculation method\">\n<label><input type=\"radio\" name=\"wcc-method\" value=\"dims\" checked><span>Estimate from weld dimensions<\/span><\/label>\n<label><input type=\"radio\" name=\"wcc-method\" value=\"weight\"><span>Estimate from weld metal weight<\/span><\/label>\n<\/div>\n<\/fieldset>\n<fieldset>\n<legend>2. Process &amp; consumable<\/legend>\n<div class=\"wcc-grid\">\n<div class=\"wcc-field\">\n<label for=\"wcc-process\">Welding process<\/label>\n<select id=\"wcc-process\">\n<option value=\"gmaw\">MIG\/MAG (GMAW)<\/option>\n<option value=\"smaw\">Stick (SMAW)<\/option>\n<option value=\"gtaw\">TIG (GTAW)<\/option>\n<option value=\"fcaw\">Flux-Cored (FCAW)<\/option>\n<option value=\"saw\">Submerged Arc (SAW)<\/option>\n<option value=\"custom\">Custom<\/option>\n<\/select>\n<\/div>\n<div class=\"wcc-field\">\n<label for=\"wcc-consumable\">Consumable type<\/label>\n<select id=\"wcc-consumable\" aria-describedby=\"wcc-consumable-msg\">\n<option value=\"solid\">Solid wire<\/option>\n<option value=\"flux\">Flux-cored wire<\/option>\n<option value=\"stick\">Stick electrode<\/option>\n<option value=\"rod\">Filler rod<\/option>\n<\/select>\n<p class=\"wcc-msg\" id=\"wcc-consumable-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field wcc-span-2\">\n<label for=\"wcc-efficiency\">Deposition efficiency<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-efficiency\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-efficiency-hint wcc-efficiency-msg\">\n<span class=\"wcc-suffix\" aria-hidden=\"true\">%<\/span>\n<\/div>\n<p class=\"wcc-hint\" id=\"wcc-efficiency-hint\"><\/p>\n<button type=\"button\" class=\"wcc-inline-btn\" id=\"wcc-restoreEff\">Restore process default<\/button>\n<p class=\"wcc-msg\" id=\"wcc-efficiency-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<\/div>\n<\/fieldset>\n<fieldset id=\"wcc-dimsSection\">\n<legend>3. Weld geometry<\/legend>\n<div class=\"wcc-grid\">\n<div class=\"wcc-field\">\n<label for=\"wcc-weldType\">Weld type<\/label>\n<select id=\"wcc-weldType\">\n<option value=\"fillet\">Fillet weld<\/option>\n<option value=\"butt\">Butt (groove) weld<\/option>\n<\/select>\n<\/div>\n<div class=\"wcc-field\">\n<label for=\"wcc-dimUnit\">Dimension unit<\/label>\n<select id=\"wcc-dimUnit\">\n<option value=\"mm\">Millimetres (mm)<\/option>\n<option value=\"in\">Inches (in)<\/option>\n<\/select>\n<\/div>\n<div class=\"wcc-field wcc-span-2\" id=\"wcc-filletGroup\">\n<label for=\"wcc-legSize\">Weld leg size<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-legSize\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-legSize-hint wcc-legSize-msg\">\n<span class=\"wcc-suffix wcc-dim-suffix\" aria-hidden=\"true\">mm<\/span>\n<\/div>\n<p class=\"wcc-hint\" id=\"wcc-legSize-hint\">Equal-leg fillet. Area = 0.5 &times; leg&sup2; (convexity not included).<\/p>\n<p class=\"wcc-msg\" id=\"wcc-legSize-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field wcc-span-2\" id=\"wcc-buttGroup\" hidden>\n<label for=\"wcc-grooveProfile\">Groove definition<\/label>\n<select id=\"wcc-grooveProfile\" aria-describedby=\"wcc-grooveProfile-hint\">\n<option value=\"singleV\">Single-V groove (enter joint preparation)<\/option>\n<option value=\"area\">Enter weld cross-sectional area directly<\/option>\n<\/select>\n<p class=\"wcc-hint\" id=\"wcc-grooveProfile-hint\">Groove volume depends on joint preparation, root gap, included angle, reinforcement and passes. Nothing is assumed: enter every dimension. For bevel, J, U or double-V preps, calculate the area separately and enter it directly.<\/p>\n<\/div>\n<div class=\"wcc-span-2\" id=\"wcc-singleVGroup\" hidden>\n<div class=\"wcc-grid\">\n<div class=\"wcc-field\">\n<label for=\"wcc-thickness\">Plate thickness<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-thickness\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-thickness-msg\">\n<span class=\"wcc-suffix wcc-dim-suffix\" aria-hidden=\"true\">mm<\/span>\n<\/div>\n<p class=\"wcc-msg\" id=\"wcc-thickness-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field\">\n<label for=\"wcc-grooveAngle\">Included groove angle<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-grooveAngle\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-grooveAngle-hint wcc-grooveAngle-msg\">\n<span class=\"wcc-suffix\" aria-hidden=\"true\">&deg;<\/span>\n<\/div>\n<p class=\"wcc-hint\" id=\"wcc-grooveAngle-hint\">Enter 0 for a square-edge butt.<\/p>\n<p class=\"wcc-msg\" id=\"wcc-grooveAngle-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field\">\n<label for=\"wcc-rootGap\">Root gap<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-rootGap\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-rootGap-msg\">\n<span class=\"wcc-suffix wcc-dim-suffix\" aria-hidden=\"true\">mm<\/span>\n<\/div>\n<p class=\"wcc-msg\" id=\"wcc-rootGap-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field\">\n<label for=\"wcc-rootFace\">Root face (land)<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-rootFace\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-rootFace-msg\">\n<span class=\"wcc-suffix wcc-dim-suffix\" aria-hidden=\"true\">mm<\/span>\n<\/div>\n<p class=\"wcc-msg\" id=\"wcc-rootFace-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field wcc-span-2\">\n<label for=\"wcc-reinforcement\">Cap reinforcement height<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-reinforcement\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-reinforcement-hint wcc-reinforcement-msg\">\n<span class=\"wcc-suffix wcc-dim-suffix\" aria-hidden=\"true\">mm<\/span>\n<\/div>\n<p class=\"wcc-hint\" id=\"wcc-reinforcement-hint\">Enter 0 for flush. Root-side penetration bead is not included.<\/p>\n<p class=\"wcc-msg\" id=\"wcc-reinforcement-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"wcc-field wcc-span-2\" id=\"wcc-areaGroup\" hidden>\n<label for=\"wcc-grooveArea\">Weld cross-sectional area<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-grooveArea\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-grooveArea-msg\">\n<span class=\"wcc-suffix\" id=\"wcc-areaSuffix\" aria-hidden=\"true\">mm&sup2;<\/span>\n<\/div>\n<p class=\"wcc-msg\" id=\"wcc-grooveArea-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field\">\n<label for=\"wcc-weldLength\">Weld length per joint<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-weldLength\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-weldLength-hint wcc-weldLength-msg\">\n<select id=\"wcc-lengthUnit\" aria-label=\"Weld length unit\">\n<option value=\"mm\">mm<\/option>\n<option value=\"m\" selected>m<\/option>\n<option value=\"in\">in<\/option>\n<option value=\"ft\">ft<\/option>\n<\/select>\n<\/div>\n<p class=\"wcc-hint\" id=\"wcc-weldLength-hint\">Total weld length = length &times; number of joints.<\/p>\n<p class=\"wcc-msg\" id=\"wcc-weldLength-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field\">\n<label for=\"wcc-joints\">Number of weld lines \/ joints<\/label>\n<input type=\"text\" id=\"wcc-joints\" inputmode=\"numeric\" autocomplete=\"off\" value=\"1\" aria-describedby=\"wcc-joints-msg\">\n<p class=\"wcc-msg\" id=\"wcc-joints-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field\">\n<label for=\"wcc-passes\">Number of passes <span class=\"wcc-opt\">(optional)<\/span><\/label>\n<input type=\"text\" id=\"wcc-passes\" inputmode=\"numeric\" autocomplete=\"off\" aria-describedby=\"wcc-passes-hint wcc-passes-msg\">\n<p class=\"wcc-hint\" id=\"wcc-passes-hint\">For reference. Deposited volume is set by the total cross-section, not the pass count.<\/p>\n<p class=\"wcc-msg\" id=\"wcc-passes-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field\">\n<label for=\"wcc-material\">Weld metal<\/label>\n<select id=\"wcc-material\">\n<option value=\"carbon\">Carbon \/ low-alloy steel<\/option>\n<option value=\"stainless\">Stainless steel (austenitic)<\/option>\n<option value=\"aluminum\">Aluminium alloy<\/option>\n<option value=\"custom\">Custom density<\/option>\n<\/select>\n<\/div>\n<div class=\"wcc-field wcc-span-2\">\n<label for=\"wcc-density\">Weld metal density<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-density\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-density-msg\">\n<span class=\"wcc-suffix\" aria-hidden=\"true\">g\/cm&sup3;<\/span>\n<\/div>\n<p class=\"wcc-msg\" id=\"wcc-density-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<\/div>\n<\/fieldset>\n<fieldset id=\"wcc-weightSection\" hidden>\n<legend>3. Weld metal weight<\/legend>\n<div class=\"wcc-field\">\n<label for=\"wcc-weldWeight\">Deposited weld metal weight<\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-weldWeight\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-weldWeight-hint wcc-weldWeight-msg\">\n<select id=\"wcc-weightUnit\" aria-label=\"Weld metal weight unit\">\n<option value=\"kg\">kg<\/option>\n<option value=\"lb\">lb<\/option>\n<\/select>\n<\/div>\n<p class=\"wcc-hint\" id=\"wcc-weldWeight-hint\">Use a weight from drawings, a WPS, a fabrication estimate or CAD software.<\/p>\n<p class=\"wcc-msg\" id=\"wcc-weldWeight-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<\/fieldset>\n<fieldset>\n<legend>4. Allowances &amp; packaging<\/legend>\n<div class=\"wcc-grid\">\n<div class=\"wcc-field\">\n<label for=\"wcc-waste\">Waste allowance <span class=\"wcc-opt\">(optional)<\/span><\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-waste\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-waste-hint wcc-waste-msg\">\n<span class=\"wcc-suffix\" aria-hidden=\"true\">%<\/span>\n<\/div>\n<p class=\"wcc-hint\" id=\"wcc-waste-hint\">Rework, purging, spool ends, damaged stock. Blank = 0%.<\/p>\n<p class=\"wcc-msg\" id=\"wcc-waste-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<div class=\"wcc-field\">\n<label for=\"wcc-packageSize\">Package size <span class=\"wcc-opt\">(optional)<\/span><\/label>\n<div class=\"wcc-input-group\">\n<input type=\"text\" id=\"wcc-packageSize\" inputmode=\"decimal\" autocomplete=\"off\" aria-describedby=\"wcc-packageSize-hint wcc-packageSize-msg\">\n<select id=\"wcc-packageUnit\" aria-label=\"Package size unit\">\n<option value=\"kg\">kg<\/option>\n<option value=\"lb\">lb<\/option>\n<\/select>\n<\/div>\n<p class=\"wcc-hint\" id=\"wcc-packageSize-hint\">Spool, box or drum weight.<\/p>\n<p class=\"wcc-msg\" id=\"wcc-packageSize-msg\" aria-live=\"polite\"><\/p>\n<\/div>\n<\/div>\n<\/fieldset>\n<div class=\"wcc-actions\">\n<button type=\"submit\" class=\"wcc-btn-primary\">Calculate<\/button>\n<\/div>\n<\/form>\n<section class=\"wcc-results wcc-card\" id=\"wcc-resultsPanel\" aria-labelledby=\"wcc-resultsTitle\" hidden>\n<h2 id=\"wcc-resultsTitle\" tabindex=\"-1\">Results<\/h2>\n<div id=\"wcc-results\" aria-live=\"polite\"><\/div>\n<p class=\"wcc-disclaimer\"><strong>Estimate only.<\/strong> For preliminary estimating and material planning. Actual consumption varies with joint geometry, fit-up, process, deposition efficiency, spatter, electrode stubs, starts and stops, rework, operator technique and material waste, and may differ from purchasing or shop records.<\/p>\n<\/section>\n<\/div>\n<script>\n\/* Calculator logic is base64-encoded so WordPress cannot rewrite characters inside it. Readable source: welding-consumable-calculator.html *\/\n(function () { var s = document.createElement(\"script\"); s.text = window.atob(\"KGZ1bmN0aW9uICgpIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2NjLWFwcCIpOwogIGlmICghcm9vdCB8fCByb290LmdldEF0dHJpYnV0ZSgiZGF0YS13Y2MtcmVhZHkiKSkgcmV0dXJuOyAgIC8vIGd1YXJkIGFnYWluc3QgZG91YmxlIGluaXQKICByb290LnNldEF0dHJpYnV0ZSgiZGF0YS13Y2MtcmVhZHkiLCAiMSIpOwogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgIEVESVRBQkxFIENPTkZJR1VSQVRJT04KICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICB2YXIgQ09ORklHID0gewogICAgLyogRGVwb3NpdGlvbiBlZmZpY2llbmN5IGRlZmF1bHRzICglKSA9IGRlcG9zaXRlZCB3ZWxkIG1ldGFsIC8gY29uc3VtYWJsZSB1c2VkLgogICAgICAgdHlwaWNhbDogcmFuZ2Ugb3V0c2lkZSB3aGljaCBhIHdhcm5pbmcgKG5vdCBhbiBlcnJvcikgaXMgc2hvd24uCiAgICAgICBjb25zdW1hYmxlczogdHlwZXMgbm9ybWFsbHkgdXNlZCB3aXRoIHRoZSBwcm9jZXNzIChtaXNtYXRjaCAtPiB3YXJuaW5nKS4gKi8KICAgIFBST0NFU1NFUzogewogICAgICBnbWF3OiAgIHsgbGFiZWw6ICJNSUcvTUFHIChHTUFXKSIsICAgICAgZWZmaWNpZW5jeTogOTUsIHR5cGljYWw6IFs5MCwgOThdLCAgY29uc3VtYWJsZXM6IFsic29saWQiLCAiZmx1eCJdLCBkZWZhdWx0Q29uc3VtYWJsZTogInNvbGlkIiB9LAogICAgICBzbWF3OiAgIHsgbGFiZWw6ICJTdGljayAoU01BVykiLCAgICAgICAgZWZmaWNpZW5jeTogNjAsIHR5cGljYWw6IFs1MCwgNzBdLCAgY29uc3VtYWJsZXM6IFsic3RpY2siXSwgICAgICAgICBkZWZhdWx0Q29uc3VtYWJsZTogInN0aWNrIiB9LAogICAgICBndGF3OiAgIHsgbGFiZWw6ICJUSUcgKEdUQVcpIiwgICAgICAgICAgZWZmaWNpZW5jeTogOTUsIHR5cGljYWw6IFs5MCwgMTAwXSwgY29uc3VtYWJsZXM6IFsicm9kIiwgInNvbGlkIl0sICBkZWZhdWx0Q29uc3VtYWJsZTogInJvZCIgICB9LAogICAgICBmY2F3OiAgIHsgbGFiZWw6ICJGbHV4LUNvcmVkIChGQ0FXKSIsICAgZWZmaWNpZW5jeTogODMsIHR5cGljYWw6IFs3NSwgOTBdLCAgY29uc3VtYWJsZXM6IFsiZmx1eCJdLCAgICAgICAgICBkZWZhdWx0Q29uc3VtYWJsZTogImZsdXgiICB9LAogICAgICBzYXc6ICAgIHsgbGFiZWw6ICJTdWJtZXJnZWQgQXJjIChTQVcpIiwgZWZmaWNpZW5jeTogOTgsIHR5cGljYWw6IFs5NSwgMTAwXSwgY29uc3VtYWJsZXM6IFsic29saWQiLCAiZmx1eCJdLCBkZWZhdWx0Q29uc3VtYWJsZTogInNvbGlkIiB9LAogICAgICBjdXN0b206IHsgbGFiZWw6ICJDdXN0b20iLCAgICAgICAgICAgICAgZWZmaWNpZW5jeTogbnVsbCwgdHlwaWNhbDogbnVsbCwgICAgIGNvbnN1bWFibGVzOiBudWxsLCAgICAgICAgICAgICAgZGVmYXVsdENvbnN1bWFibGU6IG51bGwgICAgfQogICAgfSwKICAgIENPTlNVTUFCTEVTOiB7IHNvbGlkOiAiU29saWQgd2lyZSIsIGZsdXg6ICJGbHV4LWNvcmVkIHdpcmUiLCBzdGljazogIlN0aWNrIGVsZWN0cm9kZSIsIHJvZDogIkZpbGxlciByb2QiIH0sCiAgICAvKiBXZWxkIG1ldGFsIGRlbnNpdGllcyBpbiBnL2NtMyAodHlwaWNhbCB2YWx1ZXMpLiAqLwogICAgTUFURVJJQUxTOiB7CiAgICAgIGNhcmJvbjogICAgeyBkZW5zaXR5OiA3Ljg1IH0sCiAgICAgIHN0YWlubGVzczogeyBkZW5zaXR5OiA3Ljk1IH0sCiAgICAgIGFsdW1pbnVtOiAgeyBkZW5zaXR5OiAyLjcwIH0sCiAgICAgIGN1c3RvbTogICAgeyBkZW5zaXR5OiBudWxsIH0KICAgIH0sCiAgICAvKiBXZWxkLWFyZWEgYXNzdW1wdGlvbnMgKi8KICAgIEZJTExFVF9BUkVBX0ZBQ1RPUjogMC41LCAgICAgICAgICAgIC8vIGVxdWFsLWxlZyBmaWxsZXQgdHJpYW5nbGU6IEEgPSAwLjUgeCBsZWdeMgogICAgUkVJTkZPUkNFTUVOVF9TSEFQRV9GQUNUT1I6IDIgLyAzLCAgLy8gY2FwIG1vZGVsbGVkIGFzIGEgcGFyYWJvbGljIHNlZ21lbnQ6IEEgPSAyLzMgeCB3aWR0aCB4IGhlaWdodAogICAgLyogUHJhY3RpY2FsIHJhbmdlcyAtPiB3YXJuaW5ncyBvbmx5OyBpbnB1dHMgYXJlIG5ldmVyIGNsYW1wZWQuCiAgICAgICBVbml0czogbGVuZ3RocyBpbiBtbSwgd2VpZ2h0cyBpbiBrZywgZGVuc2l0eSBnL2NtMywgcGVyY2VudGFnZXMgJS4gKi8KICAgIFJBTkdFUzogewogICAgICBsZWdTaXplOiBbMiwgMjVdLCB0aGlja25lc3M6IFsxLCAxMDBdLCBncm9vdmVBbmdsZTogWzMwLCA5MF0sIHJvb3RHYXA6IFswLCA2XSwgcm9vdEZhY2U6IFswLCA2XSwKICAgICAgcmVpbmZvcmNlbWVudDogWzAsIDVdLCBncm9vdmVBcmVhOiBbMSwgNTAwMF0sIHdlbGRMZW5ndGg6IFs1LCAxMDAwMDAwXSwgam9pbnRzOiBbMSwgMTAwMDBdLAogICAgICBwYXNzZXM6IFsxLCAxMDBdLCBkZW5zaXR5OiBbMiwgOS41XSwgd2FzdGU6IFswLCAzMF0sIHdlbGRXZWlnaHQ6IFswLjAxLCA1MDAwMF0sIHBhY2thZ2VTaXplOiBbMC41LCAxMDAwXQogICAgfQogIH07CiAgLyogVW5pdCBjb252ZXJzaW9ucwogICAgIExlbmd0aCB0byBtbTogMSBpbiA9IDI1LjQgbW0gKGV4YWN0KSwgMSBmdCA9IDMwNC44IG1tIChleGFjdCksIDEgbSA9IDEwMDAgbW0uCiAgICAgTWFzczogMSBsYiA9IDAuNDUzNTkyMzcga2cgKGV4YWN0KS4KICAgICBtbTMgeCAwLjAwMSA9IGNtMzsgY20zIHggZy9jbTMgPSBnOyBnIHggMC4wMDEgPSBrZyAgLT4gIGtnID0gbW0zIHggZGVuc2l0eSB4IDFlLTYgKi8KICB2YXIgRElNX1RPX01NID0geyBtbTogMSwgaW46IDI1LjQgfTsKICB2YXIgTEVOX1RPX01NID0geyBtbTogMSwgbTogMTAwMCwgaW46IDI1LjQsIGZ0OiAzMDQuOCB9OwogIHZhciBLR19QRVJfTEIgPSAwLjQ1MzU5MjM3OwogIHZhciBNTTNfR0NNM19UT19LRyA9IDFlLTY7CiAgdmFyIFBSRUZJWCA9ICJ3Y2MtIjsKICB2YXIgJCA9IGZ1bmN0aW9uIChpZCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoUFJFRklYICsgaWQpOyB9OwogIHZhciBmb3JtID0gJCgiZm9ybSIpOwogIHZhciByZXN1bHRzRWwgPSAkKCJyZXN1bHRzIik7CiAgdmFyIE5VTV9SRSA9IC9eWystXT8oXGQrKFwuXGQqKT98XC5cZCspKFtlRV1bKy1dP1xkKyk\/JC87CiAgZnVuY3Rpb24gZ2V0TWV0aG9kKCkgeyByZXR1cm4gZm9ybS5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJ3Y2MtbWV0aG9kIl06Y2hlY2tlZCcpLnZhbHVlOyB9CiAgZnVuY3Rpb24gZm10KG4sIGQpIHsKICAgIGlmIChkID09PSB1bmRlZmluZWQpIGQgPSAyOwogICAgcmV0dXJuIE51bWJlcihuKS50b0xvY2FsZVN0cmluZygiZW4tVVMiLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogZCwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBkIH0pOwogIH0KICBmdW5jdGlvbiBmbXRUcmltKG4sIG1heCkgewogICAgcmV0dXJuIE51bWJlcihuKS50b0xvY2FsZVN0cmluZygiZW4tVVMiLCB7IG1heGltdW1GcmFjdGlvbkRpZ2l0czogbWF4ID09PSB1bmRlZmluZWQgPyAzIDogbWF4IH0pOwogIH0KICBmdW5jdGlvbiBlc2MocykgewogICAgcmV0dXJuIFN0cmluZyhzKS5yZXBsYWNlKC9bJjw+IiddL2csIGZ1bmN0aW9uIChjKSB7CiAgICAgIHJldHVybiB7ICImIjogIiZhbXA7IiwgIjwiOiAiJmx0OyIsICI+IjogIiZndDsiLCAnIic6ICImcXVvdDsiLCAiJyI6ICImIzM5OyIgfVtjXTsKICAgIH0pOwogIH0KICAvKiAtLS0tLS0tLS0tIGlubGluZSBtZXNzYWdlcyAtLS0tLS0tLS0tICovCiAgZnVuY3Rpb24gc2V0TXNnKGlkLCB0ZXh0LCBraW5kKSB7CiAgICB2YXIgZWwgPSAkKGlkICsgIi1tc2ciKTsKICAgIGlmICghZWwpIHJldHVybjsKICAgIGVsLnRleHRDb250ZW50ID0gdGV4dCB8fCAiIjsKICAgIGVsLmNsYXNzTmFtZSA9ICJ3Y2MtbXNnIiArICh0ZXh0ID8gIiB3Y2MtIiArIGtpbmQgOiAiIik7CiAgICB2YXIgaW5wdXQgPSAkKGlkKTsKICAgIGlmIChpbnB1dCAmJiBpbnB1dC50YWdOYW1lID09PSAiSU5QVVQiKSB7CiAgICAgIGlmIChraW5kID09PSAiZXJyb3IiICYmIHRleHQpIGlucHV0LnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwgInRydWUiKTsKICAgICAgZWxzZSBpbnB1dC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIpOwogICAgfQogIH0KICBmdW5jdGlvbiBjbGVhckFsbE1zZ3MoKSB7CiAgICB2YXIgbXNncyA9IGZvcm0ucXVlcnlTZWxlY3RvckFsbCgiLndjYy1tc2ciKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXNncy5sZW5ndGg7IGkrKykgeyBtc2dzW2ldLnRleHRDb250ZW50ID0gIiI7IG1zZ3NbaV0uY2xhc3NOYW1lID0gIndjYy1tc2ciOyB9CiAgICB2YXIgaW52ID0gZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCJbYXJpYS1pbnZhbGlkXSIpOwogICAgZm9yICh2YXIgaiA9IDA7IGogPCBpbnYubGVuZ3RoOyBqKyspIGludltqXS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIpOwogIH0KICAvKiAtLS0tLS0tLS0tIGZpZWxkIHBhcnNpbmcgLS0tLS0tLS0tLQogICAgIG9wdHM6IHsgbGFiZWwsIHJlcXVpcmVkLCBhbGxvd1plcm8sIGludGVnZXIsIG1heCwgbWF4RXhjbHVzaXZlLCB1bml0IH0gKi8KICBmdW5jdGlvbiByZWFkTnVtYmVyKGlkLCBvcHRzKSB7CiAgICB2YXIgcmF3ID0gJChpZCkudmFsdWUudHJpbSgpLnJlcGxhY2UoLywvZywgIiIpOwogICAgaWYgKHJhdyA9PT0gIiIpIHsKICAgICAgaWYgKG9wdHMucmVxdWlyZWQpIHJldHVybiB7IGVycm9yOiBvcHRzLmxhYmVsICsgIiBpcyByZXF1aXJlZC4iIH07CiAgICAgIHJldHVybiB7IGVtcHR5OiB0cnVlLCB2YWx1ZTogbnVsbCB9OwogICAgfQogICAgaWYgKCFOVU1fUkUudGVzdChyYXcpKSByZXR1cm4geyBlcnJvcjogb3B0cy5sYWJlbCArICIgbXVzdCBiZSBhIG51bWJlci4iIH07CiAgICB2YXIgdiA9IHBhcnNlRmxvYXQocmF3KTsKICAgIGlmICghaXNGaW5pdGUodikpIHJldHVybiB7IGVycm9yOiBvcHRzLmxhYmVsICsgIiBtdXN0IGJlIGEgZmluaXRlIG51bWJlci4iIH07CiAgICBpZiAob3B0cy5hbGxvd1plcm8pIHsKICAgICAgaWYgKHYgPCAwKSByZXR1cm4geyBlcnJvcjogb3B0cy5sYWJlbCArICIgY2Fubm90IGJlIG5lZ2F0aXZlLiIgfTsKICAgIH0gZWxzZSBpZiAodiA8PSAwKSB7CiAgICAgIHJldHVybiB7IGVycm9yOiBvcHRzLmxhYmVsICsgKHYgPT09IDAgPyAiIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIiA6ICIgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlci4iKSB9OwogICAgfQogICAgaWYgKG9wdHMuaW50ZWdlciAmJiBNYXRoLmZsb29yKHYpICE9PSB2KSByZXR1cm4geyBlcnJvcjogb3B0cy5sYWJlbCArICIgbXVzdCBiZSBhIHdob2xlIG51bWJlci4iIH07CiAgICBpZiAob3B0cy5tYXggIT09IHVuZGVmaW5lZCkgewogICAgICBpZiAob3B0cy5tYXhFeGNsdXNpdmUgPyB2ID49IG9wdHMubWF4IDogdiA+IG9wdHMubWF4KQogICAgICAgIHJldHVybiB7IGVycm9yOiBvcHRzLmxhYmVsICsgIiBtdXN0IGJlICIgKyAob3B0cy5tYXhFeGNsdXNpdmUgPyAibGVzcyB0aGFuICIgOiAibm8gbW9yZSB0aGFuICIpICsgb3B0cy5tYXggKyAob3B0cy51bml0IHx8ICIiKSArICIuIiB9OwogICAgfQogICAgcmV0dXJuIHsgdmFsdWU6IHYgfTsKICB9CiAgZnVuY3Rpb24gcmFuZ2VXYXJuKGlkLCB2LCBsYWJlbCwgdW5pdCkgewogICAgdmFyIHIgPSBDT05GSUcuUkFOR0VTW2lkXTsKICAgIGlmICghcikgcmV0dXJuIG51bGw7CiAgICBpZiAodiA8IHJbMF0gfHwgdiA+IHJbMV0pIHsKICAgICAgcmV0dXJuIGxhYmVsICsgIiBpcyBvdXRzaWRlIHRoZSB1c3VhbCByYW5nZSAoIiArIGZtdFRyaW0oclswXSkgKyAiXHUyMDEzIiArIGZtdFRyaW0oclsxXSkgKyAodW5pdCA\/ICIgIiArIHVuaXQgOiAiIikgKyAiKS4gUGxlYXNlIGRvdWJsZS1jaGVjay4iOwogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfQogIC8qIC0tLS0tLS0tLS0gVUkgc3RhdGUgLS0tLS0tLS0tLSAqLwogIGZ1bmN0aW9uIHVwZGF0ZVZpc2liaWxpdHkoKSB7CiAgICB2YXIgbWV0aG9kID0gZ2V0TWV0aG9kKCk7CiAgICAkKCJkaW1zU2VjdGlvbiIpLmhpZGRlbiA9IG1ldGhvZCAhPT0gImRpbXMiOwogICAgJCgid2VpZ2h0U2VjdGlvbiIpLmhpZGRlbiA9IG1ldGhvZCAhPT0gIndlaWdodCI7CiAgICB2YXIgYnV0dCA9ICQoIndlbGRUeXBlIikudmFsdWUgPT09ICJidXR0IjsKICAgIHZhciBwcm9maWxlID0gJCgiZ3Jvb3ZlUHJvZmlsZSIpLnZhbHVlOwogICAgJCgiZmlsbGV0R3JvdXAiKS5oaWRkZW4gPSBidXR0OwogICAgJCgiYnV0dEdyb3VwIikuaGlkZGVuID0gIWJ1dHQ7CiAgICAkKCJzaW5nbGVWR3JvdXAiKS5oaWRkZW4gPSAhYnV0dCB8fCBwcm9maWxlICE9PSAic2luZ2xlViI7CiAgICAkKCJhcmVhR3JvdXAiKS5oaWRkZW4gPSAhYnV0dCB8fCBwcm9maWxlICE9PSAiYXJlYSI7CiAgfQogIGZ1bmN0aW9uIHVwZGF0ZURpbVVuaXRzKCkgewogICAgdmFyIHUgPSAkKCJkaW1Vbml0IikudmFsdWU7CiAgICB2YXIgc2Z4ID0gZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCIud2NjLWRpbS1zdWZmaXgiKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2Z4Lmxlbmd0aDsgaSsrKSBzZnhbaV0udGV4dENvbnRlbnQgPSB1OwogICAgJCgiYXJlYVN1ZmZpeCIpLnRleHRDb250ZW50ID0gdSArICJcdTAwYjIiOwogIH0KICBmdW5jdGlvbiB1cGRhdGVFZmZpY2llbmN5SGludCgpIHsKICAgIHZhciBwID0gQ09ORklHLlBST0NFU1NFU1skKCJwcm9jZXNzIikudmFsdWVdOwogICAgaWYgKHAuZWZmaWNpZW5jeSA9PT0gbnVsbCkgewogICAgICAkKCJlZmZpY2llbmN5LWhpbnQiKS50ZXh0Q29udGVudCA9ICJDdXN0b20gcHJvY2VzczogZW50ZXIgeW91ciBvd24gZWZmaWNpZW5jeSAoZ3JlYXRlciB0aGFuIDAlLCB1cCB0byAxMDAlKS4iOwogICAgICAkKCJyZXN0b3JlRWZmIikuaGlkZGVuID0gdHJ1ZTsKICAgIH0gZWxzZSB7CiAgICAgICQoImVmZmljaWVuY3ktaGludCIpLnRleHRDb250ZW50ID0gIlByb2Nlc3MgZGVmYXVsdDogIiArIHAuZWZmaWNpZW5jeSArICIlICh0eXBpY2FsICIgKyBwLnR5cGljYWxbMF0gKyAiXHUyMDEzIiArIHAudHlwaWNhbFsxXSArICIlKS4gRWRpdGFibGUuIjsKICAgICAgJCgicmVzdG9yZUVmZiIpLmhpZGRlbiA9IGZhbHNlOwogICAgfQogIH0KICBmdW5jdGlvbiBjaGVja0NvbnN1bWFibGVNYXRjaCgpIHsKICAgIHZhciBwID0gQ09ORklHLlBST0NFU1NFU1skKCJwcm9jZXNzIikudmFsdWVdOwogICAgdmFyIGMgPSAkKCJjb25zdW1hYmxlIikudmFsdWU7CiAgICBpZiAocC5jb25zdW1hYmxlcyAmJiBwLmNvbnN1bWFibGVzLmluZGV4T2YoYykgPT09IC0xKSB7CiAgICAgIHNldE1zZygiY29uc3VtYWJsZSIsIENPTkZJRy5DT05TVU1BQkxFU1tjXSArICIgaXMgbm90IG5vcm1hbGx5IHVzZWQgd2l0aCAiICsgcC5sYWJlbCArICIuIENoZWNrIHRoZSBzZWxlY3Rpb24gYW5kIGVmZmljaWVuY3kuIiwgIndhcm4iKTsKICAgICAgcmV0dXJuIENPTkZJRy5DT05TVU1BQkxFU1tjXSArICIgaXMgdW51c3VhbCBmb3IgIiArIHAubGFiZWwgKyAiLiI7CiAgICB9CiAgICBzZXRNc2coImNvbnN1bWFibGUiLCAiIiwgIiIpOwogICAgcmV0dXJuIG51bGw7CiAgfQogIGZ1bmN0aW9uIGFwcGx5UHJvY2Vzc0RlZmF1bHRzKCkgewogICAgdmFyIHAgPSBDT05GSUcuUFJPQ0VTU0VTWyQoInByb2Nlc3MiKS52YWx1ZV07CiAgICBpZiAocC5lZmZpY2llbmN5ICE9PSBudWxsKSAkKCJlZmZpY2llbmN5IikudmFsdWUgPSBTdHJpbmcocC5lZmZpY2llbmN5KTsKICAgIGlmIChwLmRlZmF1bHRDb25zdW1hYmxlKSAkKCJjb25zdW1hYmxlIikudmFsdWUgPSBwLmRlZmF1bHRDb25zdW1hYmxlOwogICAgdXBkYXRlRWZmaWNpZW5jeUhpbnQoKTsKICAgIGNoZWNrQ29uc3VtYWJsZU1hdGNoKCk7CiAgICBzZXRNc2coImVmZmljaWVuY3kiLCAiIiwgIiIpOwogIH0KICBmdW5jdGlvbiBhcHBseU1hdGVyaWFsRGVuc2l0eSgpIHsKICAgIHZhciBtID0gQ09ORklHLk1BVEVSSUFMU1skKCJtYXRlcmlhbCIpLnZhbHVlXTsKICAgIGlmIChtLmRlbnNpdHkgIT09IG51bGwpICQoImRlbnNpdHkiKS52YWx1ZSA9IG0uZGVuc2l0eS50b0ZpeGVkKDIpOwogIH0KICAvKiAtLS0tLS0tLS0tIGNvcmUgY2FsY3VsYXRpb24gLS0tLS0tLS0tLSAqLwogIGZ1bmN0aW9uIGNhbGN1bGF0ZSgpIHsKICAgIGNsZWFyQWxsTXNncygpOwogICAgdmFyIGVycm9ycyA9IFtdOwogICAgdmFyIHdhcm5pbmdzID0gW107CiAgICB2YXIgbWV0aG9kID0gZ2V0TWV0aG9kKCk7CiAgICBmdW5jdGlvbiB0YWtlKGlkLCBvcHRzKSB7CiAgICAgIHZhciByID0gcmVhZE51bWJlcihpZCwgb3B0cyk7CiAgICAgIGlmIChyLmVycm9yKSB7IGVycm9ycy5wdXNoKHsgaWQ6IGlkLCBtc2c6IHIuZXJyb3IgfSk7IHNldE1zZyhpZCwgci5lcnJvciwgImVycm9yIik7IH0KICAgICAgcmV0dXJuIHI7CiAgICB9CiAgICBmdW5jdGlvbiB3YXJuKGlkLCB0ZXh0KSB7CiAgICAgIGlmICghdGV4dCkgcmV0dXJuOwogICAgICB3YXJuaW5ncy5wdXNoKHRleHQpOwogICAgICBzZXRNc2coaWQsIHRleHQsICJ3YXJuIik7CiAgICB9CiAgICB2YXIgY29uc3VtYWJsZVdhcm4gPSBjaGVja0NvbnN1bWFibGVNYXRjaCgpOwogICAgaWYgKGNvbnN1bWFibGVXYXJuKSB3YXJuaW5ncy5wdXNoKGNvbnN1bWFibGVXYXJuKTsKICAgIC8vIEVmZmljaWVuY3k6IDAgPCBlIDw9IDEwMAogICAgdmFyIGVmZiA9IHRha2UoImVmZmljaWVuY3kiLCB7IGxhYmVsOiAiRGVwb3NpdGlvbiBlZmZpY2llbmN5IiwgcmVxdWlyZWQ6IHRydWUsIG1heDogMTAwLCB1bml0OiAiJSIgfSk7CiAgICB2YXIgcHJvYyA9IENPTkZJRy5QUk9DRVNTRVNbJCgicHJvY2VzcyIpLnZhbHVlXTsKICAgIGlmICghZWZmLmVycm9yICYmIHByb2MudHlwaWNhbCAmJiAoZWZmLnZhbHVlIDwgcHJvYy50eXBpY2FsWzBdIHx8IGVmZi52YWx1ZSA+IHByb2MudHlwaWNhbFsxXSkpIHsKICAgICAgd2FybigiZWZmaWNpZW5jeSIsICJFZmZpY2llbmN5IGlzIG91dHNpZGUgdGhlIHR5cGljYWwgIiArIHByb2MudHlwaWNhbFswXSArICJcdTIwMTMiICsgcHJvYy50eXBpY2FsWzFdICsgIiUgZm9yICIgKyBwcm9jLmxhYmVsICsgIi4iKTsKICAgIH0KICAgIHZhciB3YXN0ZSA9IHRha2UoIndhc3RlIiwgeyBsYWJlbDogIldhc3RlIGFsbG93YW5jZSIsIGFsbG93WmVybzogdHJ1ZSB9KTsKICAgIGlmICghd2FzdGUuZXJyb3IgJiYgIXdhc3RlLmVtcHR5KSB3YXJuKCJ3YXN0ZSIsIHJhbmdlV2Fybigid2FzdGUiLCB3YXN0ZS52YWx1ZSwgIldhc3RlIGFsbG93YW5jZSIsICIlIikpOwogICAgdmFyIHBrZyA9IHRha2UoInBhY2thZ2VTaXplIiwgeyBsYWJlbDogIlBhY2thZ2Ugc2l6ZSIgfSk7CiAgICB2YXIgcGtnS2cgPSBudWxsOwogICAgaWYgKCFwa2cuZXJyb3IgJiYgIXBrZy5lbXB0eSkgewogICAgICBwa2dLZyA9IHBrZy52YWx1ZSAqICgkKCJwYWNrYWdlVW5pdCIpLnZhbHVlID09PSAibGIiID8gS0dfUEVSX0xCIDogMSk7CiAgICAgIHdhcm4oInBhY2thZ2VTaXplIiwgcmFuZ2VXYXJuKCJwYWNrYWdlU2l6ZSIsIHBrZ0tnLCAiUGFja2FnZSBzaXplIiwgImtnIikpOwogICAgfQogICAgdmFyIGRlcG9zaXRlZEtnID0gbnVsbDsKICAgIHZhciBkZXRhaWxSb3dzID0gW107CiAgICBpZiAobWV0aG9kID09PSAid2VpZ2h0IikgewogICAgICB2YXIgdyA9IHRha2UoIndlbGRXZWlnaHQiLCB7IGxhYmVsOiAiV2VsZCBtZXRhbCB3ZWlnaHQiLCByZXF1aXJlZDogdHJ1ZSB9KTsKICAgICAgaWYgKCF3LmVycm9yKSB7CiAgICAgICAgZGVwb3NpdGVkS2cgPSB3LnZhbHVlICogKCQoIndlaWdodFVuaXQiKS52YWx1ZSA9PT0gImxiIiA\/IEtHX1BFUl9MQiA6IDEpOwogICAgICAgIHdhcm4oIndlbGRXZWlnaHQiLCByYW5nZVdhcm4oIndlbGRXZWlnaHQiLCBkZXBvc2l0ZWRLZywgIldlbGQgbWV0YWwgd2VpZ2h0IiwgImtnIikpOwogICAgICAgIGRldGFpbFJvd3MucHVzaChbIkVudGVyZWQgd2VsZCBtZXRhbCB3ZWlnaHQiLCBmbXRUcmltKHcudmFsdWUpICsgIiAiICsgJCgid2VpZ2h0VW5pdCIpLnZhbHVlXSk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIHZhciBkdSA9ICQoImRpbVVuaXQiKS52YWx1ZTsKICAgICAgdmFyIGsgPSBESU1fVE9fTU1bZHVdOyAgICAgICAgICAgICAgIC8vIHVzZXIgZGltZW5zaW9uIHVuaXQgLT4gbW0KICAgICAgdmFyIGFyZWFNbTIgPSBudWxsOwogICAgICBpZiAoJCgid2VsZFR5cGUiKS52YWx1ZSA9PT0gImZpbGxldCIpIHsKICAgICAgICB2YXIgbGVnID0gdGFrZSgibGVnU2l6ZSIsIHsgbGFiZWw6ICJXZWxkIGxlZyBzaXplIiwgcmVxdWlyZWQ6IHRydWUgfSk7CiAgICAgICAgaWYgKCFsZWcuZXJyb3IpIHsKICAgICAgICAgIHZhciBsZWdNbSA9IGxlZy52YWx1ZSAqIGs7CiAgICAgICAgICB3YXJuKCJsZWdTaXplIiwgcmFuZ2VXYXJuKCJsZWdTaXplIiwgbGVnTW0sICJMZWcgc2l6ZSIsICJtbSIpKTsKICAgICAgICAgIGFyZWFNbTIgPSBDT05GSUcuRklMTEVUX0FSRUFfRkFDVE9SICogbGVnTW0gKiBsZWdNbTsKICAgICAgICAgIGRldGFpbFJvd3MucHVzaChbIldlbGQgdHlwZSIsICJGaWxsZXQgd2VsZCJdKTsKICAgICAgICAgIGRldGFpbFJvd3MucHVzaChbIkxlZyBzaXplIiwgZm10VHJpbShsZWcudmFsdWUpICsgIiAiICsgZHUgKyAoZHUgPT09ICJpbiIgPyAiICgiICsgZm10VHJpbShsZWdNbSwgMikgKyAiIG1tKSIgOiAiIildKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoJCgiZ3Jvb3ZlUHJvZmlsZSIpLnZhbHVlID09PSAiYXJlYSIpIHsKICAgICAgICB2YXIgYSA9IHRha2UoImdyb292ZUFyZWEiLCB7IGxhYmVsOiAiQ3Jvc3Mtc2VjdGlvbmFsIGFyZWEiLCByZXF1aXJlZDogdHJ1ZSB9KTsKICAgICAgICBpZiAoIWEuZXJyb3IpIHsKICAgICAgICAgIGFyZWFNbTIgPSBhLnZhbHVlICogayAqIGs7ICAgICAgIC8vIGluMiAtPiBtbTI6IHggNjQ1LjE2CiAgICAgICAgICB3YXJuKCJncm9vdmVBcmVhIiwgcmFuZ2VXYXJuKCJncm9vdmVBcmVhIiwgYXJlYU1tMiwgIkNyb3NzLXNlY3Rpb25hbCBhcmVhIiwgIm1tXHUwMGIyIikpOwogICAgICAgICAgZGV0YWlsUm93cy5wdXNoKFsiV2VsZCB0eXBlIiwgIkJ1dHQgd2VsZCAoYXJlYSBlbnRlcmVkKSJdKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gU2luZ2xlLVYgZ3Jvb3ZlOiBldmVyeSBkaW1lbnNpb24gbXVzdCBiZSBlbnRlcmVkICh6ZXJvIGFsbG93ZWQgd2hlcmUgcGh5c2ljYWxseSB2YWxpZCkuCiAgICAgICAgdmFyIFQgPSB0YWtlKCJ0aGlja25lc3MiLCB7IGxhYmVsOiAiUGxhdGUgdGhpY2tuZXNzIiwgcmVxdWlyZWQ6IHRydWUgfSk7CiAgICAgICAgdmFyIGFuZyA9IHRha2UoImdyb292ZUFuZ2xlIiwgeyBsYWJlbDogIkluY2x1ZGVkIGFuZ2xlIiwgcmVxdWlyZWQ6IHRydWUsIGFsbG93WmVybzogdHJ1ZSwgbWF4OiAxODAsIG1heEV4Y2x1c2l2ZTogdHJ1ZSwgdW5pdDogIlx1MDBiMCIgfSk7CiAgICAgICAgdmFyIGcgPSB0YWtlKCJyb290R2FwIiwgeyBsYWJlbDogIlJvb3QgZ2FwIiwgcmVxdWlyZWQ6IHRydWUsIGFsbG93WmVybzogdHJ1ZSB9KTsKICAgICAgICB2YXIgZiA9IHRha2UoInJvb3RGYWNlIiwgeyBsYWJlbDogIlJvb3QgZmFjZSIsIHJlcXVpcmVkOiB0cnVlLCBhbGxvd1plcm86IHRydWUgfSk7CiAgICAgICAgdmFyIGggPSB0YWtlKCJyZWluZm9yY2VtZW50IiwgeyBsYWJlbDogIlJlaW5mb3JjZW1lbnQgaGVpZ2h0IiwgcmVxdWlyZWQ6IHRydWUsIGFsbG93WmVybzogdHJ1ZSB9KTsKICAgICAgICBpZiAoIVQuZXJyb3IgJiYgIWYuZXJyb3IgJiYgZi52YWx1ZSA+PSBULnZhbHVlKSB7CiAgICAgICAgICB2YXIgbTEgPSAiUm9vdCBmYWNlIG11c3QgYmUgc21hbGxlciB0aGFuIHRoZSBwbGF0ZSB0aGlja25lc3MuIjsKICAgICAgICAgIGVycm9ycy5wdXNoKHsgaWQ6ICJyb290RmFjZSIsIG1zZzogbTEgfSk7IHNldE1zZygicm9vdEZhY2UiLCBtMSwgImVycm9yIik7CiAgICAgICAgfQogICAgICAgIGlmICghVC5lcnJvciAmJiAhYW5nLmVycm9yICYmICFnLmVycm9yICYmICFmLmVycm9yICYmICFoLmVycm9yICYmIGYudmFsdWUgPCBULnZhbHVlKSB7CiAgICAgICAgICB2YXIgVG0gPSBULnZhbHVlICogaywgZ20gPSBnLnZhbHVlICogaywgZm0gPSBmLnZhbHVlICogaywgaG0gPSBoLnZhbHVlICogazsKICAgICAgICAgIHZhciBkZXB0aCA9IFRtIC0gZm07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJldmVsbGVkIGRlcHRoCiAgICAgICAgICB2YXIgdGFuSGFsZiA9IE1hdGgudGFuKChhbmcudmFsdWUgLyAyKSAqIE1hdGguUEkgLyAxODApOwogICAgICAgICAgdmFyIGNhcFcgPSBnbSArIDIgKiBkZXB0aCAqIHRhbkhhbGY7ICAgICAgICAgICAgICAgICAgICAgLy8gZ3Jvb3ZlIHdpZHRoIGF0IHRoZSBzdXJmYWNlCiAgICAgICAgICBhcmVhTW0yID0gVG0gKiBnbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb290LWdhcCByZWN0YW5nbGUKICAgICAgICAgICAgICAgICAgKyBkZXB0aCAqIGRlcHRoICogdGFuSGFsZiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHR3byBiZXZlbCB0cmlhbmdsZXMKICAgICAgICAgICAgICAgICAgKyBDT05GSUcuUkVJTkZPUkNFTUVOVF9TSEFQRV9GQUNUT1IgKiBjYXBXICogaG07IC8vIGNhcCByZWluZm9yY2VtZW50CiAgICAgICAgICB3YXJuKCJ0aGlja25lc3MiLCByYW5nZVdhcm4oInRoaWNrbmVzcyIsIFRtLCAiUGxhdGUgdGhpY2tuZXNzIiwgIm1tIikpOwogICAgICAgICAgaWYgKGFuZy52YWx1ZSAhPT0gMCkgd2FybigiZ3Jvb3ZlQW5nbGUiLCByYW5nZVdhcm4oImdyb292ZUFuZ2xlIiwgYW5nLnZhbHVlLCAiSW5jbHVkZWQgYW5nbGUiLCAiXHUwMGIwIikpOwogICAgICAgICAgd2Fybigicm9vdEdhcCIsIHJhbmdlV2Fybigicm9vdEdhcCIsIGdtLCAiUm9vdCBnYXAiLCAibW0iKSk7CiAgICAgICAgICB3YXJuKCJyb290RmFjZSIsIHJhbmdlV2Fybigicm9vdEZhY2UiLCBmbSwgIlJvb3QgZmFjZSIsICJtbSIpKTsKICAgICAgICAgIHdhcm4oInJlaW5mb3JjZW1lbnQiLCByYW5nZVdhcm4oInJlaW5mb3JjZW1lbnQiLCBobSwgIlJlaW5mb3JjZW1lbnQiLCAibW0iKSk7CiAgICAgICAgICBpZiAoYXJlYU1tMiA8PSAwKSB7CiAgICAgICAgICAgIHZhciBtMiA9ICJUaGVzZSBkaW1lbnNpb25zIGdpdmUgemVybyB3ZWxkIGFyZWEuIEVudGVyIGEgcm9vdCBnYXAsIGdyb292ZSBhbmdsZSBvciByZWluZm9yY2VtZW50IGdyZWF0ZXIgdGhhbiAwLiI7CiAgICAgICAgICAgIGVycm9ycy5wdXNoKHsgaWQ6ICJyb290R2FwIiwgbXNnOiBtMiB9KTsgc2V0TXNnKCJyb290R2FwIiwgbTIsICJlcnJvciIpOwogICAgICAgICAgICBhcmVhTW0yID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICAgIGRldGFpbFJvd3MucHVzaChbIldlbGQgdHlwZSIsICJCdXR0IHdlbGQsIHNpbmdsZS1WIGdyb292ZSJdKTsKICAgICAgICAgIGRldGFpbFJvd3MucHVzaChbIkpvaW50IHByZXBhcmF0aW9uIiwKICAgICAgICAgICAgIlQgIiArIGZtdFRyaW0oVC52YWx1ZSkgKyAiLCBnYXAgIiArIGZtdFRyaW0oZy52YWx1ZSkgKyAiLCBmYWNlICIgKyBmbXRUcmltKGYudmFsdWUpICsKICAgICAgICAgICAgIiwgcmVpbmYuICIgKyBmbXRUcmltKGgudmFsdWUpICsgIiAiICsgZHUgKyAiOyBhbmdsZSAiICsgZm10VHJpbShhbmcudmFsdWUpICsgIlx1MDBiMCJdKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdmFyIGxlbiA9IHRha2UoIndlbGRMZW5ndGgiLCB7IGxhYmVsOiAiV2VsZCBsZW5ndGgiLCByZXF1aXJlZDogdHJ1ZSB9KTsKICAgICAgdmFyIGpvaW50cyA9IHRha2UoImpvaW50cyIsIHsgbGFiZWw6ICJOdW1iZXIgb2Ygam9pbnRzIiwgcmVxdWlyZWQ6IHRydWUsIGludGVnZXI6IHRydWUgfSk7CiAgICAgIHZhciBwYXNzZXMgPSB0YWtlKCJwYXNzZXMiLCB7IGxhYmVsOiAiTnVtYmVyIG9mIHBhc3NlcyIsIGludGVnZXI6IHRydWUgfSk7CiAgICAgIHZhciBkZW5zID0gdGFrZSgiZGVuc2l0eSIsIHsgbGFiZWw6ICJEZW5zaXR5IiwgcmVxdWlyZWQ6IHRydWUgfSk7CiAgICAgIHZhciB0b3RhbExlbk1tID0gbnVsbDsKICAgICAgaWYgKCFsZW4uZXJyb3IpIHsKICAgICAgICB2YXIgbGVuTW0gPSBsZW4udmFsdWUgKiBMRU5fVE9fTU1bJCgibGVuZ3RoVW5pdCIpLnZhbHVlXTsKICAgICAgICB3YXJuKCJ3ZWxkTGVuZ3RoIiwgcmFuZ2VXYXJuKCJ3ZWxkTGVuZ3RoIiwgbGVuTW0sICJXZWxkIGxlbmd0aCBwZXIgam9pbnQiLCAibW0iKSk7CiAgICAgICAgaWYgKCFqb2ludHMuZXJyb3IpIHRvdGFsTGVuTW0gPSBsZW5NbSAqIGpvaW50cy52YWx1ZTsKICAgICAgfQogICAgICBpZiAoIWpvaW50cy5lcnJvcikgd2Fybigiam9pbnRzIiwgcmFuZ2VXYXJuKCJqb2ludHMiLCBqb2ludHMudmFsdWUsICJOdW1iZXIgb2Ygam9pbnRzIikpOwogICAgICBpZiAoIXBhc3Nlcy5lcnJvciAmJiAhcGFzc2VzLmVtcHR5KSB3YXJuKCJwYXNzZXMiLCByYW5nZVdhcm4oInBhc3NlcyIsIHBhc3Nlcy52YWx1ZSwgIk51bWJlciBvZiBwYXNzZXMiKSk7CiAgICAgIGlmICghZGVucy5lcnJvcikgd2FybigiZGVuc2l0eSIsIHJhbmdlV2FybigiZGVuc2l0eSIsIGRlbnMudmFsdWUsICJEZW5zaXR5IiwgImcvY21cdTAwYjMiKSk7CiAgICAgIGlmIChhcmVhTW0yICE9PSBudWxsICYmIHRvdGFsTGVuTW0gIT09IG51bGwgJiYgIWRlbnMuZXJyb3IgJiYgZXJyb3JzLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHZhciB2b2xNbTMgPSBhcmVhTW0yICogdG90YWxMZW5NbTsgICAgICAgICAgICAgICAgICAgICAgLy8gZGVwb3NpdGVkIHdlbGQgdm9sdW1lCiAgICAgICAgZGVwb3NpdGVkS2cgPSB2b2xNbTMgKiBkZW5zLnZhbHVlICogTU0zX0dDTTNfVE9fS0c7ICAgIC8vIGRlcG9zaXRlZCB3ZWxkIG1ldGFsIHdlaWdodAogICAgICAgIGRldGFpbFJvd3MucHVzaChbIkNyb3NzLXNlY3Rpb25hbCBhcmVhIiwgZm10KGFyZWFNbTIpICsgIiBtbVx1MDBiMiAoIiArIGZtdChhcmVhTW0yIC8gNjQ1LjE2LCA0KSArICIgaW5cdTAwYjIpIl0pOwogICAgICAgIGRldGFpbFJvd3MucHVzaChbIldlbGQgbGVuZ3RoIHBlciBqb2ludCIsIGZtdFRyaW0obGVuLnZhbHVlKSArICIgIiArICQoImxlbmd0aFVuaXQiKS52YWx1ZV0pOwogICAgICAgIGRldGFpbFJvd3MucHVzaChbIk51bWJlciBvZiBqb2ludHMiLCBmbXRUcmltKGpvaW50cy52YWx1ZSwgMCldKTsKICAgICAgICBkZXRhaWxSb3dzLnB1c2goWyJUb3RhbCB3ZWxkIGxlbmd0aCIsIGZtdCh0b3RhbExlbk1tIC8gMTAwMCkgKyAiIG0gKCIgKyBmbXQodG90YWxMZW5NbSAvIDMwNC44KSArICIgZnQpIl0pOwogICAgICAgIGlmICghcGFzc2VzLmVtcHR5KSBkZXRhaWxSb3dzLnB1c2goWyJOdW1iZXIgb2YgcGFzc2VzIiwgZm10VHJpbShwYXNzZXMudmFsdWUsIDApXSk7CiAgICAgICAgZGV0YWlsUm93cy5wdXNoKFsiV2VsZCBtZXRhbCBkZW5zaXR5IiwgZm10VHJpbShkZW5zLnZhbHVlKSArICIgZy9jbVx1MDBiMyJdKTsKICAgICAgICBkZXRhaWxSb3dzLnB1c2goWyJEZXBvc2l0ZWQgdm9sdW1lIiwgZm10KHZvbE1tMyAvIDEwMDApICsgIiBjbVx1MDBiMyJdKTsKICAgICAgfQogICAgfQogICAgaWYgKGVycm9ycy5sZW5ndGgpIHsgc2hvd0Vycm9ycyhlcnJvcnMpOyByZXR1cm47IH0KICAgIHZhciBlZmZQY3QgPSBlZmYudmFsdWU7CiAgICB2YXIgd2FzdGVQY3QgPSB3YXN0ZS5lbXB0eSA\/IDAgOiB3YXN0ZS52YWx1ZTsKICAgIC8vIFJlcXVpcmVkIGNvbnN1bWFibGVzID0gKGRlcG9zaXRlZCB3ZWlnaHQgLyBlZmZpY2llbmN5KSB4ICgxICsgd2FzdGUpCiAgICB2YXIgcmVxdWlyZWRLZyA9IChkZXBvc2l0ZWRLZyAvIChlZmZQY3QgLyAxMDApKSAqICgxICsgd2FzdGVQY3QgLyAxMDApOwogICAgdmFyIHBhY2thZ2VzID0gcGtnS2cgPyBNYXRoLmNlaWwocmVxdWlyZWRLZyAvIHBrZ0tnIC0gMWUtOSkgOiBudWxsOyAgLy8gcm91bmQgdXAgdG8gd2hvbGUgcGFja2FnZXMKICAgIHJlbmRlclJlc3VsdHMoewogICAgICBtZXRob2Q6IG1ldGhvZCwKICAgICAgcHJvY2Vzc0xhYmVsOiBwcm9jLmxhYmVsLAogICAgICBjb25zdW1hYmxlTGFiZWw6IENPTkZJRy5DT05TVU1BQkxFU1skKCJjb25zdW1hYmxlIikudmFsdWVdLAogICAgICBkZXBvc2l0ZWRLZzogZGVwb3NpdGVkS2csCiAgICAgIHJlcXVpcmVkS2c6IHJlcXVpcmVkS2csCiAgICAgIGVmZlBjdDogZWZmUGN0LAogICAgICB3YXN0ZVBjdDogd2FzdGVQY3QsCiAgICAgIHBrZzogcGtnS2cgPyB7IHNpemU6IHBrZy52YWx1ZSwgdW5pdDogJCgicGFja2FnZVVuaXQiKS52YWx1ZSwgY291bnQ6IHBhY2thZ2VzIH0gOiBudWxsLAogICAgICBkZXRhaWxSb3dzOiBkZXRhaWxSb3dzLAogICAgICB3YXJuaW5nczogd2FybmluZ3MKICAgIH0pOwogIH0KICAvKiAtLS0tLS0tLS0tIHJlbmRlcmluZyAtLS0tLS0tLS0tICovCiAgZnVuY3Rpb24gc2hvd0Vycm9ycyhlcnJvcnMpIHsKICAgIC8vIEludmFsaWQgaW5wdXQ6IGhpZGUgdGhlIHJlc3VsdHMgcGFuZWw7IGVycm9ycyBhcmUgc2hvd24gaW5saW5lIHVuZGVyIGVhY2ggZmllbGQuCiAgICAkKCJyZXN1bHRzUGFuZWwiKS5oaWRkZW4gPSB0cnVlOwogICAgcmVzdWx0c0VsLmlubmVySFRNTCA9ICIiOwogICAgdmFyIGZpcnN0ID0gJChlcnJvcnNbMF0uaWQpOwogICAgaWYgKGZpcnN0KSBmaXJzdC5mb2N1cygpOwogIH0KICBmdW5jdGlvbiByZW5kZXJSZXN1bHRzKHIpIHsKICAgIHZhciBodG1sID0gIiI7CiAgICBpZiAoci53YXJuaW5ncy5sZW5ndGgpIHsKICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0id2NjLWFsZXJ0Ij48cD5DaGVjayB0aGVzZSB2YWx1ZXM8L3A+PHVsPicgKwogICAgICAgIHIud2FybmluZ3MubWFwKGZ1bmN0aW9uICh3KSB7IHJldHVybiAiPGxpPiIgKyBlc2ModykgKyAiPC9saT4iOyB9KS5qb2luKCIiKSArICI8L3VsPjwvZGl2PiI7CiAgICB9CiAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJ3Y2MtaGVybyI+PHNwYW4gY2xhc3M9IndjYy1iYWRnZSI+RXN0aW1hdGU8L3NwYW4+JyArCiAgICAgICc8cCBjbGFzcz0id2NjLWsiPkVzdGltYXRlZCAnICsgZXNjKHIuY29uc3VtYWJsZUxhYmVsLnRvTG93ZXJDYXNlKCkpICsgIiByZXF1aXJlZDwvcD4iICsKICAgICAgJzxwIGNsYXNzPSJ3Y2MtYmlnIj4nICsgZm10KHIucmVxdWlyZWRLZykgKyAiIGtnPC9wPiIgKwogICAgICAnPHAgY2xhc3M9IndjYy1zdWIiPicgKyBmbXQoci5yZXF1aXJlZEtnIC8gS0dfUEVSX0xCKSArICIgbGI8L3A+IjsKICAgIGlmIChyLnBrZykgewogICAgICBodG1sICs9ICc8cCBjbGFzcz0id2NjLXBrZyI+XHUyMjQ4ICcgKyByLnBrZy5jb3VudCArICIgXHUwMGQ3ICIgKyBmbXRUcmltKHIucGtnLnNpemUpICsgIiAiICsgZXNjKHIucGtnLnVuaXQpICsKICAgICAgICAiIHBhY2thZ2UiICsgKHIucGtnLmNvdW50ID09PSAxID8gIiIgOiAicyIpICsgIiAocm91bmRlZCB1cCk8L3A+IjsKICAgIH0KICAgIGh0bWwgKz0gIjwvZGl2PiI7CiAgICB2YXIgcm93cyA9IFsKICAgICAgWyJNZXRob2QiLCByLm1ldGhvZCA9PT0gImRpbXMiID8gIkZyb20gd2VsZCBkaW1lbnNpb25zIiA6ICJGcm9tIHdlbGQgbWV0YWwgd2VpZ2h0Il0sCiAgICAgIFsiUHJvY2VzcyIsIHIucHJvY2Vzc0xhYmVsXSwKICAgICAgWyJDb25zdW1hYmxlIiwgci5jb25zdW1hYmxlTGFiZWxdCiAgICBdLmNvbmNhdChyLmRldGFpbFJvd3MpLmNvbmNhdChbCiAgICAgIFsiRGVwb3NpdGVkIHdlbGQgbWV0YWwiLCBmbXQoci5kZXBvc2l0ZWRLZykgKyAiIGtnICgiICsgZm10KHIuZGVwb3NpdGVkS2cgLyBLR19QRVJfTEIpICsgIiBsYikiXSwKICAgICAgWyJEZXBvc2l0aW9uIGVmZmljaWVuY3kiLCBmbXRUcmltKHIuZWZmUGN0KSArICIlIl0sCiAgICAgIFsiV2FzdGUgYWxsb3dhbmNlIiwgZm10VHJpbShyLndhc3RlUGN0KSArICIlIl0KICAgIF0pOwogICAgaWYgKHIucGtnKSByb3dzLnB1c2goWyJQYWNrYWdlIHNpemUiLCBmbXRUcmltKHIucGtnLnNpemUpICsgIiAiICsgci5wa2cudW5pdF0pOwogICAgaHRtbCArPSAnPHRhYmxlIGNsYXNzPSJ3Y2Mtc3VtbWFyeSI+PGNhcHRpb24+Q2FsY3VsYXRpb24gZGV0YWlsczwvY2FwdGlvbj48dGJvZHk+JyArCiAgICAgIHJvd3MubWFwKGZ1bmN0aW9uIChyb3cpIHsgcmV0dXJuICc8dHI+PHRoIHNjb3BlPSJyb3ciPicgKyBlc2Mocm93WzBdKSArICI8L3RoPjx0ZD4iICsgZXNjKHJvd1sxXSkgKyAiPC90ZD48L3RyPiI7IH0pLmpvaW4oIiIpICsKICAgICAgIjwvdGJvZHk+PC90YWJsZT4iOwogICAgcmVzdWx0c0VsLmlubmVySFRNTCA9IGh0bWw7CiAgICB2YXIgcGFuZWwgPSAkKCJyZXN1bHRzUGFuZWwiKTsKICAgIHBhbmVsLmhpZGRlbiA9IGZhbHNlOwogICAgdHJ5IHsgJCgicmVzdWx0c1RpdGxlIikuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pOyB9IGNhdGNoIChlKSB7IC8qIG9sZGVyIGJyb3dzZXJzICovIH0KICAgIHBhbmVsLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICJzbW9vdGgiLCBibG9jazogInN0YXJ0IiB9KTsKICB9CiAgLyogLS0tLS0tLS0tLSBldmVudHMgLS0tLS0tLS0tLSAqLwogIGZvcm0uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IiwgZnVuY3Rpb24gKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBjYWxjdWxhdGUoKTsgfSk7CiAgJCgicmVzdG9yZUVmZiIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgewogICAgdmFyIHAgPSBDT05GSUcuUFJPQ0VTU0VTWyQoInByb2Nlc3MiKS52YWx1ZV07CiAgICBpZiAocC5lZmZpY2llbmN5ICE9PSBudWxsKSB7ICQoImVmZmljaWVuY3kiKS52YWx1ZSA9IFN0cmluZyhwLmVmZmljaWVuY3kpOyBzZXRNc2coImVmZmljaWVuY3kiLCAiIiwgIiIpOyB9CiAgfSk7CiAgJCgicHJvY2VzcyIpLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGFwcGx5UHJvY2Vzc0RlZmF1bHRzKTsKICAkKCJjb25zdW1hYmxlIikuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgY2hlY2tDb25zdW1hYmxlTWF0Y2gpOwogICQoIm1hdGVyaWFsIikuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgYXBwbHlNYXRlcmlhbERlbnNpdHkpOwogICQoImRlbnNpdHkiKS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIGZ1bmN0aW9uICgpIHsKICAgIC8vIElmIHRoZSB1c2VyIG92ZXJyaWRlcyB0aGUgZGVuc2l0eSwgc3dpdGNoIHRoZSBtYXRlcmlhbCB0byAiQ3VzdG9tIGRlbnNpdHkiLgogICAgdmFyIG0gPSBDT05GSUcuTUFURVJJQUxTWyQoIm1hdGVyaWFsIikudmFsdWVdOwogICAgaWYgKG0uZGVuc2l0eSAhPT0gbnVsbCAmJiBwYXJzZUZsb2F0KHRoaXMudmFsdWUpICE9PSBtLmRlbnNpdHkpICQoIm1hdGVyaWFsIikudmFsdWUgPSAiY3VzdG9tIjsKICB9KTsKICAkKCJkaW1Vbml0IikuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdXBkYXRlRGltVW5pdHMpOwogICQoIndlbGRUeXBlIikuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdXBkYXRlVmlzaWJpbGl0eSk7CiAgJCgiZ3Jvb3ZlUHJvZmlsZSIpLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIHVwZGF0ZVZpc2liaWxpdHkpOwogIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPSJ3Y2MtbWV0aG9kIl0nKSwgZnVuY3Rpb24gKHIpIHsKICAgIHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgZnVuY3Rpb24gKCkgeyBjbGVhckFsbE1zZ3MoKTsgY2hlY2tDb25zdW1hYmxlTWF0Y2goKTsgdXBkYXRlVmlzaWJpbGl0eSgpOyB9KTsKICB9KTsKICAvLyBDbGVhciBhIGZpZWxkJ3MgZXJyb3IgYXMgc29vbiBhcyB0aGUgdXNlciBlZGl0cyBpdC4KICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgZnVuY3Rpb24gKGUpIHsKICAgIGlmIChlLnRhcmdldC5nZXRBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIpID09PSAidHJ1ZSIpIHNldE1zZyhlLnRhcmdldC5pZC5zbGljZShQUkVGSVgubGVuZ3RoKSwgIiIsICIiKTsKICB9KTsKICAvKiAtLS0tLS0tLS0tIGluaXQgLS0tLS0tLS0tLSAqLwogIGFwcGx5UHJvY2Vzc0RlZmF1bHRzKCk7CiAgYXBwbHlNYXRlcmlhbERlbnNpdHkoKTsKICB1cGRhdGVEaW1Vbml0cygpOwogIHVwZGF0ZVZpc2liaWxpdHkoKTsKfSkoKTsK\"); (document.body || document.documentElement).appendChild(s); })();\n<\/script>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The Welding Consumable Consumption Calculator estimates the filler metal needed for a welding project based on weld dimensions, total weld length, deposition efficiency, and waste&#8230;<\/p>","protected":false},"author":2,"featured_media":25126,"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_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[8808],"tags":[8866,8864,8865],"class_list":["post-25123","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-manufacturing-and-processes","tag-material-planning","tag-weld-metal","tag-welding-consumables","pmpro-has-access"],"acf":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2026\/11\/Welding-Consumable-Consumption-Calculator.png","_links":{"self":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts\/25123","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=25123"}],"version-history":[{"count":3,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts\/25123\/revisions"}],"predecessor-version":[{"id":25127,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts\/25123\/revisions\/25127"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/media\/25126"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/media?parent=25123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/categories?post=25123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/tags?post=25123"}],"curies":[{"name":"WP","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}