From 0ef822b5aa1ca61ddcf77310f38995e498fb51eb Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Fri, 10 Apr 2026 10:35:49 +0300 Subject: [PATCH 1/9] - circuits open in modal instead of inline - UI looks a bit better - moved styles to CSS (the other CSS) --- glue/crumble/crumble.css | 62 +++++++ glue/crumble/crumble.html | 361 ++++++++++++++++++-------------------- glue/crumble/main.js | 22 ++- 3 files changed, 247 insertions(+), 198 deletions(-) create mode 100644 glue/crumble/crumble.css diff --git a/glue/crumble/crumble.css b/glue/crumble/crumble.css new file mode 100644 index 000000000..8744d2c12 --- /dev/null +++ b/glue/crumble/crumble.css @@ -0,0 +1,62 @@ +body { + font-family: sans-serif; +} + +#main-container { + padding: 4px; +} + +table tr { + border: 1px solid black; +} +table td { + border: 1px solid black; + padding-left: 5px; + padding-right: 5px; +} +table th { + border: 1px solid black; + padding-left: 5px; + padding-right: 5px; +} + +button { + background: white; + border: 1px solid #e9e9e9; + border-radius: 4px; + margin: 2px 4px; + padding: 2px 8px; +} + +button:hover { + background: #e9e9e9; +} + +button:active { + background: #cccccc; +} + +#button-container { + display: flex; + flex-wrap: wrap; + align-items: flex-start; +} + +.btn-group { + display: flex; + flex-direction: column; +} + +#examples-dialog { +} + +#examples-div { +} + +#examples-close-button { + position: absolute; + top: 10px; + right: 10px; + cursor: pointer; + font-weight: 900; +} diff --git a/glue/crumble/crumble.html b/glue/crumble/crumble.html index 4dff02ecc..95c4988e2 100644 --- a/glue/crumble/crumble.html +++ b/glue/crumble/crumble.html @@ -3,24 +3,10 @@ Crumble + - - +
@@ -36,194 +22,34 @@
-
-
-
-
-
+
+
+ +
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
@@ -239,6 +65,157 @@
+ +
x
+
+ Example Circuits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeStyleTaskSizeLink
Bacon-Shor CodeInterleaved (XZXZ)Memory (H)5x5x3 + Open Circuit +
Color CodeSuperdenseMemory (Z)5x7x3 + Open Circuit +
Honeycomb CodeYXZ-YZXMemory (H)7x9x3 + Open Circuit +
Honeycomb CodeYXZ-YZXMemory (V)7x9x3 + Open Circuit +
Surface CodeStandard (ИZ)Memory (V)5x5x3 + Open Circuit +
Surface Code3-CouplerMemory (V)5x5x4 + Open Circuit +
Surface CodeBiased (XZZX)Memory (V)5x5x3 + Open Circuit +
Toric CodeStandard (ZZ)Memory (ZH+ZV)6x6x3 + Open Circuit +
Color CodeSuperdenseStability (X+Z)6x4x4 + Open Circuit +
Surface CodeStandard (ИZ)Stability (Z)4x4x5 + Open Circuit +
Surface CodeStandard (ИZ)Prepare (RY)5x5x4 + Open Circuit +
Surface CodeStandard (ИZ)Surgery (MZZ)7x3x5 + Open Circuit +
+
+
diff --git a/glue/crumble/main.js b/glue/crumble/main.js index 7888b9d32..ca76b47cc 100644 --- a/glue/crumble/main.js +++ b/glue/crumble/main.js @@ -31,7 +31,8 @@ const btnTimelineFocus = /** @type{!HTMLButtonElement} */ document.getElementByI const btnClearTimelineFocus = /** @type{!HTMLButtonElement} */ document.getElementById('btnClearTimelineFocus'); const btnClearSelectedMarkers = /** @type{!HTMLButtonElement} */ document.getElementById('btnClearSelectedMarkers'); const btnShowExamples = /** @type {!HTMLButtonElement} */ document.getElementById('btnShowExamples'); -const divExamples = /** @type{!HTMLDivElement} */ document.getElementById('examples-div'); +const dialogExamples = /** @type{!HTMLDialogElement} */ document.getElementById('examples-dialog'); +const btnDialogClose = /** @type{!HTMLDivElement} */ document.getElementById('examples-close-button'); // Prevent typing in the import/export text editor from causing changes in the main circuit editor. txtStimCircuit.addEventListener('keyup', ev => ev.stopPropagation()); @@ -83,12 +84,20 @@ btnClearSelectedMarkers.addEventListener('click', _ev => { }); btnShowExamples.addEventListener('click', _ev => { - if (divExamples.style.display === 'none') { - divExamples.style.display = 'block'; - btnShowExamples.textContent = "Hide Example Circuits"; + if (dialogExamples.open) { + dialogExamples.close(); } else { - divExamples.style.display = 'none'; - btnShowExamples.textContent = "Show Example Circuits"; + dialogExamples.showModal(); + } +}); + +btnDialogClose.addEventListener('click', _ev => { + dialogExamples.close(); +}); + +dialogExamples.addEventListener('click', ev => { + if (ev.target === dialogExamples) { + dialogExamples.close(); } }); @@ -522,6 +531,7 @@ for (let anchor of document.getElementById('examples-div').querySelectorAll('a') let circuitText = anchor.href.split('#circuit=')[1]; editorState.rev.commit(circuitText); + dialogExamples.close(); return false; }; } From 4f7eb62b13da2941a8a4f0c6ce767f767385e59a Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Fri, 10 Apr 2026 11:24:56 +0300 Subject: [PATCH 2/9] - Fixed canvas blur for Retina display (and probably more high resolution displays) --- glue/crumble/draw/main_draw.js | 8 ++++++-- glue/crumble/draw/timeline_viewer.js | 12 ++++++------ glue/crumble/main.js | 14 ++++++++------ 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/glue/crumble/draw/main_draw.js b/glue/crumble/draw/main_draw.js index 4636133e2..8cae855af 100644 --- a/glue/crumble/draw/main_draw.js +++ b/glue/crumble/draw/main_draw.js @@ -197,6 +197,9 @@ function defensiveDraw(ctx, body) { * @param {!StateSnapshot} snap */ function draw(ctx, snap) { + const devicePixelRatio = window.devicePixelRatio || 1; + ctx.save(); + ctx.scale(devicePixelRatio, devicePixelRatio); let circuit = snap.circuit; let numPropagatedLayers = 0; @@ -255,7 +258,7 @@ function draw(ctx, snap) { defensiveDraw(ctx, () => { ctx.fillStyle = 'white'; - ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); + ctx.clearRect(0, 0, ctx.canvas.clientWidth, ctx.canvas.clientHeight); let [focusX, focusY] = xyToPos(snap.curMouseX, snap.curMouseY); // Draw the background polygons. @@ -390,7 +393,7 @@ function draw(ctx, snap) { ctx.save(); try { ctx.strokeStyle = 'black'; - ctx.translate(Math.floor(ctx.canvas.width / 2), 0); + ctx.translate(Math.floor(ctx.canvas.clientWidth / 2), 0); for (let k = 0; k < circuit.layers.length; k++) { let hasPolygons = false; let hasXMarker = false; @@ -485,6 +488,7 @@ function draw(ctx, snap) { } finally { ctx.restore(); } + ctx.restore(); // restore devicePixelRatio scale } export {xyToPos, draw, setDefensiveDrawEnabled, OFFSET_X, OFFSET_Y} diff --git a/glue/crumble/draw/timeline_viewer.js b/glue/crumble/draw/timeline_viewer.js index 2bab08cfb..93640d91c 100644 --- a/glue/crumble/draw/timeline_viewer.js +++ b/glue/crumble/draw/timeline_viewer.js @@ -98,7 +98,7 @@ function drawTimelineMarkers(ctx, ds, qubitTimeCoordFunc, propagatedMarkers, mi, * @param {!int} numLayers */ function drawTimeline(ctx, snap, propagatedMarkerLayers, timesliceQubitCoordsFunc, numLayers) { - let w = Math.floor(ctx.canvas.width / 2); + let w = Math.floor(ctx.canvas.clientWidth / 2); let qubits = snap.timelineQubits(); qubits.sort((a, b) => { @@ -133,7 +133,7 @@ function drawTimeline(ctx, snap, propagatedMarkerLayers, timesliceQubitCoordsFun } let x_pitch = TIMELINE_PITCH + Math.ceil(rad*max_run*0.25); - let num_cols_half = Math.floor(ctx.canvas.width / 4 / x_pitch); + let num_cols_half = Math.floor(ctx.canvas.clientWidth / 4 / x_pitch); let min_t_free = snap.curLayer - num_cols_half + 1; let min_t_clamp = Math.max(0, Math.min(min_t_free, numLayers - num_cols_half*2 + 1)); let max_t = Math.min(min_t_clamp + num_cols_half*2 + 2, numLayers); @@ -157,7 +157,7 @@ function drawTimeline(ctx, snap, propagatedMarkerLayers, timesliceQubitCoordsFun ctx.save(); try { - ctx.clearRect(w, 0, w, ctx.canvas.height); + ctx.clearRect(w, 0, w, ctx.canvas.clientHeight); // Draw colored indicators showing Pauli propagation. let hitCounts = new Map(); @@ -170,7 +170,7 @@ function drawTimeline(ctx, snap, propagatedMarkerLayers, timesliceQubitCoordsFun ctx.fillStyle = 'black'; { let x1 = t2t(snap.curLayer) + w * 1.5 - x_pitch / 2; - ctx.fillRect(x1, 0, x_pitch, ctx.canvas.height); + ctx.fillRect(x1, 0, x_pitch, ctx.canvas.clientHeight); } ctx.globalAlpha *= 2; @@ -214,14 +214,14 @@ function drawTimeline(ctx, snap, propagatedMarkerLayers, timesliceQubitCoordsFun for (let q of qubits) { let [x0, y0] = qubitTimeCoords(q, min_t_clamp - 1); let [x1, y1] = timesliceQubitCoordsFunc(q); - if (snap.curMouseX > ctx.canvas.width / 2 && snap.curMouseY >= y0 + OFFSET_Y - TIMELINE_PITCH * 0.55 && snap.curMouseY <= y0 + TIMELINE_PITCH * 0.55 + OFFSET_Y) { + if (snap.curMouseX > ctx.canvas.clientWidth / 2 && snap.curMouseY >= y0 + OFFSET_Y - TIMELINE_PITCH * 0.55 && snap.curMouseY <= y0 + TIMELINE_PITCH * 0.55 + OFFSET_Y) { ctx.beginPath(); ctx.moveTo(x0, y0); ctx.lineTo(x1, y1); ctx.stroke(); ctx.fillStyle = 'black'; ctx.fillRect(x1 - 20, y1 - 20, 40, 40); - ctx.fillRect(ctx.canvas.width / 2, y0 - TIMELINE_PITCH / 3, ctx.canvas.width / 2, TIMELINE_PITCH * 2 / 3); + ctx.fillRect(ctx.canvas.clientWidth / 2, y0 - TIMELINE_PITCH / 3, ctx.canvas.clientWidth / 2, TIMELINE_PITCH * 2 / 3); } } } finally { diff --git a/glue/crumble/main.js b/glue/crumble/main.js index ca76b47cc..59eb512f5 100644 --- a/glue/crumble/main.js +++ b/glue/crumble/main.js @@ -136,8 +136,9 @@ btnPrevLayer.addEventListener('click', _ev => { }); window.addEventListener('resize', _ev => { - editorState.canvas.width = editorState.canvas.scrollWidth; - editorState.canvas.height = editorState.canvas.scrollHeight; + const devicePixelRatio = window.devicePixelRatio || 1; + editorState.canvas.width = editorState.canvas.scrollWidth * devicePixelRatio; + editorState.canvas.height = editorState.canvas.scrollHeight * devicePixelRatio; editorState.force_redraw(); }); @@ -157,7 +158,7 @@ editorState.canvas.addEventListener('mousemove', ev => { editorState.curMouseY = ev.offsetY + OFFSET_Y; // Scrubber. - let w = editorState.canvas.width / 2; + let w = editorState.canvas.scrollWidth / 2; if (isInScrubber && ev.buttons === 1) { editorState.changeCurLayerTo(Math.floor((ev.offsetX - w) / 8)); return; @@ -174,7 +175,7 @@ editorState.canvas.addEventListener('mousedown', ev => { editorState.mouseDownY = ev.offsetY + OFFSET_Y; // Scrubber. - let w = editorState.canvas.width / 2; + let w = editorState.canvas.scrollWidth / 2; isInScrubber = ev.offsetY < 20 && ev.offsetX > w && ev.buttons === 1; if (isInScrubber) { editorState.changeCurLayerTo(Math.floor((ev.offsetX - w) / 8)); @@ -506,8 +507,9 @@ function handleKeyboardEvent(ev) { document.addEventListener('keydown', handleKeyboardEvent); document.addEventListener('keyup', handleKeyboardEvent); -editorState.canvas.width = editorState.canvas.scrollWidth; -editorState.canvas.height = editorState.canvas.scrollHeight; +const devicePixelRatio = window.devicePixelRatio || 1; +editorState.canvas.width = editorState.canvas.scrollWidth * devicePixelRatio; +editorState.canvas.height = editorState.canvas.scrollHeight * devicePixelRatio; editorState.rev.changes().subscribe(() => { editorState.obs_val_draw_state.set(editorState.toSnapshot(undefined)); drawToolbox(editorState.chorder.toEvent(false)); From 6f86dbae32430c4bd09d06edf31980f5d8cc4013 Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Fri, 10 Apr 2026 11:32:25 +0300 Subject: [PATCH 3/9] - Make main canvas size dynamic to take up all remaining height --- glue/crumble/crumble.css | 20 ++++++++++++++++++++ glue/crumble/crumble.html | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/glue/crumble/crumble.css b/glue/crumble/crumble.css index 8744d2c12..cc2c9eabe 100644 --- a/glue/crumble/crumble.css +++ b/glue/crumble/crumble.css @@ -4,6 +4,26 @@ body { #main-container { padding: 4px; + display: flex; + flex-direction: column; + height: 100vh; + box-sizing: border-box; +} + +#cvn { + width: 100%; + flex: 1; + min-height: 0; + border: 1px solid black; + margin: 0; + padding: 0; +} + +table { + border: 1px solid black; + margin: 10px; + text-align: left; + border-collapse: collapse; } table tr { diff --git a/glue/crumble/crumble.html b/glue/crumble/crumble.html index 95c4988e2..8b726c5a0 100644 --- a/glue/crumble/crumble.html +++ b/glue/crumble/crumble.html @@ -63,13 +63,13 @@
- +
x
Example Circuits - +
From f4bd6a5a5b2293acea371e420a55fce3059cdd5d Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Fri, 10 Apr 2026 11:38:02 +0300 Subject: [PATCH 4/9] - Fixed blur of toolbox as well --- glue/crumble/keyboard/toolbox.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/glue/crumble/keyboard/toolbox.js b/glue/crumble/keyboard/toolbox.js index cae74d36d..5c4ddf77f 100644 --- a/glue/crumble/keyboard/toolbox.js +++ b/glue/crumble/keyboard/toolbox.js @@ -128,10 +128,13 @@ function getToolboxFocusedData(ev) { * @param {!ChordEvent} ev */ function drawToolbox(ev) { - toolboxCanvas.width = toolboxCanvas.scrollWidth; - toolboxCanvas.height = toolboxCanvas.scrollHeight; - let ctx = toolboxCanvas.getContext('2d'); - ctx.clearRect(0, 0, toolboxCanvas.width, toolboxCanvas.height); + const devicePixelRatio = window.devicePixelRatio || 1; + toolboxCanvas.width = toolboxCanvas.scrollWidth * devicePixelRatio; + toolboxCanvas.height = toolboxCanvas.scrollHeight * devicePixelRatio; + const ctx = toolboxCanvas.getContext('2d'); + ctx.save(); + ctx.scale(devicePixelRatio, devicePixelRatio); + ctx.clearRect(0, 0, toolboxCanvas.scrollWidth, toolboxCanvas.scrollHeight); ctx.textAlign = 'right'; ctx.textBaseline = 'middle'; ctx.fillText('X', PAD - 3, PAD + DIAM / 2); @@ -277,6 +280,7 @@ function drawToolbox(ev) { ctx.textAlign = 'left'; ctx.textBaseline = 'middle'; ctx.fillStyle = 'black'; + ctx.restore(); } export {getToolboxFocusedData, drawToolbox}; From 62ca4132df506463afe16c0906055163c3a489d7 Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Fri, 10 Apr 2026 16:51:37 +0300 Subject: [PATCH 5/9] Built crumble --- src/stim/diagram/crumble_data.cc | 725 +++++++++++++++---------------- 1 file changed, 340 insertions(+), 385 deletions(-) diff --git a/src/stim/diagram/crumble_data.cc b/src/stim/diagram/crumble_data.cc index c81dfb58d..b11d59d4c 100644 --- a/src/stim/diagram/crumble_data.cc +++ b/src/stim/diagram/crumble_data.cc @@ -11,43 +11,15 @@ std::string stim_draw_internal::make_crumble_html() { result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( Crumble +)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( -)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); @@ -79,504 +51,486 @@ std::string stim_draw_internal::make_crumble_html() { )CRUMBLE_PART"); result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
Code
-)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( -)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( -)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( -)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( -)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( -)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART(
CodeStyleTaskSizeLink
Bacon-Shor CodeInterleaved (XZXZ)Memory (H)5x5x3 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(0,1)1;Q(0,2)2;Q(0,3)3;Q(0,4)4;Q(1,0)5;Q(1,1)6;Q(1,2)7;Q(1,3)8;Q(1,4)9;Q(2,0)10;Q(2,1)11;Q(2,2)12;Q(2,3)13;Q(2,4)14;Q(3,0)15;Q(3,1)16;Q(3,2)17;Q(3,3)18;Q(3,4)19;Q(4,0)20;Q(4,1)21;Q(4,2)22;Q(4,3)23;Q(4,4)24;POLYGON(0,0,1,0.25)23_24;POLYGON(0,0,1,0.25)18_19;POLYGON(0,0,1,0.25)13_14;POLYGON(0,0,1,0.25)8_9;POLYGON(0,0,1,0.25)3_4;POLYGON(0,0,1,0.25)22_23;POLYGON(0,0,1,0.25)17_18;POLYGON(0,0,1,0.25)12_13;POLYGON(0,0,1,0.25)7_8;POLYGON(0,0,1,0.25)2_3;POLYGON(0,0,1,0.25)21_22;POLYGON(0,0,1,0.25)16_17;POLYGON(0,0,1,0.25)11_12;POLYGON(0,0,1,0.25)6_7;POLYGON(0,0,1,0.25)1_2;POLYGON(0,0,1,0.25)20_21;POLYGON(0,0,1,0.25)15_16;POLYGON(0,0,1,0.25)10_11;POLYGON(0,0,1,0.25)5_6;POLYGON(0,0,1,0.25)0_1;POLYGON(1,0,0,0.25)24_19;POLYGON(1,0,0,0.25)19_14;POLYGON(1,0,0,0.25)14_9;POLYGON(1,0,0,0.25)9_4;POLYGON(1,0,0,0.25)23_18;POLYGON(1,0,0,0.25)18_13;POLYGON(1,0,0,0.25)13_8;POLYGON(1,0,0,0.25)8_3;POLYGON(1,0,0,0.25)22_17;POLYGON(1,0,0,0.25)17_12;POLYGON(1,0,0,0.25)12_7;POLYGON(1,0,0,0.)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(25)7_2;POLYGON(1,0,0,0.25)21_16;POLYGON(1,0,0,0.25)16_11;POLYGON(1,0,0,0.25)11_6;POLYGON(1,0,0,0.25)6_1;POLYGON(1,0,0,0.25)20_15;POLYGON(1,0,0,0.25)15_10;POLYGON(1,0,0,0.25)10_5;POLYGON(1,0,0,0.25)5_0;TICK;R_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24;MARKZ(0)1_2_6_7_11_12_16_17_21_22;TICK;TICK;MZZ_0_1_5_6_10_11_15_16_20_21_2_3_7_8_12_13_17_18_22_23;DT(0,0,0)rec[-10];DT(1,0,0)rec[-9];DT(2,0,0)rec[-8];DT(3,0,0)rec[-7];DT(4,0,0)rec[-6];DT(0,2,0)rec[-5];DT(1,2,0)rec[-4];DT(2,2,0)rec[-3];DT(3,2,0)rec[-2];DT(4,2,0)rec[-1];TICK;MXX_0_5_1_6_2_7_3_8_4_9_10_15_11_16_12_17_13_18_14_19;MARKX(1)10_11_12_13_14_15_16_17_18_19;TICK;MZZ_1_2_6_7_11_12_16_17_21_22_3_4_8_9_13_14_18_19_23_24;MARKZ(0)1_2_6_7_11_12_16_17_21_22;DT(4,1,1)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10];DT(4,3,1)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5];TICK;MXX_5_10_6_11_7_12_8_13_9_14_15_20_16_21_17_22_18_23_19_24;TICK;TICK;MZZ_0_1_5_6_10_11_15_16_20_21_2_3_7_8_12_13_17_18_22_23;DT(4,0,2)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(4,2,2)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MXX_0_5_1_6_2_7_3_8_4_9_10_15_11_16_12_17_13_18_14_19;MARKX(1)10_11_12_13_14_15_16_17_18_19;DT(0,4,3)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(2,4,3)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MZZ_1_2_6_7_11_12_16_17_21_22_3_4_8_9_13_14_18_19_23_24;DT(4,1,4)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(4,3,4)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MXX_5_10_6_11_7_12_8_13_9_14_15_20_16_21_17_22_18_23_19_24;DT(1,4,5)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(3,4,5)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;TICK;MZZ_0_1_5_6_10_11_15_16_20_21_2_3_7_8_12_13_17_18_22_23;DT(4,0,6)rec[-6]_rec[-7]_rec[-8]_rec[-9)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(4,2,6)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MXX_0_5_1_6_2_7_3_8_4_9_10_15_11_16_12_17_13_18_14_19;DT(0,4,7)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(2,4,7)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MZZ_1_2_6_7_11_12_16_17_21_22_3_4_8_9_13_14_18_19_23_24;DT(4,1,8)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(4,3,8)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MXX_5_10_6_11_7_12_8_13_9_14_15_20_16_21_17_22_18_23_19_24;DT(1,4,9)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(3,4,9)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;TICK;M_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24;DT(4,0,10)rec[-4]_rec[-5]_rec[-9]_rec[-10]_rec)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART([-14]_rec[-15]_rec[-19]_rec[-20]_rec[-24]_rec[-25]_rec[-61]_rec[-62]_rec[-63]_rec[-64]_rec[-65];DT(4,1,10)rec[-3]_rec[-4]_rec[-8]_rec[-9]_rec[-13]_rec[-14]_rec[-18]_rec[-19]_rec[-23]_rec[-24]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];DT(4,2,10)rec[-2]_rec[-3]_rec[-7]_rec[-8]_rec[-12]_rec[-13]_rec[-17]_rec[-18]_rec[-22]_rec[-23]_rec[-56]_rec[-57]_rec[-58]_rec[-59]_rec[-60];DT(4,3,10)rec[-1]_rec[-2]_rec[-6]_rec[-7]_rec[-11]_rec[-12]_rec[-16]_rec[-17]_rec[-21]_rec[-22]_rec[-36]_rec[-37]_rec[-38]_rec[-39]_rec[-40];OI(0)rec[-5]_rec[-10]_rec[-15]_rec[-20]_rec[-25] + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( "> + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( Open Circuit + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
Color CodeSuperdenseMemory (Z)5x7x3 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(1,0)1;Q(1,1)2;Q(1,2)3;Q(2,0)4;Q(2,1)5;Q(2,2)6;Q(2,3)7;Q(3,0)8;Q(3,1)9;Q(3,2)10;Q(3,3)11;Q(3,4)12;Q(3,5)13;Q(4,0)14;Q(4,1)15;Q(4,2)16;Q(4,3)17;Q(4,4)18;Q(4,5)19;Q(4,6)20;Q(5,0)21;Q(5,1)22;Q(5,2)23;Q(5,3)24;Q(5,4)25;Q(5,5)26;Q(6,0)27;Q(6,1)28;Q(6,2)29;Q(6,3)30;Q(6,4)31;Q(7,0)32;Q(7,1)33;Q(7,2)34;Q(8,0)35;Q(8,1)36;POLYGON(0,1,1,0.25)18_26_30_24;POLYGON(0,1,1,0.25)28_34_35_32;POLYGON(0,1,1,0.25)10_16_22_14_8_5;POLYGON(1,0,1,0.25)12_18_24_16_10_7;POLYGON(1,0,1,0.25)22_28_32_14;POLYGON(1,0,1,0.25)2_5_8_0;POLYGON(1,1,0,0.25)20_26_18_12;POLYGON(1,1,0,0.25)24_30_34_28_22_16;POLYGON(1,1,0,0.25)7_10_5_2;TICK;R_0_2_5_8_14_22_28_32_35_34_24_30_10_16_7_12_18_26_20;MARKZ(0)24_30_34_28_22_16;TICK;R_4_27_36_29_6_15_17_31_19;RX_1_21_33_23_3_9_11_25_13;MARKX(1)11;MARKZ(0)31_27;TICK;CX_1_4_21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;CX_1_2_21_22_33_34_23_24_9_10_11_12_25_26_4_5_27_28_29_30_6_7_15_16_17_18_19_20;TICK;CX_1_0_21_14_33_28_23_16_9_5_11_7_25_18_4_8_27_32_29_34_6)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_10_15_22_17_24_19_26;TICK;CX_33_32_23_22_3_2_9_8_11_10_25_24_13_12_36_35_29_28_6_5_15_14_17_16_31_30_19_18;TICK;CX_32_33_22_23_2_3_8_9_10_11_24_25_12_13_35_36_28_29_5_6_14_15_16_17_30_31_18_19;TICK;CX_0_1_14_21_28_33_16_23_5_9_7_11_18_25_8_4_32_27_34_29_10_6_22_15_24_17_26_19;TICK;CX_2_1_22_21_34_33_24_23_10_9_12_11_26_25_5_4_28_27_30_29_7_6_16_15_18_17_20_19;TICK;CX_1_4_21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;M_4_27_36_29_6_15_17_31_19;MX_1_21_33_23_3_9_11_25_13;MARKX(1)13_9;MARKZ(0)29;DT(2,0,0)rec[-18];DT(6,0,0)rec[-17];DT(8,1,0)rec[-16];DT(6,2,0)rec[-15];DT(2,2,0)rec[-14];DT(4,1,0)rec[-13];DT(4,3,0)rec[-12];DT(6,4,0)rec[-11];DT(4,5,0)rec[-10];TICK;R_4_27_36_29_6_15_17_31_19;RX_1_21_33_23_3_9_11_25_13;MARKX(1)11;MARKZ(3)15;TICK;CX_1_4_21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;CX_1_2_21_22_33_34_23_24_9_10_11_12_25_26_4_5_27_28_29_30_6_7_15_16_17_18_19_20;TICK;CX_1_0_21_14_33_28_23_16_9_5_11_7_25_18_4_8_27_32_29_34_6_10_15_22_17_24_19_26;TICK;CX_33_32_23_22_3_2_9_8_11_10_25_24_13_12_36_35_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(29_28_6_5_15_14_17_16_31_30_19_18;TICK;CX_32_33_22_23_2_3_8_9_10_11_24_25_12_13_35_36_28_29_5_6_14_15_16_17_30_31_18_19;TICK;CX_0_1_14_21_28_33_16_23_5_9_7_11_18_25_8_4_32_27_34_29_10_6_22_15_24_17_26_19;TICK;CX_2_1_22_21_34_33_24_23_10_9_12_11_26_25_5_4_28_27_30_29_7_6_16_15_18_17_20_19;TICK;CX_1_4_21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;M_4_27_36_29_6_15_17_31_19;MX_1_21_33_23_3_9_11_25_13;MARKX(1)11;MARKZ(3)15;DT(2,0,1)rec[-18]_rec[-36];DT(6,0,1)rec[-17]_rec[-35];DT(8,1,1)rec[-16]_rec[-34];DT(6,2,1)rec[-15]_rec[-33];DT(2,2,1)rec[-14]_rec[-32];DT(4,1,1)rec[-13]_rec[-31];DT(4,3,1)rec[-12]_rec[-30];DT(6,4,1)rec[-11]_rec[-29];DT(4,5,1)rec[-10]_rec[-28];DT(1,2,1)rec[-9]_rec[-23]_rec[-27];DT(5,2,1)rec[-8]_rec[-24]_rec[-26];DT(7,1,1)rec[-7];DT(5,4,1)rec[-6]_rec[-20]_rec[-26];DT(1,0,1)rec[-5]_rec[-27];DT(3,3,1)rec[-4]_rec[-21];DT(3,5,1)rec[-3]_rec[-19]_rec[-22];DT(5,3,1)rec[-2]_rec[-24];DT(3,4,1)rec[-1]_rec[-21];TICK;R_4_27_36_29_6_15_17_31_19;RX_1_21_33_23_3_9_11_25_13;MARKZ(2)27;MARKZ(3)17;TICK;CX_1_4_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;CX_1_2_21_22_33_34_23_24_9_10_11_12_25_26_4_5_27_28_29_30_6_7_15_16_17_18_19_20;TICK;CX_1_0_21_14_33_28_23_16_9_5_11_7_25_18_4_8_27_32_29_34_6_10_15_22_17_24_19_26;TICK;CX_33_32_23_22_3_2_9_8_11_10_25_24_13_12_36_35_29_28_6_5_15_14_17_16_31_30_19_18;TICK;CX_32_33_22_23_2_3_8_9_10_11_24_25_12_13_35_36_28_29_5_6_14_15_16_17_30_31_18_19;TICK;CX_0_1_14_21_28_33_16_23_5_9_7_11_18_25_8_4_32_27_34_29_10_6_22_15_24_17_26_19;TICK;CX_2_1_22_21_34_33_24_23_10_9_12_11_26_25_5_4_28_27_30_29_7_6_16_15_18_17_20_19;TICK;CX_1_4_21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;M_4_27_36_29_6_15_17_31_19;MX_1_21_33_23_3_9_11_25_13;MARKZ(3)15;DT(2,0,2)rec[-18]_rec[-36];DT(6,0,2)rec[-17]_rec[-35];DT(8,1,2)rec[-16]_rec[-34];DT(6,2,2)rec[-15]_rec[-33];DT(2,2,2)rec[-14]_rec[-32];DT(4,1,2)rec[-13]_rec[-31];DT(4,3,2)rec[-12]_rec[-30];DT(6,4,2)rec[-11]_rec[-29];DT(4,5,2)rec[-10]_rec[-28];DT(1,2,2)rec[-9]_rec[-23]_rec[-27];DT(5,2,2)rec[-8]_rec[-24]_rec[-26];DT(7,1,2)rec[-7];DT(5,4,2)rec)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART([-6]_rec[-20]_rec[-26];DT(1,0,2)rec[-5]_rec[-27];DT(3,3,2)rec[-4]_rec[-21];DT(3,5,2)rec[-3]_rec[-19]_rec[-22];DT(5,3,2)rec[-2]_rec[-24];DT(3,4,2)rec[-1]_rec[-21];TICK;M_0_2_5_8_14_22_28_32_35_34_24_30_10_16_7_12_18_26_20;MARKZ(2)28_22_14_32;DT(2,0,3)rec[-16]_rec[-17]_rec[-18]_rec[-19]_rec[-37];DT(6,0,3)rec[-12]_rec[-13]_rec[-14]_rec[-15]_rec[-36];DT(8,1,3)rec[-10]_rec[-11]_rec[-12]_rec[-13]_rec[-35];DT(6,2,3)rec[-6]_rec[-8]_rec[-9]_rec[-10]_rec[-13]_rec[-14]_rec[-34];DT(4,1,3)rec[-6]_rec[-7]_rec[-14]_rec[-15]_rec[-16]_rec[-17]_rec[-32];DT(2,2,3)rec[-5]_rec[-7]_rec[-17]_rec[-18]_rec[-33];DT(4,3,3)rec[-3]_rec[-4]_rec[-5]_rec[-6]_rec[-7]_rec[-9]_rec[-31];DT(6,4,3)rec[-2]_rec[-3]_rec[-8]_rec[-9]_rec[-30];DT(4,5,3)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-29];OI(0)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-11]_rec[-12]_rec[-13]_rec[-14]_rec[-15]_rec[-16]_rec[-17]_rec[-18]_rec[-19] + result.append(R"CRUMBLE_PART(
Honeycomb CodeYXZ-YZXMemory (H)7x9x3 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(0,1)1;Q(0,5)2;Q(0,6)3;Q(0,7)4;Q(1,0)5;Q(1,1)6;Q(1,2)7;Q(1,3)8;Q(1,4)9;Q(1,5)10;Q(1,6)11;Q(1,7)12;Q(1,8)13;Q(2,0)14;Q(2,1)15;Q(2,2)16;Q(2,3)17;Q(2,4)18;Q(2,5)19;Q(2,6)20;Q(2,7)21;Q(2,8)22;Q(3,0)23;Q(3,1)24;Q(3,2)25;Q(3,3)26;Q(3,4)27;Q(3,5)28;Q(3,6)29;Q(3,7)30;Q(3,8)31;Q(4,0)32;Q(4,1)33;Q(4,2)34;Q(4,3)35;Q(4,4)36;Q(4,5)37;Q(4,6)38;Q(4,7)39;Q(4,8)40;Q(5,0)41;Q(5,1)42;Q(5,2)43;Q(5,3)44;Q(5,4)45;Q(5,5)46;Q(5,6)47;Q(5,7)48;Q(5,8)49;Q(6,2)50;Q(6,3)51;Q(6,4)52;Q(6,8)53;POLYGON(0,0,1,0.25)11_20_21_22_13_12;POLYGON(0,0,1,0.25)17_26_27_28_19_18;POLYGON(0,0,1,0.25)5_14_15_16_7_6;POLYGON(0,0,1,0.25)29_38_39_40_31_30;POLYGON(0,0,1,0.25)35_44_45_46_37_36;POLYGON(0,0,1,0.25)48_47_53_49;POLYGON(0,0,1,0.25)8_9_10_2;POLYGON(0,0,1,0.25)23_32_33_34_25_24;POLYGON(0,0,1,0.25)42_41_50_43;POLYGON(0,1,0,0.25)9_18_19_20_11_10;POLYGON(0,1,0,0.25)15_24_25_26_17_16;POLYGON(0,1,0,0.25)27_36_37_38_29_28;POLYGON(0,1,0,0.25)21_30_31_22;POLYGON(0,1,0,0.25)39_48_49_40;POLYGON(0,1,0,0.25)45_52_4)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(7_46;POLYGON(0,1,0,0.25)4_12_13;POLYGON(0,1,0,0.25)1_6_7_8;POLYGON(0,1,0,0.25)33_42_43_44_35_34;POLYGON(0,1,0,0.25)14_5;POLYGON(0,1,0,0.25)32_23;POLYGON(1,0,0,0.25)2_10_11_12_4_3;POLYGON(1,0,0,0.25)19_28_29_30_21_20;POLYGON(1,0,0,0.25)7_16_17_18_9_8;POLYGON(1,0,0,0.25)25_34_35_36_27_26;POLYGON(1,0,0,0.25)43_50_51_52_45_44;POLYGON(1,0,0,0.25)37_46_47_48_39_38;POLYGON(1,0,0,0.25)22_13;POLYGON(1,0,0,0.25)40_31;POLYGON(1,0,0,0.25)53_49;POLYGON(1,0,0,0.25)0_5_6_1;POLYGON(1,0,0,0.25)14_23_24_15;POLYGON(1,0,0,0.25)32_41_42_33;TICK;R_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_48_49_50_51_52_53;MARKZ(0)8_9_17_18_26_27_35_36_44_45_51_52;TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;MARKY(0)8_9_17_18_26_27_35_36_44_45_51_52;TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)8_17_26_35_44_51;DT(0,0,0)rec[-32]_rec[-33]_rec[-49];DT(0,6,0)rec[-29]_rec[-30]_rec[-40];DT(6,3,0)rec[-25]_rec[-27]_rec[-55];DT(5,8,0)rec[-21]_rec[-22]_rec[-23]_rec[-34]_rec[-41];DT(0,5,0)rec[-20]_rec[-28]_rec[-31]_rec[-37]_rec[-60];DT(5,2,0)rec[-9]_rec[-24]_rec[-26]_rec[-46]_rec[-50];DT(1,8,0)rec[-7]_rec[-8]_rec[-15]_rec[-39]_rec[-44]_rec[-45];DT(3,8,0)rec[-5]_rec[-6]_rec[-14]_rec[-38]_rec[-42]_rec[-43];DT(1,2,0)rec[-4]_rec[-12]_rec[-13]_rec[-48]_rec[-53]_rec[-54];DT(3,2,0)rec[-3]_rec[-10]_rec[-11]_rec[-47]_rec[-51]_rec[-52];DT(2,5,0)rec[-2]_rec[-18]_rec[-19]_rec[-36]_rec[-58]_rec[-59];DT(4,5,0)rec[-1]_rec[-16]_rec[-17]_rec[-35]_rec[-56]_rec[-57];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,1)rec[-15]_rec[-26]_rec[-27]_rec[-30]_rec[-34]_rec[-39]_rec[-108]_rec[-119]_rec[-120];DT(3,2,1)rec[-14]_rec[-24]_rec[-25]_rec[-29]_rec[-37]_rec[-38]_rec[-107]_rec[-117]_rec[-118];DT(5,2,1)rec[-13]_rec[-22]_rec[-23]_rec[-28]_rec[-35]_rec[-36]_rec[-106]_rec[-115]_rec[-116];DT(0,5,1)rec[-4]_rec[-7]_rec[-12]_rec[-41]_rec[-42]_rec[-44]_rec[-97]_rec[-100]_rec[-105];DT(2,5,1)rec[-3]_rec[-10]_rec[-11]_rec[-43]_rec[-47]_rec[-48]_rec[-96]_rec[-103]_rec[-104];DT(4,5,1)rec[-2]_rec[-8]_rec[-9]_rec[-40]_rec[-45]_rec[-46]_rec[-95]_rec[-101]_rec[-102];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;DT(2,8,2)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,2)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,2)rec[-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,2)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,2)rec[-14]_rec[-15])CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,2)rec[-13]_rec[-18]_rec[-19]_rec[-73]_rec[-78]_rec[-79];DT(2,1,2)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,2)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,2)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,2)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72];DT(3,4,2)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71];DT(5,4,2)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)8_17_26_35_44_51;DT(0,6,3)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,3)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,3)rec[-16]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,3)rec[-15]_rec[-19]_rec[-20]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,3))CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(rec[-14]_rec[-17]_rec[-18]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,3)rec[-13]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,3)rec[-2]_rec[-11]_rec[-12]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,3)rec[-1]_rec[-9]_rec[-10]_rec[-37]_rec[-42]_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,4)rec[-15]_rec[-20]_rec[-21]_rec[-31]_rec[-39]_rec[-40]_rec[-157]_rec[-165]_rec[-166]_rec[-201]_rec[-206]_rec[-207];DT(3,2,4)rec[-14]_rec[-18]_rec[-19]_rec[-30]_rec[-37]_rec[-38]_rec[-156]_rec[-163]_rec[-164]_rec[-200]_rec[-204]_rec[-205];DT(1,8,4)rec[-6]_rec[-11]_rec[-12]_rec[-34]_rec[-35]_rec[-42]_rec[-160]_rec[-161]_rec[-168]_rec[-192]_rec[-197]_rec[-198];DT(3,8,4)rec[-5]_rec[-9]_rec[-10])CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_rec[-32]_rec[-33]_rec[-41]_rec[-158]_rec[-159]_rec[-167]_rec[-191]_rec[-195]_rec[-196];DT(2,5,4)rec[-3]_rec[-25]_rec[-26]_rec[-29]_rec[-45]_rec[-46]_rec[-155]_rec[-171]_rec[-172]_rec[-189]_rec[-211]_rec[-212];DT(4,5,4)rec[-2]_rec[-23]_rec[-24]_rec[-28]_rec[-43]_rec[-44]_rec[-154]_rec[-169]_rec[-170]_rec[-188]_rec[-209]_rec[-210];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)8_17_26_35_44_51;DT(0,1,5)rec[-32]_rec[-33]_rec[-92]_rec[-93];DT(0,7,5)rec[-29]_rec[-30]_rec[-89]_rec[-90];DT(6,4,5)rec[-25]_rec[-27]_rec[-85]_rec[-87];DT(5,7,5)rec[-21]_rec[-22]_rec[-23]_rec[-81]_rec[-82]_rec[-83];DT(1,4,5)rec[-20]_rec[-28]_rec[-31]_rec[-80]_rec[-88]_rec[-91];DT(5,1,5)rec[-9]_rec[-24]_rec[-26]_rec[-69]_rec[-84]_rec[-86];DT(2,7,5)rec[-7]_rec[-8]_rec[-15]_rec[-67]_rec[-68]_rec[-75];DT(4,7,5)rec[-5]_rec[-6]_rec[-14]_rec[-65]_rec[-66]_rec[-74];DT(1,0,5)rec[-4]_rec[-12]_rec[-13]_rec[-64]_rec[-72]_rec[-)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(73];DT(3,0,5)rec[-3]_rec[-10]_rec[-11]_rec[-63]_rec[-70]_rec[-71];DT(2,3,5)rec[-2]_rec[-18]_rec[-19]_rec[-62]_rec[-78]_rec[-79];DT(4,3,5)rec[-1]_rec[-16]_rec[-17]_rec[-61]_rec[-76]_rec[-77];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;DT(2,0,6)rec[-31]_rec[-32]_rec[-37]_rec[-97]_rec[-157]_rec[-158];DT(4,0,6)rec[-29]_rec[-30]_rec[-36]_rec[-96]_rec[-155]_rec[-156];DT(2,7,6)rec[-16]_rec[-25]_rec[-26]_rec[-39]_rec[-40]_rec[-99]_rec[-100]_rec[-142]_rec[-151]_rec[-152];DT(4,7,6)rec[-13]_rec[-23]_rec[-24]_rec[-38]_rec[-54]_rec[-98]_rec[-114]_rec[-139]_rec[-149]_rec[-150];DT(2,1,6)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-44]_rec[-45]_rec[-95]_rec[-104]_rec[-105]_rec[-132]_rec[-137]_rec[-138];DT(4,1,6)rec[-4]_rec[-9]_rec[-10]_rec[-34]_rec[-42]_rec[-43]_rec[-94]_rec[-102]_rec[-103]_rec[-130]_rec[-135]_rec[-136];DT(1,4,6)rec[-3]_rec[-17]_rec[-21]_rec[-48]_rec[-52]_rec[-53]_rec[-10)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(8]_rec[-112]_rec[-113]_rec[-129]_rec[-143]_rec[-147];DT(3,4,6)rec[-2]_rec[-19]_rec[-20]_rec[-47]_rec[-50]_rec[-51]_rec[-107]_rec[-110]_rec[-111]_rec[-128]_rec[-145]_rec[-146];TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,7)rec[-15]_rec[-26]_rec[-27]_rec[-30]_rec[-34]_rec[-39]_rec[-156]_rec[-160]_rec[-165]_rec[-201]_rec[-212]_rec[-213];DT(3,2,7)rec[-14]_rec[-24]_rec[-25]_rec[-29]_rec[-37]_rec[-38]_rec[-155]_rec[-163]_rec[-164]_rec[-200]_rec[-210]_rec[-211];DT(5,2,7)rec[-13]_rec[-22]_rec[-23]_rec[-28]_rec[-35]_rec[-36]_rec[-154]_rec[-161]_rec[-162]_rec[-199]_rec[-208]_rec[-209];DT(0,5,7)rec[-4]_rec[-7]_rec[-12]_rec[-41]_rec[-42]_rec[-44]_rec[-167]_rec[-168]_rec[-170]_rec[-190]_rec[-193]_rec[-198];DT(2,5,7)rec[-3]_rec[-10]_rec[-11]_rec[-43]_rec[-47]_rec[-48]_rec[-169]_rec[-173]_rec[-174]_rec[-189]_rec[-196]_rec[-197];DT(4,5,7)rec[-2]_rec[-8]_rec[-9]_rec[-40]_rec[-45]_rec[-46]_rec[-166]_rec[-1)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(71]_rec[-172]_rec[-188]_rec[-194]_rec[-195];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;DT(2,8,8)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,8)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,8)rec[-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,8)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,8)rec[-14]_rec[-15]_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,8)rec[-13]_rec[-18]_rec[-19]_rec[-73]_rec[-78]_rec[-79];DT(2,1,8)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,8)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,8)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,8)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72];DT(3,4,8)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71];DT(5,4,8)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)8_17_26_35_44_51;DT(0,6,9)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,9)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,9)rec[-16]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,9)rec[-15]_rec[-19]_rec[-20]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,9)rec[-14]_rec[-17]_rec[-18]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,9)rec[-13]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,9)rec[-2]_rec[-11]_rec[-12]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,9)rec[-1]_rec[-9]_rec[-10]_rec[-37]_rec[-42]_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,10)rec[-15]_rec[-20]_rec[-21]_rec[-31]_rec[-39]_rec[-40]_rec[-157]_rec[-165]_rec[-166]_rec[-201]_rec[-206]_rec[-207];DT(3,2,10)rec[-14]_rec[-18]_rec[-19]_rec[-30]_rec[-37]_rec[-38]_rec[-156]_rec[-163]_rec[-164]_rec[-200]_rec[-204]_rec[-205];DT(1,8,10)rec[-6]_rec[-11]_rec[-12]_rec[-34]_rec[-35]_rec[-42]_rec[-160]_rec[-161]_rec[-168]_rec[-192]_rec[-197]_rec[-198];DT(3,8,10)rec[-5]_rec[-9]_rec[-10]_rec[-32]_rec[-33]_rec[-41]_rec[-158]_rec[-159]_rec[-167]_rec[-191]_rec[-195]_rec[-196];DT(2,5,10)rec[-3]_rec[-25]_rec[-26]_rec[-29]_rec[-45]_rec[-46]_rec[-155]_rec[-171]_rec[-172]_rec[-189]_rec[-211]_rec[-212];DT(4,5,10)rec[-2]_rec[-23]_rec[-24]_rec[-28]_rec[-43]_rec[-44]_rec[-154]_rec[-169]_rec[-170]_rec[-188]_rec[-209]_rec[-210];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)8_17_26_35_44_51;DT(0,1,11)rec[-32]_rec[-33]_rec[-92]_rec[)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(-93];DT(0,7,11)rec[-29]_rec[-30]_rec[-89]_rec[-90];DT(6,4,11)rec[-25]_rec[-27]_rec[-85]_rec[-87];DT(5,7,11)rec[-21]_rec[-22]_rec[-23]_rec[-81]_rec[-82]_rec[-83];DT(1,4,11)rec[-20]_rec[-28]_rec[-31]_rec[-80]_rec[-88]_rec[-91];DT(5,1,11)rec[-9]_rec[-24]_rec[-26]_rec[-69]_rec[-84]_rec[-86];DT(2,7,11)rec[-7]_rec[-8]_rec[-15]_rec[-67]_rec[-68]_rec[-75];DT(4,7,11)rec[-5]_rec[-6]_rec[-14]_rec[-65]_rec[-66]_rec[-74];DT(1,0,11)rec[-4]_rec[-12]_rec[-13]_rec[-64]_rec[-72]_rec[-73];DT(3,0,11)rec[-3]_rec[-10]_rec[-11]_rec[-63]_rec[-70]_rec[-71];DT(2,3,11)rec[-2]_rec[-18]_rec[-19]_rec[-62]_rec[-78]_rec[-79];DT(4,3,11)rec[-1]_rec[-16]_rec[-17]_rec[-61]_rec[-76]_rec[-77];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;DT(2,0,12)rec[-31]_rec[-32]_rec[-37]_rec[-97]_rec[-157]_rec[-158];DT(4,0,12)rec[-29]_rec[-30]_rec[-36]_rec[-96]_rec[-155]_rec[-156];DT(2,7,12)rec[-16]_rec[-25]_rec[-26]_rec)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART([-39]_rec[-40]_rec[-99]_rec[-100]_rec[-142]_rec[-151]_rec[-152];DT(4,7,12)rec[-13]_rec[-23]_rec[-24]_rec[-38]_rec[-54]_rec[-98]_rec[-114]_rec[-139]_rec[-149]_rec[-150];DT(2,1,12)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-44]_rec[-45]_rec[-95]_rec[-104]_rec[-105]_rec[-132]_rec[-137]_rec[-138];DT(4,1,12)rec[-4]_rec[-9]_rec[-10]_rec[-34]_rec[-42]_rec[-43]_rec[-94]_rec[-102]_rec[-103]_rec[-130]_rec[-135]_rec[-136];DT(1,4,12)rec[-3]_rec[-17]_rec[-21]_rec[-48]_rec[-52]_rec[-53]_rec[-108]_rec[-112]_rec[-113]_rec[-129]_rec[-143]_rec[-147];DT(3,4,12)rec[-2]_rec[-19]_rec[-20]_rec[-47]_rec[-50]_rec[-51]_rec[-107]_rec[-110]_rec[-111]_rec[-128]_rec[-145]_rec[-146];TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,13)rec[-15]_rec[-26]_rec[-27]_rec[-30]_rec[-34]_rec[-39]_rec[-156]_rec[-160]_rec[-165]_rec[-201]_rec[-212]_rec[-213];DT(3,2,13)rec[-14]_rec[-24]_rec[-25]_rec[-29]_rec[-37]_rec[-38]_rec[-155]_rec[-163)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(]_rec[-164]_rec[-200]_rec[-210]_rec[-211];DT(5,2,13)rec[-13]_rec[-22]_rec[-23]_rec[-28]_rec[-35]_rec[-36]_rec[-154]_rec[-161]_rec[-162]_rec[-199]_rec[-208]_rec[-209];DT(0,5,13)rec[-4]_rec[-7]_rec[-12]_rec[-41]_rec[-42]_rec[-44]_rec[-167]_rec[-168]_rec[-170]_rec[-190]_rec[-193]_rec[-198];DT(2,5,13)rec[-3]_rec[-10]_rec[-11]_rec[-43]_rec[-47]_rec[-48]_rec[-169]_rec[-173]_rec[-174]_rec[-189]_rec[-196]_rec[-197];DT(4,5,13)rec[-2]_rec[-8]_rec[-9]_rec[-40]_rec[-45]_rec[-46]_rec[-166]_rec[-171]_rec[-172]_rec[-188]_rec[-194]_rec[-195];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;DT(2,8,14)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,14)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,14)rec[-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,14)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,14)rec[-14]_rec[-15]_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,14)rec[-13]_rec[-18]_rec[-19]_r)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(ec[-73]_rec[-78]_rec[-79];DT(2,1,14)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,14)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,14)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,14)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72];DT(3,4,14)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71];DT(5,4,14)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44_48_49;MARKX(0)8_17_26_35_44_51;DT(0,6,15)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,15)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,15)rec[-17]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,15)rec[-16]_rec[-20]_rec[-21]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,15)rec[-15]_rec[-18]_rec[-19]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,15)rec[-14]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,15)rec[-3]_rec[-12]_rec[-13]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,15)rec[-2]_rec[-10]_rec[-11]_rec[-37]_rec[-42]_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;MARKY(0)9_18_27_36_45_52_8_17_26_35_44_51;DT(1,2,16)rec[-15]_rec[-20]_rec[-21]_rec[-32]_rec[-40]_rec[-41]_rec[-157]_rec[-165]_rec[-166]_rec[-201]_rec[-206]_rec[-207];DT(3,2,16)rec[-14]_rec[-18]_rec[-19]_rec[-31]_rec[-38]_rec[-39]_rec[-156]_rec[-163]_rec[-164]_rec[-200]_rec[-204]_rec[-205];DT(1,8,16)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-36]_rec[-43]_rec[-160]_rec[-161]_rec[-168]_rec[-192]_rec[-197]_rec[-198];DT(3,8,16)rec[-5]_rec[-9]_rec[-10]_rec[-33]_rec)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART([-34]_rec[-42]_rec[-158]_rec[-159]_rec[-167]_rec[-191]_rec[-195]_rec[-196];DT(2,5,16)rec[-3]_rec[-25]_rec[-26]_rec[-30]_rec[-46]_rec[-47]_rec[-155]_rec[-171]_rec[-172]_rec[-189]_rec[-211]_rec[-212];DT(4,5,16)rec[-2]_rec[-23]_rec[-24]_rec[-29]_rec[-44]_rec[-45]_rec[-154]_rec[-169]_rec[-170]_rec[-188]_rec[-209]_rec[-210];TICK;M_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_48_49_50_51_52_53;MARKZ(0)8_9_17_18_26_27_35_36_44_45_51_52;DT(0,1,17)rec[-53]_rec[-54]_rec[-70]_rec[-113]_rec[-114];DT(0,7,17)rec[-50]_rec[-51]_rec[-61]_rec[-110]_rec[-111];DT(1,4,17)rec[-44]_rec[-45]_rec[-46]_rec[-52]_rec[-58]_rec[-81]_rec[-102]_rec[-109]_rec[-112];DT(0,5,17)rec[-42]_rec[-43]_rec[-44]_rec[-50]_rec[-51]_rec[-52]_rec[-58]_rec[-61]_rec[-66]_rec[-128]_rec[-129]_rec[-131]_rec[-151]_rec[-154]_rec[-159];DT(1,0,17)rec[-38]_rec[-39]_rec[-40]_rec[-47]_rec[-48]_rec[-49]_rec[-69]_rec[-74]_rec[-75]_rec[-86]_rec[-94]_rec[-95];DT(1,2,17)rec[-36]_rec[-3)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(7]_rec[-38]_rec[-45]_rec[-46]_rec[-47]_rec[-69]_rec[-80]_rec[-81]_rec[-117]_rec[-121]_rec[-126]_rec[-162]_rec[-173]_rec[-174];DT(2,7,17)rec[-32]_rec[-33]_rec[-34]_rec[-41]_rec[-42]_rec[-43]_rec[-60]_rec[-65]_rec[-66]_rec[-89]_rec[-90]_rec[-97];DT(2,3,17)rec[-26]_rec[-27]_rec[-28]_rec[-35]_rec[-36]_rec[-37]_rec[-57]_rec[-79]_rec[-80]_rec[-84]_rec[-100]_rec[-101];DT(2,5,17)rec[-24]_rec[-25]_rec[-26]_rec[-33]_rec[-34]_rec[-35]_rec[-57]_rec[-64]_rec[-65]_rec[-130]_rec[-134]_rec[-135]_rec[-150]_rec[-157]_rec[-158];DT(3,0,17)rec[-20]_rec[-21]_rec[-22]_rec[-29]_rec[-30]_rec[-31]_rec[-68]_rec[-72]_rec[-73]_rec[-85]_rec[-92]_rec[-93];DT(3,2,17)rec[-18]_rec[-19]_rec[-20]_rec[-27]_rec[-28]_rec[-29]_rec[-68]_rec[-78]_rec[-79]_rec[-116]_rec[-124]_rec[-125]_rec[-161]_rec[-171]_rec[-172];DT(4,7,17)rec[-14]_rec[-15]_rec[-16]_rec[-23]_rec[-24]_rec[-25]_rec[-59]_rec[-63]_rec[-64]_rec[-87]_rec[-88]_rec[-96];DT(4,3,17)rec[-8]_rec[-9]_rec[-10]_rec[-17]_rec[-18]_rec[-19]_rec[-56]_rec[-77]_rec[-78]_rec[-83]_rec[-98]_rec[-99];DT(4,5)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(,17)rec[-6]_rec[-7]_rec[-8]_rec[-15]_rec[-16]_rec[-17]_rec[-56]_rec[-62]_rec[-63]_rec[-127]_rec[-132]_rec[-133]_rec[-149]_rec[-155]_rec[-156];DT(5,1,17)rec[-4]_rec[-11]_rec[-12]_rec[-13]_rec[-67]_rec[-71]_rec[-91]_rec[-105]_rec[-107];DT(6,4,17)rec[-2]_rec[-3]_rec[-76]_rec[-106]_rec[-108];DT(5,2,17)rec[-2]_rec[-3]_rec[-4]_rec[-9]_rec[-10]_rec[-11]_rec[-67]_rec[-76]_rec[-77]_rec[-115]_rec[-122]_rec[-123]_rec[-160]_rec[-169]_rec[-170];DT(5,7,17)rec[-1]_rec[-5]_rec[-6]_rec[-7]_rec[-55]_rec[-62]_rec[-82]_rec[-103]_rec[-104];OI(0)rec[-2]_rec[-3]_rec[-9]_rec[-10]_rec[-18]_rec[-19]_rec[-27]_rec[-28]_rec[-36]_rec[-37]_rec[-45]_rec[-46]_rec[-76]_rec[-77]_rec[-78]_rec[-79]_rec[-80]_rec[-81]_rec[-83]_rec[-84]_rec[-108]_rec[-109]_rec[-115]_rec[-116]_rec[-117]_rec[-175]_rec[-176]_rec[-177]_rec[-208]_rec[-209]_rec[-234]_rec[-235]_rec[-268]_rec[-269]_rec[-294]_rec[-295]_rec[-301]_rec[-302]_rec[-303]_rec[-361]_rec[-362]_rec[-363]_rec[-394]_rec[-395]_rec[-420]_rec[-421]_rec[-454]_rec[-455]_rec[-480]_rec[-481]_rec[-487]_rec[-48)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(8]_rec[-489]_rec[-547]_rec[-548]_rec[-549]_rec[-580]_rec[-581]_rec[-606]_rec[-607]_rec[-634]_rec[-635]_rec[-636]_rec[-637]_rec[-638]_rec[-639] + result.append(R"CRUMBLE_PART(
Honeycomb CodeYXZ-YZXMemory (V)7x9x3 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(0,1)1;Q(0,5)2;Q(0,6)3;Q(0,7)4;Q(1,0)5;Q(1,1)6;Q(1,2)7;Q(1,3)8;Q(1,4)9;Q(1,5)10;Q(1,6)11;Q(1,7)12;Q(1,8)13;Q(2,0)14;Q(2,1)15;Q(2,2)16;Q(2,3)17;Q(2,4)18;Q(2,5)19;Q(2,6)20;Q(2,7)21;Q(2,8)22;Q(3,0)23;Q(3,1)24;Q(3,2)25;Q(3,3)26;Q(3,4)27;Q(3,5)28;Q(3,6)29;Q(3,7)30;Q(3,8)31;Q(4,0)32;Q(4,1)33;Q(4,2)34;Q(4,3)35;Q(4,4)36;Q(4,5)37;Q(4,6)38;Q(4,7)39;Q(4,8)40;Q(5,0)41;Q(5,1)42;Q(5,2)43;Q(5,3)44;Q(5,4)45;Q(5,5)46;Q(5,6)47;Q(5,7)48;Q(5,8)49;Q(6,2)50;Q(6,3)51;Q(6,4)52;Q(6,8)53;POLYGON(0,0,1,0.25)11_20_21_22_13_12;POLYGON(0,0,1,0.25)17_26_27_28_19_18;POLYGON(0,0,1,0.25)5_14_15_16_7_6;POLYGON(0,0,1,0.25)29_38_39_40_31_30;POLYGON(0,0,1,0.25)35_44_45_46_37_36;POLYGON(0,0,1,0.25)48_47_53_49;POLYGON(0,0,1,0.25)8_9_10_2;POLYGON(0,0,1,0.25)23_32_33_34_25_24;POLYGON(0,0,1,0.25)42_41_50_43;POLYGON(0,1,0,0.25)9_18_19_20_11_10;POLYGON(0,1,0,0.25)15_24_25_26_17_16;POLYGON(0,1,0,0.25)27_36_37_38_29_28;POLYGON(0,1,0,0.25)21_30_31_22;POLYGON(0,1,0,0.25)39_48_49_40;POLYGON(0,1,0,0.25)45_52_4)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(7_46;POLYGON(0,1,0,0.25)4_12_13;POLYGON(0,1,0,0.25)1_6_7_8;POLYGON(0,1,0,0.25)33_42_43_44_35_34;POLYGON(0,1,0,0.25)14_5;POLYGON(0,1,0,0.25)32_23;POLYGON(1,0,0,0.25)2_10_11_12_4_3;POLYGON(1,0,0,0.25)19_28_29_30_21_20;POLYGON(1,0,0,0.25)7_16_17_18_9_8;POLYGON(1,0,0,0.25)25_34_35_36_27_26;POLYGON(1,0,0,0.25)43_50_51_52_45_44;POLYGON(1,0,0,0.25)37_46_47_48_39_38;POLYGON(1,0,0,0.25)22_13;POLYGON(1,0,0,0.25)40_31;POLYGON(1,0,0,0.25)53_49;POLYGON(1,0,0,0.25)0_5_6_1;POLYGON(1,0,0,0.25)14_23_24_15;POLYGON(1,0,0,0.25)32_41_42_33;TICK;RY_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_48_49_50_51_52_53;MARKY(0)24_25_27_28_30_31;TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,3,0)rec[-27];DT(2,3,0)rec[-26];DT(3,3,0)rec[-25];DT(4,3,0)rec[-24];DT(5,3,0)rec[-23];DT(6,3,0)rec[-22];DT(1,0,0)rec[-21];DT(2,0,0)rec[-20];DT()CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(3,0,0)rec[-19];DT(4,0,0)rec[-18];DT(5,0,0)rec[-17];DT(0,0,0)rec[-16];DT(1,2,0)rec[-15];DT(3,2,0)rec[-14];DT(5,2,0)rec[-13];DT(1,6,0)rec[-12];DT(2,6,0)rec[-11];DT(3,6,0)rec[-10];DT(4,6,0)rec[-9];DT(5,6,0)rec[-8];DT(0,6,0)rec[-7];DT(1,8,0)rec[-6];DT(3,8,0)rec[-5];DT(0,5,0)rec[-4];DT(2,5,0)rec[-3];DT(4,5,0)rec[-2];DT(5,8,0)rec[-1];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)24_25_27_28_30_31;TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(1,0,1)rec[-31]_rec[-32]_rec[-37];DT(3,0,1)rec[-29]_rec[-30]_rec[-36];DT(3,7,1)rec[-16]_rec[-25]_rec[-26]_rec[-39]_rec[-40];DT(4,7,1)rec[-13]_rec[-23]_rec[-24]_rec[-38]_rec[-54];DT(2,3,1)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-44]_rec[-45];DT(4,3,1)rec[-4]_rec[-9]_rec[-10]_rec[-34]_rec[-42]_rec[-43];DT(1,6,1)rec)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART([-3]_rec[-17]_rec[-21]_rec[-48]_rec[-52]_rec[-53];DT(3,6,1)rec[-2]_rec[-19]_rec[-20]_rec[-47]_rec[-50]_rec[-51];TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(2,8,2)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,2)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,2)rec[-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,2)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,2)rec[-14]_rec[-15]_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,2)rec[-13]_rec[-18]_rec[-19]_rec[-73]_rec[-78]_rec[-79];DT(2,1,2)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,2)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,2)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,2)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(rec[-72];DT(3,4,2)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71];DT(5,4,2)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)24_25_27_28_30_31;DT(0,6,3)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,3)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,3)rec[-16]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,3)rec[-15]_rec[-19]_rec[-20]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,3)rec[-14]_rec[-17]_rec[-18]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,3)rec[-13]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,3)rec[-2]_rec[-11]_rec[-12]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(DT(4,3,3)rec[-1]_rec[-9]_rec[-10]_rec[-37]_rec[-42]_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,4)rec[-15]_rec[-20]_rec[-21]_rec[-31]_rec[-39]_rec[-40]_rec[-157]_rec[-165]_rec[-166]_rec[-201]_rec[-206]_rec[-207];DT(3,2,4)rec[-14]_rec[-18]_rec[-19]_rec[-30]_rec[-37]_rec[-38]_rec[-156]_rec[-163]_rec[-164]_rec[-200]_rec[-204]_rec[-205];DT(1,8,4)rec[-6]_rec[-11]_rec[-12]_rec[-34]_rec[-35]_rec[-42]_rec[-160]_rec[-161]_rec[-168]_rec[-192]_rec[-197]_rec[-198];DT(3,8,4)rec[-5]_rec[-9]_rec[-10]_rec[-32]_rec[-33]_rec[-41]_rec[-158]_rec[-159]_rec[-167]_rec[-191]_rec[-195]_rec[-196];DT(2,5,4)rec[-3]_rec[-25]_rec[-26]_rec[-29]_rec[-45]_rec[-46]_rec[-155]_rec[-171]_rec[-172]_rec[-189]_rec[-211]_rec[-212];DT(4,5,4)rec[-2]_rec[-23]_rec[-24]_rec[-28]_rec[-43]_rec[-44]_rec[-154]_rec[-169]_rec[-170]_rec[-188]_rec[-209]_rec[-210];TICK;)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)24_25_27_28_30_31;DT(0,1,5)rec[-32]_rec[-33]_rec[-92]_rec[-93];DT(0,7,5)rec[-29]_rec[-30]_rec[-89]_rec[-90];DT(6,4,5)rec[-25]_rec[-27]_rec[-85]_rec[-87];DT(5,7,5)rec[-21]_rec[-22]_rec[-23]_rec[-81]_rec[-82]_rec[-83];DT(1,4,5)rec[-20]_rec[-28]_rec[-31]_rec[-80]_rec[-88]_rec[-91];DT(5,1,5)rec[-9]_rec[-24]_rec[-26]_rec[-69]_rec[-84]_rec[-86];DT(2,7,5)rec[-7]_rec[-8]_rec[-15]_rec[-67]_rec[-68]_rec[-75];DT(4,7,5)rec[-5]_rec[-6]_rec[-14]_rec[-65]_rec[-66]_rec[-74];DT(1,0,5)rec[-4]_rec[-12]_rec[-13]_rec[-64]_rec[-72]_rec[-73];DT(3,0,5)rec[-3]_rec[-10]_rec[-11]_rec[-63]_rec[-70]_rec[-71];DT(2,3,5)rec[-2]_rec[-18]_rec[-19]_rec[-62]_rec[-78]_rec[-79];DT(4,3,5)rec[-1]_rec[-16]_rec[-17]_rec[-61]_rec[-76]_rec[-77];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(2,0,6)rec[-31]_rec[-32]_rec[-37]_rec[-97]_rec[-157]_rec[-158];DT(4,0,6)rec[-29]_rec[-30]_rec[-36]_rec[-96]_rec[-155]_rec[-156];DT(2,7,6)rec[-16]_rec[-25]_rec[-26]_rec[-39]_rec[-40]_rec[-99]_rec[-100]_rec[-142]_rec[-151]_rec[-152];DT(4,7,6)rec[-13]_rec[-23]_rec[-24]_rec[-38]_rec[-54]_rec[-98]_rec[-114]_rec[-139]_rec[-149]_rec[-150];DT(2,1,6)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-44]_rec[-45]_rec[-95]_rec[-104]_rec[-105]_rec[-132]_rec[-137]_rec[-138];DT(4,1,6)rec[-4]_rec[-9]_rec[-10]_rec[-34]_rec[-42]_rec[-43]_rec[-94]_rec[-102]_rec[-103]_rec[-130]_rec[-135]_rec[-136];DT(1,4,6)rec[-3]_rec[-17]_rec[-21]_rec[-48]_rec[-52]_rec[-53]_rec[-108]_rec[-112]_rec[-113]_rec[-129]_rec[-143]_rec[-147];DT(3,4,6)rec[-2]_rec[-19]_rec[-20]_rec[-47]_rec[-50]_rec[-51]_rec[-107]_rec[-110]_rec[-111]_rec[-128]_rec[-145]_rec[-146];TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(;DT(1,2,7)rec[-15]_rec[-26]_rec[-27]_rec[-30]_rec[-34]_rec[-39]_rec[-156]_rec[-160]_rec[-165]_rec[-201]_rec[-212]_rec[-213];DT(3,2,7)rec[-14]_rec[-24]_rec[-25]_rec[-29]_rec[-37]_rec[-38]_rec[-155]_rec[-163]_rec[-164]_rec[-200]_rec[-210]_rec[-211];DT(5,2,7)rec[-13]_rec[-22]_rec[-23]_rec[-28]_rec[-35]_rec[-36]_rec[-154]_rec[-161]_rec[-162]_rec[-199]_rec[-208]_rec[-209];DT(0,5,7)rec[-4]_rec[-7]_rec[-12]_rec[-41]_rec[-42]_rec[-44]_rec[-167]_rec[-168]_rec[-170]_rec[-190]_rec[-193]_rec[-198];DT(2,5,7)rec[-3]_rec[-10]_rec[-11]_rec[-43]_rec[-47]_rec[-48]_rec[-169]_rec[-173]_rec[-174]_rec[-189]_rec[-196]_rec[-197];DT(4,5,7)rec[-2]_rec[-8]_rec[-9]_rec[-40]_rec[-45]_rec[-46]_rec[-166]_rec[-171]_rec[-172]_rec[-188]_rec[-194]_rec[-195];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(2,8,8)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,8)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,8)rec)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART([-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,8)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,8)rec[-14]_rec[-15]_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,8)rec[-13]_rec[-18]_rec[-19]_rec[-73]_rec[-78]_rec[-79];DT(2,1,8)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,8)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,8)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,8)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72];DT(3,4,8)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71];DT(5,4,8)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)24_25_27_28_30_31;DT(0,6,9)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,9)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,9)rec[-16]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,9)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART()rec[-15]_rec[-19]_rec[-20]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,9)rec[-14]_rec[-17]_rec[-18]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,9)rec[-13]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,9)rec[-2]_rec[-11]_rec[-12]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,9)rec[-1]_rec[-9]_rec[-10]_rec[-37]_rec[-42]_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,10)rec[-15]_rec[-20]_rec[-21]_rec[-31]_rec[-39]_rec[-40]_rec[-157]_rec[-165]_rec[-166]_rec[-201]_rec[-206]_rec[-207];DT(3,2,10)rec[-14]_rec[-18]_rec[-19]_rec[-30]_rec[-37]_rec[-38]_rec[-156]_rec[-163]_rec[-164]_rec[-200]_rec[-204]_rec[-205];DT(1,8,10)rec[-6]_rec[-11]_rec)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART([-12]_rec[-34]_rec[-35]_rec[-42]_rec[-160]_rec[-161]_rec[-168]_rec[-192]_rec[-197]_rec[-198];DT(3,8,10)rec[-5]_rec[-9]_rec[-10]_rec[-32]_rec[-33]_rec[-41]_rec[-158]_rec[-159]_rec[-167]_rec[-191]_rec[-195]_rec[-196];DT(2,5,10)rec[-3]_rec[-25]_rec[-26]_rec[-29]_rec[-45]_rec[-46]_rec[-155]_rec[-171]_rec[-172]_rec[-189]_rec[-211]_rec[-212];DT(4,5,10)rec[-2]_rec[-23]_rec[-24]_rec[-28]_rec[-43]_rec[-44]_rec[-154]_rec[-169]_rec[-170]_rec[-188]_rec[-209]_rec[-210];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)24_25_27_28_30_31;DT(0,1,11)rec[-32]_rec[-33]_rec[-92]_rec[-93];DT(0,7,11)rec[-29]_rec[-30]_rec[-89]_rec[-90];DT(6,4,11)rec[-25]_rec[-27]_rec[-85]_rec[-87];DT(5,7,11)rec[-21]_rec[-22]_rec[-23]_rec[-81]_rec[-82]_rec[-83];DT(1,4,11)rec[-20]_rec[-28]_rec[-31]_rec[-80]_rec[-88]_rec[-91];DT(5,1,11)rec[-9]_rec[-24]_rec[-26]_rec[-69]_rec[-84]_rec[-86];DT(2,7,11)rec[-7]_rec[-8]_rec[-15]_rec[-67]_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(rec[-68]_rec[-75];DT(4,7,11)rec[-5]_rec[-6]_rec[-14]_rec[-65]_rec[-66]_rec[-74];DT(1,0,11)rec[-4]_rec[-12]_rec[-13]_rec[-64]_rec[-72]_rec[-73];DT(3,0,11)rec[-3]_rec[-10]_rec[-11]_rec[-63]_rec[-70]_rec[-71];DT(2,3,11)rec[-2]_rec[-18]_rec[-19]_rec[-62]_rec[-78]_rec[-79];DT(4,3,11)rec[-1]_rec[-16]_rec[-17]_rec[-61]_rec[-76]_rec[-77];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(2,0,12)rec[-31]_rec[-32]_rec[-37]_rec[-97]_rec[-157]_rec[-158];DT(4,0,12)rec[-29]_rec[-30]_rec[-36]_rec[-96]_rec[-155]_rec[-156];DT(2,7,12)rec[-16]_rec[-25]_rec[-26]_rec[-39]_rec[-40]_rec[-99]_rec[-100]_rec[-142]_rec[-151]_rec[-152];DT(4,7,12)rec[-13]_rec[-23]_rec[-24]_rec[-38]_rec[-54]_rec[-98]_rec[-114]_rec[-139]_rec[-149]_rec[-150];DT(2,1,12)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-44]_rec[-45]_rec[-95]_rec[-104]_rec[-105]_rec[-132]_rec[-137]_rec[-138];DT(4,1,12)rec[-4]_rec[-9]_rec[-10]_rec[-3)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(4]_rec[-42]_rec[-43]_rec[-94]_rec[-102]_rec[-103]_rec[-130]_rec[-135]_rec[-136];DT(1,4,12)rec[-3]_rec[-17]_rec[-21]_rec[-48]_rec[-52]_rec[-53]_rec[-108]_rec[-112]_rec[-113]_rec[-129]_rec[-143]_rec[-147];DT(3,4,12)rec[-2]_rec[-19]_rec[-20]_rec[-47]_rec[-50]_rec[-51]_rec[-107]_rec[-110]_rec[-111]_rec[-128]_rec[-145]_rec[-146];TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,13)rec[-15]_rec[-26]_rec[-27]_rec[-30]_rec[-34]_rec[-39]_rec[-156]_rec[-160]_rec[-165]_rec[-201]_rec[-212]_rec[-213];DT(3,2,13)rec[-14]_rec[-24]_rec[-25]_rec[-29]_rec[-37]_rec[-38]_rec[-155]_rec[-163]_rec[-164]_rec[-200]_rec[-210]_rec[-211];DT(5,2,13)rec[-13]_rec[-22]_rec[-23]_rec[-28]_rec[-35]_rec[-36]_rec[-154]_rec[-161]_rec[-162]_rec[-199]_rec[-208]_rec[-209];DT(0,5,13)rec[-4]_rec[-7]_rec[-12]_rec[-41]_rec[-42]_rec[-44]_rec[-167]_rec[-168]_rec[-170]_rec[-190]_rec[-193]_rec[-198];DT(2,5,13)rec[-3]_rec[-10]_rec[-11]_rec[-43)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(]_rec[-47]_rec[-48]_rec[-169]_rec[-173]_rec[-174]_rec[-189]_rec[-196]_rec[-197];DT(4,5,13)rec[-2]_rec[-8]_rec[-9]_rec[-40]_rec[-45]_rec[-46]_rec[-166]_rec[-171]_rec[-172]_rec[-188]_rec[-194]_rec[-195];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(2,8,14)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,14)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,14)rec[-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,14)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,14)rec[-14]_rec[-15]_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,14)rec[-13]_rec[-18]_rec[-19]_rec[-73]_rec[-78]_rec[-79];DT(2,1,14)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,14)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,14)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,14)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72];DT(3,4,14)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70])CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_rec[-71];DT(5,4,14)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44_48_49;MARKX(0)24_25_27_28_30_31;DT(0,6,15)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,15)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,15)rec[-17]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,15)rec[-16]_rec[-20]_rec[-21]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,15)rec[-15]_rec[-18]_rec[-19]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,15)rec[-14]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,15)rec[-3]_rec[-12]_rec[-13]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,15)rec[-2]_rec[-10]_rec[-11]_rec[-37]_rec[-42])CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MY_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_48_49_50_51_52_53;MARKY(0)24_25_27_28_30_31;DT(2,0,16)rec[-40]_rec[-49]_rec[-59]_rec[-118]_rec[-119];DT(1,2,16)rec[-38]_rec[-39]_rec[-40]_rec[-47]_rec[-48]_rec[-49]_rec[-59]_rec[-67]_rec[-68]_rec[-184]_rec[-192]_rec[-193]_rec[-228]_rec[-233]_rec[-234];DT(1,4,16)rec[-34]_rec[-35]_rec[-36]_rec[-43]_rec[-44]_rec[-45]_rec[-70]_rec[-74]_rec[-75]_rec[-90]_rec[-104]_rec[-108];DT(1,8,16)rec[-32]_rec[-33]_rec[-34]_rec[-41]_rec[-42]_rec[-43]_rec[-62]_rec[-63]_rec[-70]_rec[-187]_rec[-188]_rec[-195]_rec[-219]_rec[-224]_rec[-225];DT(2,1,16)rec[-28]_rec[-29]_rec[-30]_rec[-37]_rec[-38]_rec[-39]_rec[-57]_rec[-66]_rec[-67]_rec[-93]_rec[-98]_rec[-99];DT(2,5,16)rec[-26]_rec[-27]_rec[-28]_rec[-35]_rec[-36]_rec[-37]_rec[-57]_rec[-73]_rec[-74]_rec[-182]_rec[-198]_rec[-199]_rec[-216]_rec[-238]_rec[-239];DT(2,7,16)rec[-2)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(3]_rec[-24]_rec[-32]_rec[-33]_rec[-61]_rec[-62]_rec[-103]_rec[-112]_rec[-113];DT(4,0,16)rec[-22]_rec[-31]_rec[-58]_rec[-116]_rec[-117];DT(3,2,16)rec[-20]_rec[-21]_rec[-22]_rec[-29]_rec[-30]_rec[-31]_rec[-58]_rec[-65]_rec[-66]_rec[-183]_rec[-190]_rec[-191]_rec[-227]_rec[-231]_rec[-232];DT(3,4,16)rec[-16]_rec[-17]_rec[-18]_rec[-25]_rec[-26]_rec[-27]_rec[-69]_rec[-72]_rec[-73]_rec[-89]_rec[-106]_rec[-107];DT(3,8,16)rec[-14]_rec[-15]_rec[-16]_rec[-23]_rec[-24]_rec[-25]_rec[-60]_rec[-61]_rec[-69]_rec[-185]_rec[-186]_rec[-194]_rec[-218]_rec[-222]_rec[-223];DT(4,1,16)rec[-10]_rec[-11]_rec[-12]_rec[-19]_rec[-20]_rec[-21]_rec[-56]_rec[-64]_rec[-65]_rec[-91]_rec[-96]_rec[-97];DT(4,5,16)rec[-8]_rec[-9]_rec[-10]_rec[-17]_rec[-18]_rec[-19]_rec[-56]_rec[-71]_rec[-72]_rec[-181]_rec[-196]_rec[-197]_rec[-215]_rec[-236]_rec[-237];DT(4,7,16)rec[-5]_rec[-6]_rec[-14]_rec[-15]_rec[-55]_rec[-60]_rec[-100]_rec[-110]_rec[-111];OI(0)rec[-23]_rec[-24]_rec[-26]_rec[-27]_rec[-29]_rec[-30]_rec[-61]_rec[-66]_rec[-73]_rec[-98]_rec[-107]_rec)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART([-112]_rec[-117]_rec[-158]_rec[-167]_rec[-172]_rec[-177]_rec[-186]_rec[-191]_rec[-198]_rec[-246]_rec[-251]_rec[-258]_rec[-284]_rec[-293]_rec[-298]_rec[-303]_rec[-344]_rec[-353]_rec[-358]_rec[-363]_rec[-372]_rec[-377]_rec[-384]_rec[-432]_rec[-437]_rec[-444]_rec[-470]_rec[-479]_rec[-484]_rec[-489]_rec[-530]_rec[-539]_rec[-544]_rec[-549]_rec[-558]_rec[-563]_rec[-570] + result.append(R"CRUMBLE_PART(
x
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( "> + result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( "> + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( Open Circuit + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(0,1)1;Q(0,2)2;Q(0,3)3;Q(0,4)4;Q(1,0)5;Q(1,1)6;Q(1,2)7;Q(1,3)8;Q(1,4)9;Q(2,0)10;Q(2,1)11;Q(2,2)12;Q(2,3)13;Q(2,4)14;Q(3,0)15;Q(3,1)16;Q(3,2)17;Q(3,3)18;Q(3,4)19;Q(4,0)20;Q(4,1)21;Q(4,2)22;Q(4,3)23;Q(4,4)24;POLYGON(0,0,1,0.25)23_24;POLYGON(0,0,1,0.25)18_19;POLYGON(0,0,1,0.25)13_14;POLYGON(0,0,1,0.25)8_9;POLYGON(0,0,1,0.25)3_4;POLYGON(0,0,1,0.25)22_23;POLYGON(0,0,1,0.25)17_18;POLYGON(0,0,1,0.25)12_13;POLYGON(0,0,1,0.25)7_8;POLYGON(0,0,1,0.25)2_3;POLYGON(0,0,1,0.25)21_22;POLYGON(0,0,1,0.25)16_17;POLYGON(0,0,1,0.25)11_12;POLYGON(0,0,1,0.25)6_7;POLYGON(0,0,1,0.25)1_2;POLYGON(0,0,1,0.25)20_21;POLYGON(0,0,1,0.25)15_16;POLYGON(0,0,1,0.25)10_11;POLYGON(0,0,1,0.25)5_6;POLYGON(0,0,1,0.25)0_1;POLYGON(1,0,0,0.25)24_19;POLYGON(1,0,0,0.25)19_14;POLYGON(1,0,0,0.25)14_9;POLYGON(1,0,0,0.25)9_4;POLYGON(1,0,0,0.25)23_18;POLYGON(1,0,0,0.25)18_13;POLYGON(1,0,0,0.25)13_8;POLYGON(1,0,0,0.25)8_3;POLYGON(1,0,0,0.25)22_17;POLYGON(1,0,0,0.25)17_12;POLYGON(1,0,0,0.25)12_7;POLYGON(1,0,0,0.25)7_2;P)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(OLYGON(1,0,0,0.25)21_16;POLYGON(1,0,0,0.25)16_11;POLYGON(1,0,0,0.25)11_6;POLYGON(1,0,0,0.25)6_1;POLYGON(1,0,0,0.25)20_15;POLYGON(1,0,0,0.25)15_10;POLYGON(1,0,0,0.25)10_5;POLYGON(1,0,0,0.25)5_0;TICK;R_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24;MARKZ(0)1_2_6_7_11_12_16_17_21_22;TICK;TICK;MZZ_0_1_5_6_10_11_15_16_20_21_2_3_7_8_12_13_17_18_22_23;DT(0,0,0)rec[-10];DT(1,0,0)rec[-9];DT(2,0,0)rec[-8];DT(3,0,0)rec[-7];DT(4,0,0)rec[-6];DT(0,2,0)rec[-5];DT(1,2,0)rec[-4];DT(2,2,0)rec[-3];DT(3,2,0)rec[-2];DT(4,2,0)rec[-1];TICK;MXX_0_5_1_6_2_7_3_8_4_9_10_15_11_16_12_17_13_18_14_19;MARKX(1)10_11_12_13_14_15_16_17_18_19;TICK;MZZ_1_2_6_7_11_12_16_17_21_22_3_4_8_9_13_14_18_19_23_24;MARKZ(0)1_2_6_7_11_12_16_17_21_22;DT(4,1,1)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10];DT(4,3,1)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5];TICK;MXX_5_10_6_11_7_12_8_13_9_14_15_20_16_21_17_22_18_23_19_24;TICK;TICK;MZZ_0_1_5_6_10_11_15_16_20_21_2_3_7_8_12_13_17_18_22_23;DT(4,0,2)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47])CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_rec[-48]_rec[-49]_rec[-50];DT(4,2,2)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MXX_0_5_1_6_2_7_3_8_4_9_10_15_11_16_12_17_13_18_14_19;MARKX(1)10_11_12_13_14_15_16_17_18_19;DT(0,4,3)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(2,4,3)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MZZ_1_2_6_7_11_12_16_17_21_22_3_4_8_9_13_14_18_19_23_24;DT(4,1,4)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(4,3,4)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MXX_5_10_6_11_7_12_8_13_9_14_15_20_16_21_17_22_18_23_19_24;DT(1,4,5)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(3,4,5)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;TICK;MZZ_0_1_5_6_10_11_15_16_20_21_2_3_7_8_12_13_17_18_22_23;DT(4,0,6)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-1)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(0]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(4,2,6)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MXX_0_5_1_6_2_7_3_8_4_9_10_15_11_16_12_17_13_18_14_19;DT(0,4,7)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(2,4,7)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MZZ_1_2_6_7_11_12_16_17_21_22_3_4_8_9_13_14_18_19_23_24;DT(4,1,8)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(4,3,8)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;MXX_5_10_6_11_7_12_8_13_9_14_15_20_16_21_17_22_18_23_19_24;DT(1,4,9)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-46]_rec[-47]_rec[-48]_rec[-49]_rec[-50];DT(3,4,9)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];TICK;TICK;M_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24;DT(4,0,10)rec[-4]_rec[-5]_rec[-9]_rec[-10]_rec[-14]_re)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(c[-15]_rec[-19]_rec[-20]_rec[-24]_rec[-25]_rec[-61]_rec[-62]_rec[-63]_rec[-64]_rec[-65];DT(4,1,10)rec[-3]_rec[-4]_rec[-8]_rec[-9]_rec[-13]_rec[-14]_rec[-18]_rec[-19]_rec[-23]_rec[-24]_rec[-41]_rec[-42]_rec[-43]_rec[-44]_rec[-45];DT(4,2,10)rec[-2]_rec[-3]_rec[-7]_rec[-8]_rec[-12]_rec[-13]_rec[-17]_rec[-18]_rec[-22]_rec[-23]_rec[-56]_rec[-57]_rec[-58]_rec[-59]_rec[-60];DT(4,3,10)rec[-1]_rec[-2]_rec[-6]_rec[-7]_rec[-11]_rec[-12]_rec[-16]_rec[-17]_rec[-21]_rec[-22]_rec[-36]_rec[-37]_rec[-38]_rec[-39]_rec[-40];OI(0)rec[-5]_rec[-10]_rec[-15]_rec[-20]_rec[-25] )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( Open Circuit + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(1,0)1;Q(1,1)2;Q(1,2)3;Q(2,0)4;Q(2,1)5;Q(2,2)6;Q(2,3)7;Q(3,0)8;Q(3,1)9;Q(3,2)10;Q(3,3)11;Q(3,4)12;Q(3,5)13;Q(4,0)14;Q(4,1)15;Q(4,2)16;Q(4,3)17;Q(4,4)18;Q(4,5)19;Q(4,6)20;Q(5,0)21;Q(5,1)22;Q(5,2)23;Q(5,3)24;Q(5,4)25;Q(5,5)26;Q(6,0)27;Q(6,1)28;Q(6,2)29;Q(6,3)30;Q(6,4)31;Q(7,0)32;Q(7,1)33;Q(7,2)34;Q(8,0)35;Q(8,1)36;POLYGON(0,1,1,0.25)18_26_30_24;POLYGON(0,1,1,0.25)28_34_35_32;POLYGON(0,1,1,0.25)10_16_22_14_8_5;POLYGON(1,0,1,0.25)12_18_24_16_10_7;POLYGON(1,0,1,0.25)22_28_32_14;POLYGON(1,0,1,0.25)2_5_8_0;POLYGON(1,1,0,0.25)20_26_18_12;POLYGON(1,1,0,0.25)24_30_34_28_22_16;POLYGON(1,1,0,0.25)7_10_5_2;TICK;R_0_2_5_8_14_22_28_32_35_34_24_30_10_16_7_12_18_26_20;MARKZ(0)24_30_34_28_22_16;TICK;R_4_27_36_29_6_15_17_31_19;RX_1_21_33_23_3_9_11_25_13;MARKX(1)11;MARKZ(0)31_27;TICK;CX_1_4_21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;CX_1_2_21_22_33_34_23_24_9_10_11_12_25_26_4_5_27_28_29_30_6_7_15_16_17_18_19_20;TICK;CX_1_0_21_14_33_28_23_16_9_5_11_7_25_18_4_8_27_32_29_34_6_10_15_2)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(2_17_24_19_26;TICK;CX_33_32_23_22_3_2_9_8_11_10_25_24_13_12_36_35_29_28_6_5_15_14_17_16_31_30_19_18;TICK;CX_32_33_22_23_2_3_8_9_10_11_24_25_12_13_35_36_28_29_5_6_14_15_16_17_30_31_18_19;TICK;CX_0_1_14_21_28_33_16_23_5_9_7_11_18_25_8_4_32_27_34_29_10_6_22_15_24_17_26_19;TICK;CX_2_1_22_21_34_33_24_23_10_9_12_11_26_25_5_4_28_27_30_29_7_6_16_15_18_17_20_19;TICK;CX_1_4_21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;M_4_27_36_29_6_15_17_31_19;MX_1_21_33_23_3_9_11_25_13;MARKX(1)13_9;MARKZ(0)29;DT(2,0,0)rec[-18];DT(6,0,0)rec[-17];DT(8,1,0)rec[-16];DT(6,2,0)rec[-15];DT(2,2,0)rec[-14];DT(4,1,0)rec[-13];DT(4,3,0)rec[-12];DT(6,4,0)rec[-11];DT(4,5,0)rec[-10];TICK;R_4_27_36_29_6_15_17_31_19;RX_1_21_33_23_3_9_11_25_13;MARKX(1)11;MARKZ(3)15;TICK;CX_1_4_21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;CX_1_2_21_22_33_34_23_24_9_10_11_12_25_26_4_5_27_28_29_30_6_7_15_16_17_18_19_20;TICK;CX_1_0_21_14_33_28_23_16_9_5_11_7_25_18_4_8_27_32_29_34_6_10_15_22_17_24_19_26;TICK;CX_33_32_23_22_3_2_9_8_11_10_25_24_13_12_36_35_29_28_6_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(5_15_14_17_16_31_30_19_18;TICK;CX_32_33_22_23_2_3_8_9_10_11_24_25_12_13_35_36_28_29_5_6_14_15_16_17_30_31_18_19;TICK;CX_0_1_14_21_28_33_16_23_5_9_7_11_18_25_8_4_32_27_34_29_10_6_22_15_24_17_26_19;TICK;CX_2_1_22_21_34_33_24_23_10_9_12_11_26_25_5_4_28_27_30_29_7_6_16_15_18_17_20_19;TICK;CX_1_4_21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;M_4_27_36_29_6_15_17_31_19;MX_1_21_33_23_3_9_11_25_13;MARKX(1)11;MARKZ(3)15;DT(2,0,1)rec[-18]_rec[-36];DT(6,0,1)rec[-17]_rec[-35];DT(8,1,1)rec[-16]_rec[-34];DT(6,2,1)rec[-15]_rec[-33];DT(2,2,1)rec[-14]_rec[-32];DT(4,1,1)rec[-13]_rec[-31];DT(4,3,1)rec[-12]_rec[-30];DT(6,4,1)rec[-11]_rec[-29];DT(4,5,1)rec[-10]_rec[-28];DT(1,2,1)rec[-9]_rec[-23]_rec[-27];DT(5,2,1)rec[-8]_rec[-24]_rec[-26];DT(7,1,1)rec[-7];DT(5,4,1)rec[-6]_rec[-20]_rec[-26];DT(1,0,1)rec[-5]_rec[-27];DT(3,3,1)rec[-4]_rec[-21];DT(3,5,1)rec[-3]_rec[-19]_rec[-22];DT(5,3,1)rec[-2]_rec[-24];DT(3,4,1)rec[-1]_rec[-21];TICK;R_4_27_36_29_6_15_17_31_19;RX_1_21_33_23_3_9_11_25_13;MARKZ(2)27;MARKZ(3)17;TICK;CX_1_4_21_27_33)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;CX_1_2_21_22_33_34_23_24_9_10_11_12_25_26_4_5_27_28_29_30_6_7_15_16_17_18_19_20;TICK;CX_1_0_21_14_33_28_23_16_9_5_11_7_25_18_4_8_27_32_29_34_6_10_15_22_17_24_19_26;TICK;CX_33_32_23_22_3_2_9_8_11_10_25_24_13_12_36_35_29_28_6_5_15_14_17_16_31_30_19_18;TICK;CX_32_33_22_23_2_3_8_9_10_11_24_25_12_13_35_36_28_29_5_6_14_15_16_17_30_31_18_19;TICK;CX_0_1_14_21_28_33_16_23_5_9_7_11_18_25_8_4_32_27_34_29_10_6_22_15_24_17_26_19;TICK;CX_2_1_22_21_34_33_24_23_10_9_12_11_26_25_5_4_28_27_30_29_7_6_16_15_18_17_20_19;TICK;CX_1_4_21_27_33_36_23_29_3_6_9_15_11_17_25_31_13_19;TICK;M_4_27_36_29_6_15_17_31_19;MX_1_21_33_23_3_9_11_25_13;MARKZ(3)15;DT(2,0,2)rec[-18]_rec[-36];DT(6,0,2)rec[-17]_rec[-35];DT(8,1,2)rec[-16]_rec[-34];DT(6,2,2)rec[-15]_rec[-33];DT(2,2,2)rec[-14]_rec[-32];DT(4,1,2)rec[-13]_rec[-31];DT(4,3,2)rec[-12]_rec[-30];DT(6,4,2)rec[-11]_rec[-29];DT(4,5,2)rec[-10]_rec[-28];DT(1,2,2)rec[-9]_rec[-23]_rec[-27];DT(5,2,2)rec[-8]_rec[-24]_rec[-26];DT(7,1,2)rec[-7];DT(5,4,2)rec[-6]_rec)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART([-20]_rec[-26];DT(1,0,2)rec[-5]_rec[-27];DT(3,3,2)rec[-4]_rec[-21];DT(3,5,2)rec[-3]_rec[-19]_rec[-22];DT(5,3,2)rec[-2]_rec[-24];DT(3,4,2)rec[-1]_rec[-21];TICK;M_0_2_5_8_14_22_28_32_35_34_24_30_10_16_7_12_18_26_20;MARKZ(2)28_22_14_32;DT(2,0,3)rec[-16]_rec[-17]_rec[-18]_rec[-19]_rec[-37];DT(6,0,3)rec[-12]_rec[-13]_rec[-14]_rec[-15]_rec[-36];DT(8,1,3)rec[-10]_rec[-11]_rec[-12]_rec[-13]_rec[-35];DT(6,2,3)rec[-6]_rec[-8]_rec[-9]_rec[-10]_rec[-13]_rec[-14]_rec[-34];DT(4,1,3)rec[-6]_rec[-7]_rec[-14]_rec[-15]_rec[-16]_rec[-17]_rec[-32];DT(2,2,3)rec[-5]_rec[-7]_rec[-17]_rec[-18]_rec[-33];DT(4,3,3)rec[-3]_rec[-4]_rec[-5]_rec[-6]_rec[-7]_rec[-9]_rec[-31];DT(6,4,3)rec[-2]_rec[-3]_rec[-8]_rec[-9]_rec[-30];DT(4,5,3)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-29];OI(0)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-11]_rec[-12]_rec[-13]_rec[-14]_rec[-15]_rec[-16]_rec[-17]_rec[-18]_rec[-19] )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( Open Circuit + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(0,1)1;Q(0,5)2;Q(0,6)3;Q(0,7)4;Q(1,0)5;Q(1,1)6;Q(1,2)7;Q(1,3)8;Q(1,4)9;Q(1,5)10;Q(1,6)11;Q(1,7)12;Q(1,8)13;Q(2,0)14;Q(2,1)15;Q(2,2)16;Q(2,3)17;Q(2,4)18;Q(2,5)19;Q(2,6)20;Q(2,7)21;Q(2,8)22;Q(3,0)23;Q(3,1)24;Q(3,2)25;Q(3,3)26;Q(3,4)27;Q(3,5)28;Q(3,6)29;Q(3,7)30;Q(3,8)31;Q(4,0)32;Q(4,1)33;Q(4,2)34;Q(4,3)35;Q(4,4)36;Q(4,5)37;Q(4,6)38;Q(4,7)39;Q(4,8)40;Q(5,0)41;Q(5,1)42;Q(5,2)43;Q(5,3)44;Q(5,4)45;Q(5,5)46;Q(5,6)47;Q(5,7)48;Q(5,8)49;Q(6,2)50;Q(6,3)51;Q(6,4)52;Q(6,8)53;POLYGON(0,0,1,0.25)11_20_21_22_13_12;POLYGON(0,0,1,0.25)17_26_27_28_19_18;POLYGON(0,0,1,0.25)5_14_15_16_7_6;POLYGON(0,0,1,0.25)29_38_39_40_31_30;POLYGON(0,0,1,0.25)35_44_45_46_37_36;POLYGON(0,0,1,0.25)48_47_53_49;POLYGON(0,0,1,0.25)8_9_10_2;POLYGON(0,0,1,0.25)23_32_33_34_25_24;POLYGON(0,0,1,0.25)42_41_50_43;POLYGON(0,1,0,0.25)9_18_19_20_11_10;POLYGON(0,1,0,0.25)15_24_25_26_17_16;POLYGON(0,1,0,0.25)27_36_37_38_29_28;POLYGON(0,1,0,0.25)21_30_31_22;POLYGON(0,1,0,0.25)39_48_49_40;POLYGON(0,1,0,0.25)45_52_47_46;POL)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(YGON(0,1,0,0.25)4_12_13;POLYGON(0,1,0,0.25)1_6_7_8;POLYGON(0,1,0,0.25)33_42_43_44_35_34;POLYGON(0,1,0,0.25)14_5;POLYGON(0,1,0,0.25)32_23;POLYGON(1,0,0,0.25)2_10_11_12_4_3;POLYGON(1,0,0,0.25)19_28_29_30_21_20;POLYGON(1,0,0,0.25)7_16_17_18_9_8;POLYGON(1,0,0,0.25)25_34_35_36_27_26;POLYGON(1,0,0,0.25)43_50_51_52_45_44;POLYGON(1,0,0,0.25)37_46_47_48_39_38;POLYGON(1,0,0,0.25)22_13;POLYGON(1,0,0,0.25)40_31;POLYGON(1,0,0,0.25)53_49;POLYGON(1,0,0,0.25)0_5_6_1;POLYGON(1,0,0,0.25)14_23_24_15;POLYGON(1,0,0,0.25)32_41_42_33;TICK;R_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_48_49_50_51_52_53;MARKZ(0)8_9_17_18_26_27_35_36_44_45_51_52;TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;MARKY(0)8_9_17_18_26_27_35_36_44_45_51_52;TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)8_17_26_35_44_51;DT(0,0,0)rec[-32]_rec[-33]_rec[-49];DT(0,6,0)rec[-29]_rec[-30]_rec[-40];DT(6,3,0)rec[-25]_rec[-27]_rec[-55];DT(5,8,0)rec[-21]_rec[-22]_rec[-23]_rec[-34]_rec[-41];DT(0,5,0)rec[-20]_rec[-28]_rec[-31]_rec[-37]_rec[-60];DT(5,2,0)rec[-9]_rec[-24]_rec[-26]_rec[-46]_rec[-50];DT(1,8,0)rec[-7]_rec[-8]_rec[-15]_rec[-39]_rec[-44]_rec[-45];DT(3,8,0)rec[-5]_rec[-6]_rec[-14]_rec[-38]_rec[-42]_rec[-43];DT(1,2,0)rec[-4]_rec[-12]_rec[-13]_rec[-48]_rec[-53]_rec[-54];DT(3,2,0)rec[-3]_rec[-10]_rec[-11]_rec[-47]_rec[-51]_rec[-52];DT(2,5,0)rec[-2]_rec[-18]_rec[-19]_rec[-36]_rec[-58]_rec[-59];DT(4,5,0)rec[-1]_rec[-16]_rec[-17]_rec[-35]_rec[-56]_rec[-57];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,1)rec[-15]_rec[-26]_rec[-27]_rec[-30]_rec[-34]_rec[-39]_rec[-108]_rec[-119]_rec[-120];DT(3,2,1)rec[-14]_rec[-24]_rec[-25]_rec[-29]_rec[-37]_rec[-38]_rec[-107]_rec[-117]_rec[-118];DT(5,2,1)rec[-13]_rec[-22]_rec[-23]_rec[-28]_rec[-35]_rec[-36]_rec[-106]_rec[-115]_rec[-116];DT(0,5,1)rec[-4]_rec[-7]_rec[-12]_rec[-41]_rec[-42]_rec[-44]_rec[-97]_rec[-100]_rec[-105];DT(2,5,1)rec[-3]_rec[-10]_rec[-11]_rec[-43]_rec[-47]_rec[-48]_rec[-96]_rec[-103]_rec[-104];DT(4,5,1)rec[-2]_rec[-8]_rec[-9]_rec[-40]_rec[-45]_rec[-46]_rec[-95]_rec[-101]_rec[-102];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;DT(2,8,2)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,2)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,2)rec[-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,2)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,2)rec[-14]_rec[-15]_rec[-17)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(]_rec[-74]_rec[-75]_rec[-77];DT(4,7,2)rec[-13]_rec[-18]_rec[-19]_rec[-73]_rec[-78]_rec[-79];DT(2,1,2)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,2)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,2)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,2)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72];DT(3,4,2)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71];DT(5,4,2)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)8_17_26_35_44_51;DT(0,6,3)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,3)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,3)rec[-16]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,3)rec[-15]_rec[-19]_rec[-20]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,3)rec[-14])CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_rec[-17]_rec[-18]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,3)rec[-13]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,3)rec[-2]_rec[-11]_rec[-12]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,3)rec[-1]_rec[-9]_rec[-10]_rec[-37]_rec[-42]_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,4)rec[-15]_rec[-20]_rec[-21]_rec[-31]_rec[-39]_rec[-40]_rec[-157]_rec[-165]_rec[-166]_rec[-201]_rec[-206]_rec[-207];DT(3,2,4)rec[-14]_rec[-18]_rec[-19]_rec[-30]_rec[-37]_rec[-38]_rec[-156]_rec[-163]_rec[-164]_rec[-200]_rec[-204]_rec[-205];DT(1,8,4)rec[-6]_rec[-11]_rec[-12]_rec[-34]_rec[-35]_rec[-42]_rec[-160]_rec[-161]_rec[-168]_rec[-192]_rec[-197]_rec[-198];DT(3,8,4)rec[-5]_rec[-9]_rec[-10]_rec[-32)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(]_rec[-33]_rec[-41]_rec[-158]_rec[-159]_rec[-167]_rec[-191]_rec[-195]_rec[-196];DT(2,5,4)rec[-3]_rec[-25]_rec[-26]_rec[-29]_rec[-45]_rec[-46]_rec[-155]_rec[-171]_rec[-172]_rec[-189]_rec[-211]_rec[-212];DT(4,5,4)rec[-2]_rec[-23]_rec[-24]_rec[-28]_rec[-43]_rec[-44]_rec[-154]_rec[-169]_rec[-170]_rec[-188]_rec[-209]_rec[-210];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)8_17_26_35_44_51;DT(0,1,5)rec[-32]_rec[-33]_rec[-92]_rec[-93];DT(0,7,5)rec[-29]_rec[-30]_rec[-89]_rec[-90];DT(6,4,5)rec[-25]_rec[-27]_rec[-85]_rec[-87];DT(5,7,5)rec[-21]_rec[-22]_rec[-23]_rec[-81]_rec[-82]_rec[-83];DT(1,4,5)rec[-20]_rec[-28]_rec[-31]_rec[-80]_rec[-88]_rec[-91];DT(5,1,5)rec[-9]_rec[-24]_rec[-26]_rec[-69]_rec[-84]_rec[-86];DT(2,7,5)rec[-7]_rec[-8]_rec[-15]_rec[-67]_rec[-68]_rec[-75];DT(4,7,5)rec[-5]_rec[-6]_rec[-14]_rec[-65]_rec[-66]_rec[-74];DT(1,0,5)rec[-4]_rec[-12]_rec[-13]_rec[-64]_rec[-72]_rec[-73];DT(3)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(,0,5)rec[-3]_rec[-10]_rec[-11]_rec[-63]_rec[-70]_rec[-71];DT(2,3,5)rec[-2]_rec[-18]_rec[-19]_rec[-62]_rec[-78]_rec[-79];DT(4,3,5)rec[-1]_rec[-16]_rec[-17]_rec[-61]_rec[-76]_rec[-77];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;DT(2,0,6)rec[-31]_rec[-32]_rec[-37]_rec[-97]_rec[-157]_rec[-158];DT(4,0,6)rec[-29]_rec[-30]_rec[-36]_rec[-96]_rec[-155]_rec[-156];DT(2,7,6)rec[-16]_rec[-25]_rec[-26]_rec[-39]_rec[-40]_rec[-99]_rec[-100]_rec[-142]_rec[-151]_rec[-152];DT(4,7,6)rec[-13]_rec[-23]_rec[-24]_rec[-38]_rec[-54]_rec[-98]_rec[-114]_rec[-139]_rec[-149]_rec[-150];DT(2,1,6)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-44]_rec[-45]_rec[-95]_rec[-104]_rec[-105]_rec[-132]_rec[-137]_rec[-138];DT(4,1,6)rec[-4]_rec[-9]_rec[-10]_rec[-34]_rec[-42]_rec[-43]_rec[-94]_rec[-102]_rec[-103]_rec[-130]_rec[-135]_rec[-136];DT(1,4,6)rec[-3]_rec[-17]_rec[-21]_rec[-48]_rec[-52]_rec[-53]_rec[-108]_rec[-)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(112]_rec[-113]_rec[-129]_rec[-143]_rec[-147];DT(3,4,6)rec[-2]_rec[-19]_rec[-20]_rec[-47]_rec[-50]_rec[-51]_rec[-107]_rec[-110]_rec[-111]_rec[-128]_rec[-145]_rec[-146];TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,7)rec[-15]_rec[-26]_rec[-27]_rec[-30]_rec[-34]_rec[-39]_rec[-156]_rec[-160]_rec[-165]_rec[-201]_rec[-212]_rec[-213];DT(3,2,7)rec[-14]_rec[-24]_rec[-25]_rec[-29]_rec[-37]_rec[-38]_rec[-155]_rec[-163]_rec[-164]_rec[-200]_rec[-210]_rec[-211];DT(5,2,7)rec[-13]_rec[-22]_rec[-23]_rec[-28]_rec[-35]_rec[-36]_rec[-154]_rec[-161]_rec[-162]_rec[-199]_rec[-208]_rec[-209];DT(0,5,7)rec[-4]_rec[-7]_rec[-12]_rec[-41]_rec[-42]_rec[-44]_rec[-167]_rec[-168]_rec[-170]_rec[-190]_rec[-193]_rec[-198];DT(2,5,7)rec[-3]_rec[-10]_rec[-11]_rec[-43]_rec[-47]_rec[-48]_rec[-169]_rec[-173]_rec[-174]_rec[-189]_rec[-196]_rec[-197];DT(4,5,7)rec[-2]_rec[-8]_rec[-9]_rec[-40]_rec[-45]_rec[-46]_rec[-166]_rec[-171]_rec[)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(-172]_rec[-188]_rec[-194]_rec[-195];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;DT(2,8,8)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,8)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,8)rec[-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,8)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,8)rec[-14]_rec[-15]_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,8)rec[-13]_rec[-18]_rec[-19]_rec[-73]_rec[-78]_rec[-79];DT(2,1,8)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,8)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,8)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,8)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72];DT(3,4,8)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71];DT(5,4,8)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)8_17_26_35_44_51;DT(0,6,9)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,9)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,9)rec[-16]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,9)rec[-15]_rec[-19]_rec[-20]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,9)rec[-14]_rec[-17]_rec[-18]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,9)rec[-13]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,9)rec[-2]_rec[-11]_rec[-12]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,9)rec[-1]_rec[-9]_rec[-10]_rec[-37]_rec[-42]_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_3)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(9_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,10)rec[-15]_rec[-20]_rec[-21]_rec[-31]_rec[-39]_rec[-40]_rec[-157]_rec[-165]_rec[-166]_rec[-201]_rec[-206]_rec[-207];DT(3,2,10)rec[-14]_rec[-18]_rec[-19]_rec[-30]_rec[-37]_rec[-38]_rec[-156]_rec[-163]_rec[-164]_rec[-200]_rec[-204]_rec[-205];DT(1,8,10)rec[-6]_rec[-11]_rec[-12]_rec[-34]_rec[-35]_rec[-42]_rec[-160]_rec[-161]_rec[-168]_rec[-192]_rec[-197]_rec[-198];DT(3,8,10)rec[-5]_rec[-9]_rec[-10]_rec[-32]_rec[-33]_rec[-41]_rec[-158]_rec[-159]_rec[-167]_rec[-191]_rec[-195]_rec[-196];DT(2,5,10)rec[-3]_rec[-25]_rec[-26]_rec[-29]_rec[-45]_rec[-46]_rec[-155]_rec[-171]_rec[-172]_rec[-189]_rec[-211]_rec[-212];DT(4,5,10)rec[-2]_rec[-23]_rec[-24]_rec[-28]_rec[-43]_rec[-44]_rec[-154]_rec[-169]_rec[-170]_rec[-188]_rec[-209]_rec[-210];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)8_17_26_35_44_51;DT(0,1,11)rec[-32]_rec[-33]_rec[-92]_rec[-93];DT()CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(0,7,11)rec[-29]_rec[-30]_rec[-89]_rec[-90];DT(6,4,11)rec[-25]_rec[-27]_rec[-85]_rec[-87];DT(5,7,11)rec[-21]_rec[-22]_rec[-23]_rec[-81]_rec[-82]_rec[-83];DT(1,4,11)rec[-20]_rec[-28]_rec[-31]_rec[-80]_rec[-88]_rec[-91];DT(5,1,11)rec[-9]_rec[-24]_rec[-26]_rec[-69]_rec[-84]_rec[-86];DT(2,7,11)rec[-7]_rec[-8]_rec[-15]_rec[-67]_rec[-68]_rec[-75];DT(4,7,11)rec[-5]_rec[-6]_rec[-14]_rec[-65]_rec[-66]_rec[-74];DT(1,0,11)rec[-4]_rec[-12]_rec[-13]_rec[-64]_rec[-72]_rec[-73];DT(3,0,11)rec[-3]_rec[-10]_rec[-11]_rec[-63]_rec[-70]_rec[-71];DT(2,3,11)rec[-2]_rec[-18]_rec[-19]_rec[-62]_rec[-78]_rec[-79];DT(4,3,11)rec[-1]_rec[-16]_rec[-17]_rec[-61]_rec[-76]_rec[-77];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;DT(2,0,12)rec[-31]_rec[-32]_rec[-37]_rec[-97]_rec[-157]_rec[-158];DT(4,0,12)rec[-29]_rec[-30]_rec[-36]_rec[-96]_rec[-155]_rec[-156];DT(2,7,12)rec[-16]_rec[-25]_rec[-26]_rec[-39]_re)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(c[-40]_rec[-99]_rec[-100]_rec[-142]_rec[-151]_rec[-152];DT(4,7,12)rec[-13]_rec[-23]_rec[-24]_rec[-38]_rec[-54]_rec[-98]_rec[-114]_rec[-139]_rec[-149]_rec[-150];DT(2,1,12)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-44]_rec[-45]_rec[-95]_rec[-104]_rec[-105]_rec[-132]_rec[-137]_rec[-138];DT(4,1,12)rec[-4]_rec[-9]_rec[-10]_rec[-34]_rec[-42]_rec[-43]_rec[-94]_rec[-102]_rec[-103]_rec[-130]_rec[-135]_rec[-136];DT(1,4,12)rec[-3]_rec[-17]_rec[-21]_rec[-48]_rec[-52]_rec[-53]_rec[-108]_rec[-112]_rec[-113]_rec[-129]_rec[-143]_rec[-147];DT(3,4,12)rec[-2]_rec[-19]_rec[-20]_rec[-47]_rec[-50]_rec[-51]_rec[-107]_rec[-110]_rec[-111]_rec[-128]_rec[-145]_rec[-146];TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,13)rec[-15]_rec[-26]_rec[-27]_rec[-30]_rec[-34]_rec[-39]_rec[-156]_rec[-160]_rec[-165]_rec[-201]_rec[-212]_rec[-213];DT(3,2,13)rec[-14]_rec[-24]_rec[-25]_rec[-29]_rec[-37]_rec[-38]_rec[-155]_rec[-163]_rec[-1)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(64]_rec[-200]_rec[-210]_rec[-211];DT(5,2,13)rec[-13]_rec[-22]_rec[-23]_rec[-28]_rec[-35]_rec[-36]_rec[-154]_rec[-161]_rec[-162]_rec[-199]_rec[-208]_rec[-209];DT(0,5,13)rec[-4]_rec[-7]_rec[-12]_rec[-41]_rec[-42]_rec[-44]_rec[-167]_rec[-168]_rec[-170]_rec[-190]_rec[-193]_rec[-198];DT(2,5,13)rec[-3]_rec[-10]_rec[-11]_rec[-43]_rec[-47]_rec[-48]_rec[-169]_rec[-173]_rec[-174]_rec[-189]_rec[-196]_rec[-197];DT(4,5,13)rec[-2]_rec[-8]_rec[-9]_rec[-40]_rec[-45]_rec[-46]_rec[-166]_rec[-171]_rec[-172]_rec[-188]_rec[-194]_rec[-195];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)9_18_27_36_45_52;DT(2,8,14)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,14)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,14)rec[-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,14)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,14)rec[-14]_rec[-15]_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,14)rec[-13]_rec[-18]_rec[-19]_rec[-73]_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(rec[-78]_rec[-79];DT(2,1,14)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,14)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,14)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,14)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72];DT(3,4,14)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71];DT(5,4,14)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44_48_49;MARKX(0)8_17_26_35_44_51;DT(0,6,15)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,15)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,15)rec[-17]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,15)rec[-16]_rec[-20]_rec[-21]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,15)rec[-15]_rec[-18]_rec[-19]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,15)rec[-14]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,15)rec[-3]_rec[-12]_rec[-13]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,15)rec[-2]_rec[-10]_rec[-11]_rec[-37]_rec[-42]_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;MARKY(0)9_18_27_36_45_52_8_17_26_35_44_51;DT(1,2,16)rec[-15]_rec[-20]_rec[-21]_rec[-32]_rec[-40]_rec[-41]_rec[-157]_rec[-165]_rec[-166]_rec[-201]_rec[-206]_rec[-207];DT(3,2,16)rec[-14]_rec[-18]_rec[-19]_rec[-31]_rec[-38]_rec[-39]_rec[-156]_rec[-163]_rec[-164]_rec[-200]_rec[-204]_rec[-205];DT(1,8,16)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-36]_rec[-43]_rec[-160]_rec[-161]_rec[-168]_rec[-192]_rec[-197]_rec[-198];DT(3,8,16)rec[-5]_rec[-9]_rec[-10]_rec[-33]_rec[-34]_re)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(c[-42]_rec[-158]_rec[-159]_rec[-167]_rec[-191]_rec[-195]_rec[-196];DT(2,5,16)rec[-3]_rec[-25]_rec[-26]_rec[-30]_rec[-46]_rec[-47]_rec[-155]_rec[-171]_rec[-172]_rec[-189]_rec[-211]_rec[-212];DT(4,5,16)rec[-2]_rec[-23]_rec[-24]_rec[-29]_rec[-44]_rec[-45]_rec[-154]_rec[-169]_rec[-170]_rec[-188]_rec[-209]_rec[-210];TICK;M_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_48_49_50_51_52_53;MARKZ(0)8_9_17_18_26_27_35_36_44_45_51_52;DT(0,1,17)rec[-53]_rec[-54]_rec[-70]_rec[-113]_rec[-114];DT(0,7,17)rec[-50]_rec[-51]_rec[-61]_rec[-110]_rec[-111];DT(1,4,17)rec[-44]_rec[-45]_rec[-46]_rec[-52]_rec[-58]_rec[-81]_rec[-102]_rec[-109]_rec[-112];DT(0,5,17)rec[-42]_rec[-43]_rec[-44]_rec[-50]_rec[-51]_rec[-52]_rec[-58]_rec[-61]_rec[-66]_rec[-128]_rec[-129]_rec[-131]_rec[-151]_rec[-154]_rec[-159];DT(1,0,17)rec[-38]_rec[-39]_rec[-40]_rec[-47]_rec[-48]_rec[-49]_rec[-69]_rec[-74]_rec[-75]_rec[-86]_rec[-94]_rec[-95];DT(1,2,17)rec[-36]_rec[-37]_rec[-)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(38]_rec[-45]_rec[-46]_rec[-47]_rec[-69]_rec[-80]_rec[-81]_rec[-117]_rec[-121]_rec[-126]_rec[-162]_rec[-173]_rec[-174];DT(2,7,17)rec[-32]_rec[-33]_rec[-34]_rec[-41]_rec[-42]_rec[-43]_rec[-60]_rec[-65]_rec[-66]_rec[-89]_rec[-90]_rec[-97];DT(2,3,17)rec[-26]_rec[-27]_rec[-28]_rec[-35]_rec[-36]_rec[-37]_rec[-57]_rec[-79]_rec[-80]_rec[-84]_rec[-100]_rec[-101];DT(2,5,17)rec[-24]_rec[-25]_rec[-26]_rec[-33]_rec[-34]_rec[-35]_rec[-57]_rec[-64]_rec[-65]_rec[-130]_rec[-134]_rec[-135]_rec[-150]_rec[-157]_rec[-158];DT(3,0,17)rec[-20]_rec[-21]_rec[-22]_rec[-29]_rec[-30]_rec[-31]_rec[-68]_rec[-72]_rec[-73]_rec[-85]_rec[-92]_rec[-93];DT(3,2,17)rec[-18]_rec[-19]_rec[-20]_rec[-27]_rec[-28]_rec[-29]_rec[-68]_rec[-78]_rec[-79]_rec[-116]_rec[-124]_rec[-125]_rec[-161]_rec[-171]_rec[-172];DT(4,7,17)rec[-14]_rec[-15]_rec[-16]_rec[-23]_rec[-24]_rec[-25]_rec[-59]_rec[-63]_rec[-64]_rec[-87]_rec[-88]_rec[-96];DT(4,3,17)rec[-8]_rec[-9]_rec[-10]_rec[-17]_rec[-18]_rec[-19]_rec[-56]_rec[-77]_rec[-78]_rec[-83]_rec[-98]_rec[-99];DT(4,5,17)rec[)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(-6]_rec[-7]_rec[-8]_rec[-15]_rec[-16]_rec[-17]_rec[-56]_rec[-62]_rec[-63]_rec[-127]_rec[-132]_rec[-133]_rec[-149]_rec[-155]_rec[-156];DT(5,1,17)rec[-4]_rec[-11]_rec[-12]_rec[-13]_rec[-67]_rec[-71]_rec[-91]_rec[-105]_rec[-107];DT(6,4,17)rec[-2]_rec[-3]_rec[-76]_rec[-106]_rec[-108];DT(5,2,17)rec[-2]_rec[-3]_rec[-4]_rec[-9]_rec[-10]_rec[-11]_rec[-67]_rec[-76]_rec[-77]_rec[-115]_rec[-122]_rec[-123]_rec[-160]_rec[-169]_rec[-170];DT(5,7,17)rec[-1]_rec[-5]_rec[-6]_rec[-7]_rec[-55]_rec[-62]_rec[-82]_rec[-103]_rec[-104];OI(0)rec[-2]_rec[-3]_rec[-9]_rec[-10]_rec[-18]_rec[-19]_rec[-27]_rec[-28]_rec[-36]_rec[-37]_rec[-45]_rec[-46]_rec[-76]_rec[-77]_rec[-78]_rec[-79]_rec[-80]_rec[-81]_rec[-83]_rec[-84]_rec[-108]_rec[-109]_rec[-115]_rec[-116]_rec[-117]_rec[-175]_rec[-176]_rec[-177]_rec[-208]_rec[-209]_rec[-234]_rec[-235]_rec[-268]_rec[-269]_rec[-294]_rec[-295]_rec[-301]_rec[-302]_rec[-303]_rec[-361]_rec[-362]_rec[-363]_rec[-394]_rec[-395]_rec[-420]_rec[-421]_rec[-454]_rec[-455]_rec[-480]_rec[-481]_rec[-487]_rec[-488]_rec[-)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(489]_rec[-547]_rec[-548]_rec[-549]_rec[-580]_rec[-581]_rec[-606]_rec[-607]_rec[-634]_rec[-635]_rec[-636]_rec[-637]_rec[-638]_rec[-639] )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( Open Circuit + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(0,1)1;Q(0,5)2;Q(0,6)3;Q(0,7)4;Q(1,0)5;Q(1,1)6;Q(1,2)7;Q(1,3)8;Q(1,4)9;Q(1,5)10;Q(1,6)11;Q(1,7)12;Q(1,8)13;Q(2,0)14;Q(2,1)15;Q(2,2)16;Q(2,3)17;Q(2,4)18;Q(2,5)19;Q(2,6)20;Q(2,7)21;Q(2,8)22;Q(3,0)23;Q(3,1)24;Q(3,2)25;Q(3,3)26;Q(3,4)27;Q(3,5)28;Q(3,6)29;Q(3,7)30;Q(3,8)31;Q(4,0)32;Q(4,1)33;Q(4,2)34;Q(4,3)35;Q(4,4)36;Q(4,5)37;Q(4,6)38;Q(4,7)39;Q(4,8)40;Q(5,0)41;Q(5,1)42;Q(5,2)43;Q(5,3)44;Q(5,4)45;Q(5,5)46;Q(5,6)47;Q(5,7)48;Q(5,8)49;Q(6,2)50;Q(6,3)51;Q(6,4)52;Q(6,8)53;POLYGON(0,0,1,0.25)11_20_21_22_13_12;POLYGON(0,0,1,0.25)17_26_27_28_19_18;POLYGON(0,0,1,0.25)5_14_15_16_7_6;POLYGON(0,0,1,0.25)29_38_39_40_31_30;POLYGON(0,0,1,0.25)35_44_45_46_37_36;POLYGON(0,0,1,0.25)48_47_53_49;POLYGON(0,0,1,0.25)8_9_10_2;POLYGON(0,0,1,0.25)23_32_33_34_25_24;POLYGON(0,0,1,0.25)42_41_50_43;POLYGON(0,1,0,0.25)9_18_19_20_11_10;POLYGON(0,1,0,0.25)15_24_25_26_17_16;POLYGON(0,1,0,0.25)27_36_37_38_29_28;POLYGON(0,1,0,0.25)21_30_31_22;POLYGON(0,1,0,0.25)39_48_49_40;POLYGON(0,1,0,0.25)45_52_47_46;POL)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(YGON(0,1,0,0.25)4_12_13;POLYGON(0,1,0,0.25)1_6_7_8;POLYGON(0,1,0,0.25)33_42_43_44_35_34;POLYGON(0,1,0,0.25)14_5;POLYGON(0,1,0,0.25)32_23;POLYGON(1,0,0,0.25)2_10_11_12_4_3;POLYGON(1,0,0,0.25)19_28_29_30_21_20;POLYGON(1,0,0,0.25)7_16_17_18_9_8;POLYGON(1,0,0,0.25)25_34_35_36_27_26;POLYGON(1,0,0,0.25)43_50_51_52_45_44;POLYGON(1,0,0,0.25)37_46_47_48_39_38;POLYGON(1,0,0,0.25)22_13;POLYGON(1,0,0,0.25)40_31;POLYGON(1,0,0,0.25)53_49;POLYGON(1,0,0,0.25)0_5_6_1;POLYGON(1,0,0,0.25)14_23_24_15;POLYGON(1,0,0,0.25)32_41_42_33;TICK;RY_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_48_49_50_51_52_53;MARKY(0)24_25_27_28_30_31;TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,3,0)rec[-27];DT(2,3,0)rec[-26];DT(3,3,0)rec[-25];DT(4,3,0)rec[-24];DT(5,3,0)rec[-23];DT(6,3,0)rec[-22];DT(1,0,0)rec[-21];DT(2,0,0)rec[-20];DT(3,0,0)re)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(c[-19];DT(4,0,0)rec[-18];DT(5,0,0)rec[-17];DT(0,0,0)rec[-16];DT(1,2,0)rec[-15];DT(3,2,0)rec[-14];DT(5,2,0)rec[-13];DT(1,6,0)rec[-12];DT(2,6,0)rec[-11];DT(3,6,0)rec[-10];DT(4,6,0)rec[-9];DT(5,6,0)rec[-8];DT(0,6,0)rec[-7];DT(1,8,0)rec[-6];DT(3,8,0)rec[-5];DT(0,5,0)rec[-4];DT(2,5,0)rec[-3];DT(4,5,0)rec[-2];DT(5,8,0)rec[-1];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)24_25_27_28_30_31;TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(1,0,1)rec[-31]_rec[-32]_rec[-37];DT(3,0,1)rec[-29]_rec[-30]_rec[-36];DT(3,7,1)rec[-16]_rec[-25]_rec[-26]_rec[-39]_rec[-40];DT(4,7,1)rec[-13]_rec[-23]_rec[-24]_rec[-38]_rec[-54];DT(2,3,1)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-44]_rec[-45];DT(4,3,1)rec[-4]_rec[-9]_rec[-10]_rec[-34]_rec[-42]_rec[-43];DT(1,6,1)rec[-3]_rec)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART([-17]_rec[-21]_rec[-48]_rec[-52]_rec[-53];DT(3,6,1)rec[-2]_rec[-19]_rec[-20]_rec[-47]_rec[-50]_rec[-51];TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(2,8,2)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,2)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,2)rec[-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,2)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,2)rec[-14]_rec[-15]_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,2)rec[-13]_rec[-18]_rec[-19]_rec[-73]_rec[-78]_rec[-79];DT(2,1,2)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,2)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,2)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,2)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72])CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(;DT(3,4,2)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71];DT(5,4,2)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)24_25_27_28_30_31;DT(0,6,3)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,3)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,3)rec[-16]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,3)rec[-15]_rec[-19]_rec[-20]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,3)rec[-14]_rec[-17]_rec[-18]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,3)rec[-13]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,3)rec[-2]_rec[-11]_rec[-12]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,3)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART()rec[-1]_rec[-9]_rec[-10]_rec[-37]_rec[-42]_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,4)rec[-15]_rec[-20]_rec[-21]_rec[-31]_rec[-39]_rec[-40]_rec[-157]_rec[-165]_rec[-166]_rec[-201]_rec[-206]_rec[-207];DT(3,2,4)rec[-14]_rec[-18]_rec[-19]_rec[-30]_rec[-37]_rec[-38]_rec[-156]_rec[-163]_rec[-164]_rec[-200]_rec[-204]_rec[-205];DT(1,8,4)rec[-6]_rec[-11]_rec[-12]_rec[-34]_rec[-35]_rec[-42]_rec[-160]_rec[-161]_rec[-168]_rec[-192]_rec[-197]_rec[-198];DT(3,8,4)rec[-5]_rec[-9]_rec[-10]_rec[-32]_rec[-33]_rec[-41]_rec[-158]_rec[-159]_rec[-167]_rec[-191]_rec[-195]_rec[-196];DT(2,5,4)rec[-3]_rec[-25]_rec[-26]_rec[-29]_rec[-45]_rec[-46]_rec[-155]_rec[-171]_rec[-172]_rec[-189]_rec[-211]_rec[-212];DT(4,5,4)rec[-2]_rec[-23]_rec[-24]_rec[-28]_rec[-43]_rec[-44]_rec[-154]_rec[-169]_rec[-170]_rec[-188]_rec[-209]_rec[-210];TICK;MX_0_1_2)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)24_25_27_28_30_31;DT(0,1,5)rec[-32]_rec[-33]_rec[-92]_rec[-93];DT(0,7,5)rec[-29]_rec[-30]_rec[-89]_rec[-90];DT(6,4,5)rec[-25]_rec[-27]_rec[-85]_rec[-87];DT(5,7,5)rec[-21]_rec[-22]_rec[-23]_rec[-81]_rec[-82]_rec[-83];DT(1,4,5)rec[-20]_rec[-28]_rec[-31]_rec[-80]_rec[-88]_rec[-91];DT(5,1,5)rec[-9]_rec[-24]_rec[-26]_rec[-69]_rec[-84]_rec[-86];DT(2,7,5)rec[-7]_rec[-8]_rec[-15]_rec[-67]_rec[-68]_rec[-75];DT(4,7,5)rec[-5]_rec[-6]_rec[-14]_rec[-65]_rec[-66]_rec[-74];DT(1,0,5)rec[-4]_rec[-12]_rec[-13]_rec[-64]_rec[-72]_rec[-73];DT(3,0,5)rec[-3]_rec[-10]_rec[-11]_rec[-63]_rec[-70]_rec[-71];DT(2,3,5)rec[-2]_rec[-18]_rec[-19]_rec[-62]_rec[-78]_rec[-79];DT(4,3,5)rec[-1]_rec[-16]_rec[-17]_rec[-61]_rec[-76]_rec[-77];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(36_45_52;MARKZ(0)31_29_28_25_26_23;DT(2,0,6)rec[-31]_rec[-32]_rec[-37]_rec[-97]_rec[-157]_rec[-158];DT(4,0,6)rec[-29]_rec[-30]_rec[-36]_rec[-96]_rec[-155]_rec[-156];DT(2,7,6)rec[-16]_rec[-25]_rec[-26]_rec[-39]_rec[-40]_rec[-99]_rec[-100]_rec[-142]_rec[-151]_rec[-152];DT(4,7,6)rec[-13]_rec[-23]_rec[-24]_rec[-38]_rec[-54]_rec[-98]_rec[-114]_rec[-139]_rec[-149]_rec[-150];DT(2,1,6)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-44]_rec[-45]_rec[-95]_rec[-104]_rec[-105]_rec[-132]_rec[-137]_rec[-138];DT(4,1,6)rec[-4]_rec[-9]_rec[-10]_rec[-34]_rec[-42]_rec[-43]_rec[-94]_rec[-102]_rec[-103]_rec[-130]_rec[-135]_rec[-136];DT(1,4,6)rec[-3]_rec[-17]_rec[-21]_rec[-48]_rec[-52]_rec[-53]_rec[-108]_rec[-112]_rec[-113]_rec[-129]_rec[-143]_rec[-147];DT(3,4,6)rec[-2]_rec[-19]_rec[-20]_rec[-47]_rec[-50]_rec[-51]_rec[-107]_rec[-110]_rec[-111]_rec[-128]_rec[-145]_rec[-146];TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(7)rec[-15]_rec[-26]_rec[-27]_rec[-30]_rec[-34]_rec[-39]_rec[-156]_rec[-160]_rec[-165]_rec[-201]_rec[-212]_rec[-213];DT(3,2,7)rec[-14]_rec[-24]_rec[-25]_rec[-29]_rec[-37]_rec[-38]_rec[-155]_rec[-163]_rec[-164]_rec[-200]_rec[-210]_rec[-211];DT(5,2,7)rec[-13]_rec[-22]_rec[-23]_rec[-28]_rec[-35]_rec[-36]_rec[-154]_rec[-161]_rec[-162]_rec[-199]_rec[-208]_rec[-209];DT(0,5,7)rec[-4]_rec[-7]_rec[-12]_rec[-41]_rec[-42]_rec[-44]_rec[-167]_rec[-168]_rec[-170]_rec[-190]_rec[-193]_rec[-198];DT(2,5,7)rec[-3]_rec[-10]_rec[-11]_rec[-43]_rec[-47]_rec[-48]_rec[-169]_rec[-173]_rec[-174]_rec[-189]_rec[-196]_rec[-197];DT(4,5,7)rec[-2]_rec[-8]_rec[-9]_rec[-40]_rec[-45]_rec[-46]_rec[-166]_rec[-171]_rec[-172]_rec[-188]_rec[-194]_rec[-195];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(2,8,8)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,8)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,8)rec[-22]_re)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(c[-23]_rec[-82]_rec[-83];DT(2,7,8)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,8)rec[-14]_rec[-15]_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,8)rec[-13]_rec[-18]_rec[-19]_rec[-73]_rec[-78]_rec[-79];DT(2,1,8)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,8)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,8)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,8)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72];DT(3,4,8)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71];DT(5,4,8)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)24_25_27_28_30_31;DT(0,6,9)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,9)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,9)rec[-16]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,9)rec[-15)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(]_rec[-19]_rec[-20]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,9)rec[-14]_rec[-17]_rec[-18]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,9)rec[-13]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,9)rec[-2]_rec[-11]_rec[-12]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,9)rec[-1]_rec[-9]_rec[-10]_rec[-37]_rec[-42]_rec[-43]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,10)rec[-15]_rec[-20]_rec[-21]_rec[-31]_rec[-39]_rec[-40]_rec[-157]_rec[-165]_rec[-166]_rec[-201]_rec[-206]_rec[-207];DT(3,2,10)rec[-14]_rec[-18]_rec[-19]_rec[-30]_rec[-37]_rec[-38]_rec[-156]_rec[-163]_rec[-164]_rec[-200]_rec[-204]_rec[-205];DT(1,8,10)rec[-6]_rec[-11]_rec[-12]_re)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(c[-34]_rec[-35]_rec[-42]_rec[-160]_rec[-161]_rec[-168]_rec[-192]_rec[-197]_rec[-198];DT(3,8,10)rec[-5]_rec[-9]_rec[-10]_rec[-32]_rec[-33]_rec[-41]_rec[-158]_rec[-159]_rec[-167]_rec[-191]_rec[-195]_rec[-196];DT(2,5,10)rec[-3]_rec[-25]_rec[-26]_rec[-29]_rec[-45]_rec[-46]_rec[-155]_rec[-171]_rec[-172]_rec[-189]_rec[-211]_rec[-212];DT(4,5,10)rec[-2]_rec[-23]_rec[-24]_rec[-28]_rec[-43]_rec[-44]_rec[-154]_rec[-169]_rec[-170]_rec[-188]_rec[-209]_rec[-210];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_48_49_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44;MARKX(0)24_25_27_28_30_31;DT(0,1,11)rec[-32]_rec[-33]_rec[-92]_rec[-93];DT(0,7,11)rec[-29]_rec[-30]_rec[-89]_rec[-90];DT(6,4,11)rec[-25]_rec[-27]_rec[-85]_rec[-87];DT(5,7,11)rec[-21]_rec[-22]_rec[-23]_rec[-81]_rec[-82]_rec[-83];DT(1,4,11)rec[-20]_rec[-28]_rec[-31]_rec[-80]_rec[-88]_rec[-91];DT(5,1,11)rec[-9]_rec[-24]_rec[-26]_rec[-69]_rec[-84]_rec[-86];DT(2,7,11)rec[-7]_rec[-8]_rec[-15]_rec[-67]_rec[-68])CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_rec[-75];DT(4,7,11)rec[-5]_rec[-6]_rec[-14]_rec[-65]_rec[-66]_rec[-74];DT(1,0,11)rec[-4]_rec[-12]_rec[-13]_rec[-64]_rec[-72]_rec[-73];DT(3,0,11)rec[-3]_rec[-10]_rec[-11]_rec[-63]_rec[-70]_rec[-71];DT(2,3,11)rec[-2]_rec[-18]_rec[-19]_rec[-62]_rec[-78]_rec[-79];DT(4,3,11)rec[-1]_rec[-16]_rec[-17]_rec[-61]_rec[-76]_rec[-77];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(2,0,12)rec[-31]_rec[-32]_rec[-37]_rec[-97]_rec[-157]_rec[-158];DT(4,0,12)rec[-29]_rec[-30]_rec[-36]_rec[-96]_rec[-155]_rec[-156];DT(2,7,12)rec[-16]_rec[-25]_rec[-26]_rec[-39]_rec[-40]_rec[-99]_rec[-100]_rec[-142]_rec[-151]_rec[-152];DT(4,7,12)rec[-13]_rec[-23]_rec[-24]_rec[-38]_rec[-54]_rec[-98]_rec[-114]_rec[-139]_rec[-149]_rec[-150];DT(2,1,12)rec[-6]_rec[-11]_rec[-12]_rec[-35]_rec[-44]_rec[-45]_rec[-95]_rec[-104]_rec[-105]_rec[-132]_rec[-137]_rec[-138];DT(4,1,12)rec[-4]_rec[-9]_rec[-10]_rec[-34]_rec[-)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(42]_rec[-43]_rec[-94]_rec[-102]_rec[-103]_rec[-130]_rec[-135]_rec[-136];DT(1,4,12)rec[-3]_rec[-17]_rec[-21]_rec[-48]_rec[-52]_rec[-53]_rec[-108]_rec[-112]_rec[-113]_rec[-129]_rec[-143]_rec[-147];DT(3,4,12)rec[-2]_rec[-19]_rec[-20]_rec[-47]_rec[-50]_rec[-51]_rec[-107]_rec[-110]_rec[-111]_rec[-128]_rec[-145]_rec[-146];TICK;MYY_8_9_17_18_26_27_35_36_44_45_51_52_5_6_14_15_23_24_32_33_41_42_0_1_7_16_25_34_43_50_11_12_20_21_29_30_38_39_47_48_3_4_13_22_31_40_2_10_19_28_37_46_49_53;DT(1,2,13)rec[-15]_rec[-26]_rec[-27]_rec[-30]_rec[-34]_rec[-39]_rec[-156]_rec[-160]_rec[-165]_rec[-201]_rec[-212]_rec[-213];DT(3,2,13)rec[-14]_rec[-24]_rec[-25]_rec[-29]_rec[-37]_rec[-38]_rec[-155]_rec[-163]_rec[-164]_rec[-200]_rec[-210]_rec[-211];DT(5,2,13)rec[-13]_rec[-22]_rec[-23]_rec[-28]_rec[-35]_rec[-36]_rec[-154]_rec[-161]_rec[-162]_rec[-199]_rec[-208]_rec[-209];DT(0,5,13)rec[-4]_rec[-7]_rec[-12]_rec[-41]_rec[-42]_rec[-44]_rec[-167]_rec[-168]_rec[-170]_rec[-190]_rec[-193]_rec[-198];DT(2,5,13)rec[-3]_rec[-10]_rec[-11]_rec[-43]_rec[-4)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(7]_rec[-48]_rec[-169]_rec[-173]_rec[-174]_rec[-189]_rec[-196]_rec[-197];DT(4,5,13)rec[-2]_rec[-8]_rec[-9]_rec[-40]_rec[-45]_rec[-46]_rec[-166]_rec[-171]_rec[-172]_rec[-188]_rec[-194]_rec[-195];TICK;M_0_5_14_23_32_41_13_22_31_40_49_53;MZZ_19_20_28_29_37_38_46_47_10_11_21_30_4_12_2_3_39_48_16_17_25_26_34_35_43_44_50_51_7_8_15_24_1_6_33_42_9_18_27_36_45_52;MARKZ(0)31_29_28_25_26_23;DT(2,8,14)rec[-26]_rec[-27]_rec[-86]_rec[-87];DT(4,8,14)rec[-24]_rec[-25]_rec[-84]_rec[-85];DT(6,8,14)rec[-22]_rec[-23]_rec[-82]_rec[-83];DT(2,7,14)rec[-16]_rec[-20]_rec[-21]_rec[-76]_rec[-80]_rec[-81];DT(0,5,14)rec[-14]_rec[-15]_rec[-17]_rec[-74]_rec[-75]_rec[-77];DT(4,7,14)rec[-13]_rec[-18]_rec[-19]_rec[-73]_rec[-78]_rec[-79];DT(2,1,14)rec[-6]_rec[-30]_rec[-31]_rec[-66]_rec[-90]_rec[-91];DT(0,1,14)rec[-5]_rec[-32]_rec[-33]_rec[-65]_rec[-92]_rec[-93];DT(4,1,14)rec[-4]_rec[-28]_rec[-29]_rec[-64]_rec[-88]_rec[-89];DT(1,4,14)rec[-3]_rec[-7]_rec[-12]_rec[-63]_rec[-67]_rec[-72];DT(3,4,14)rec[-2]_rec[-10]_rec[-11]_rec[-62]_rec[-70]_rec[-71)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(];DT(5,4,14)rec[-1]_rec[-8]_rec[-9]_rec[-61]_rec[-68]_rec[-69];TICK;MX_0_1_2_3_4_8_51_50_52_41_47_53;MXX_9_10_18_19_27_28_36_37_45_46_11_20_29_38_6_7_15_16_24_25_33_34_42_43_12_13_21_22_30_31_39_40_5_14_23_32_17_26_35_44_48_49;MARKX(0)24_25_27_28_30_31;DT(0,6,15)rec[-30]_rec[-31]_rec[-47]_rec[-107]_rec[-156]_rec[-157];DT(6,2,15)rec[-26]_rec[-27]_rec[-41]_rec[-101]_rec[-152]_rec[-153];DT(5,4,15)rec[-17]_rec[-23]_rec[-25]_rec[-34]_rec[-51]_rec[-94]_rec[-111]_rec[-142]_rec[-149]_rec[-151];DT(1,6,15)rec[-16]_rec[-20]_rec[-21]_rec[-36]_rec[-50]_rec[-54]_rec[-96]_rec[-110]_rec[-114]_rec[-141]_rec[-145]_rec[-146];DT(3,6,15)rec[-15]_rec[-18]_rec[-19]_rec[-35]_rec[-52]_rec[-53]_rec[-95]_rec[-112]_rec[-113]_rec[-140]_rec[-143]_rec[-144];DT(1,1,15)rec[-14]_rec[-28]_rec[-32]_rec[-38]_rec[-40]_rec[-98]_rec[-100]_rec[-139]_rec[-154]_rec[-158];DT(2,3,15)rec[-3]_rec[-12]_rec[-13]_rec[-39]_rec[-44]_rec[-45]_rec[-99]_rec[-104]_rec[-105]_rec[-128]_rec[-137]_rec[-138];DT(4,3,15)rec[-2]_rec[-10]_rec[-11]_rec[-37]_rec[-42]_rec[-43)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(]_rec[-97]_rec[-102]_rec[-103]_rec[-127]_rec[-135]_rec[-136];TICK;TICK;MY_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_48_49_50_51_52_53;MARKY(0)24_25_27_28_30_31;DT(2,0,16)rec[-40]_rec[-49]_rec[-59]_rec[-118]_rec[-119];DT(1,2,16)rec[-38]_rec[-39]_rec[-40]_rec[-47]_rec[-48]_rec[-49]_rec[-59]_rec[-67]_rec[-68]_rec[-184]_rec[-192]_rec[-193]_rec[-228]_rec[-233]_rec[-234];DT(1,4,16)rec[-34]_rec[-35]_rec[-36]_rec[-43]_rec[-44]_rec[-45]_rec[-70]_rec[-74]_rec[-75]_rec[-90]_rec[-104]_rec[-108];DT(1,8,16)rec[-32]_rec[-33]_rec[-34]_rec[-41]_rec[-42]_rec[-43]_rec[-62]_rec[-63]_rec[-70]_rec[-187]_rec[-188]_rec[-195]_rec[-219]_rec[-224]_rec[-225];DT(2,1,16)rec[-28]_rec[-29]_rec[-30]_rec[-37]_rec[-38]_rec[-39]_rec[-57]_rec[-66]_rec[-67]_rec[-93]_rec[-98]_rec[-99];DT(2,5,16)rec[-26]_rec[-27]_rec[-28]_rec[-35]_rec[-36]_rec[-37]_rec[-57]_rec[-73]_rec[-74]_rec[-182]_rec[-198]_rec[-199]_rec[-216]_rec[-238]_rec[-239];DT(2,7,16)rec[-23]_rec[-)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(24]_rec[-32]_rec[-33]_rec[-61]_rec[-62]_rec[-103]_rec[-112]_rec[-113];DT(4,0,16)rec[-22]_rec[-31]_rec[-58]_rec[-116]_rec[-117];DT(3,2,16)rec[-20]_rec[-21]_rec[-22]_rec[-29]_rec[-30]_rec[-31]_rec[-58]_rec[-65]_rec[-66]_rec[-183]_rec[-190]_rec[-191]_rec[-227]_rec[-231]_rec[-232];DT(3,4,16)rec[-16]_rec[-17]_rec[-18]_rec[-25]_rec[-26]_rec[-27]_rec[-69]_rec[-72]_rec[-73]_rec[-89]_rec[-106]_rec[-107];DT(3,8,16)rec[-14]_rec[-15]_rec[-16]_rec[-23]_rec[-24]_rec[-25]_rec[-60]_rec[-61]_rec[-69]_rec[-185]_rec[-186]_rec[-194]_rec[-218]_rec[-222]_rec[-223];DT(4,1,16)rec[-10]_rec[-11]_rec[-12]_rec[-19]_rec[-20]_rec[-21]_rec[-56]_rec[-64]_rec[-65]_rec[-91]_rec[-96]_rec[-97];DT(4,5,16)rec[-8]_rec[-9]_rec[-10]_rec[-17]_rec[-18]_rec[-19]_rec[-56]_rec[-71]_rec[-72]_rec[-181]_rec[-196]_rec[-197]_rec[-215]_rec[-236]_rec[-237];DT(4,7,16)rec[-5]_rec[-6]_rec[-14]_rec[-15]_rec[-55]_rec[-60]_rec[-100]_rec[-110]_rec[-111];OI(0)rec[-23]_rec[-24]_rec[-26]_rec[-27]_rec[-29]_rec[-30]_rec[-61]_rec[-66]_rec[-73]_rec[-98]_rec[-107]_rec[-112]_r)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(ec[-117]_rec[-158]_rec[-167]_rec[-172]_rec[-177]_rec[-186]_rec[-191]_rec[-198]_rec[-246]_rec[-251]_rec[-258]_rec[-284]_rec[-293]_rec[-298]_rec[-303]_rec[-344]_rec[-353]_rec[-358]_rec[-363]_rec[-372]_rec[-377]_rec[-384]_rec[-432]_rec[-437]_rec[-444]_rec[-470]_rec[-479]_rec[-484]_rec[-489]_rec[-530]_rec[-539]_rec[-544]_rec[-549]_rec[-558]_rec[-563]_rec[-570] )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( Open Circuit + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( #circuit=Q(0,2)0;Q(0,4)1;Q(0.5,0.5)2;Q(0.5,1.5)3;Q(0.5,2.5)4;Q(0.5,3.5)5;Q(0.5,4.5)6;Q(1,0)7;Q(1,1)8;Q(1,2)9;Q(1,3)10;Q(1,4)11;Q(1.5,0.5)12;Q(1.5,1.5)13;Q(1.5,2.5)14;Q(1.5,3.5)15;Q(1.5,4.5)16;Q(2,1)17;Q(2,2)18;Q(2,3)19;Q(2,4)20;Q(2,5)21;Q(2.5,0.5)22;Q(2.5,1.5)23;Q(2.5,2.5)24;Q(2.5,3.5)25;Q(2.5,4.5)26;Q(3,0)27;Q(3,1)28;Q(3,2)29;Q(3,3)30;Q(3,4)31;Q(3.5,0.5)32;Q(3.5,1.5)33;Q(3.5,2.5)34;Q(3.5,3.5)35;Q(3.5,4.5)36;Q(4,1)37;Q(4,2)38;Q(4,3)39;Q(4,4)40;Q(4,5)41;Q(4.5,0.5)42;Q(4.5,1.5)43;Q(4.5,2.5)44;Q(4.5,3.5)45;Q(4.5,4.5)46;Q(5,1)47;Q(5,3)48;POLYGON(0,0,1,0.25)12_22_23_13;POLYGON(0,0,1,0.25)3_13_14_4;POLYGON(0,0,1,0.25)14_24_25_15;POLYGON(0,0,1,0.25)5_15_16_6;POLYGON(0,0,1,0.25)34_44_45_35;POLYGON(0,0,1,0.25)25_35_36_26;POLYGON(0,0,1,0.25)32_42_43_33;POLYGON(0,0,1,0.25)23_33_34_24;POLYGON(0,0,1,0.25)12_2;POLYGON(0,0,1,0.25)32_22;POLYGON(0,0,1,0.25)46_36;POLYGON(0,0,1,0.25)26_16;POLYGON(1,0,0,0.25)2_12_13_3;POLYGON(1,0,0,0.25)13_23_24_14;POLYGON(1,0,0,0.25)4_14_15_5;POLYGON(1,0,0,0.25)15_25_26_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(16;POLYGON(1,0,0,0.25)24_34_35_25;POLYGON(1,0,0,0.25)35_45_46_36;POLYGON(1,0,0,0.25)22_32_33_23;POLYGON(1,0,0,0.25)33_43_44_34;POLYGON(1,0,0,0.25)42_43;POLYGON(1,0,0,0.25)44_45;POLYGON(1,0,0,0.25)5_6;POLYGON(1,0,0,0.25)3_4;TICK;R_2_3_4_5_6_12_13_14_15_16_22_23_24_25_26_32_33_34_35_36_42_43_44_45_46;MARKZ(0)2_3_4_5_6;TICK;R_9_11_17_19_21_29_31_37_39_41_27_7;RX_8_10_18_20_28_30_38_40_47_48_0_1;MARKX(1)28;TICK;CX_8_2_3_9_10_4_5_11_12_17_18_13_14_19_20_15_16_21_28_22_23_29_30_24_25_31_32_37_38_33_34_39_40_35_36_41_47_42_48_44;TICK;CX_13_9_15_11_22_17_24_19_26_21_33_29_35_31_42_37_44_39_46_41_8_3_10_5_18_14_20_16_28_23_30_25_38_34_40_36_47_43_48_45;TICK;CX_4_9_6_11_13_17_15_19_24_29_26_31_33_37_35_39_2_7_22_27_8_12_10_14_1_5_0_3_18_23_20_25_28_32_30_34_38_43_40_45;TICK;CX_8_13_14_9_10_15_16_11_23_17_18_24_25_19_20_26_28_33_34_29_30_35_36_31_43_37_38_44_45_39_40_46_0_4_1_6_12_7_32_27;TICK;M_9_11_17_19_21_29_31_37_39_41_27_7;MX_8_10_18_20_28_30_38_40_47_48_0_1;MARKX(1)28;DT(1,2,0)rec[-24];DT(1,4,0)rec[-23];DT(2,1,0))CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(rec[-22];DT(2,3,0)rec[-21];DT(2,5,0)rec[-20];DT(3,2,0)rec[-19];DT(3,4,0)rec[-18];DT(4,1,0)rec[-17];DT(4,3,0)rec[-16];DT(4,5,0)rec[-15];DT(3,0,0)rec[-14];DT(1,0,0)rec[-13];TICK;R_9_11_17_19_21_29_31_37_39_41_7_27;RX_8_10_18_20_28_30_38_40_47_48_1_0;MARKX(1)28;MARKZ(2)29;TICK;CX_8_2_3_9_10_4_5_11_12_17_18_13_14_19_20_15_16_21_28_22_23_29_30_24_25_31_32_37_38_33_34_39_40_35_36_41_47_42_48_44;TICK;CX_13_9_15_11_22_17_24_19_26_21_33_29_35_31_42_37_44_39_46_41_8_3_10_5_18_14_20_16_28_23_30_25_38_34_40_36_47_43_48_45;TICK;CX_4_9_6_11_13_17_15_19_24_29_26_31_33_37_35_39_2_7_22_27_8_12_10_14_1_5_0_3_18_23_20_25_28_32_30_34_38_43_40_45;TICK;CX_8_13_14_9_10_15_16_11_23_17_18_24_25_19_20_26_28_33_34_29_30_35_36_31_43_37_38_44_45_39_40_46_0_4_1_6_12_7_32_27;TICK;M_9_11_17_19_21_29_31_37_39_41_7_27;MX_8_10_18_20_28_30_38_40_47_48_0_1;MARKX(1)28;MARKZ(2)29;DT(1,2,1)rec[-24]_rec[-48];DT(1,4,1)rec[-23]_rec[-47];DT(2,1,1)rec[-22]_rec[-46];DT(2,3,1)rec[-21]_rec[-45];DT(2,5,1)rec[-20]_rec[-44];DT(3,2,1)rec[-19]_rec[-43];DT(3,4,1)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART()rec[-18]_rec[-42];DT(4,1,1)rec[-17]_rec[-41];DT(4,3,1)rec[-16]_rec[-40];DT(4,5,1)rec[-15]_rec[-39];DT(1,0,1)rec[-14]_rec[-37];DT(3,0,1)rec[-13]_rec[-38];DT(1,1,1)rec[-12]_rec[-36];DT(1,3,1)rec[-11]_rec[-35];DT(2,2,1)rec[-10]_rec[-34];DT(2,4,1)rec[-9]_rec[-33];DT(3,1,1)rec[-8]_rec[-32];DT(3,3,1)rec[-7]_rec[-31];DT(4,2,1)rec[-6]_rec[-30];DT(4,4,1)rec[-5]_rec[-29];DT(5,1,1)rec[-4]_rec[-28];DT(5,3,1)rec[-3]_rec[-27];DT(0,2,1)rec[-2]_rec[-26];DT(0,4,1)rec[-1]_rec[-25];TICK;R_9_11_17_19_21_29_31_37_39_41_7_27;RX_8_10_18_20_28_30_38_40_47_48_0_1;MARKZ(2)29;TICK;CX_8_2_3_9_10_4_5_11_12_17_18_13_14_19_20_15_16_21_28_22_23_29_30_24_25_31_32_37_38_33_34_39_40_35_36_41_47_42_48_44;TICK;CX_13_9_15_11_22_17_24_19_26_21_33_29_35_31_42_37_44_39_46_41_8_3_10_5_18_14_20_16_28_23_30_25_38_34_40_36_47_43_48_45;TICK;CX_4_9_6_11_13_17_15_19_24_29_26_31_33_37_35_39_2_7_22_27_8_12_10_14_1_5_0_3_18_23_20_25_28_32_30_34_38_43_40_45;TICK;CX_8_13_14_9_10_15_16_11_23_17_18_24_25_19_20_26_28_33_34_29_30_35_36_31_43_37_38_44_45_39_40_46_0)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_4_1_6_12_7_32_27;TICK;M_9_11_17_19_21_29_31_37_39_41_7_27;MX_8_10_18_20_28_30_38_40_47_48_0_1;MARKZ(2)29;DT(1,2,2)rec[-24]_rec[-48];DT(1,4,2)rec[-23]_rec[-47];DT(2,1,2)rec[-22]_rec[-46];DT(2,3,2)rec[-21]_rec[-45];DT(2,5,2)rec[-20]_rec[-44];DT(3,2,2)rec[-19]_rec[-43];DT(3,4,2)rec[-18]_rec[-42];DT(4,1,2)rec[-17]_rec[-41];DT(4,3,2)rec[-16]_rec[-40];DT(4,5,2)rec[-15]_rec[-39];DT(1,0,2)rec[-14]_rec[-38];DT(3,0,2)rec[-13]_rec[-37];DT(1,1,2)rec[-12]_rec[-36];DT(1,3,2)rec[-11]_rec[-35];DT(2,2,2)rec[-10]_rec[-34];DT(2,4,2)rec[-9]_rec[-33];DT(3,1,2)rec[-8]_rec[-32];DT(3,3,2)rec[-7]_rec[-31];DT(4,2,2)rec[-6]_rec[-30];DT(4,4,2)rec[-5]_rec[-29];DT(5,1,2)rec[-4]_rec[-28];DT(5,3,2)rec[-3]_rec[-27];DT(0,2,2)rec[-2]_rec[-26];DT(0,4,2)rec[-1]_rec[-25];TICK;M_2_3_4_5_6_12_13_14_15_16_22_23_24_25_26_32_33_34_35_36_42_43_44_45_46;MARKZ(0)2_3_4_5_6;DT(1,0,3)rec[-20]_rec[-25]_rec[-39];DT(1,2,3)rec[-18]_rec[-19]_rec[-23]_rec[-24]_rec[-49];DT(1,4,3)rec[-16]_rec[-17]_rec[-21]_rec[-22]_rec[-48];DT(2,1,3)rec[-14]_rec[-15]_rec[-19]_rec[)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(-20]_rec[-47];DT(2,3,3)rec[-12]_rec[-13]_rec[-17]_rec[-18]_rec[-46];DT(2,5,3)rec[-11]_rec[-16]_rec[-45];DT(3,0,3)rec[-10]_rec[-15]_rec[-38];DT(3,2,3)rec[-8]_rec[-9]_rec[-13]_rec[-14]_rec[-44];DT(3,4,3)rec[-6]_rec[-7]_rec[-11]_rec[-12]_rec[-43];DT(4,1,3)rec[-4]_rec[-5]_rec[-9]_rec[-10]_rec[-42];DT(4,3,3)rec[-2]_rec[-3]_rec[-7]_rec[-8]_rec[-41];DT(4,5,3)rec[-1]_rec[-6]_rec[-40];OI(0)rec[-21]_rec[-22]_rec[-23]_rec[-24]_rec[-25] )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( Open Circuit + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(0,1)1;Q(0,2)2;Q(0,3)3;Q(0,4)4;Q(0.5,0.5)5;Q(0.5,1.5)6;Q(0.5,2.5)7;Q(0.5,3.5)8;Q(0.5,4.5)9;Q(1,0)10;Q(1,1)11;Q(1,2)12;Q(1,3)13;Q(1,4)14;Q(1.5,0.5)15;Q(1.5,1.5)16;Q(1.5,2.5)17;Q(1.5,3.5)18;Q(1.5,4.5)19;Q(2,0)20;Q(2,1)21;Q(2,2)22;Q(2,3)23;Q(2,4)24;Q(2.5,0.5)25;Q(2.5,1.5)26;Q(2.5,2.5)27;Q(2.5,3.5)28;Q(2.5,4.5)29;Q(3,0)30;Q(3,1)31;Q(3,2)32;Q(3,3)33;Q(3,4)34;Q(3.5,0.5)35;Q(3.5,1.5)36;Q(3.5,2.5)37;Q(3.5,3.5)38;Q(3.5,4.5)39;Q(4,0)40;Q(4,1)41;Q(4,2)42;Q(4,3)43;Q(4,4)44;Q(4.5,0.5)45;Q(4.5,1.5)46;Q(4.5,2.5)47;Q(4.5,3.5)48;POLYGON(0,0,1,0.25)27_22_26_32;POLYGON(0,0,1,0.25)17_12_16_22;POLYGON(0,0,1,0.25)16_11_15_21;POLYGON(0,0,1,0.25)7_2_6_12;POLYGON(0,0,1,0.25)6_1_5_11;POLYGON(0,0,1,0.25)35_30_40;POLYGON(0,0,1,0.25)25_20_30;POLYGON(0,0,1,0.25)15_10_20;POLYGON(0,0,1,0.25)5_0_10;POLYGON(0,0,1,0.25)26_21_25_31;POLYGON(0,0,1,0.25)37_32_36_42;POLYGON(0,0,1,0.25)36_31_35_41;POLYGON(0,0,1,0.25)28_23_27_33;POLYGON(0,0,1,0.25)18_13_17_23;POLYGON(0,0,1,0.25)9_4_8_14;POLYGON(0,0,1,0.25)8_3)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_7_13;POLYGON(0,0,1,0.25)38_33_37_43;POLYGON(0,0,1,0.25)9;POLYGON(0,0,1,0.25)19_14_18_24;POLYGON(0,0,1,0.25)19;POLYGON(0,0,1,0.25)29_24_28_34;POLYGON(0,0,1,0.25)29;POLYGON(0,0,1,0.25)39_34_38_44;POLYGON(0,0,1,0.25)39;POLYGON(1,0,0,0.25)12_6_11_16;POLYGON(1,0,0,0.25)22_16_21_26;POLYGON(1,0,0,0.25)13_7_12_17;POLYGON(1,0,0,0.25)23_17_22_27;POLYGON(1,0,0,0.25)33_27_32_37;POLYGON(1,0,0,0.25)3_2_7;POLYGON(1,0,0,0.25)2_1_6;POLYGON(1,0,0,0.25)1_0_5;POLYGON(1,0,0,0.25)21_15_20_25;POLYGON(1,0,0,0.25)11_5_10_15;POLYGON(1,0,0,0.25)32_26_31_36;POLYGON(1,0,0,0.25)31_25_30_35;POLYGON(1,0,0,0.25)48;POLYGON(1,0,0,0.25)43_37_42_47;POLYGON(1,0,0,0.25)47;POLYGON(1,0,0,0.25)42_36_41_46;POLYGON(1,0,0,0.25)46;POLYGON(1,0,0,0.25)41_35_40_45;POLYGON(1,0,0,0.25)45;POLYGON(1,0,0,0.25)14_8_13_18;POLYGON(1,0,0,0.25)24_18_23_28;POLYGON(1,0,0,0.25)34_28_33_38;POLYGON(1,0,0,0.25)4_3_8;POLYGON(1,0,0,0.25)44_38_43_48;TICK;R_0_1_2_3_4_10_11_12_13_14_20_21_22_23_24_30_31_32_33_34_40_41_42_43_44;TICK;R_37_35_28_26_17_15_8_6_9_19_29_39;RX_38_36_2)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(7_25_18_16_7_5_45_46_47_48;MARKX(1)27;MARKZ(0)17;TICK;CX_38_33_32_37_36_31_30_35_23_28_27_22_21_26_25_20_18_13_12_17_16_11_10_15_3_8_7_2_1_6_5_0_45_40_47_42_43_48_41_46_9_4_14_19_29_24_34_39;TICK;CX_42_37_40_35_33_28_31_26_22_17_20_15_13_8_11_6_38_34_36_32_27_23_25_21_18_14_16_12_7_3_5_1_47_43_45_41_24_19_44_39;TICK;CX_21_16_26_22_32_27_37_33_43_38_10_5_15_11_23_18_28_24_17_13_6_2_12_7_8_4_41_36_35_31_30_25_46_42_48_44_14_9_34_29;TICK;CX_26_21_17_12_2_7_22_27_33_38_37_32_15_10_0_5_6_1_28_23_13_18_8_3_31_36_11_16_20_25_35_30_46_41_48_43_42_47_40_45_19_14_39_34_24_29_4_9;TICK;M_38_36_27_25_18_16_7_5_9_19_29_39;MX_37_35_28_26_17_15_8_6_45_46_47_48;MARKX(1)17;MARKZ(0)16;DT(3.5,3.5,0)rec[-24];DT(3.5,1.5,0)rec[-23];DT(2.5,2.5,0)rec[-22];DT(2.5,0.5,0)rec[-21];DT(1.5,3.5,0)rec[-20];DT(1.5,1.5,0)rec[-19];DT(0.5,2.5,0)rec[-18];DT(0.5,0.5,0)rec[-17];DT(0.5,4.5,0)rec[-16];DT(1.5,4.5,0)rec[-15];DT(2.5,4.5,0)rec[-14];DT(3.5,4.5,0)rec[-13];TICK;R_38_36_27_25_18_16_7_5_9_19_29_39;RX_37_35_28_26_17_15_8_6_45_46_47_48;MARKX(1))CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(17;MARKX(3)26;MARKZ(0)16;MARKZ(2)27;TICK;CX_26_21_17_12_2_7_22_27_33_38_37_32_15_10_0_5_6_1_28_23_13_18_8_3_31_36_11_16_20_25_35_30_46_41_48_43_42_47_40_45_39_34_24_29_19_14_4_9;TICK;CX_21_16_26_22_32_27_37_33_43_38_10_5_15_11_23_18_28_24_17_13_6_2_12_7_8_4_41_36_35_31_30_25_46_42_48_44_14_9_34_29;TICK;CX_42_37_40_35_33_28_31_26_22_17_20_15_13_8_11_6_38_34_36_32_27_23_25_21_18_14_16_12_7_3_5_1_47_43_45_41_24_19_44_39;TICK;CX_38_33_32_37_36_31_30_35_23_28_27_22_21_26_25_20_18_13_12_17_16_11_10_15_3_8_7_2_1_6_5_0_45_40_47_42_43_48_41_46_14_19_34_39_29_24_9_4;TICK;M_37_35_28_26_17_15_8_6_9_19_29_39;MX_38_36_27_25_18_16_7_5_45_46_47_48;MARKX(1)27;MARKX(3)16;MARKZ(0)17;MARKZ(2)26;DT(3.5,1.5,1)rec[-24]_rec[-47];DT(3.5,0.5,1)rec[-23];DT(2.5,2.5,1)rec[-22]_rec[-46];DT(2.5,0.5,1)rec[-21]_rec[-45];DT(1.5,1.5,1)rec[-20]_rec[-43];DT(1.5,0.5,1)rec[-19];DT(0.5,2.5,1)rec[-18]_rec[-42];DT(0.5,0.5,1)rec[-17]_rec[-41];DT(1.5,4.5,1)rec[-16]_rec[-39]_rec[-40];DT(1.5,3.5,1)rec[-15]_rec[-44];DT(3.5,4.5,1)rec[-14]_rec[-37]_rec[-38])CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(;DT(3.5,3.5,1)rec[-13]_rec[-48];DT(2.5,3.5,1)rec[-12]_rec[-34];DT(2.5,1.5,1)rec[-11]_rec[-33];DT(1.5,2.5,1)rec[-10]_rec[-32];DT(2,0.5,1)rec[-9]_rec[-31];DT(0.5,3.5,1)rec[-8]_rec[-30];DT(0.5,1.5,1)rec[-7]_rec[-29];DT(0.5,2.5,2)rec[-6];DT(0.5,0.5,2)rec[-5];DT(4.5,0.5,1)rec[-4]_rec[-35];DT(4.5,2.5,1)rec[-3]_rec[-26]_rec[-27];DT(3.5,2.5,1)rec[-2]_rec[-36];DT(4.5,3.5,1)rec[-1]_rec[-25];TICK;R_37_35_28_26_17_15_8_6_9_19_29_39;RX_38_36_27_25_18_16_7_5_45_46_47_48;MARKX(3)16;MARKZ(2)26;TICK;CX_38_33_32_37_36_31_30_35_23_28_27_22_21_26_25_20_18_13_12_17_16_11_10_15_3_8_7_2_1_6_5_0_45_40_47_42_43_48_41_46_9_4_14_19_29_24_34_39;TICK;CX_42_37_40_35_33_28_31_26_22_17_20_15_13_8_11_6_38_34_36_32_27_23_25_21_18_14_16_12_7_3_5_1_47_43_45_41_24_19_44_39;TICK;CX_21_16_26_22_32_27_37_33_43_38_10_5_15_11_23_18_28_24_17_13_6_2_12_7_8_4_41_36_35_31_30_25_46_42_48_44_14_9_34_29;TICK;CX_26_21_17_12_2_7_22_27_33_38_37_32_15_10_0_5_6_1_28_23_13_18_8_3_31_36_11_16_20_25_35_30_46_41_48_43_42_47_40_45_19_14_39_34_24_29_4_9;TICK;M_38_36_2)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(7_25_18_16_7_5_9_19_29_39;MX_37_35_28_26_17_15_8_6_45_46_47_48;MARKX(3)26;MARKZ(2)27;DT(3.5,2.5,3)rec[-24]_rec[-48];DT(3.5,0.5,3)rec[-23]_rec[-47];DT(2.5,1.5,3)rec[-22]_rec[-45];DT(2.5,0.5,3)rec[-21];DT(1.5,2.5,3)rec[-20]_rec[-44];DT(1.5,0.5,3)rec[-19]_rec[-43];DT(0.5,1.5,3)rec[-18]_rec[-41];DT(0.5,0.5,3)rec[-17];DT(0.5,3.5,3)rec[-16]_rec[-42];DT(2.5,4.5,3)rec[-15]_rec[-38]_rec[-39];DT(2.5,3.5,3)rec[-14]_rec[-46];DT(3.5,4.5,3)rec[-13]_rec[-37];DT(2.5,2.5,3)rec[-12]_rec[-34];DT(3,0.5,3)rec[-11]_rec[-33];DT(1.5,3.5,3)rec[-10]_rec[-32];DT(1.5,1.5,3)rec[-9]_rec[-31];DT(0.5,2.5,3)rec[-8]_rec[-30];DT(1,0.5,3)rec[-7]_rec[-29];DT(0.5,3.5,4)rec[-6];DT(0.5,1.5,4)rec[-5];DT(4.5,1.5,3)rec[-4]_rec[-27]_rec[-28];DT(3.5,1.5,3)rec[-3]_rec[-35];DT(4.5,3.5,3)rec[-2]_rec[-25]_rec[-26];DT(3.5,3.5,3)rec[-1]_rec[-36];TICK;R_38_36_27_25_18_16_7_5_9_19_29_39;RX_37_35_28_26_17_15_8_6_45_46_47_48;TICK;CX_26_21_17_12_2_7_22_27_33_38_37_32_15_10_0_5_6_1_28_23_13_18_8_3_31_36_11_16_20_25_35_30_46_41_48_43_42_47_40_45_39_34_24_29_19_14_4_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(9;TICK;CX_21_16_26_22_32_27_37_33_43_38_10_5_15_11_23_18_28_24_17_13_6_2_12_7_8_4_41_36_35_31_30_25_46_42_48_44_14_9_34_29;TICK;CX_42_37_40_35_33_28_31_26_22_17_20_15_13_8_11_6_38_34_36_32_27_23_25_21_18_14_16_12_7_3_5_1_47_43_45_41_24_19_44_39;TICK;CX_38_33_32_37_36_31_30_35_23_28_27_22_21_26_25_20_18_13_12_17_16_11_10_15_3_8_7_2_1_6_5_0_45_40_47_42_43_48_41_46_14_19_34_39_29_24_9_4;TICK;M_37_35_28_26_17_15_8_6_9_19_29_39;MX_38_36_27_25_18_16_7_5_45_46_47_48;DT(3.5,1.5,5)rec[-24]_rec[-47];DT(3.5,0.5,5)rec[-23];DT(2.5,2.5,5)rec[-22]_rec[-46];DT(2.5,0.5,5)rec[-21]_rec[-45];DT(1.5,1.5,5)rec[-20]_rec[-43];DT(1.5,0.5,5)rec[-19];DT(0.5,2.5,5)rec[-18]_rec[-42];DT(0.5,0.5,5)rec[-17]_rec[-41];DT(1.5,4.5,5)rec[-16]_rec[-39]_rec[-40];DT(1.5,3.5,5)rec[-15]_rec[-44];DT(3.5,4.5,5)rec[-14]_rec[-37]_rec[-38];DT(3.5,3.5,5)rec[-13]_rec[-48];DT(2.5,3.5,5)rec[-12]_rec[-34];DT(2.5,1.5,5)rec[-11]_rec[-33];DT(1.5,2.5,5)rec[-10]_rec[-32];DT(2,0.5,5)rec[-9]_rec[-31];DT(0.5,3.5,5)rec[-8]_rec[-30];DT(0.5,1.5,5)rec[-7]_rec[-29];DT(0.5,)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(2.5,6)rec[-6];DT(0.5,0.5,6)rec[-5];DT(4.5,0.5,5)rec[-4]_rec[-35];DT(4.5,2.5,5)rec[-3]_rec[-26]_rec[-27];DT(3.5,2.5,5)rec[-2]_rec[-36];DT(4.5,3.5,5)rec[-1]_rec[-25];TICK;M_0_1_2_3_4_10_11_12_13_14_20_21_22_23_24_30_31_32_33_34_40_41_42_43_44;DT(1,0,7)rec[-20]_rec[-25];DT(0.5,1.5,7)rec[-18]_rec[-19]_rec[-23]_rec[-24]_rec[-42];DT(0.5,3.5,7)rec[-16]_rec[-17]_rec[-21]_rec[-22]_rec[-43];DT(1.5,0.5,7)rec[-14]_rec[-15]_rec[-19]_rec[-20]_rec[-44];DT(1.5,2.5,7)rec[-12]_rec[-13]_rec[-17]_rec[-18]_rec[-45];DT(2.5,4.5,7)rec[-11]_rec[-16]_rec[-39]_rec[-40];DT(3,0,7)rec[-10]_rec[-15];DT(2.5,1.5,7)rec[-8]_rec[-9]_rec[-13]_rec[-14]_rec[-46];DT(2.5,3.5,7)rec[-6]_rec[-7]_rec[-11]_rec[-12]_rec[-47];DT(3.5,0.5,7)rec[-4]_rec[-5]_rec[-9]_rec[-10]_rec[-48];DT(3.5,2.5,7)rec[-2]_rec[-3]_rec[-7]_rec[-8]_rec[-49];DT(3.5,4.5,7)rec[-1]_rec[-6]_rec[-38];OI(0)rec[-21]_rec[-22]_rec[-23]_rec[-24]_rec[-25]_rec[-41]_rec[-89] )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( Open Circuit + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( #circuit=Q(0,2)0;Q(0,4)1;Q(0.5,0.5)2;Q(0.5,1.5)3;Q(0.5,2.5)4;Q(0.5,3.5)5;Q(0.5,4.5)6;Q(1,0)7;Q(1,1)8;Q(1,2)9;Q(1,3)10;Q(1,4)11;Q(1.5,0.5)12;Q(1.5,1.5)13;Q(1.5,2.5)14;Q(1.5,3.5)15;Q(1.5,4.5)16;Q(2,1)17;Q(2,2)18;Q(2,3)19;Q(2,4)20;Q(2,5)21;Q(2.5,0.5)22;Q(2.5,1.5)23;Q(2.5,2.5)24;Q(2.5,3.5)25;Q(2.5,4.5)26;Q(3,0)27;Q(3,1)28;Q(3,2)29;Q(3,3)30;Q(3,4)31;Q(3.5,0.5)32;Q(3.5,1.5)33;Q(3.5,2.5)34;Q(3.5,3.5)35;Q(3.5,4.5)36;Q(4,1)37;Q(4,2)38;Q(4,3)39;Q(4,4)40;Q(4,5)41;Q(4.5,0.5)42;Q(4.5,1.5)43;Q(4.5,2.5)44;Q(4.5,3.5)45;Q(4.5,4.5)46;Q(5,1)47;Q(5,3)48;POLYGON(0,0,1,0.25)12_22_23_13;POLYGON(0,0,1,0.25)3_13_14_4;POLYGON(0,0,1,0.25)14_24_25_15;POLYGON(0,0,1,0.25)5_15_16_6;POLYGON(0,0,1,0.25)34_44_45_35;POLYGON(0,0,1,0.25)25_35_36_26;POLYGON(0,0,1,0.25)32_42_43_33;POLYGON(0,0,1,0.25)23_33_34_24;POLYGON(0,0,1,0.25)12_2;POLYGON(0,0,1,0.25)32_22;POLYGON(0,0,1,0.25)46_36;POLYGON(0,0,1,0.25)26_16;POLYGON(1,0,0,0.25)2_12_13_3;POLYGON(1,0,0,0.25)13_23_24_14;POLYGON(1,0,0,0.25)4_14_15_5;POLYGON(1,0,0,0.25)15_25_26_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(16;POLYGON(1,0,0,0.25)24_34_35_25;POLYGON(1,0,0,0.25)35_45_46_36;POLYGON(1,0,0,0.25)22_32_33_23;POLYGON(1,0,0,0.25)33_43_44_34;POLYGON(1,0,0,0.25)42_43;POLYGON(1,0,0,0.25)44_45;POLYGON(1,0,0,0.25)5_6;POLYGON(1,0,0,0.25)3_4;TICK;R_2_4_6_13_15_22_24_26_33_35_42_44_46;RX_12_3_14_5_16_25_36_45_34_23_43_32;MARKX(1)14_25;MARKZ(1)15_24;TICK;RX_9_11_17_19_21_29_31_37_39_41_27_7_10_18_8_28_38_48_47_30_40_20_0_1;MARKX(0)8;MARKX(1)19;TICK;CX_9_3_17_12_19_14_21_16_29_23_31_25_37_32_39_34_41_36_48_44_47_42_40_35_38_33_28_22_30_24_20_15_18_13_8_2_11_5_10_4;TICK;CZ_19_24_29_33_9_13_11_15_21_26_17_22_31_35_41_46_39_44_37_42_43_47_45_48_36_40_34_38_25_30_23_28_16_20_14_18_5_10_3_8;TICK;CZ_24_29_33_37_2_7_4_9_6_11_15_19_13_17_26_31_22_27_35_39_40_45_38_43_30_34_28_32_20_25_18_23_10_14_8_12_0_3_1_5;TICK;CX_9_14_11_16_17_23_19_25_29_34_31_36_37_43_39_45_7_12_27_32_40_46_38_44_30_35_28_33_20_26_18_24_8_13_10_15_1_6_0_4;TICK;MX_9_11_17_19_21_29_31_37_39_41_27_7_8_10_18_20_28_30_38_40_47_48_0_1;MARKX(0)8;MARKX(1)19;DT(1,2,0)rec[-24)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(];DT(1,4,0)rec[-23];DT(2,1,0)rec[-22];DT(2,3,0)rec[-21];DT(2,5,0)rec[-20];DT(3,2,0)rec[-19];DT(3,4,0)rec[-18];DT(4,1,0)rec[-17];DT(4,3,0)rec[-16];DT(4,5,0)rec[-15];DT(3,0,0)rec[-14];DT(1,0,0)rec[-13];TICK;RX_9_11_17_19_21_29_31_37_39_41_27_7_10_18_8_28_38_48_47_30_40_20_0_1;MARKX(0)8;TICK;CX_9_3_17_12_19_14_21_16_29_23_31_25_37_32_39_34_41_36_48_44_47_42_40_35_38_33_28_22_30_24_20_15_18_13_8_2_11_5_10_4;TICK;CZ_19_24_29_33_9_13_11_15_21_26_17_22_31_35_41_46_39_44_37_42_43_47_45_48_36_40_34_38_25_30_23_28_16_20_14_18_5_10_3_8;TICK;CZ_24_29_33_37_2_7_4_9_6_11_15_19_13_17_26_31_22_27_35_39_40_45_38_43_30_34_28_32_20_25_18_23_10_14_8_12_0_3_1_5;TICK;CX_9_14_11_16_17_23_19_25_29_34_31_36_37_43_39_45_7_12_27_32_40_46_38_44_30_35_28_33_20_26_18_24_8_13_10_15_1_6_0_4;TICK;MX_9_11_17_19_21_29_31_37_39_41_7_27_8_10_18_20_28_30_38_40_47_48_0_1;MARKX(0)8;DT(1,2,1)rec[-24]_rec[-48];DT(1,4,1)rec[-23]_rec[-47];DT(2,1,1)rec[-22]_rec[-46];DT(2,3,1)rec[-21]_rec[-45];DT(2,5,1)rec[-20]_rec[-44];DT(3,2,1)rec[-19]_rec[-43];DT(3,4,)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(1)rec[-18]_rec[-42];DT(4,1,1)rec[-17]_rec[-41];DT(4,3,1)rec[-16]_rec[-40];DT(4,5,1)rec[-15]_rec[-39];DT(1,0,1)rec[-14]_rec[-37];DT(3,0,1)rec[-13]_rec[-38];DT(1,1,1)rec[-12]_rec[-36];DT(1,3,1)rec[-11]_rec[-35];DT(2,2,1)rec[-10]_rec[-34];DT(2,4,1)rec[-9]_rec[-33];DT(3,1,1)rec[-8]_rec[-32];DT(3,3,1)rec[-7]_rec[-31];DT(4,2,1)rec[-6]_rec[-30];DT(4,4,1)rec[-5]_rec[-29];DT(5,1,1)rec[-4]_rec[-28];DT(5,3,1)rec[-3]_rec[-27];DT(0,2,1)rec[-2]_rec[-26];DT(0,4,1)rec[-1]_rec[-25];TICK;RX_9_11_17_19_21_29_31_37_39_41_27_7_10_18_8_28_38_48_47_30_40_20_0_1;TICK;CX_9_3_17_12_19_14_21_16_29_23_31_25_37_32_39_34_41_36_48_44_47_42_40_35_38_33_28_22_30_24_20_15_18_13_8_2_11_5_10_4;TICK;CZ_19_24_29_33_9_13_11_15_21_26_17_22_31_35_41_46_39_44_37_42_43_47_45_48_36_40_34_38_25_30_23_28_16_20_14_18_5_10_3_8;TICK;CZ_24_29_33_37_2_7_4_9_6_11_15_19_13_17_26_31_22_27_35_39_40_45_38_43_30_34_28_32_20_25_18_23_10_14_8_12_0_3_1_5;TICK;CX_9_14_11_16_17_23_19_25_29_34_31_36_37_43_39_45_7_12_27_32_40_46_38_44_30_35_28_33_20_26_18_24_8_13_10_15_1_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(6_0_4;TICK;MX_9_11_17_19_21_29_31_37_39_41_7_27_8_10_18_20_28_30_38_40_47_48_0_1;DT(1,2,2)rec[-24]_rec[-48];DT(1,4,2)rec[-23]_rec[-47];DT(2,1,2)rec[-22]_rec[-46];DT(2,3,2)rec[-21]_rec[-45];DT(2,5,2)rec[-20]_rec[-44];DT(3,2,2)rec[-19]_rec[-43];DT(3,4,2)rec[-18]_rec[-42];DT(4,1,2)rec[-17]_rec[-41];DT(4,3,2)rec[-16]_rec[-40];DT(4,5,2)rec[-15]_rec[-39];DT(3,0,2)rec[-14]_rec[-37];DT(1,0,2)rec[-13]_rec[-38];DT(1,1,2)rec[-12]_rec[-36];DT(1,3,2)rec[-11]_rec[-35];DT(2,2,2)rec[-10]_rec[-34];DT(2,4,2)rec[-9]_rec[-33];DT(3,1,2)rec[-8]_rec[-32];DT(3,3,2)rec[-7]_rec[-31];DT(4,2,2)rec[-6]_rec[-30];DT(4,4,2)rec[-5]_rec[-29];DT(5,1,2)rec[-4]_rec[-28];DT(5,3,2)rec[-3]_rec[-27];DT(0,2,2)rec[-2]_rec[-26];DT(0,4,2)rec[-1]_rec[-25];TICK;M_2_4_6_13_15_22_24_26_33_35_42_44_46;MX_3_5_12_14_16_23_25_32_34_36_43_45;DT(1,0,3)rec[-10]_rec[-25]_rec[-39];DT(1,2,3)rec[-9]_rec[-12]_rec[-22]_rec[-24]_rec[-49];DT(1,4,3)rec[-8]_rec[-11]_rec[-21]_rec[-23]_rec[-48];DT(2,5,3)rec[-8]_rec[-18]_rec[-45];DT(2,1,3)rec[-7]_rec[-10]_rec[-20]_rec[-22]_rec)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART([-47];DT(2,3,3)rec[-6]_rec[-9]_rec[-19]_rec[-21]_rec[-46];DT(3,0,3)rec[-5]_rec[-20]_rec[-38];DT(3,2,3)rec[-4]_rec[-7]_rec[-17]_rec[-19]_rec[-44];DT(3,4,3)rec[-3]_rec[-6]_rec[-16]_rec[-18]_rec[-43];DT(4,5,3)rec[-3]_rec[-13]_rec[-40];DT(4,1,3)rec[-2]_rec[-5]_rec[-15]_rec[-17]_rec[-42];DT(4,3,3)rec[-1]_rec[-4]_rec[-14]_rec[-16]_rec[-41];OI(0)rec[-11]_rec[-12]_rec[-23]_rec[-24]_rec[-25] )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( Open Circuit + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
Surface CodeCodeStandard (ИZ)StyleMemory (V)Task5x5x3SizeLink )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,2)0;Q(0,4)1;Q(0.5,0.5)2;Q(0.5,1.5)3;Q(0.5,2.5)4;Q(0.5,3.5)5;Q(0.5,4.5)6;Q(1,0)7;Q(1,1)8;Q(1,2)9;Q(1,3)10;Q(1,4)11;Q(1.5,0.5)12;Q(1.5,1.5)13;Q(1.5,2.5)14;Q(1.5,3.5)15;Q(1.5,4.5)16;Q(2,1)17;Q(2,2)18;Q(2,3)19;Q(2,4)20;Q(2,5)21;Q(2.5,0.5)22;Q(2.5,1.5)23;Q(2.5,2.5)24;Q(2.5,3.5)25;Q(2.5,4.5)26;Q(3,0)27;Q(3,1)28;Q(3,2)29;Q(3,3)30;Q(3,4)31;Q(3.5,0.5)32;Q(3.5,1.5)33;Q(3.5,2.5)34;Q(3.5,3.5)35;Q(3.5,4.5)36;Q(4,1)37;Q(4,2)38;Q(4,3)39;Q(4,4)40;Q(4,5)41;Q(4.5,0.5)42;Q(4.5,1.5)43;Q(4.5,2.5)44;Q(4.5,3.5)45;Q(4.5,4.5)46;Q(5,1)47;Q(5,3)48;POLYGON(0,0,1,0.25)12_22_23_13;POLYGON(0,0,1,0.25)3_13_14_4;POLYGON(0,0,1,0.25)14_24_25_15;POLYGON(0,0,1,0.25)5_15_16_6;POLYGON(0,0,1,0.25)34_44_45_35;POLYGON(0,0,1,0.25)25_35_36_26;POLYGON(0,0,1,0.25)32_42_43_33;POLYGON(0,0,1,0.25)23_33_34_24;POLYGON(0,0,1,0.25)12_2;POLYGON(0,0,1,0.25)32_22;POLYGON(0,0,1,0.25)46_36;POLYGON(0,0,1,0.25)26_16;POLYGON(1,0,0,0.25)2_12_13_3;POLYGON(1,0,0,0.25)13_23_24_14;POLYGON(1,0,0,0.25)4_14_15_5;POLYGON(1,0,0,0.25)1)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(5_25_26_16;POLYGON(1,0,0,0.25)24_34_35_25;POLYGON(1,0,0,0.25)35_45_46_36;POLYGON(1,0,0,0.25)22_32_33_23;POLYGON(1,0,0,0.25)33_43_44_34;POLYGON(1,0,0,0.25)42_43;POLYGON(1,0,0,0.25)44_45;POLYGON(1,0,0,0.25)5_6;POLYGON(1,0,0,0.25)3_4;TICK;R_2_3_4_5_6_12_13_14_15_16_22_23_24_25_26_32_33_34_35_36_42_43_44_45_46;MARKZ(0)2_3_4_5_6;TICK;R_9_11_17_19_21_29_31_37_39_41_27_7;RX_8_10_18_20_28_30_38_40_47_48_0_1;MARKX(1)28;TICK;CX_8_2_3_9_10_4_5_11_12_17_18_13_14_19_20_15_16_21_28_22_23_29_30_24_25_31_32_37_38_33_34_39_40_35_36_41_47_42_48_44;TICK;CX_13_9_15_11_22_17_24_19_26_21_33_29_35_31_42_37_44_39_46_41_8_3_10_5_18_14_20_16_28_23_30_25_38_34_40_36_47_43_48_45;TICK;CX_4_9_6_11_13_17_15_19_24_29_26_31_33_37_35_39_2_7_22_27_8_12_10_14_1_5_0_3_18_23_20_25_28_32_30_34_38_43_40_45;TICK;CX_8_13_14_9_10_15_16_11_23_17_18_24_25_19_20_26_28_33_34_29_30_35_36_31_43_37_38_44_45_39_40_46_0_4_1_6_12_7_32_27;TICK;M_9_11_17_19_21_29_31_37_39_41_27_7;MX_8_10_18_20_28_30_38_40_47_48_0_1;MARKX(1)28;DT(1,2,0)rec[-24];DT(1,4,0)rec[-23];D)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(T(2,1,0)rec[-22];DT(2,3,0)rec[-21];DT(2,5,0)rec[-20];DT(3,2,0)rec[-19];DT(3,4,0)rec[-18];DT(4,1,0)rec[-17];DT(4,3,0)rec[-16];DT(4,5,0)rec[-15];DT(3,0,0)rec[-14];DT(1,0,0)rec[-13];TICK;R_9_11_17_19_21_29_31_37_39_41_7_27;RX_8_10_18_20_28_30_38_40_47_48_1_0;MARKX(1)28;MARKZ(2)29;TICK;CX_8_2_3_9_10_4_5_11_12_17_18_13_14_19_20_15_16_21_28_22_23_29_30_24_25_31_32_37_38_33_34_39_40_35_36_41_47_42_48_44;TICK;CX_13_9_15_11_22_17_24_19_26_21_33_29_35_31_42_37_44_39_46_41_8_3_10_5_18_14_20_16_28_23_30_25_38_34_40_36_47_43_48_45;TICK;CX_4_9_6_11_13_17_15_19_24_29_26_31_33_37_35_39_2_7_22_27_8_12_10_14_1_5_0_3_18_23_20_25_28_32_30_34_38_43_40_45;TICK;CX_8_13_14_9_10_15_16_11_23_17_18_24_25_19_20_26_28_33_34_29_30_35_36_31_43_37_38_44_45_39_40_46_0_4_1_6_12_7_32_27;TICK;M_9_11_17_19_21_29_31_37_39_41_7_27;MX_8_10_18_20_28_30_38_40_47_48_0_1;MARKX(1)28;MARKZ(2)29;DT(1,2,1)rec[-24]_rec[-48];DT(1,4,1)rec[-23]_rec[-47];DT(2,1,1)rec[-22]_rec[-46];DT(2,3,1)rec[-21]_rec[-45];DT(2,5,1)rec[-20]_rec[-44];DT(3,2,1)rec[-19]_rec[-43];)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(DT(3,4,1)rec[-18]_rec[-42];DT(4,1,1)rec[-17]_rec[-41];DT(4,3,1)rec[-16]_rec[-40];DT(4,5,1)rec[-15]_rec[-39];DT(1,0,1)rec[-14]_rec[-37];DT(3,0,1)rec[-13]_rec[-38];DT(1,1,1)rec[-12]_rec[-36];DT(1,3,1)rec[-11]_rec[-35];DT(2,2,1)rec[-10]_rec[-34];DT(2,4,1)rec[-9]_rec[-33];DT(3,1,1)rec[-8]_rec[-32];DT(3,3,1)rec[-7]_rec[-31];DT(4,2,1)rec[-6]_rec[-30];DT(4,4,1)rec[-5]_rec[-29];DT(5,1,1)rec[-4]_rec[-28];DT(5,3,1)rec[-3]_rec[-27];DT(0,2,1)rec[-2]_rec[-26];DT(0,4,1)rec[-1]_rec[-25];TICK;R_9_11_17_19_21_29_31_37_39_41_7_27;RX_8_10_18_20_28_30_38_40_47_48_0_1;MARKZ(2)29;TICK;CX_8_2_3_9_10_4_5_11_12_17_18_13_14_19_20_15_16_21_28_22_23_29_30_24_25_31_32_37_38_33_34_39_40_35_36_41_47_42_48_44;TICK;CX_13_9_15_11_22_17_24_19_26_21_33_29_35_31_42_37_44_39_46_41_8_3_10_5_18_14_20_16_28_23_30_25_38_34_40_36_47_43_48_45;TICK;CX_4_9_6_11_13_17_15_19_24_29_26_31_33_37_35_39_2_7_22_27_8_12_10_14_1_5_0_3_18_23_20_25_28_32_30_34_38_43_40_45;TICK;CX_8_13_14_9_10_15_16_11_23_17_18_24_25_19_20_26_28_33_34_29_30_35_36_31_43_37_38_44_45_39)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_40_46_0_4_1_6_12_7_32_27;TICK;M_9_11_17_19_21_29_31_37_39_41_7_27;MX_8_10_18_20_28_30_38_40_47_48_0_1;MARKZ(2)29;DT(1,2,2)rec[-24]_rec[-48];DT(1,4,2)rec[-23]_rec[-47];DT(2,1,2)rec[-22]_rec[-46];DT(2,3,2)rec[-21]_rec[-45];DT(2,5,2)rec[-20]_rec[-44];DT(3,2,2)rec[-19]_rec[-43];DT(3,4,2)rec[-18]_rec[-42];DT(4,1,2)rec[-17]_rec[-41];DT(4,3,2)rec[-16]_rec[-40];DT(4,5,2)rec[-15]_rec[-39];DT(1,0,2)rec[-14]_rec[-38];DT(3,0,2)rec[-13]_rec[-37];DT(1,1,2)rec[-12]_rec[-36];DT(1,3,2)rec[-11]_rec[-35];DT(2,2,2)rec[-10]_rec[-34];DT(2,4,2)rec[-9]_rec[-33];DT(3,1,2)rec[-8]_rec[-32];DT(3,3,2)rec[-7]_rec[-31];DT(4,2,2)rec[-6]_rec[-30];DT(4,4,2)rec[-5]_rec[-29];DT(5,1,2)rec[-4]_rec[-28];DT(5,3,2)rec[-3]_rec[-27];DT(0,2,2)rec[-2]_rec[-26];DT(0,4,2)rec[-1]_rec[-25];TICK;M_2_3_4_5_6_12_13_14_15_16_22_23_24_25_26_32_33_34_35_36_42_43_44_45_46;MARKZ(0)2_3_4_5_6;DT(1,0,3)rec[-20]_rec[-25]_rec[-39];DT(1,2,3)rec[-18]_rec[-19]_rec[-23]_rec[-24]_rec[-49];DT(1,4,3)rec[-16]_rec[-17]_rec[-21]_rec[-22]_rec[-48];DT(2,1,3)rec[-14]_rec[-15]_rec[-)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(19]_rec[-20]_rec[-47];DT(2,3,3)rec[-12]_rec[-13]_rec[-17]_rec[-18]_rec[-46];DT(2,5,3)rec[-11]_rec[-16]_rec[-45];DT(3,0,3)rec[-10]_rec[-15]_rec[-38];DT(3,2,3)rec[-8]_rec[-9]_rec[-13]_rec[-14]_rec[-44];DT(3,4,3)rec[-6]_rec[-7]_rec[-11]_rec[-12]_rec[-43];DT(4,1,3)rec[-4]_rec[-5]_rec[-9]_rec[-10]_rec[-42];DT(4,3,3)rec[-2]_rec[-3]_rec[-7]_rec[-8]_rec[-41];DT(4,5,3)rec[-1]_rec[-6]_rec[-40];OI(0)rec[-21]_rec[-22]_rec[-23]_rec[-24]_rec[-25] + result.append(R"CRUMBLE_PART(
Bacon-Shor Code
Interleaved (XZXZ)Surface CodeMemory (H)3-Coupler5x5x3Memory (V)5x5x4 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(0,1)1;Q(0,2)2;Q(0,3)3;Q(0,4)4;Q(0.5,0.5)5;Q(0.5,1.5)6;Q(0.5,2.5)7;Q(0.5,3.5)8;Q(0.5,4.5)9;Q(1,0)10;Q(1,1)11;Q(1,2)12;Q(1,3)13;Q(1,4)14;Q(1.5,0.5)15;Q(1.5,1.5)16;Q(1.5,2.5)17;Q(1.5,3.5)18;Q(1.5,4.5)19;Q(2,0)20;Q(2,1)21;Q(2,2)22;Q(2,3)23;Q(2,4)24;Q(2.5,0.5)25;Q(2.5,1.5)26;Q(2.5,2.5)27;Q(2.5,3.5)28;Q(2.5,4.5)29;Q(3,0)30;Q(3,1)31;Q(3,2)32;Q(3,3)33;Q(3,4)34;Q(3.5,0.5)35;Q(3.5,1.5)36;Q(3.5,2.5)37;Q(3.5,3.5)38;Q(3.5,4.5)39;Q(4,0)40;Q(4,1)41;Q(4,2)42;Q(4,3)43;Q(4,4)44;Q(4.5,0.5)45;Q(4.5,1.5)46;Q(4.5,2.5)47;Q(4.5,3.5)48;POLYGON(0,0,1,0.25)27_22_26_32;POLYGON(0,0,1,0.25)17_12_16_22;POLYGON(0,0,1,0.25)16_11_15_21;POLYGON(0,0,1,0.25)7_2_6_12;POLYGON(0,0,1,0.25)6_1_5_11;POLYGON(0,0,1,0.25)35_30_40;POLYGON(0,0,1,0.25)25_20_30;POLYGON(0,0,1,0.25)15_10_20;POLYGON(0,0,1,0.25)5_0_10;POLYGON(0,0,1,0.25)26_21_25_31;POLYGON(0,0,1,0.25)37_32_36_42;POLYGON(0,0,1,0.25)36_31_35_41;POLYGON(0,0,1,0.25)28_23_27_33;POLYGON(0,0,1,0.25)18_13_17_23;POLYGON(0,0,1,0.25)9_4_8_14;POLYGON(0,0,1,)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(0.25)8_3_7_13;POLYGON(0,0,1,0.25)38_33_37_43;POLYGON(0,0,1,0.25)9;POLYGON(0,0,1,0.25)19_14_18_24;POLYGON(0,0,1,0.25)19;POLYGON(0,0,1,0.25)29_24_28_34;POLYGON(0,0,1,0.25)29;POLYGON(0,0,1,0.25)39_34_38_44;POLYGON(0,0,1,0.25)39;POLYGON(1,0,0,0.25)12_6_11_16;POLYGON(1,0,0,0.25)22_16_21_26;POLYGON(1,0,0,0.25)13_7_12_17;POLYGON(1,0,0,0.25)23_17_22_27;POLYGON(1,0,0,0.25)33_27_32_37;POLYGON(1,0,0,0.25)3_2_7;POLYGON(1,0,0,0.25)2_1_6;POLYGON(1,0,0,0.25)1_0_5;POLYGON(1,0,0,0.25)21_15_20_25;POLYGON(1,0,0,0.25)11_5_10_15;POLYGON(1,0,0,0.25)32_26_31_36;POLYGON(1,0,0,0.25)31_25_30_35;POLYGON(1,0,0,0.25)48;POLYGON(1,0,0,0.25)43_37_42_47;POLYGON(1,0,0,0.25)47;POLYGON(1,0,0,0.25)42_36_41_46;POLYGON(1,0,0,0.25)46;POLYGON(1,0,0,0.25)41_35_40_45;POLYGON(1,0,0,0.25)45;POLYGON(1,0,0,0.25)14_8_13_18;POLYGON(1,0,0,0.25)24_18_23_28;POLYGON(1,0,0,0.25)34_28_33_38;POLYGON(1,0,0,0.25)4_3_8;POLYGON(1,0,0,0.25)44_38_43_48;TICK;R_0_1_2_3_4_10_11_12_13_14_20_21_22_23_24_30_31_32_33_34_40_41_42_43_44;TICK;R_37_35_28_26_17_15_8_6_9_19_29_39;RX)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_38_36_27_25_18_16_7_5_45_46_47_48;MARKX(1)27;MARKZ(0)17;TICK;CX_38_33_32_37_36_31_30_35_23_28_27_22_21_26_25_20_18_13_12_17_16_11_10_15_3_8_7_2_1_6_5_0_45_40_47_42_43_48_41_46_9_4_14_19_29_24_34_39;TICK;CX_42_37_40_35_33_28_31_26_22_17_20_15_13_8_11_6_38_34_36_32_27_23_25_21_18_14_16_12_7_3_5_1_47_43_45_41_24_19_44_39;TICK;CX_21_16_26_22_32_27_37_33_43_38_10_5_15_11_23_18_28_24_17_13_6_2_12_7_8_4_41_36_35_31_30_25_46_42_48_44_14_9_34_29;TICK;CX_26_21_17_12_2_7_22_27_33_38_37_32_15_10_0_5_6_1_28_23_13_18_8_3_31_36_11_16_20_25_35_30_46_41_48_43_42_47_40_45_19_14_39_34_24_29_4_9;TICK;M_38_36_27_25_18_16_7_5_9_19_29_39;MX_37_35_28_26_17_15_8_6_45_46_47_48;MARKX(1)17;MARKZ(0)16;DT(3.5,3.5,0)rec[-24];DT(3.5,1.5,0)rec[-23];DT(2.5,2.5,0)rec[-22];DT(2.5,0.5,0)rec[-21];DT(1.5,3.5,0)rec[-20];DT(1.5,1.5,0)rec[-19];DT(0.5,2.5,0)rec[-18];DT(0.5,0.5,0)rec[-17];DT(0.5,4.5,0)rec[-16];DT(1.5,4.5,0)rec[-15];DT(2.5,4.5,0)rec[-14];DT(3.5,4.5,0)rec[-13];TICK;R_38_36_27_25_18_16_7_5_9_19_29_39;RX_37_35_28_26_17_15_8_6_45_46_47_48;)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(MARKX(1)17;MARKX(3)26;MARKZ(0)16;MARKZ(2)27;TICK;CX_26_21_17_12_2_7_22_27_33_38_37_32_15_10_0_5_6_1_28_23_13_18_8_3_31_36_11_16_20_25_35_30_46_41_48_43_42_47_40_45_39_34_24_29_19_14_4_9;TICK;CX_21_16_26_22_32_27_37_33_43_38_10_5_15_11_23_18_28_24_17_13_6_2_12_7_8_4_41_36_35_31_30_25_46_42_48_44_14_9_34_29;TICK;CX_42_37_40_35_33_28_31_26_22_17_20_15_13_8_11_6_38_34_36_32_27_23_25_21_18_14_16_12_7_3_5_1_47_43_45_41_24_19_44_39;TICK;CX_38_33_32_37_36_31_30_35_23_28_27_22_21_26_25_20_18_13_12_17_16_11_10_15_3_8_7_2_1_6_5_0_45_40_47_42_43_48_41_46_14_19_34_39_29_24_9_4;TICK;M_37_35_28_26_17_15_8_6_9_19_29_39;MX_38_36_27_25_18_16_7_5_45_46_47_48;MARKX(1)27;MARKX(3)16;MARKZ(0)17;MARKZ(2)26;DT(3.5,1.5,1)rec[-24]_rec[-47];DT(3.5,0.5,1)rec[-23];DT(2.5,2.5,1)rec[-22]_rec[-46];DT(2.5,0.5,1)rec[-21]_rec[-45];DT(1.5,1.5,1)rec[-20]_rec[-43];DT(1.5,0.5,1)rec[-19];DT(0.5,2.5,1)rec[-18]_rec[-42];DT(0.5,0.5,1)rec[-17]_rec[-41];DT(1.5,4.5,1)rec[-16]_rec[-39]_rec[-40];DT(1.5,3.5,1)rec[-15]_rec[-44];DT(3.5,4.5,1)rec[-14]_rec[-37]_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(rec[-38];DT(3.5,3.5,1)rec[-13]_rec[-48];DT(2.5,3.5,1)rec[-12]_rec[-34];DT(2.5,1.5,1)rec[-11]_rec[-33];DT(1.5,2.5,1)rec[-10]_rec[-32];DT(2,0.5,1)rec[-9]_rec[-31];DT(0.5,3.5,1)rec[-8]_rec[-30];DT(0.5,1.5,1)rec[-7]_rec[-29];DT(0.5,2.5,2)rec[-6];DT(0.5,0.5,2)rec[-5];DT(4.5,0.5,1)rec[-4]_rec[-35];DT(4.5,2.5,1)rec[-3]_rec[-26]_rec[-27];DT(3.5,2.5,1)rec[-2]_rec[-36];DT(4.5,3.5,1)rec[-1]_rec[-25];TICK;R_37_35_28_26_17_15_8_6_9_19_29_39;RX_38_36_27_25_18_16_7_5_45_46_47_48;MARKX(3)16;MARKZ(2)26;TICK;CX_38_33_32_37_36_31_30_35_23_28_27_22_21_26_25_20_18_13_12_17_16_11_10_15_3_8_7_2_1_6_5_0_45_40_47_42_43_48_41_46_9_4_14_19_29_24_34_39;TICK;CX_42_37_40_35_33_28_31_26_22_17_20_15_13_8_11_6_38_34_36_32_27_23_25_21_18_14_16_12_7_3_5_1_47_43_45_41_24_19_44_39;TICK;CX_21_16_26_22_32_27_37_33_43_38_10_5_15_11_23_18_28_24_17_13_6_2_12_7_8_4_41_36_35_31_30_25_46_42_48_44_14_9_34_29;TICK;CX_26_21_17_12_2_7_22_27_33_38_37_32_15_10_0_5_6_1_28_23_13_18_8_3_31_36_11_16_20_25_35_30_46_41_48_43_42_47_40_45_19_14_39_34_24_29_4_9;TICK;M)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_38_36_27_25_18_16_7_5_9_19_29_39;MX_37_35_28_26_17_15_8_6_45_46_47_48;MARKX(3)26;MARKZ(2)27;DT(3.5,2.5,3)rec[-24]_rec[-48];DT(3.5,0.5,3)rec[-23]_rec[-47];DT(2.5,1.5,3)rec[-22]_rec[-45];DT(2.5,0.5,3)rec[-21];DT(1.5,2.5,3)rec[-20]_rec[-44];DT(1.5,0.5,3)rec[-19]_rec[-43];DT(0.5,1.5,3)rec[-18]_rec[-41];DT(0.5,0.5,3)rec[-17];DT(0.5,3.5,3)rec[-16]_rec[-42];DT(2.5,4.5,3)rec[-15]_rec[-38]_rec[-39];DT(2.5,3.5,3)rec[-14]_rec[-46];DT(3.5,4.5,3)rec[-13]_rec[-37];DT(2.5,2.5,3)rec[-12]_rec[-34];DT(3,0.5,3)rec[-11]_rec[-33];DT(1.5,3.5,3)rec[-10]_rec[-32];DT(1.5,1.5,3)rec[-9]_rec[-31];DT(0.5,2.5,3)rec[-8]_rec[-30];DT(1,0.5,3)rec[-7]_rec[-29];DT(0.5,3.5,4)rec[-6];DT(0.5,1.5,4)rec[-5];DT(4.5,1.5,3)rec[-4]_rec[-27]_rec[-28];DT(3.5,1.5,3)rec[-3]_rec[-35];DT(4.5,3.5,3)rec[-2]_rec[-25]_rec[-26];DT(3.5,3.5,3)rec[-1]_rec[-36];TICK;R_38_36_27_25_18_16_7_5_9_19_29_39;RX_37_35_28_26_17_15_8_6_45_46_47_48;TICK;CX_26_21_17_12_2_7_22_27_33_38_37_32_15_10_0_5_6_1_28_23_13_18_8_3_31_36_11_16_20_25_35_30_46_41_48_43_42_47_40_45_39_34_24_29_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(19_14_4_9;TICK;CX_21_16_26_22_32_27_37_33_43_38_10_5_15_11_23_18_28_24_17_13_6_2_12_7_8_4_41_36_35_31_30_25_46_42_48_44_14_9_34_29;TICK;CX_42_37_40_35_33_28_31_26_22_17_20_15_13_8_11_6_38_34_36_32_27_23_25_21_18_14_16_12_7_3_5_1_47_43_45_41_24_19_44_39;TICK;CX_38_33_32_37_36_31_30_35_23_28_27_22_21_26_25_20_18_13_12_17_16_11_10_15_3_8_7_2_1_6_5_0_45_40_47_42_43_48_41_46_14_19_34_39_29_24_9_4;TICK;M_37_35_28_26_17_15_8_6_9_19_29_39;MX_38_36_27_25_18_16_7_5_45_46_47_48;DT(3.5,1.5,5)rec[-24]_rec[-47];DT(3.5,0.5,5)rec[-23];DT(2.5,2.5,5)rec[-22]_rec[-46];DT(2.5,0.5,5)rec[-21]_rec[-45];DT(1.5,1.5,5)rec[-20]_rec[-43];DT(1.5,0.5,5)rec[-19];DT(0.5,2.5,5)rec[-18]_rec[-42];DT(0.5,0.5,5)rec[-17]_rec[-41];DT(1.5,4.5,5)rec[-16]_rec[-39]_rec[-40];DT(1.5,3.5,5)rec[-15]_rec[-44];DT(3.5,4.5,5)rec[-14]_rec[-37]_rec[-38];DT(3.5,3.5,5)rec[-13]_rec[-48];DT(2.5,3.5,5)rec[-12]_rec[-34];DT(2.5,1.5,5)rec[-11]_rec[-33];DT(1.5,2.5,5)rec[-10]_rec[-32];DT(2,0.5,5)rec[-9]_rec[-31];DT(0.5,3.5,5)rec[-8]_rec[-30];DT(0.5,1.5,5)rec[-7]_rec[-29])CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(;DT(0.5,2.5,6)rec[-6];DT(0.5,0.5,6)rec[-5];DT(4.5,0.5,5)rec[-4]_rec[-35];DT(4.5,2.5,5)rec[-3]_rec[-26]_rec[-27];DT(3.5,2.5,5)rec[-2]_rec[-36];DT(4.5,3.5,5)rec[-1]_rec[-25];TICK;M_0_1_2_3_4_10_11_12_13_14_20_21_22_23_24_30_31_32_33_34_40_41_42_43_44;DT(1,0,7)rec[-20]_rec[-25];DT(0.5,1.5,7)rec[-18]_rec[-19]_rec[-23]_rec[-24]_rec[-42];DT(0.5,3.5,7)rec[-16]_rec[-17]_rec[-21]_rec[-22]_rec[-43];DT(1.5,0.5,7)rec[-14]_rec[-15]_rec[-19]_rec[-20]_rec[-44];DT(1.5,2.5,7)rec[-12]_rec[-13]_rec[-17]_rec[-18]_rec[-45];DT(2.5,4.5,7)rec[-11]_rec[-16]_rec[-39]_rec[-40];DT(3,0,7)rec[-10]_rec[-15];DT(2.5,1.5,7)rec[-8]_rec[-9]_rec[-13]_rec[-14]_rec[-46];DT(2.5,3.5,7)rec[-6]_rec[-7]_rec[-11]_rec[-12]_rec[-47];DT(3.5,0.5,7)rec[-4]_rec[-5]_rec[-9]_rec[-10]_rec[-48];DT(3.5,2.5,7)rec[-2]_rec[-3]_rec[-7]_rec[-8]_rec[-49];DT(3.5,4.5,7)rec[-1]_rec[-6]_rec[-38];OI(0)rec[-21]_rec[-22]_rec[-23]_rec[-24]_rec[-25]_rec[-41]_rec[-89] + result.append(R"CRUMBLE_PART( Open Circuit )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( "> + result.append(R"CRUMBLE_PART(
Color Code
SuperdenseSurface CodeMemory (Z)Biased (XZZX)5x7x3Memory (V)5x5x3 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,2)0;Q(0,4)1;Q(0.5,0.5)2;Q(0.5,1.5)3;Q(0.5,2.5)4;Q(0.5,3.5)5;Q(0.5,4.5)6;Q(1,0)7;Q(1,1)8;Q(1,2)9;Q(1,3)10;Q(1,4)11;Q(1.5,0.5)12;Q(1.5,1.5)13;Q(1.5,2.5)14;Q(1.5,3.5)15;Q(1.5,4.5)16;Q(2,1)17;Q(2,2)18;Q(2,3)19;Q(2,4)20;Q(2,5)21;Q(2.5,0.5)22;Q(2.5,1.5)23;Q(2.5,2.5)24;Q(2.5,3.5)25;Q(2.5,4.5)26;Q(3,0)27;Q(3,1)28;Q(3,2)29;Q(3,3)30;Q(3,4)31;Q(3.5,0.5)32;Q(3.5,1.5)33;Q(3.5,2.5)34;Q(3.5,3.5)35;Q(3.5,4.5)36;Q(4,1)37;Q(4,2)38;Q(4,3)39;Q(4,4)40;Q(4,5)41;Q(4.5,0.5)42;Q(4.5,1.5)43;Q(4.5,2.5)44;Q(4.5,3.5)45;Q(4.5,4.5)46;Q(5,1)47;Q(5,3)48;POLYGON(0,0,1,0.25)12_22_23_13;POLYGON(0,0,1,0.25)3_13_14_4;POLYGON(0,0,1,0.25)14_24_25_15;POLYGON(0,0,1,0.25)5_15_16_6;POLYGON(0,0,1,0.25)34_44_45_35;POLYGON(0,0,1,0.25)25_35_36_26;POLYGON(0,0,1,0.25)32_42_43_33;POLYGON(0,0,1,0.25)23_33_34_24;POLYGON(0,0,1,0.25)12_2;POLYGON(0,0,1,0.25)32_22;POLYGON(0,0,1,0.25)46_36;POLYGON(0,0,1,0.25)26_16;POLYGON(1,0,0,0.25)2_12_13_3;POLYGON(1,0,0,0.25)13_23_24_14;POLYGON(1,0,0,0.25)4_14_15_5;POLYGON(1,0,0,0.25)1)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(5_25_26_16;POLYGON(1,0,0,0.25)24_34_35_25;POLYGON(1,0,0,0.25)35_45_46_36;POLYGON(1,0,0,0.25)22_32_33_23;POLYGON(1,0,0,0.25)33_43_44_34;POLYGON(1,0,0,0.25)42_43;POLYGON(1,0,0,0.25)44_45;POLYGON(1,0,0,0.25)5_6;POLYGON(1,0,0,0.25)3_4;TICK;R_2_4_6_13_15_22_24_26_33_35_42_44_46;RX_12_3_14_5_16_25_36_45_34_23_43_32;MARKX(1)14_25;MARKZ(1)15_24;TICK;RX_9_11_17_19_21_29_31_37_39_41_27_7_10_18_8_28_38_48_47_30_40_20_0_1;MARKX(0)8;MARKX(1)19;TICK;CX_9_3_17_12_19_14_21_16_29_23_31_25_37_32_39_34_41_36_48_44_47_42_40_35_38_33_28_22_30_24_20_15_18_13_8_2_11_5_10_4;TICK;CZ_19_24_29_33_9_13_11_15_21_26_17_22_31_35_41_46_39_44_37_42_43_47_45_48_36_40_34_38_25_30_23_28_16_20_14_18_5_10_3_8;TICK;CZ_24_29_33_37_2_7_4_9_6_11_15_19_13_17_26_31_22_27_35_39_40_45_38_43_30_34_28_32_20_25_18_23_10_14_8_12_0_3_1_5;TICK;CX_9_14_11_16_17_23_19_25_29_34_31_36_37_43_39_45_7_12_27_32_40_46_38_44_30_35_28_33_20_26_18_24_8_13_10_15_1_6_0_4;TICK;MX_9_11_17_19_21_29_31_37_39_41_27_7_8_10_18_20_28_30_38_40_47_48_0_1;MARKX(0)8;MARKX(1)19;DT(1,2,0)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART()rec[-24];DT(1,4,0)rec[-23];DT(2,1,0)rec[-22];DT(2,3,0)rec[-21];DT(2,5,0)rec[-20];DT(3,2,0)rec[-19];DT(3,4,0)rec[-18];DT(4,1,0)rec[-17];DT(4,3,0)rec[-16];DT(4,5,0)rec[-15];DT(3,0,0)rec[-14];DT(1,0,0)rec[-13];TICK;RX_9_11_17_19_21_29_31_37_39_41_27_7_10_18_8_28_38_48_47_30_40_20_0_1;MARKX(0)8;TICK;CX_9_3_17_12_19_14_21_16_29_23_31_25_37_32_39_34_41_36_48_44_47_42_40_35_38_33_28_22_30_24_20_15_18_13_8_2_11_5_10_4;TICK;CZ_19_24_29_33_9_13_11_15_21_26_17_22_31_35_41_46_39_44_37_42_43_47_45_48_36_40_34_38_25_30_23_28_16_20_14_18_5_10_3_8;TICK;CZ_24_29_33_37_2_7_4_9_6_11_15_19_13_17_26_31_22_27_35_39_40_45_38_43_30_34_28_32_20_25_18_23_10_14_8_12_0_3_1_5;TICK;CX_9_14_11_16_17_23_19_25_29_34_31_36_37_43_39_45_7_12_27_32_40_46_38_44_30_35_28_33_20_26_18_24_8_13_10_15_1_6_0_4;TICK;MX_9_11_17_19_21_29_31_37_39_41_7_27_8_10_18_20_28_30_38_40_47_48_0_1;MARKX(0)8;DT(1,2,1)rec[-24]_rec[-48];DT(1,4,1)rec[-23]_rec[-47];DT(2,1,1)rec[-22]_rec[-46];DT(2,3,1)rec[-21]_rec[-45];DT(2,5,1)rec[-20]_rec[-44];DT(3,2,1)rec[-19]_rec[-43])CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(;DT(3,4,1)rec[-18]_rec[-42];DT(4,1,1)rec[-17]_rec[-41];DT(4,3,1)rec[-16]_rec[-40];DT(4,5,1)rec[-15]_rec[-39];DT(1,0,1)rec[-14]_rec[-37];DT(3,0,1)rec[-13]_rec[-38];DT(1,1,1)rec[-12]_rec[-36];DT(1,3,1)rec[-11]_rec[-35];DT(2,2,1)rec[-10]_rec[-34];DT(2,4,1)rec[-9]_rec[-33];DT(3,1,1)rec[-8]_rec[-32];DT(3,3,1)rec[-7]_rec[-31];DT(4,2,1)rec[-6]_rec[-30];DT(4,4,1)rec[-5]_rec[-29];DT(5,1,1)rec[-4]_rec[-28];DT(5,3,1)rec[-3]_rec[-27];DT(0,2,1)rec[-2]_rec[-26];DT(0,4,1)rec[-1]_rec[-25];TICK;RX_9_11_17_19_21_29_31_37_39_41_27_7_10_18_8_28_38_48_47_30_40_20_0_1;TICK;CX_9_3_17_12_19_14_21_16_29_23_31_25_37_32_39_34_41_36_48_44_47_42_40_35_38_33_28_22_30_24_20_15_18_13_8_2_11_5_10_4;TICK;CZ_19_24_29_33_9_13_11_15_21_26_17_22_31_35_41_46_39_44_37_42_43_47_45_48_36_40_34_38_25_30_23_28_16_20_14_18_5_10_3_8;TICK;CZ_24_29_33_37_2_7_4_9_6_11_15_19_13_17_26_31_22_27_35_39_40_45_38_43_30_34_28_32_20_25_18_23_10_14_8_12_0_3_1_5;TICK;CX_9_14_11_16_17_23_19_25_29_34_31_36_37_43_39_45_7_12_27_32_40_46_38_44_30_35_28_33_20_26_18_24_8_13_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(10_15_1_6_0_4;TICK;MX_9_11_17_19_21_29_31_37_39_41_7_27_8_10_18_20_28_30_38_40_47_48_0_1;DT(1,2,2)rec[-24]_rec[-48];DT(1,4,2)rec[-23]_rec[-47];DT(2,1,2)rec[-22]_rec[-46];DT(2,3,2)rec[-21]_rec[-45];DT(2,5,2)rec[-20]_rec[-44];DT(3,2,2)rec[-19]_rec[-43];DT(3,4,2)rec[-18]_rec[-42];DT(4,1,2)rec[-17]_rec[-41];DT(4,3,2)rec[-16]_rec[-40];DT(4,5,2)rec[-15]_rec[-39];DT(3,0,2)rec[-14]_rec[-37];DT(1,0,2)rec[-13]_rec[-38];DT(1,1,2)rec[-12]_rec[-36];DT(1,3,2)rec[-11]_rec[-35];DT(2,2,2)rec[-10]_rec[-34];DT(2,4,2)rec[-9]_rec[-33];DT(3,1,2)rec[-8]_rec[-32];DT(3,3,2)rec[-7]_rec[-31];DT(4,2,2)rec[-6]_rec[-30];DT(4,4,2)rec[-5]_rec[-29];DT(5,1,2)rec[-4]_rec[-28];DT(5,3,2)rec[-3]_rec[-27];DT(0,2,2)rec[-2]_rec[-26];DT(0,4,2)rec[-1]_rec[-25];TICK;M_2_4_6_13_15_22_24_26_33_35_42_44_46;MX_3_5_12_14_16_23_25_32_34_36_43_45;DT(1,0,3)rec[-10]_rec[-25]_rec[-39];DT(1,2,3)rec[-9]_rec[-12]_rec[-22]_rec[-24]_rec[-49];DT(1,4,3)rec[-8]_rec[-11]_rec[-21]_rec[-23]_rec[-48];DT(2,5,3)rec[-8]_rec[-18]_rec[-45];DT(2,1,3)rec[-7]_rec[-10]_rec[-20]_rec[)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(-22]_rec[-47];DT(2,3,3)rec[-6]_rec[-9]_rec[-19]_rec[-21]_rec[-46];DT(3,0,3)rec[-5]_rec[-20]_rec[-38];DT(3,2,3)rec[-4]_rec[-7]_rec[-17]_rec[-19]_rec[-44];DT(3,4,3)rec[-3]_rec[-6]_rec[-16]_rec[-18]_rec[-43];DT(4,5,3)rec[-3]_rec[-13]_rec[-40];DT(4,1,3)rec[-2]_rec[-5]_rec[-15]_rec[-17]_rec[-42];DT(4,3,3)rec[-1]_rec[-4]_rec[-14]_rec[-16]_rec[-41];OI(0)rec[-11]_rec[-12]_rec[-23]_rec[-24]_rec[-25] + result.append(R"CRUMBLE_PART( Open Circuit )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( "> + result.append(R"CRUMBLE_PART(
Honeycomb Code
YXZ-YZXToric CodeMemory (H)Standard (ZZ)7x9x3Memory (ZH+ZV)6x6x3 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(0,1)1;Q(0,2)2;Q(0,3)3;Q(0,4)4;Q(0,5)5;Q(0,6)6;Q(0.5,0.5)7;Q(0.5,1.5)8;Q(0.5,2.5)9;Q(0.5,3.5)10;Q(0.5,4.5)11;Q(0.5,5.5)12;Q(1,0)13;Q(1,1)14;Q(1,2)15;Q(1,3)16;Q(1,4)17;Q(1,5)18;Q(1,6)19;Q(1.5,0.5)20;Q(1.5,1.5)21;Q(1.5,2.5)22;Q(1.5,3.5)23;Q(1.5,4.5)24;Q(1.5,5.5)25;Q(2,0)26;Q(2,1)27;Q(2,2)28;Q(2,3)29;Q(2,4)30;Q(2,5)31;Q(2,6)32;Q(2.5,0.5)33;Q(2.5,1.5)34;Q(2.5,2.5)35;Q(2.5,3.5)36;Q(2.5,4.5)37;Q(2.5,5.5)38;Q(3,0)39;Q(3,1)40;Q(3,2)41;Q(3,3)42;Q(3,4)43;Q(3,5)44;Q(3,6)45;Q(3.5,0.5)46;Q(3.5,1.5)47;Q(3.5,2.5)48;Q(3.5,3.5)49;Q(3.5,4.5)50;Q(3.5,5.5)51;Q(4,0)52;Q(4,1)53;Q(4,2)54;Q(4,3)55;Q(4,4)56;Q(4,5)57;Q(4,6)58;Q(4.5,0.5)59;Q(4.5,1.5)60;Q(4.5,2.5)61;Q(4.5,3.5)62;Q(4.5,4.5)63;Q(4.5,5.5)64;Q(5,0)65;Q(5,1)66;Q(5,2)67;Q(5,3)68;Q(5,4)69;Q(5,5)70;Q(5,6)71;Q(5.5,0.5)72;Q(5.5,1.5)73;Q(5.5,2.5)74;Q(5.5,3.5)75;Q(5.5,4.5)76;Q(5.5,5.5)77;Q(6,0)78;Q(6,1)79;Q(6,2)80;Q(6,3)81;Q(6,4)82;Q(6,5)83;Q(6,6)84;POLYGON(0,0,1,0.25)13_26_27_14;POLYGON(0,0,1,0.25)1_14_15_2;POLYGON(0,0,1,0.25)15_28)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_29_16;POLYGON(0,0,1,0.25)3_16_17_4;POLYGON(0,0,1,0.25)41_54_55_42;POLYGON(0,0,1,0.25)29_42_43_30;POLYGON(0,0,1,0.25)39_52_53_40;POLYGON(0,0,1,0.25)27_40_41_28;POLYGON(0,0,1,0.25)65_78_79_66;POLYGON(0,0,1,0.25)53_66_67_54;POLYGON(0,0,1,0.25)67_80_81_68;POLYGON(0,0,1,0.25)55_68_69_56;POLYGON(0,0,1,0.25)69_82_83_70;POLYGON(0,0,1,0.25)57_70_71_58;POLYGON(0,0,1,0.25)43_56_57_44;POLYGON(0,0,1,0.25)31_44_45_32;POLYGON(0,0,1,0.25)17_30_31_18;POLYGON(0,0,1,0.25)5_18_19_6;POLYGON(1,0,0,0.25)0_13_14_1;POLYGON(1,0,0,0.25)14_27_28_15;POLYGON(1,0,0,0.25)2_15_16_3;POLYGON(1,0,0,0.25)16_29_30_17;POLYGON(1,0,0,0.25)28_41_42_29;POLYGON(1,0,0,0.25)42_55_56_43;POLYGON(1,0,0,0.25)26_39_40_27;POLYGON(1,0,0,0.25)40_53_54_41;POLYGON(1,0,0,0.25)52_65_66_53;POLYGON(1,0,0,0.25)66_79_80_67;POLYGON(1,0,0,0.25)54_67_68_55;POLYGON(1,0,0,0.25)68_81_82_69;POLYGON(1,0,0,0.25)56_69_70_57;POLYGON(1,0,0,0.25)70_83_84_71;POLYGON(1,0,0,0.25)30_43_44_31;POLYGON(1,0,0,0.25)44_57_58_45;POLYGON(1,0,0,0.25)4_17_18_5;POLYGON(1,0,0,0.25)18_31_32_19;TICK)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(;R_0_1_2_3_4_5_13_14_15_16_17_18_26_27_28_29_30_31_39_40_41_42_43_44_52_53_54_55_56_57_65_66_67_68_69_70;MARKZ(0)39_40_41_42_43_44;TICK;R_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;RX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKZ(1)60;TICK;CX_7_0_1_8_9_2_3_10_11_4_5_12_13_20_21_14_15_22_23_16_17_24_25_18_33_26_27_34_35_28_29_36_37_30_31_38_39_46_47_40_41_48_49_42_43_50_51_44_59_52_53_60_61_54_55_62_63_56_57_64_65_72_73_66_67_74_75_68_69_76_77_70;TICK;CX_7_13_14_8_9_15_16_10_11_17_18_12_26_20_21_27_28_22_23_29_30_24_25_31_33_39_40_34_35_41_42_36_37_43_44_38_52_46_47_53_54_48_49_55_56_50_51_57_59_65_66_60_61_67_68_62_63_69_70_64_0_72_2_74_4_76_73_1_75_3_77_5;TICK;CX_7_1_2_8_9_3_4_10_11_5_14_20_21_15_16_22_23_17_18_24_33_27_28_34_35_29_30_36_37_31_40_46_47_41_42_48_49_43_44_50_59_53_54_60_61_55_56_62_63_57_66_72_73_67_68_74_75_69_70_76_0_12_26_38_52_64_25_13_51_39_77_65;TICK;CX_7_14_15_8_9_16_17_10_11_18_27_20_21_28_29_22_23_30_31_24_33_40_41_34_35_42_43_36_37_44_53_46_47_54_55_48_49_56_57_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(50_59_66_67_60_61_68_69_62_63_70_13_12_39_38_65_64_25_26_51_52_1_72_3_74_5_76_73_2_75_4_77_0;TICK;M_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;MX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKZ(1)60;DT(0.5,1.5,0)rec[-36];DT(0.5,3.5,0)rec[-35];DT(0.5,5.5,0)rec[-34];DT(1.5,0.5,0)rec[-33];DT(1.5,2.5,0)rec[-32];DT(1.5,4.5,0)rec[-31];DT(2.5,1.5,0)rec[-30];DT(2.5,3.5,0)rec[-29];DT(2.5,5.5,0)rec[-28];DT(3.5,0.5,0)rec[-27];DT(3.5,2.5,0)rec[-26];DT(3.5,4.5,0)rec[-25];DT(4.5,1.5,0)rec[-24];DT(4.5,3.5,0)rec[-23];DT(4.5,5.5,0)rec[-22];DT(5.5,0.5,0)rec[-21];DT(5.5,2.5,0)rec[-20];DT(5.5,4.5,0)rec[-19];TICK;R_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;RX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKX(2)25;MARKZ(1)60;TICK;CX_7_0_1_8_9_2_3_10_11_4_5_12_13_20_21_14_15_22_23_16_17_24_25_18_33_26_27_34_35_28_29_36_37_30_31_38_39_46_47_40_41_48_49_42_43_50_51_44_59_52_53_60_61_54_55_62_63_56_57_64_65_72_73_66_67_74_75_68_69_76_77_70;TICK;CX_7_13_14_8_9_15_16_10_11_17_18_12_26_20_21_27_28_2)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(2_23_29_30_24_25_31_33_39_40_34_35_41_42_36_37_43_44_38_52_46_47_53_54_48_49_55_56_50_51_57_59_65_66_60_61_67_68_62_63_69_70_64_0_72_2_74_4_76_73_1_75_3_77_5;TICK;CX_7_1_2_8_9_3_4_10_11_5_14_20_21_15_16_22_23_17_18_24_33_27_28_34_35_29_30_36_37_31_40_46_47_41_42_48_49_43_44_50_59_53_54_60_61_55_56_62_63_57_66_72_73_67_68_74_75_69_70_76_0_12_26_38_52_64_25_13_51_39_77_65;TICK;CX_7_14_15_8_9_16_17_10_11_18_27_20_21_28_29_22_23_30_31_24_33_40_41_34_35_42_43_36_37_44_53_46_47_54_55_48_49_56_57_50_59_66_67_60_61_68_69_62_63_70_13_12_39_38_65_64_25_26_51_52_1_72_3_74_5_76_73_2_75_4_77_0;TICK;M_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;MX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKX(2)25;MARKZ(1)60;DT(0.5,1.5,1)rec[-36]_rec[-72];DT(0.5,3.5,1)rec[-35]_rec[-71];DT(0.5,5.5,1)rec[-34]_rec[-70];DT(1.5,0.5,1)rec[-33]_rec[-69];DT(1.5,2.5,1)rec[-32]_rec[-68];DT(1.5,4.5,1)rec[-31]_rec[-67];DT(2.5,1.5,1)rec[-30]_rec[-66];DT(2.5,3.5,1)rec[-29]_rec[-65];DT(2.5,5.5,1)rec[-28]_rec[-64];DT(3.5,0.5,1)rec[-27)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(]_rec[-63];DT(3.5,2.5,1)rec[-26]_rec[-62];DT(3.5,4.5,1)rec[-25]_rec[-61];DT(4.5,1.5,1)rec[-24]_rec[-60];DT(4.5,3.5,1)rec[-23]_rec[-59];DT(4.5,5.5,1)rec[-22]_rec[-58];DT(5.5,0.5,1)rec[-21]_rec[-57];DT(5.5,2.5,1)rec[-20]_rec[-56];DT(5.5,4.5,1)rec[-19]_rec[-55];DT(0.5,0.5,1)rec[-18]_rec[-54];DT(0.5,2.5,1)rec[-17]_rec[-53];DT(0.5,4.5,1)rec[-16]_rec[-52];DT(1.5,1.5,1)rec[-15]_rec[-51];DT(1.5,3.5,1)rec[-14]_rec[-50];DT(1.5,5.5,1)rec[-13]_rec[-49];DT(2.5,0.5,1)rec[-12]_rec[-48];DT(2.5,2.5,1)rec[-11]_rec[-47];DT(2.5,4.5,1)rec[-10]_rec[-46];DT(3.5,1.5,1)rec[-9]_rec[-45];DT(3.5,3.5,1)rec[-8]_rec[-44];DT(3.5,5.5,1)rec[-7]_rec[-43];DT(4.5,0.5,1)rec[-6]_rec[-42];DT(4.5,2.5,1)rec[-5]_rec[-41];DT(4.5,4.5,1)rec[-4]_rec[-40];DT(5.5,1.5,1)rec[-3]_rec[-39];DT(5.5,3.5,1)rec[-2]_rec[-38];DT(5.5,5.5,1)rec[-1]_rec[-37];TICK;R_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;RX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKX(2)25;TICK;CX_7_0_1_8_9_2_3_10_11_4_5_12_13_20_21_14_15_22_23_16_17_24_25_18_33_26_27_34_35_28_2)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(9_36_37_30_31_38_39_46_47_40_41_48_49_42_43_50_51_44_59_52_53_60_61_54_55_62_63_56_57_64_65_72_73_66_67_74_75_68_69_76_77_70;TICK;CX_7_13_14_8_9_15_16_10_11_17_18_12_26_20_21_27_28_22_23_29_30_24_25_31_33_39_40_34_35_41_42_36_37_43_44_38_52_46_47_53_54_48_49_55_56_50_51_57_59_65_66_60_61_67_68_62_63_69_70_64_0_72_2_74_4_76_73_1_75_3_77_5;TICK;CX_7_1_2_8_9_3_4_10_11_5_14_20_21_15_16_22_23_17_18_24_33_27_28_34_35_29_30_36_37_31_40_46_47_41_42_48_49_43_44_50_59_53_54_60_61_55_56_62_63_57_66_72_73_67_68_74_75_69_70_76_0_12_26_38_52_64_25_13_51_39_77_65;TICK;CX_7_14_15_8_9_16_17_10_11_18_27_20_21_28_29_22_23_30_31_24_33_40_41_34_35_42_43_36_37_44_53_46_47_54_55_48_49_56_57_50_59_66_67_60_61_68_69_62_63_70_13_12_39_38_65_64_25_26_51_52_1_72_3_74_5_76_73_2_75_4_77_0;TICK;M_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;MX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKX(2)25;DT(0.5,1.5,2)rec[-36]_rec[-72];DT(0.5,3.5,2)rec[-35]_rec[-71];DT(0.5,5.5,2)rec[-34]_rec[-70];DT(1.5,0.5,2)rec[-33]_rec[-69];DT(1)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(.5,2.5,2)rec[-32]_rec[-68];DT(1.5,4.5,2)rec[-31]_rec[-67];DT(2.5,1.5,2)rec[-30]_rec[-66];DT(2.5,3.5,2)rec[-29]_rec[-65];DT(2.5,5.5,2)rec[-28]_rec[-64];DT(3.5,0.5,2)rec[-27]_rec[-63];DT(3.5,2.5,2)rec[-26]_rec[-62];DT(3.5,4.5,2)rec[-25]_rec[-61];DT(4.5,1.5,2)rec[-24]_rec[-60];DT(4.5,3.5,2)rec[-23]_rec[-59];DT(4.5,5.5,2)rec[-22]_rec[-58];DT(5.5,0.5,2)rec[-21]_rec[-57];DT(5.5,2.5,2)rec[-20]_rec[-56];DT(5.5,4.5,2)rec[-19]_rec[-55];DT(0.5,0.5,2)rec[-18]_rec[-54];DT(0.5,2.5,2)rec[-17]_rec[-53];DT(0.5,4.5,2)rec[-16]_rec[-52];DT(1.5,1.5,2)rec[-15]_rec[-51];DT(1.5,3.5,2)rec[-14]_rec[-50];DT(1.5,5.5,2)rec[-13]_rec[-49];DT(2.5,0.5,2)rec[-12]_rec[-48];DT(2.5,2.5,2)rec[-11]_rec[-47];DT(2.5,4.5,2)rec[-10]_rec[-46];DT(3.5,1.5,2)rec[-9]_rec[-45];DT(3.5,3.5,2)rec[-8]_rec[-44];DT(3.5,5.5,2)rec[-7]_rec[-43];DT(4.5,0.5,2)rec[-6]_rec[-42];DT(4.5,2.5,2)rec[-5]_rec[-41];DT(4.5,4.5,2)rec[-4]_rec[-40];DT(5.5,1.5,2)rec[-3]_rec[-39];DT(5.5,3.5,2)rec[-2]_rec[-38];DT(5.5,5.5,2)rec[-1]_rec[-37];TICK;M_0_1_2_3_4_5_13_14_15_16_17_18_26_27_28)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_29_30_31_39_40_41_42_43_44_52_53_54_55_56_57_65_66_67_68_69_70;MARKZ(0)39_40_41_42_43_44;DT(0.5,1.5,3)rec[-28]_rec[-29]_rec[-34]_rec[-35]_rec[-72];DT(0.5,3.5,3)rec[-26]_rec[-27]_rec[-32]_rec[-33]_rec[-71];DT(0.5,5.5,3)rec[-25]_rec[-30]_rec[-31]_rec[-36]_rec[-70];DT(1.5,0.5,3)rec[-23]_rec[-24]_rec[-29]_rec[-30]_rec[-69];DT(1.5,2.5,3)rec[-21]_rec[-22]_rec[-27]_rec[-28]_rec[-68];DT(1.5,4.5,3)rec[-19]_rec[-20]_rec[-25]_rec[-26]_rec[-67];DT(2.5,1.5,3)rec[-16]_rec[-17]_rec[-22]_rec[-23]_rec[-66];DT(2.5,3.5,3)rec[-14]_rec[-15]_rec[-20]_rec[-21]_rec[-65];DT(2.5,5.5,3)rec[-13]_rec[-18]_rec[-19]_rec[-24]_rec[-64];DT(3.5,0.5,3)rec[-11]_rec[-12]_rec[-17]_rec[-18]_rec[-63];DT(3.5,2.5,3)rec[-9]_rec[-10]_rec[-15]_rec[-16]_rec[-62];DT(3.5,4.5,3)rec[-7]_rec[-8]_rec[-13]_rec[-14]_rec[-61];DT(5.5,0.5,3)rec[-5]_rec[-6]_rec[-35]_rec[-36]_rec[-57];DT(4.5,1.5,3)rec[-4]_rec[-5]_rec[-10]_rec[-11]_rec[-60];DT(5.5,2.5,3)rec[-3]_rec[-4]_rec[-33]_rec[-34]_rec[-56];DT(4.5,3.5,3)rec[-2]_rec[-3]_rec[-8]_rec[-9]_rec[-59];DT(5.5,4.5,3)rec[-1)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(]_rec[-2]_rec[-31]_rec[-32]_rec[-55];DT(4.5,5.5,3)rec[-1]_rec[-6]_rec[-7]_rec[-12]_rec[-58];OI(0)rec[-3]_rec[-9]_rec[-15]_rec[-21]_rec[-27]_rec[-33];OI(1)rec[-13]_rec[-14]_rec[-15]_rec[-16]_rec[-17]_rec[-18] + result.append(R"CRUMBLE_PART( Open Circuit )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( "> + result.append(R"CRUMBLE_PART(
Honeycomb Code
YXZ-YZXColor CodeMemory (V)Superdense7x9x3Stability (X+Z)6x4x4 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,1)0;Q(0,2)1;Q(0,3)2;Q(1,0)3;Q(1,1)4;Q(1,2)5;Q(1,3)6;Q(1,4)7;Q(2,0)8;Q(2,1)9;Q(2,2)10;Q(2,3)11;Q(2,4)12;Q(3,0)13;Q(3,1)14;Q(3,2)15;Q(3,3)16;Q(3,4)17;Q(4,0)18;Q(4,1)19;Q(4,2)20;Q(4,3)21;Q(4,4)22;Q(5,1)23;Q(5,2)24;Q(5,3)25;POLYGON(0,1,1,0.25)14_18_24_20;POLYGON(0,1,1,0.25)11_16_22_7;POLYGON(0,1,1,0.25)3_9_5_1;POLYGON(1,0,1,0.25)9_14_20_16_11_5;POLYGON(1,1,0,0.25)3_18_14_9;POLYGON(1,1,0,0.25)20_24_22_16;POLYGON(1,1,0,0.25)1_5_11_7;TICK;R_13_6_17_15_23_25_4;RX_21_2_12_10_19_8_0;MARKZ(0)15;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;CX_21_20_12_11_10_9_19_18_25_24_17_16_15_14_2_1_6_5_4_3;TICK;CX_21_16_12_7_10_5_19_14_6_11_17_22_15_20_13_18_8_3_4_9;TICK;CX_6_7_10_11_15_16_21_22_19_20_23_24_8_9_13_14_0_1_4_5;TICK;CX_20_21_11_12_9_10_18_19_24_25_16_17_14_15_1_2_5_6_3_4;TICK;CX_16_21_7_12_5_10_14_19_11_6_22_17_20_15_18_13_3_8_9_4;TICK;CX_7_6_11_10_16_15_22_21_20_19_24_23_9_8_14_13_1_0_5_4;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;M_25_6_17_15_23_13_4;MX_21_2_12)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_10_19_8_0;MARKZ(0)15;OI(0)rec[-1]_rec[-2]_rec[-3]_rec[-5]_rec[-6]_rec[-7];OI(1)rec[-8]_rec[-9]_rec[-10]_rec[-12]_rec[-13]_rec[-14];TICK;R_13_6_17_15_23_25_4;RX_21_2_12_10_19_8_0;MARKX(1)0_2_12_21_19_8;MARKZ(0)17_13;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;CX_21_20_12_11_10_9_19_18_25_24_17_16_15_14_2_1_6_5_4_3;TICK;CX_21_16_12_7_10_5_19_14_6_11_17_22_15_20_13_18_8_3_4_9;TICK;CX_6_7_10_11_15_16_21_22_19_20_23_24_8_9_13_14_0_1_4_5;TICK;CX_20_21_11_12_9_10_18_19_24_25_16_17_14_15_1_2_5_6_3_4;TICK;CX_16_21_7_12_5_10_14_19_11_6_22_17_20_15_18_13_3_8_9_4;TICK;CX_7_6_11_10_16_15_22_21_20_19_24_23_9_8_14_13_1_0_5_4;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;M_25_6_17_15_23_13_4;MX_21_2_12_10_19_8_0;MARKX(1)8_0_2_12_21_19;MARKZ(0)15;DT(5,3,0)rec[-14]_rec[-28];DT(1,3,0)rec[-13]_rec[-27];DT(3,4,0)rec[-12]_rec[-26];DT(3,2,0)rec[-11]_rec[-25];DT(5,1,0)rec[-10]_rec[-24];DT(3,0,0)rec[-9]_rec[-23];DT(1,1,0)rec[-8]_rec[-22];DT(4,1,0)rec[-7]_rec[-17];DT(0,1,0)rec[-6]_rec[-15];DT(2,2,0)rec[-5]_rec[-18]_rec[-19])CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(;DT(2,0,0)rec[-4]_rec[-16]_rec[-19];DT(4,3,0)rec[-3]_rec[-21];DT(2,0.5,0)rec[-2]_rec[-16]_rec[-18];DT(0,3,0)rec[-1]_rec[-20];TICK;R_13_6_17_15_23_25_4;RX_21_2_12_10_19_8_0;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;CX_21_20_12_11_10_9_19_18_25_24_17_16_15_14_2_1_6_5_4_3;TICK;CX_21_16_12_7_10_5_19_14_6_11_17_22_15_20_13_18_8_3_4_9;TICK;CX_6_7_10_11_15_16_21_22_19_20_23_24_8_9_13_14_0_1_4_5;TICK;CX_20_21_11_12_9_10_18_19_24_25_16_17_14_15_1_2_5_6_3_4;TICK;CX_16_21_7_12_5_10_14_19_11_6_22_17_20_15_18_13_3_8_9_4;TICK;CX_7_6_11_10_16_15_22_21_20_19_24_23_9_8_14_13_1_0_5_4;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;M_25_6_17_15_23_13_4;MX_21_2_12_10_19_8_0;DT(5,3,1)rec[-14]_rec[-28];DT(1,3,1)rec[-13]_rec[-27];DT(3,4,1)rec[-12]_rec[-26];DT(3,2,1)rec[-11]_rec[-25];DT(5,1,1)rec[-10]_rec[-24];DT(3,0,1)rec[-9]_rec[-23];DT(1,1,1)rec[-8]_rec[-22];DT(4,1,1)rec[-7]_rec[-17];DT(0,1,1)rec[-6]_rec[-15];DT(2,2,1)rec[-5]_rec[-18]_rec[-19];DT(2,0,1)rec[-4]_rec[-16]_rec[-19];DT(4,3,1)rec[-3]_rec[-21];DT(2,0.5,1)rec[-)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(2]_rec[-16]_rec[-18];DT(0,3,1)rec[-1]_rec[-20];TICK;R_13_6_17_15_23_25_4;RX_21_2_12_10_19_8_0;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;CX_21_20_12_11_10_9_19_18_25_24_17_16_15_14_2_1_6_5_4_3;TICK;CX_21_16_12_7_10_5_19_14_6_11_17_22_15_20_13_18_8_3_4_9;TICK;CX_6_7_10_11_15_16_21_22_19_20_23_24_8_9_13_14_0_1_4_5;TICK;CX_20_21_11_12_9_10_18_19_24_25_16_17_14_15_1_2_5_6_3_4;TICK;CX_16_21_7_12_5_10_14_19_11_6_22_17_20_15_18_13_3_8_9_4;TICK;CX_7_6_11_10_16_15_22_21_20_19_24_23_9_8_14_13_1_0_5_4;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;M_25_6_17_15_23_13_4;MX_21_2_12_10_19_8_0;DT(5,3,2)rec[-14]_rec[-28];DT(1,3,2)rec[-13]_rec[-27];DT(3,4,2)rec[-12]_rec[-26];DT(3,2,2)rec[-11]_rec[-25];DT(5,1,2)rec[-10]_rec[-24];DT(3,0,2)rec[-9]_rec[-23];DT(1,1,2)rec[-8]_rec[-22];DT(4,1,2)rec[-7]_rec[-17];DT(0,1,2)rec[-6]_rec[-15];DT(2,2,2)rec[-5]_rec[-18]_rec[-19];DT(2,0,2)rec[-4]_rec[-16]_rec[-19];DT(4,3,2)rec[-3]_rec[-21];DT(2,0.5,2)rec[-2]_rec[-16]_rec[-18];DT(0,3,2)rec[-1]_rec[-20] + result.append(R"CRUMBLE_PART( Open Circuit )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( "> + result.append(R"CRUMBLE_PART(
Surface Code
Standard (ИZ)Surface CodeMemory (V)Standard (ИZ)5x5x3Stability (Z)4x4x5 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,1)0;Q(0,3)1;Q(0.5,0.5)2;Q(0.5,1.5)3;Q(0.5,2.5)4;Q(0.5,3.5)5;Q(1,0)6;Q(1,1)7;Q(1,2)8;Q(1,3)9;Q(1,4)10;Q(1.5,0.5)11;Q(1.5,1.5)12;Q(1.5,2.5)13;Q(1.5,3.5)14;Q(2,1)15;Q(2,2)16;Q(2,3)17;Q(2.5,0.5)18;Q(2.5,1.5)19;Q(2.5,2.5)20;Q(2.5,3.5)21;Q(3,0)22;Q(3,1)23;Q(3,2)24;Q(3,3)25;Q(3,4)26;Q(3.5,0.5)27;Q(3.5,1.5)28;Q(3.5,2.5)29;Q(3.5,3.5)30;Q(4,1)31;Q(4,3)32;POLYGON(0,0,1,0.25)11_2;POLYGON(0,0,1,0.25)3_12_13_4;POLYGON(0,0,1,0.25)2_3;POLYGON(0,0,1,0.25)13_20_21_14;POLYGON(0,0,1,0.25)19_28_29_20;POLYGON(0,0,1,0.25)11_18_19_12;POLYGON(0,0,1,0.25)27_18;POLYGON(0,0,1,0.25)27_28;POLYGON(0,0,1,0.25)4_5;POLYGON(0,0,1,0.25)14_5;POLYGON(0,0,1,0.25)30_21;POLYGON(0,0,1,0.25)29_30;POLYGON(1,0,0,0.25)2_11_12_3;POLYGON(1,0,0,0.25)12_19_20_13;POLYGON(1,0,0,0.25)18_27_28_19;POLYGON(1,0,0,0.25)20_29_30_21;POLYGON(1,0,0,0.25)4_13_14_5;TICK;RY_2_3_4_5_11_12_13_14_18_19_20_21_27_28_29_30;TICK;R_0_1_6_8_10_15_17_22_24_26_31_32;RX_7_9_25_23_16;TICK;CX_7_2_3_8_9_4_5_10_11_15_16_12_13_17_23_18_19_24_25_)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(20_21_26_27_31_29_32;TICK;CX_2_0_4_1_12_8_14_10_18_15_20_17_28_24_30_26_7_3_16_13_9_5_23_19_25_21;TICK;CX_2_6_4_8_12_15_14_17_18_22_20_24_28_31_30_32_7_11_16_19_9_13_23_27_25_29;TICK;CX_3_0_5_1_11_6_7_12_13_8_9_14_19_15_16_20_21_17_27_22_23_28_29_24_25_30;TICK;M_0_1_6_8_10_15_17_22_24_26_31_32;MX_7_9_25_23_16;OI(0)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-11]_rec[-12]_rec[-13]_rec[-14]_rec[-15]_rec[-16]_rec[-17];TICK;R_0_1_6_8_10_15_17_22_24_26_31_32;RX_7_9_25_23_16;MARKZ(0)6_8_10_15_17_22_24_26_31_32_0_1;TICK;CX_7_2_3_8_9_4_5_10_11_15_16_12_13_17_23_18_19_24_25_20_21_26_27_31_29_32;TICK;CX_2_0_4_1_12_8_14_10_18_15_20_17_28_24_30_26_7_3_16_13_9_5_23_19_25_21;TICK;CX_2_6_4_8_12_15_14_17_18_22_20_24_28_31_30_32_7_11_16_19_9_13_23_27_25_29;TICK;CX_3_0_5_1_11_6_7_12_13_8_9_14_19_15_16_20_21_17_27_22_23_28_29_24_25_30;TICK;M_0_1_6_8_10_15_17_22_24_26_31_32;MX_7_9_25_23_16;MARKZ(0)6_8_10_15_17_22_24_26_31_32_0_1;DT(0,1,0)rec[-17]_rec[-34];DT(0,3,0)rec[-16]_rec[-33];DT(1,0,0)rec[-15]_rec[-32];DT(1,2,0)rec[-14]_r)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(ec[-31];DT(1,4,0)rec[-13]_rec[-30];DT(2,1,0)rec[-12]_rec[-29];DT(2,3,0)rec[-11]_rec[-28];DT(3,0,0)rec[-10]_rec[-27];DT(3,2,0)rec[-9]_rec[-26];DT(3,4,0)rec[-8]_rec[-25];DT(4,1,0)rec[-7]_rec[-24];DT(4,3,0)rec[-6]_rec[-23];DT(1,1,0)rec[-5]_rec[-22];DT(1,3,0)rec[-4]_rec[-21];DT(3,3,0)rec[-3]_rec[-20];DT(3,1,0)rec[-2]_rec[-19];DT(2,2,0)rec[-1]_rec[-18];TICK;R_0_1_6_8_10_15_17_22_24_26_31_32;RX_7_9_25_23_16;TICK;CX_7_2_3_8_9_4_5_10_11_15_16_12_13_17_23_18_19_24_25_20_21_26_27_31_29_32;TICK;CX_2_0_4_1_12_8_14_10_18_15_20_17_28_24_30_26_7_3_16_13_9_5_23_19_25_21;TICK;CX_2_6_4_8_12_15_14_17_18_22_20_24_28_31_30_32_7_11_16_19_9_13_23_27_25_29;TICK;CX_3_0_5_1_11_6_7_12_13_8_9_14_19_15_16_20_21_17_27_22_23_28_29_24_25_30;TICK;M_0_1_6_8_10_15_17_22_24_26_31_32;MX_7_9_25_23_16;DT(0,1,1)rec[-17]_rec[-34];DT(0,3,1)rec[-16]_rec[-33];DT(1,0,1)rec[-15]_rec[-32];DT(1,2,1)rec[-14]_rec[-31];DT(1,4,1)rec[-13]_rec[-30];DT(2,1,1)rec[-12]_rec[-29];DT(2,3,1)rec[-11]_rec[-28];DT(3,0,1)rec[-10]_rec[-27];DT(3,2,1)rec[-9]_rec[-26];DT(3,4,1)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART()rec[-8]_rec[-25];DT(4,1,1)rec[-7]_rec[-24];DT(4,3,1)rec[-6]_rec[-23];DT(1,1,1)rec[-5]_rec[-22];DT(1,3,1)rec[-4]_rec[-21];DT(3,3,1)rec[-3]_rec[-20];DT(3,1,1)rec[-2]_rec[-19];DT(2,2,1)rec[-1]_rec[-18];TICK;R_0_1_6_8_10_15_17_22_24_26_31_32;RX_7_9_25_23_16;TICK;CX_7_2_3_8_9_4_5_10_11_15_16_12_13_17_23_18_19_24_25_20_21_26_27_31_29_32;TICK;CX_2_0_4_1_12_8_14_10_18_15_20_17_28_24_30_26_7_3_16_13_9_5_23_19_25_21;TICK;CX_2_6_4_8_12_15_14_17_18_22_20_24_28_31_30_32_7_11_16_19_9_13_23_27_25_29;TICK;CX_3_0_5_1_11_6_7_12_13_8_9_14_19_15_16_20_21_17_27_22_23_28_29_24_25_30;TICK;M_0_1_6_8_10_15_17_22_24_26_31_32;MX_7_9_25_23_16;DT(0,1,2)rec[-17]_rec[-34];DT(0,3,2)rec[-16]_rec[-33];DT(1,0,2)rec[-15]_rec[-32];DT(1,2,2)rec[-14]_rec[-31];DT(1,4,2)rec[-13]_rec[-30];DT(2,1,2)rec[-12]_rec[-29];DT(2,3,2)rec[-11]_rec[-28];DT(3,0,2)rec[-10]_rec[-27];DT(3,2,2)rec[-9]_rec[-26];DT(3,4,2)rec[-8]_rec[-25];DT(4,1,2)rec[-7]_rec[-24];DT(4,3,2)rec[-6]_rec[-23];DT(1,1,2)rec[-5]_rec[-22];DT(1,3,2)rec[-4]_rec[-21];DT(3,3,2)rec[-3]_rec[-20];DT)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART((3,1,2)rec[-2]_rec[-19];DT(2,2,2)rec[-1]_rec[-18];TICK;R_0_1_6_8_10_15_17_22_24_26_31_32;RX_7_9_25_23_16;TICK;CX_7_2_3_8_9_4_5_10_11_15_16_12_13_17_23_18_19_24_25_20_21_26_27_31_29_32;TICK;CX_2_0_4_1_12_8_14_10_18_15_20_17_28_24_30_26_7_3_16_13_9_5_23_19_25_21;TICK;CX_2_6_4_8_12_15_14_17_18_22_20_24_28_31_30_32_7_11_16_19_9_13_23_27_25_29;TICK;CX_3_0_5_1_11_6_7_12_13_8_9_14_19_15_16_20_21_17_27_22_23_28_29_24_25_30;TICK;M_0_1_6_8_10_15_17_22_24_26_31_32;MX_7_9_25_23_16;DT(0,1,3)rec[-17]_rec[-34];DT(0,3,3)rec[-16]_rec[-33];DT(1,0,3)rec[-15]_rec[-32];DT(1,2,3)rec[-14]_rec[-31];DT(1,4,3)rec[-13]_rec[-30];DT(2,1,3)rec[-12]_rec[-29];DT(2,3,3)rec[-11]_rec[-28];DT(3,0,3)rec[-10]_rec[-27];DT(3,2,3)rec[-9]_rec[-26];DT(3,4,3)rec[-8]_rec[-25];DT(4,1,3)rec[-7]_rec[-24];DT(4,3,3)rec[-6]_rec[-23];DT(1,1,3)rec[-5]_rec[-22];DT(1,3,3)rec[-4]_rec[-21];DT(3,3,3)rec[-3]_rec[-20];DT(3,1,3)rec[-2]_rec[-19];DT(2,2,3)rec[-1]_rec[-18];TICK;MY_2_3_4_5_11_12_13_14_18_19_20_21_27_28_29_30 + result.append(R"CRUMBLE_PART( Open Circuit )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( "> + result.append(R"CRUMBLE_PART(
Surface Code
3-CouplerSurface CodeMemory (V)Standard (ИZ)5x5x4Prepare (RY)5x5x4 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,2)0;Q(0,4)1;Q(0.5,0.5)2;Q(0.5,1.5)3;Q(0.5,2.5)4;Q(0.5,3.5)5;Q(0.5,4.5)6;Q(1,0)7;Q(1,1)8;Q(1,2)9;Q(1,3)10;Q(1,4)11;Q(1.5,0.5)12;Q(1.5,1.5)13;Q(1.5,2.5)14;Q(1.5,3.5)15;Q(1.5,4.5)16;Q(2,0)17;Q(2,1)18;Q(2,2)19;Q(2,3)20;Q(2,4)21;Q(2,5)22;Q(2.5,0.5)23;Q(2.5,1.5)24;Q(2.5,2.5)25;Q(2.5,3.5)26;Q(2.5,4.5)27;Q(3,0)28;Q(3,1)29;Q(3,2)30;Q(3,3)31;Q(3,4)32;Q(3.5,0.5)33;Q(3.5,1.5)34;Q(3.5,2.5)35;Q(3.5,3.5)36;Q(3.5,4.5)37;Q(4,0)38;Q(4,1)39;Q(4,2)40;Q(4,3)41;Q(4,4)42;Q(4,5)43;Q(4.5,0.5)44;Q(4.5,1.5)45;Q(4.5,2.5)46;Q(4.5,3.5)47;Q(4.5,4.5)48;Q(5,1)49;Q(5,2)50;Q(5,3)51;Q(5,4)52;POLYGON(0,0,1,0.25)12_13_3;POLYGON(0,0,1,0.25)4_14_15_5;POLYGON(0,0,1,0.25)13_24_25_14;POLYGON(0,0,1,0.25)15_26_27_16;POLYGON(0,0,1,0.25)23_33_34_24;POLYGON(0,0,1,0.25)25_35_36_26;POLYGON(0,0,1,0.25)34_45_46_35;POLYGON(0,0,1,0.25)36_47_48_37;POLYGON(0,0,1,0.25)3_4;POLYGON(0,0,1,0.25)5_6;POLYGON(0,0,1,0.25)23_12;POLYGON(0,0,1,0.25)44_33;POLYGON(1,0,0,0.25)3_13_14_4;POLYGON(1,0,0,0.25)5_15_16_6;POLYGON(1,0,0,0.25)1)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(2_23_24_13;POLYGON(1,0,0,0.25)14_25_26_15;POLYGON(1,0,0,0.25)24_34_35_25;POLYGON(1,0,0,0.25)26_36_37_27;POLYGON(1,0,0,0.25)33_44_45_34;POLYGON(1,0,0,0.25)35_46_47_36;POLYGON(1,0,0,0.25)27_16;POLYGON(1,0,0,0.25)48_37;POLYGON(1,0,0,0.25)47_48;POLYGON(1,0,0,0.25)45_46;TICK;R_25_15_14_13_24_34_44_33_23_12_3_4_5_6;RX_45_46_35_47_36_26_48_37_27_16;TICK;R_0_1_42_40_38_31_29_21_19_17_10_8;RX_52_50_43_41_39_32_30_22_20_18_11_9;TICK;CX_37_42_35_40_33_38_26_31_24_29_16_21_14_19_12_17_5_10_3_8_52_48_50_46_41_36_39_34_32_27_30_25_20_15_18_13_11_6_9_4;TICK;CX_41_47_39_45_32_37_30_35_20_26_18_24_11_16_9_14_36_42_34_40_25_31_23_29_15_21_13_19_4_10;TICK;CX_52_47_50_45_43_37_41_35_39_33_32_26_30_24_22_16_20_14_18_12_11_5_9_3_4_0_6_1_48_42_46_40_44_38_36_31_34_29_27_21_25_19_23_17_15_10_13_8;TICK;CX_43_48_41_46_39_44_32_36_30_34_22_27_20_25_18_23_11_15_9_13_3_0_5_1_47_42_45_40_35_31_33_29_26_21_24_19_14_10_12_8;TICK;M_1_0_42_40_38_31_29_21_19_17_10_8;MX_52_50_43_41_39_32_30_22_20_18_11_9;DT(0,4,0)rec[-24];DT(0,2,0)rec[-23];DT(4)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(,0,0)rec[-20];DT(3,1,0)rec[-18];DT(2,2,0)rec[-16];DT(2,0,0)rec[-15];DT(1,3,0)rec[-14];DT(1,1,0)rec[-13];DT(5,4,0)rec[-12];DT(5,2,0)rec[-11];DT(4,5,0)rec[-10];DT(4,3,0)rec[-9];DT(3,4,0)rec[-7];DT(2,5,0)rec[-5];TICK;R_0_1_42_40_38_31_29_21_19_17_10_8;RX_52_50_43_41_39_32_30_22_20_18_11_9;TICK;CX_37_42_35_40_33_38_26_31_24_29_16_21_14_19_12_17_5_10_3_8_52_48_50_46_41_36_39_34_32_27_30_25_20_15_18_13_11_6_9_4;TICK;CX_41_47_39_45_32_37_30_35_20_26_18_24_11_16_9_14_36_42_34_40_25_31_23_29_15_21_13_19_4_10;TICK;CX_52_47_50_45_43_37_41_35_39_33_32_26_30_24_22_16_20_14_18_12_11_5_9_3_4_0_6_1_48_42_46_40_44_38_36_31_34_29_27_21_25_19_23_17_15_10_13_8;TICK;CX_43_48_41_46_39_44_32_36_30_34_22_27_20_25_18_23_11_15_9_13_3_0_5_1_47_42_45_40_35_31_33_29_26_21_24_19_14_10_12_8;TICK;M_1_0_42_40_38_31_29_21_19_17_10_8;MX_52_50_43_41_39_32_30_22_20_18_11_9;DT(0,4,1)rec[-24]_rec[-48];DT(0,2,1)rec[-23]_rec[-47];DT(4,4,1)rec[-22]_rec[-46];DT(4,2,1)rec[-21]_rec[-45];DT(4,0,1)rec[-20]_rec[-44];DT(3,3,1)rec[-19]_rec[-43];DT(3,1,1)rec[)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(-18]_rec[-42];DT(2,4,1)rec[-17]_rec[-41];DT(2,2,1)rec[-16]_rec[-40];DT(2,0,1)rec[-15]_rec[-39];DT(1,3,1)rec[-14]_rec[-38];DT(1,1,1)rec[-13]_rec[-37];DT(5,4,1)rec[-12]_rec[-36];DT(5,2,1)rec[-11]_rec[-35];DT(4,5,1)rec[-10]_rec[-34];DT(4,3,1)rec[-9]_rec[-33];DT(4,1,1)rec[-8]_rec[-32];DT(3,4,1)rec[-7]_rec[-31];DT(3,2,1)rec[-6]_rec[-30];DT(2,5,1)rec[-5]_rec[-29];DT(2,3,1)rec[-4]_rec[-28];DT(2,1,1)rec[-3]_rec[-27];DT(1,4,1)rec[-2]_rec[-26];DT(1,2,1)rec[-1]_rec[-25];TICK;POLYGON(0,0,1,0.25)13_24_25_14;POLYGON(0,0,1,0.25)4_14_15_5;POLYGON(0,0,1,0.25)15_26_27_16;POLYGON(0,0,1,0.25)25_35_36_26;POLYGON(0,0,1,0.25)3_4;POLYGON(0,0,1,0.25)5_6;POLYGON(0,0,1,0.25)23_33_34_24;POLYGON(0,0,1,0.25)2_12_13_3;POLYGON(0,0,1,0.25)34_45_46_35;POLYGON(0,0,1,0.25)36_47_48_37;POLYGON(0,0,1,0.25)38;POLYGON(0,0,1,0.25)28;POLYGON(0,0,1,0.25)17;POLYGON(0,0,1,0.25)7;POLYGON(0,0.5,0,1)2_48;POLYGON(1,0,0,0.25)3_13_14_4;POLYGON(1,0,0,0.25)14_25_26_15;POLYGON(1,0,0,0.25)5_15_16_6;POLYGON(1,0,0,0.25)26_36_37_27;POLYGON(1,0,0,0.25)24_34_35_25;POLY)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(GON(1,0,0,0.25)27_16;POLYGON(1,0,0,0.25)48_37;POLYGON(1,0,0,0.25)12_23_24_13;POLYGON(1,0,0,0.25)33_44_45_34;POLYGON(1,0,0,0.25)35_46_47_36;POLYGON(1,0,0,0.25)52;POLYGON(1,0,0,0.25)51;POLYGON(1,0,0,0.25)50;POLYGON(1,0,0,0.25)49;TICK;R_42_40_38_31_29_28_21_19_17_10_8_7_1_0;RX_52_51_50_49_43_41_39_32_30_22_20_18_11_9;RY_2;TICK;H_52_51_50_49_41_40_39_38_30_29_28_18_17_7_47_46_45_44_35_34_33_24_23_12;SQRT_X_DAG_42_31_19_8;TICK;XCY_48_52_36_41_25_30_13_18;TICK;CX_26_21_14_10_5_1_3_0_43_48_32_36_22_27_20_25_11_15_9_13_51_47_49_45_40_35_38_33_29_24_17_12_46_50_34_39_23_28;TICK;CX_27_21_15_10_6_1_4_0_43_37_32_26_22_16_20_14_11_5_9_3_40_46_38_44_29_34_17_23_47_52_45_50_35_41_33_39_24_30_12_18;XCY_42_48_31_36_19_25_8_13;TICK;CX_46_51_44_49_36_42_34_40_25_31_23_29_15_21_13_19_4_10_2_8_41_47_39_45_32_37_30_35_28_33_20_26_18_24_11_16_9_14_7_12;TICK;CX_47_51_45_49_37_42_35_40_26_31_24_29_16_21_14_19_5_10_3_8_41_36_39_34_32_27_30_25_28_23_20_15_18_13_11_6_9_4_7_2;TICK;M_52_51_50_49_42_40_31_29_21_19_10_8_1_0;MX_43_41_39_38_3)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(2_30_28_22_20_18_17_11_9_7;DT(5,4,2)rec[-28]_rec[-40];DT(4,3,2)rec[-27]_rec[-37];DT(5,2,2)rec[-26]_rec[-39];DT(4,1,2)rec[-25]_rec[-36];DT(3,2,2)rec[-23]_rec[-34];DT(2,1,2)rec[-21]_rec[-31];DT(2,4,2)rec[-20]_rec[-45];DT(1,3,2)rec[-18]_rec[-42];DT(0,4,2)rec[-16]_rec[-52];DT(0,2,2)rec[-15]_rec[-51];DT(4,5,2)rec[-14]_rec[-38];DT(4,4,2)rec[-13]_rec[-24]_rec[-50];DT(4,2,2)rec[-12]_rec[-49];DT(4,0,2)rec[-11]_rec[-48];DT(3,4,2)rec[-10]_rec[-35];DT(3,3,2)rec[-9]_rec[-22]_rec[-47];DT(3,1,2)rec[-8]_rec[-46];DT(2,5,2)rec[-7]_rec[-33];DT(2,3,2)rec[-6]_rec[-32];DT(2,2,2)rec[-5]_rec[-19]_rec[-44];DT(2,0,2)rec[-4]_rec[-43];DT(1,4,2)rec[-3]_rec[-30];DT(1,2,2)rec[-2]_rec[-29];DT(1,1,2)rec[-1]_rec[-17]_rec[-41];TICK;POLYGON(0,0,1,0.25)2_12_13_3;POLYGON(0,0,1,0.25)13_24_25_14;POLYGON(0,0,1,0.25)4_14_15_5;POLYGON(0,0,1,0.25)15_26_27_16;POLYGON(0,0,1,0.25)25_35_36_26;POLYGON(0,0,1,0.25)36_47_48_37;POLYGON(0,0,1,0.25)23_33_34_24;POLYGON(0,0,1,0.25)34_45_46_35;POLYGON(0,0,1,0.25)44_45;POLYGON(0,0,1,0.25)3_4;POLYGON(0,0,1,0.25)5_6;PO)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(LYGON(0,0,1,0.25)46_47;POLYGON(1,0,0,0.25)12_23_24_13;POLYGON(1,0,0,0.25)3_13_14_4;POLYGON(1,0,0,0.25)14_25_26_15;POLYGON(1,0,0,0.25)5_15_16_6;POLYGON(1,0,0,0.25)35_46_47_36;POLYGON(1,0,0,0.25)26_36_37_27;POLYGON(1,0,0,0.25)33_44_45_34;POLYGON(1,0,0,0.25)24_34_35_25;POLYGON(1,0,0,0.25)12_2;POLYGON(1,0,0,0.25)33_23;POLYGON(1,0,0,0.25)27_16;POLYGON(1,0,0,0.25)48_37;TICK;MPP_X33*X23_X12*X2_X27*X37*X36*X26_X25*X35*X34*X24_X4*X14*X13*X3_X6*X16*X15*X5;DT(3,0,3)rec[-6]_rec[-14];DT(1,0,3)rec[-5]_rec[-7];DT(3,4,3)rec[-4]_rec[-16];DT(3,2,3)rec[-3]_rec[-15];DT(1,2,3)rec[-2]_rec[-8];DT(1,4,3)rec[-1]_rec[-9];TICK;MPP_X48*X37_X27*X16_X36*X47*X46*X35_X34*X45*X44*X33_X13*X24*X23*X12_X15*X26*X25*X14;DT(4,5,4)rec[-6]_rec[-26];DT(2,5,4)rec[-5]_rec[-19];DT(4,3,4)rec[-4]_rec[-25];DT(4,0,4)rec[-3]_rec[-23]_rec[-24];DT(2,0,4)rec[-2]_rec[-16]_rec[-17];DT(2,3,4)rec[-1]_rec[-18];TICK;MPP_Z6*Z5_Z4*Z3_Z35*Z46*Z45*Z34_Z37*Z48*Z47*Z36_Z16*Z27*Z26*Z15_Z14*Z25*Z24*Z13;DT(0,4,5)rec[-6]_rec[-34];DT(0,2,5)rec[-5]_rec[-33];DT(4,2,5)rec[-4]_rec[)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(-41]_rec[-44];DT(4,4,5)rec[-3]_rec[-42]_rec[-46];DT(2,4,5)rec[-2]_rec[-38];DT(2,2,5)rec[-1]_rec[-37];TICK;MPP_Z47*Z46_Z45*Z44_Z24*Z34*Z33*Z23_Z26*Z36*Z35*Z25_Z5*Z15*Z14*Z4_Z3*Z13*Z12*Z2;DT(5,3,6)rec[-6]_rec[-51];DT(5,1,6)rec[-5]_rec[-49];DT(3,1,6)rec[-4]_rec[-45];DT(3,3,6)rec[-3]_rec[-46];DT(1,3,6)rec[-2]_rec[-42];DT(1,1,6)rec[-1]_rec[-41];TICK;MPP_X6*X5*X4*X3*Y2*Z23*Z12*Z44*Z33;OI(0)rec[-1]_rec[-54]_rec[-55]_rec[-56]_rec[-57]_rec[-58]_rec[-59]_rec[-60]_rec[-61]_rec[-62]_rec[-63]_rec[-64]_rec[-65] + result.append(R"CRUMBLE_PART( Open Circuit )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( "> + result.append(R"CRUMBLE_PART(
Surface Code
Biased (XZZX)Surface CodeMemory (V)Standard (ИZ)5x5x3Surgery (MZZ)7x3x5 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( #circuit=Q(0,2)0;Q(0.5,0.5)1;Q(0.5,1.5)2;Q(0.5,2.5)3;Q(1,0)4;Q(1,1)5;Q(1,2)6;Q(1.5,0.5)7;Q(1.5,1.5)8;Q(1.5,2.5)9;Q(2,1)10;Q(2,2)11;Q(2,3)12;Q(2.5,0.5)13;Q(2.5,1.5)14;Q(2.5,2.5)15;Q(3,0)16;Q(3,1)17;Q(3,2)18;Q(3.5,0.5)19;Q(3.5,1.5)20;Q(3.5,2.5)21;Q(4,1)22;Q(4,2)23;Q(4,3)24;Q(4.5,0.5)25;Q(4.5,1.5)26;Q(4.5,2.5)27;Q(5,0)28;Q(5,1)29;Q(5,2)30;Q(5.5,0.5)31;Q(5.5,1.5)32;Q(5.5,2.5)33;Q(6,1)34;Q(6,2)35;Q(6,3)36;Q(6.5,0.5)37;Q(6.5,1.5)38;Q(6.5,2.5)39;Q(7,1)40;POLYGON(0,0,1,0.25)7_13_14_8;POLYGON(0,0,1,0.25)2_8_9_3;POLYGON(0,0,1,0.25)7_1;POLYGON(0,0,1,0.25)15_9;POLYGON(0,0,1,0.25)31_37_38_32;POLYGON(0,0,1,0.25)26_32_33_27;POLYGON(0,0,1,0.25)31_25;POLYGON(0,0,1,0.25)39_33;POLYGON(1,0,0,0.25)1_7_8_2;POLYGON(1,0,0,0.25)8_14_15_9;POLYGON(1,0,0,0.25)2_3;POLYGON(1,0,0,0.25)13_14;POLYGON(1,0,0,0.25)25_31_32_26;POLYGON(1,0,0,0.25)32_38_39_33;POLYGON(1,0,0,0.25)26_27;POLYGON(1,0,0,0.25)37_38;TICK;R_1_2_3_7_8_9_13_14_15_25_26_27_31_32_33_37_38_39;MARKZ(1)25_26_27_13_14_15;TICK;R_6_10_4_12_30_34_28_36)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(;RX_5_11_0_17_29_35_23_40;MARKX(0)1_7_13_25_31_37;TICK;CX_5_1_2_6_7_10_11_8_9_12_17_13_29_25_26_30_31_34_35_32_33_36_40_37;TICK;CX_8_6_13_10_5_2_11_9_15_12_17_14_32_30_37_34_29_26_35_33_39_36_40_38;TICK;CX_3_6_8_10_1_4_5_7_0_2_11_14_27_30_32_34_25_28_29_31_23_26_35_38;TICK;CX_5_8_9_6_14_10_11_15_0_3_7_4_29_32_33_30_38_34_35_39_23_27_31_28;TICK;M_6_10_4_12_30_34_28_36;MX_5_11_0_17_29_35_23_40;DT(1,2,0)rec[-16];DT(2,1,0)rec[-15];DT(1,0,0)rec[-14];DT(2,3,0)rec[-13];DT(5,2,0)rec[-12];DT(6,1,0)rec[-11];DT(5,0,0)rec[-10];DT(6,3,0)rec[-9];TICK;POLYGON(0,0,1,0.25)2_8_9_3;POLYGON(0,0,1,0.25)7_1;POLYGON(0,0,1,0.25)15_9;POLYGON(0,0,1,0.25)31_37_38_32;POLYGON(0,0,1,0.25)31_25;POLYGON(0,0,1,0.25)39_33;POLYGON(0,0,1,0.25)7_13_14_8;POLYGON(0,0,1,0.25)26_32_33_27;POLYGON(1,0,0,0.25)1_7_8_2;POLYGON(1,0,0,0.25)8_14_15_9;POLYGON(1,0,0,0.25)2_3;POLYGON(1,0,0,0.25)25_31_32_26;POLYGON(1,0,0,0.25)32_38_39_33;POLYGON(1,0,0,0.25)37_38;POLYGON(1,0,0,0.25)20;POLYGON(1,0,0,0.25)19;POLYGON(1,0,0,0.25)21;POLYGON(1,0,0,0.25)13_19_20_14;POL)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(YGON(1,0,0,0.25)20_26_27_21;TICK;R_6_10_4_12_30_34_28_36_18_22_24_16;RX_5_11_0_17_29_35_23_40_19_20_21;MARKX(0)19;MARKZ(1)18_16_24_22;TICK;CX_5_1_2_6_7_10_11_8_9_12_17_13_29_25_26_30_31_34_35_32_33_36_40_37_14_18_19_22_23_20_21_24;TICK;CX_8_6_13_10_5_2_11_9_15_12_17_14_32_30_37_34_29_26_35_33_39_36_40_38_20_18_23_21_27_24_25_22;TICK;CX_3_6_8_10_1_4_5_7_0_2_11_14_27_30_32_34_25_28_29_31_23_26_35_38_15_18_20_22_17_19_13_16;TICK;CX_5_8_9_6_14_10_11_15_0_3_7_4_29_32_33_30_38_34_35_39_23_27_31_28_17_20_26_22_19_16_21_18;TICK;M_6_10_4_12_30_34_28_36_24_16_22_18;MX_5_11_0_17_29_35_23_40;MARKZ(1)24_16_22_18;DT(1,2,1)rec[-20]_rec[-36];DT(2,1,1)rec[-19]_rec[-35];DT(1,0,1)rec[-18]_rec[-34];DT(2,3,1)rec[-17]_rec[-33];DT(5,2,1)rec[-16]_rec[-32];DT(6,1,1)rec[-15]_rec[-31];DT(5,0,1)rec[-14]_rec[-30];DT(6,3,1)rec[-13]_rec[-29];DT(1,1,1)rec[-8]_rec[-28];DT(2,2,1)rec[-7]_rec[-27];DT(0,2,1)rec[-6]_rec[-26];DT(3,1,1)rec[-5]_rec[-25];DT(5,1,1)rec[-4]_rec[-24];DT(6,2,1)rec[-3]_rec[-23];DT(4,2,1)rec[-2]_rec[-22];DT(7,1,1)rec[-1]_re)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(c[-21];OI(0)rec[-9]_rec[-10]_rec[-11]_rec[-12]_rec[-17]_rec[-18]_rec[-19]_rec[-20];TICK;POLYGON(0,0,1,0.25)2_8_9_3;POLYGON(0,0,1,0.25)7_1;POLYGON(0,0,1,0.25)15_9;POLYGON(0,0,1,0.25)31_37_38_32;POLYGON(0,0,1,0.25)31_25;POLYGON(0,0,1,0.25)39_33;POLYGON(0,0,1,0.25)7_13_14_8;POLYGON(0,0,1,0.25)26_32_33_27;POLYGON(0,0,1,0.25)19_25_26_20;POLYGON(0,0,1,0.25)19_13;POLYGON(0,0,1,0.25)27_21;POLYGON(0,0,1,0.25)14_20_21_15;POLYGON(1,0,0,0.25)1_7_8_2;POLYGON(1,0,0,0.25)8_14_15_9;POLYGON(1,0,0,0.25)2_3;POLYGON(1,0,0,0.25)25_31_32_26;POLYGON(1,0,0,0.25)32_38_39_33;POLYGON(1,0,0,0.25)37_38;POLYGON(1,0,0,0.25)13_19_20_14;POLYGON(1,0,0,0.25)20_26_27_21;TICK;R_6_10_4_12_30_34_28_36_18_22_24_16;RX_5_11_0_17_29_35_23_40;TICK;CX_5_1_2_6_7_10_11_8_9_12_17_13_29_25_26_30_31_34_35_32_33_36_40_37_14_18_19_22_23_20_21_24;TICK;CX_8_6_13_10_5_2_11_9_15_12_17_14_32_30_37_34_29_26_35_33_39_36_40_38_20_18_23_21_27_24_25_22;TICK;CX_3_6_8_10_1_4_5_7_0_2_11_14_27_30_32_34_25_28_29_31_23_26_35_38_15_18_20_22_17_19_13_16;TICK;CX_5_8_9_6_14_10_11)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(_15_0_3_7_4_29_32_33_30_38_34_35_39_23_27_31_28_17_20_26_22_19_16_21_18;TICK;M_6_10_4_12_30_34_28_36_24_16_22_18;MX_5_11_0_17_29_35_23_40;DT(1,2,2)rec[-20]_rec[-40];DT(2,1,2)rec[-19]_rec[-39];DT(1,0,2)rec[-18]_rec[-38];DT(2,3,2)rec[-17]_rec[-37];DT(5,2,2)rec[-16]_rec[-36];DT(6,1,2)rec[-15]_rec[-35];DT(5,0,2)rec[-14]_rec[-34];DT(6,3,2)rec[-13]_rec[-33];DT(4,3,2)rec[-12]_rec[-32];DT(3,0,2)rec[-11]_rec[-31];DT(4,1,2)rec[-10]_rec[-30];DT(3,2,2)rec[-9]_rec[-29];DT(1,1,2)rec[-8]_rec[-28];DT(2,2,2)rec[-7]_rec[-27];DT(0,2,2)rec[-6]_rec[-26];DT(3,1,2)rec[-5]_rec[-25];DT(5,1,2)rec[-4]_rec[-24];DT(6,2,2)rec[-3]_rec[-23];DT(4,2,2)rec[-2]_rec[-22];DT(7,1,2)rec[-1]_rec[-21];TICK;R_6_10_4_12_30_34_28_36_18_22_24_16;RX_5_11_0_17_29_35_23_40;TICK;CX_5_1_2_6_7_10_11_8_9_12_17_13_29_25_26_30_31_34_35_32_33_36_40_37_14_18_19_22_23_20_21_24;TICK;CX_8_6_13_10_5_2_11_9_15_12_17_14_32_30_37_34_29_26_35_33_39_36_40_38_20_18_23_21_27_24_25_22;TICK;CX_3_6_8_10_1_4_5_7_0_2_11_14_27_30_32_34_25_28_29_31_23_26_35_38_15_18_20_22_17_19_13_1)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(6;TICK;CX_5_8_9_6_14_10_11_15_0_3_7_4_29_32_33_30_38_34_35_39_23_27_31_28_17_20_26_22_19_16_21_18;TICK;M_6_10_4_12_30_34_28_36_24_16_22_18;MX_5_11_0_17_29_35_23_40_19_20_21;MARKX(0)19;DT(1,2,3)rec[-23]_rec[-43];DT(2,1,3)rec[-22]_rec[-42];DT(1,0,3)rec[-21]_rec[-41];DT(2,3,3)rec[-20]_rec[-40];DT(5,2,3)rec[-19]_rec[-39];DT(6,1,3)rec[-18]_rec[-38];DT(5,0,3)rec[-17]_rec[-37];DT(6,3,3)rec[-16]_rec[-36];DT(4,3,3)rec[-15]_rec[-35];DT(3,0,3)rec[-14]_rec[-34];DT(4,1,3)rec[-13]_rec[-33];DT(3,2,3)rec[-12]_rec[-32];DT(1,1,3)rec[-11]_rec[-31];DT(2,2,3)rec[-10]_rec[-30];DT(0,2,3)rec[-9]_rec[-29];DT(3,1,3)rec[-8]_rec[-28];DT(5,1,3)rec[-7]_rec[-27];DT(6,2,3)rec[-6]_rec[-26];DT(4,2,3)rec[-5]_rec[-25];DT(7,1,3)rec[-4]_rec[-24];TICK;POLYGON(0,0,1,0.25)7_13_14_8;POLYGON(0,0,1,0.25)2_8_9_3;POLYGON(0,0,1,0.25)7_1;POLYGON(0,0,1,0.25)15_9;POLYGON(0,0,1,0.25)31_37_38_32;POLYGON(0,0,1,0.25)26_32_33_27;POLYGON(0,0,1,0.25)31_25;POLYGON(0,0,1,0.25)39_33;POLYGON(1,0,0,0.25)1_7_8_2;POLYGON(1,0,0,0.25)8_14_15_9;POLYGON(1,0,0,0.25)2_3;POLYGON)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART((1,0,0,0.25)13_14;POLYGON(1,0,0,0.25)25_31_32_26;POLYGON(1,0,0,0.25)32_38_39_33;POLYGON(1,0,0,0.25)26_27;POLYGON(1,0,0,0.25)37_38;TICK;R_6_10_4_12_30_34_28_36;RX_5_11_0_17_29_35_23_40;TICK;CX_5_1_2_6_7_10_11_8_9_12_17_13_29_25_26_30_31_34_35_32_33_36_40_37;TICK;CX_8_6_13_10_5_2_11_9_15_12_17_14_32_30_37_34_29_26_35_33_39_36_40_38;TICK;CX_3_6_8_10_1_4_5_7_0_2_11_14_27_30_32_34_25_28_29_31_23_26_35_38;TICK;CX_5_8_9_6_14_10_11_15_0_3_7_4_29_32_33_30_38_34_35_39_23_27_31_28;TICK;M_6_10_4_12_30_34_28_36;MX_5_11_0_17_29_35_23_40;MARKX(0)1_7_13_25_31_37;DT(1,2,4)rec[-16]_rec[-39];DT(2,1,4)rec[-15]_rec[-38];DT(1,0,4)rec[-14]_rec[-37];DT(2,3,4)rec[-13]_rec[-36];DT(5,2,4)rec[-12]_rec[-35];DT(6,1,4)rec[-11]_rec[-34];DT(5,0,4)rec[-10]_rec[-33];DT(6,3,4)rec[-9]_rec[-32];DT(1,1,4)rec[-8]_rec[-27];DT(2,2,4)rec[-7]_rec[-26];DT(0,2,4)rec[-6]_rec[-25];DT(3.5,1.5,4)rec[-5]_rec[-18]_rec[-19]_rec[-24];DT(5,1,4)rec[-4]_rec[-23];DT(6,2,4)rec[-3]_rec[-22];DT(3.5,2.5,4)rec[-2]_rec[-17]_rec[-18]_rec[-21];DT(7,1,4)rec[-1]_rec[-20];TICK)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(;M_1_2_3_7_8_9_13_14_15_25_26_27_31_32_33_37_38_39;DT(1,0,5)rec[-15]_rec[-18]_rec[-32];DT(1,2,5)rec[-13]_rec[-14]_rec[-16]_rec[-17]_rec[-34];DT(2,1,5)rec[-11]_rec[-12]_rec[-14]_rec[-15]_rec[-33];DT(2,3,5)rec[-10]_rec[-13]_rec[-31];DT(5,0,5)rec[-6]_rec[-9]_rec[-28];DT(5,2,5)rec[-4]_rec[-5]_rec[-7]_rec[-8]_rec[-30];DT(6,1,5)rec[-2]_rec[-3]_rec[-5]_rec[-6]_rec[-29];DT(6,3,5)rec[-1]_rec[-4]_rec[-27];OI(1)rec[-16]_rec[-17]_rec[-18];OI(2)rec[-7]_rec[-8]_rec[-9] + result.append(R"CRUMBLE_PART( Open Circuit )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( "> + result.append(R"CRUMBLE_PART(
Toric Code
Standard (ZZ)
+ result.append(R"CRUMBLE_PART( Memory (ZH+ZV) )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( 6x6x3 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( #circuit=Q(0,0)0;Q(0,1)1;Q(0,2)2;Q(0,3)3;Q(0,4)4;Q(0,5)5;Q(0,6)6;Q(0.5,0.5)7;Q(0.5,1.5)8;Q(0.5,2.5)9;Q(0.5,3.5)10;Q(0.5,4.5)11;Q(0.5,5.5)12;Q(1,0)13;Q(1,1)14;Q(1,2)15;Q(1,3)16;Q(1,4)17;Q(1,5)18;Q(1,6)19;Q(1.5,0.5)20;Q(1.5,1.5)21;Q(1.5,2.5)22;Q(1.5,3.5)23;Q(1.5,4.5)24;Q(1.5,5.5)25;Q(2,0)26;Q(2,1)27;Q(2,2)28;Q(2,3)29;Q(2,4)30;Q(2,5)31;Q(2,6)32;Q(2.5,0.5)33;Q(2.5,1.5)34;Q(2.5,2.5)35;Q(2.5,3.5)36;Q(2.5,4.5)37;Q(2.5,5.5)38;Q(3,0)39;Q(3,1)40;Q(3,2)41;Q(3,3)42;Q(3,4)43;Q(3,5)44;Q(3,6)45;Q(3.5,0.5)46;Q(3.5,1.5)47;Q(3.5,2.5)48;Q(3.5,3.5)49;Q(3.5,4.5)50;Q(3.5,5.5)51;Q(4,0)52;Q(4,1)53;Q(4,2)54;Q(4,3)55;Q(4,4)56;Q(4,5)57;Q(4,6)58;Q(4.5,0.5)59;Q(4.5,1.5)60;Q(4.5,2.5)61;Q(4.5,3.5)62;Q(4.5,4.5)63;Q(4.5,5.5)64;Q(5,0)65;Q(5,1)66;Q(5,2)67;Q(5,3)68;Q(5,4)69;Q(5,5)70;Q(5,6)71;Q(5.5,0.5)72;Q(5.5,1.5)73;Q(5.5,2.5)74;Q(5.5,3.5)75;Q(5.5,4.5)76;Q(5.5,5.5)77;Q(6,0)78;Q(6,1)79;Q(6,2)80;Q(6,3)81;Q(6,4)82;Q(6,5)83;Q(6,6)84;POLYGON(0,0,1,0.25)13_26_27_14;POLYGON(0,0,1,0.25)1_14_15_2;POLYGON(0,0,1,0.25)15_28_29_16;P)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(OLYGON(0,0,1,0.25)3_16_17_4;POLYGON(0,0,1,0.25)41_54_55_42;POLYGON(0,0,1,0.25)29_42_43_30;POLYGON(0,0,1,0.25)39_52_53_40;POLYGON(0,0,1,0.25)27_40_41_28;POLYGON(0,0,1,0.25)65_78_79_66;POLYGON(0,0,1,0.25)53_66_67_54;POLYGON(0,0,1,0.25)67_80_81_68;POLYGON(0,0,1,0.25)55_68_69_56;POLYGON(0,0,1,0.25)69_82_83_70;POLYGON(0,0,1,0.25)57_70_71_58;POLYGON(0,0,1,0.25)43_56_57_44;POLYGON(0,0,1,0.25)31_44_45_32;POLYGON(0,0,1,0.25)17_30_31_18;POLYGON(0,0,1,0.25)5_18_19_6;POLYGON(1,0,0,0.25)0_13_14_1;POLYGON(1,0,0,0.25)14_27_28_15;POLYGON(1,0,0,0.25)2_15_16_3;POLYGON(1,0,0,0.25)16_29_30_17;POLYGON(1,0,0,0.25)28_41_42_29;POLYGON(1,0,0,0.25)42_55_56_43;POLYGON(1,0,0,0.25)26_39_40_27;POLYGON(1,0,0,0.25)40_53_54_41;POLYGON(1,0,0,0.25)52_65_66_53;POLYGON(1,0,0,0.25)66_79_80_67;POLYGON(1,0,0,0.25)54_67_68_55;POLYGON(1,0,0,0.25)68_81_82_69;POLYGON(1,0,0,0.25)56_69_70_57;POLYGON(1,0,0,0.25)70_83_84_71;POLYGON(1,0,0,0.25)30_43_44_31;POLYGON(1,0,0,0.25)44_57_58_45;POLYGON(1,0,0,0.25)4_17_18_5;POLYGON(1,0,0,0.25)18_31_32_19;TICK;R_0_1_2)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_3_4_5_13_14_15_16_17_18_26_27_28_29_30_31_39_40_41_42_43_44_52_53_54_55_56_57_65_66_67_68_69_70;MARKZ(0)39_40_41_42_43_44;TICK;R_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;RX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKZ(1)60;TICK;CX_7_0_1_8_9_2_3_10_11_4_5_12_13_20_21_14_15_22_23_16_17_24_25_18_33_26_27_34_35_28_29_36_37_30_31_38_39_46_47_40_41_48_49_42_43_50_51_44_59_52_53_60_61_54_55_62_63_56_57_64_65_72_73_66_67_74_75_68_69_76_77_70;TICK;CX_7_13_14_8_9_15_16_10_11_17_18_12_26_20_21_27_28_22_23_29_30_24_25_31_33_39_40_34_35_41_42_36_37_43_44_38_52_46_47_53_54_48_49_55_56_50_51_57_59_65_66_60_61_67_68_62_63_69_70_64_0_72_2_74_4_76_73_1_75_3_77_5;TICK;CX_7_1_2_8_9_3_4_10_11_5_14_20_21_15_16_22_23_17_18_24_33_27_28_34_35_29_30_36_37_31_40_46_47_41_42_48_49_43_44_50_59_53_54_60_61_55_56_62_63_57_66_72_73_67_68_74_75_69_70_76_0_12_26_38_52_64_25_13_51_39_77_65;TICK;CX_7_14_15_8_9_16_17_10_11_18_27_20_21_28_29_22_23_30_31_24_33_40_41_34_35_42_43_36_37_44_53_46_47_54_55_48_49_56_57_50_59_66)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_67_60_61_68_69_62_63_70_13_12_39_38_65_64_25_26_51_52_1_72_3_74_5_76_73_2_75_4_77_0;TICK;M_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;MX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKZ(1)60;DT(0.5,1.5,0)rec[-36];DT(0.5,3.5,0)rec[-35];DT(0.5,5.5,0)rec[-34];DT(1.5,0.5,0)rec[-33];DT(1.5,2.5,0)rec[-32];DT(1.5,4.5,0)rec[-31];DT(2.5,1.5,0)rec[-30];DT(2.5,3.5,0)rec[-29];DT(2.5,5.5,0)rec[-28];DT(3.5,0.5,0)rec[-27];DT(3.5,2.5,0)rec[-26];DT(3.5,4.5,0)rec[-25];DT(4.5,1.5,0)rec[-24];DT(4.5,3.5,0)rec[-23];DT(4.5,5.5,0)rec[-22];DT(5.5,0.5,0)rec[-21];DT(5.5,2.5,0)rec[-20];DT(5.5,4.5,0)rec[-19];TICK;R_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;RX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKX(2)25;MARKZ(1)60;TICK;CX_7_0_1_8_9_2_3_10_11_4_5_12_13_20_21_14_15_22_23_16_17_24_25_18_33_26_27_34_35_28_29_36_37_30_31_38_39_46_47_40_41_48_49_42_43_50_51_44_59_52_53_60_61_54_55_62_63_56_57_64_65_72_73_66_67_74_75_68_69_76_77_70;TICK;CX_7_13_14_8_9_15_16_10_11_17_18_12_26_20_21_27_28_22_23_29_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(30_24_25_31_33_39_40_34_35_41_42_36_37_43_44_38_52_46_47_53_54_48_49_55_56_50_51_57_59_65_66_60_61_67_68_62_63_69_70_64_0_72_2_74_4_76_73_1_75_3_77_5;TICK;CX_7_1_2_8_9_3_4_10_11_5_14_20_21_15_16_22_23_17_18_24_33_27_28_34_35_29_30_36_37_31_40_46_47_41_42_48_49_43_44_50_59_53_54_60_61_55_56_62_63_57_66_72_73_67_68_74_75_69_70_76_0_12_26_38_52_64_25_13_51_39_77_65;TICK;CX_7_14_15_8_9_16_17_10_11_18_27_20_21_28_29_22_23_30_31_24_33_40_41_34_35_42_43_36_37_44_53_46_47_54_55_48_49_56_57_50_59_66_67_60_61_68_69_62_63_70_13_12_39_38_65_64_25_26_51_52_1_72_3_74_5_76_73_2_75_4_77_0;TICK;M_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;MX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKX(2)25;MARKZ(1)60;DT(0.5,1.5,1)rec[-36]_rec[-72];DT(0.5,3.5,1)rec[-35]_rec[-71];DT(0.5,5.5,1)rec[-34]_rec[-70];DT(1.5,0.5,1)rec[-33]_rec[-69];DT(1.5,2.5,1)rec[-32]_rec[-68];DT(1.5,4.5,1)rec[-31]_rec[-67];DT(2.5,1.5,1)rec[-30]_rec[-66];DT(2.5,3.5,1)rec[-29]_rec[-65];DT(2.5,5.5,1)rec[-28]_rec[-64];DT(3.5,0.5,1)rec[-27]_rec[-6)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(3];DT(3.5,2.5,1)rec[-26]_rec[-62];DT(3.5,4.5,1)rec[-25]_rec[-61];DT(4.5,1.5,1)rec[-24]_rec[-60];DT(4.5,3.5,1)rec[-23]_rec[-59];DT(4.5,5.5,1)rec[-22]_rec[-58];DT(5.5,0.5,1)rec[-21]_rec[-57];DT(5.5,2.5,1)rec[-20]_rec[-56];DT(5.5,4.5,1)rec[-19]_rec[-55];DT(0.5,0.5,1)rec[-18]_rec[-54];DT(0.5,2.5,1)rec[-17]_rec[-53];DT(0.5,4.5,1)rec[-16]_rec[-52];DT(1.5,1.5,1)rec[-15]_rec[-51];DT(1.5,3.5,1)rec[-14]_rec[-50];DT(1.5,5.5,1)rec[-13]_rec[-49];DT(2.5,0.5,1)rec[-12]_rec[-48];DT(2.5,2.5,1)rec[-11]_rec[-47];DT(2.5,4.5,1)rec[-10]_rec[-46];DT(3.5,1.5,1)rec[-9]_rec[-45];DT(3.5,3.5,1)rec[-8]_rec[-44];DT(3.5,5.5,1)rec[-7]_rec[-43];DT(4.5,0.5,1)rec[-6]_rec[-42];DT(4.5,2.5,1)rec[-5]_rec[-41];DT(4.5,4.5,1)rec[-4]_rec[-40];DT(5.5,1.5,1)rec[-3]_rec[-39];DT(5.5,3.5,1)rec[-2]_rec[-38];DT(5.5,5.5,1)rec[-1]_rec[-37];TICK;R_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;RX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKX(2)25;TICK;CX_7_0_1_8_9_2_3_10_11_4_5_12_13_20_21_14_15_22_23_16_17_24_25_18_33_26_27_34_35_28_29_36_37_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(30_31_38_39_46_47_40_41_48_49_42_43_50_51_44_59_52_53_60_61_54_55_62_63_56_57_64_65_72_73_66_67_74_75_68_69_76_77_70;TICK;CX_7_13_14_8_9_15_16_10_11_17_18_12_26_20_21_27_28_22_23_29_30_24_25_31_33_39_40_34_35_41_42_36_37_43_44_38_52_46_47_53_54_48_49_55_56_50_51_57_59_65_66_60_61_67_68_62_63_69_70_64_0_72_2_74_4_76_73_1_75_3_77_5;TICK;CX_7_1_2_8_9_3_4_10_11_5_14_20_21_15_16_22_23_17_18_24_33_27_28_34_35_29_30_36_37_31_40_46_47_41_42_48_49_43_44_50_59_53_54_60_61_55_56_62_63_57_66_72_73_67_68_74_75_69_70_76_0_12_26_38_52_64_25_13_51_39_77_65;TICK;CX_7_14_15_8_9_16_17_10_11_18_27_20_21_28_29_22_23_30_31_24_33_40_41_34_35_42_43_36_37_44_53_46_47_54_55_48_49_56_57_50_59_66_67_60_61_68_69_62_63_70_13_12_39_38_65_64_25_26_51_52_1_72_3_74_5_76_73_2_75_4_77_0;TICK;M_8_10_12_20_22_24_34_36_38_46_48_50_60_62_64_72_74_76;MX_7_9_11_21_23_25_33_35_37_47_49_51_59_61_63_73_75_77;MARKX(2)25;DT(0.5,1.5,2)rec[-36]_rec[-72];DT(0.5,3.5,2)rec[-35]_rec[-71];DT(0.5,5.5,2)rec[-34]_rec[-70];DT(1.5,0.5,2)rec[-33]_rec[-69];DT(1.5,2.5,2)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART()rec[-32]_rec[-68];DT(1.5,4.5,2)rec[-31]_rec[-67];DT(2.5,1.5,2)rec[-30]_rec[-66];DT(2.5,3.5,2)rec[-29]_rec[-65];DT(2.5,5.5,2)rec[-28]_rec[-64];DT(3.5,0.5,2)rec[-27]_rec[-63];DT(3.5,2.5,2)rec[-26]_rec[-62];DT(3.5,4.5,2)rec[-25]_rec[-61];DT(4.5,1.5,2)rec[-24]_rec[-60];DT(4.5,3.5,2)rec[-23]_rec[-59];DT(4.5,5.5,2)rec[-22]_rec[-58];DT(5.5,0.5,2)rec[-21]_rec[-57];DT(5.5,2.5,2)rec[-20]_rec[-56];DT(5.5,4.5,2)rec[-19]_rec[-55];DT(0.5,0.5,2)rec[-18]_rec[-54];DT(0.5,2.5,2)rec[-17]_rec[-53];DT(0.5,4.5,2)rec[-16]_rec[-52];DT(1.5,1.5,2)rec[-15]_rec[-51];DT(1.5,3.5,2)rec[-14]_rec[-50];DT(1.5,5.5,2)rec[-13]_rec[-49];DT(2.5,0.5,2)rec[-12]_rec[-48];DT(2.5,2.5,2)rec[-11]_rec[-47];DT(2.5,4.5,2)rec[-10]_rec[-46];DT(3.5,1.5,2)rec[-9]_rec[-45];DT(3.5,3.5,2)rec[-8]_rec[-44];DT(3.5,5.5,2)rec[-7]_rec[-43];DT(4.5,0.5,2)rec[-6]_rec[-42];DT(4.5,2.5,2)rec[-5]_rec[-41];DT(4.5,4.5,2)rec[-4]_rec[-40];DT(5.5,1.5,2)rec[-3]_rec[-39];DT(5.5,3.5,2)rec[-2]_rec[-38];DT(5.5,5.5,2)rec[-1]_rec[-37];TICK;M_0_1_2_3_4_5_13_14_15_16_17_18_26_27_28_29_30_3)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(1_39_40_41_42_43_44_52_53_54_55_56_57_65_66_67_68_69_70;MARKZ(0)39_40_41_42_43_44;DT(0.5,1.5,3)rec[-28]_rec[-29]_rec[-34]_rec[-35]_rec[-72];DT(0.5,3.5,3)rec[-26]_rec[-27]_rec[-32]_rec[-33]_rec[-71];DT(0.5,5.5,3)rec[-25]_rec[-30]_rec[-31]_rec[-36]_rec[-70];DT(1.5,0.5,3)rec[-23]_rec[-24]_rec[-29]_rec[-30]_rec[-69];DT(1.5,2.5,3)rec[-21]_rec[-22]_rec[-27]_rec[-28]_rec[-68];DT(1.5,4.5,3)rec[-19]_rec[-20]_rec[-25]_rec[-26]_rec[-67];DT(2.5,1.5,3)rec[-16]_rec[-17]_rec[-22]_rec[-23]_rec[-66];DT(2.5,3.5,3)rec[-14]_rec[-15]_rec[-20]_rec[-21]_rec[-65];DT(2.5,5.5,3)rec[-13]_rec[-18]_rec[-19]_rec[-24]_rec[-64];DT(3.5,0.5,3)rec[-11]_rec[-12]_rec[-17]_rec[-18]_rec[-63];DT(3.5,2.5,3)rec[-9]_rec[-10]_rec[-15]_rec[-16]_rec[-62];DT(3.5,4.5,3)rec[-7]_rec[-8]_rec[-13]_rec[-14]_rec[-61];DT(5.5,0.5,3)rec[-5]_rec[-6]_rec[-35]_rec[-36]_rec[-57];DT(4.5,1.5,3)rec[-4]_rec[-5]_rec[-10]_rec[-11]_rec[-60];DT(5.5,2.5,3)rec[-3]_rec[-4]_rec[-33]_rec[-34]_rec[-56];DT(4.5,3.5,3)rec[-2]_rec[-3]_rec[-8]_rec[-9]_rec[-59];DT(5.5,4.5,3)rec[-1]_rec[-2)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(]_rec[-31]_rec[-32]_rec[-55];DT(4.5,5.5,3)rec[-1]_rec[-6]_rec[-7]_rec[-12]_rec[-58];OI(0)rec[-3]_rec[-9]_rec[-15]_rec[-21]_rec[-27]_rec[-33];OI(1)rec[-13]_rec[-14]_rec[-15]_rec[-16]_rec[-17]_rec[-18] )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Color Code )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Superdense )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Stability (X+Z) )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( 6x4x4 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( #circuit=Q(0,1)0;Q(0,2)1;Q(0,3)2;Q(1,0)3;Q(1,1)4;Q(1,2)5;Q(1,3)6;Q(1,4)7;Q(2,0)8;Q(2,1)9;Q(2,2)10;Q(2,3)11;Q(2,4)12;Q(3,0)13;Q(3,1)14;Q(3,2)15;Q(3,3)16;Q(3,4)17;Q(4,0)18;Q(4,1)19;Q(4,2)20;Q(4,3)21;Q(4,4)22;Q(5,1)23;Q(5,2)24;Q(5,3)25;POLYGON(0,1,1,0.25)14_18_24_20;POLYGON(0,1,1,0.25)11_16_22_7;POLYGON(0,1,1,0.25)3_9_5_1;POLYGON(1,0,1,0.25)9_14_20_16_11_5;POLYGON(1,1,0,0.25)3_18_14_9;POLYGON(1,1,0,0.25)20_24_22_16;POLYGON(1,1,0,0.25)1_5_11_7;TICK;R_13_6_17_15_23_25_4;RX_21_2_12_10_19_8_0;MARKZ(0)15;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;CX_21_20_12_11_10_9_19_18_25_24_17_16_15_14_2_1_6_5_4_3;TICK;CX_21_16_12_7_10_5_19_14_6_11_17_22_15_20_13_18_8_3_4_9;TICK;CX_6_7_10_11_15_16_21_22_19_20_23_24_8_9_13_14_0_1_4_5;TICK;CX_20_21_11_12_9_10_18_19_24_25_16_17_14_15_1_2_5_6_3_4;TICK;CX_16_21_7_12_5_10_14_19_11_6_22_17_20_15_18_13_3_8_9_4;TICK;CX_7_6_11_10_16_15_22_21_20_19_24_23_9_8_14_13_1_0_5_4;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;M_25_6_17_15_23_13_4;MX_21_2_12_10_19_8)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_0;MARKZ(0)15;OI(0)rec[-1]_rec[-2]_rec[-3]_rec[-5]_rec[-6]_rec[-7];OI(1)rec[-8]_rec[-9]_rec[-10]_rec[-12]_rec[-13]_rec[-14];TICK;R_13_6_17_15_23_25_4;RX_21_2_12_10_19_8_0;MARKX(1)0_2_12_21_19_8;MARKZ(0)17_13;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;CX_21_20_12_11_10_9_19_18_25_24_17_16_15_14_2_1_6_5_4_3;TICK;CX_21_16_12_7_10_5_19_14_6_11_17_22_15_20_13_18_8_3_4_9;TICK;CX_6_7_10_11_15_16_21_22_19_20_23_24_8_9_13_14_0_1_4_5;TICK;CX_20_21_11_12_9_10_18_19_24_25_16_17_14_15_1_2_5_6_3_4;TICK;CX_16_21_7_12_5_10_14_19_11_6_22_17_20_15_18_13_3_8_9_4;TICK;CX_7_6_11_10_16_15_22_21_20_19_24_23_9_8_14_13_1_0_5_4;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;M_25_6_17_15_23_13_4;MX_21_2_12_10_19_8_0;MARKX(1)8_0_2_12_21_19;MARKZ(0)15;DT(5,3,0)rec[-14]_rec[-28];DT(1,3,0)rec[-13]_rec[-27];DT(3,4,0)rec[-12]_rec[-26];DT(3,2,0)rec[-11]_rec[-25];DT(5,1,0)rec[-10]_rec[-24];DT(3,0,0)rec[-9]_rec[-23];DT(1,1,0)rec[-8]_rec[-22];DT(4,1,0)rec[-7]_rec[-17];DT(0,1,0)rec[-6]_rec[-15];DT(2,2,0)rec[-5]_rec[-18]_rec[-19];DT(2,0,)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(0)rec[-4]_rec[-16]_rec[-19];DT(4,3,0)rec[-3]_rec[-21];DT(2,0.5,0)rec[-2]_rec[-16]_rec[-18];DT(0,3,0)rec[-1]_rec[-20];TICK;R_13_6_17_15_23_25_4;RX_21_2_12_10_19_8_0;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;CX_21_20_12_11_10_9_19_18_25_24_17_16_15_14_2_1_6_5_4_3;TICK;CX_21_16_12_7_10_5_19_14_6_11_17_22_15_20_13_18_8_3_4_9;TICK;CX_6_7_10_11_15_16_21_22_19_20_23_24_8_9_13_14_0_1_4_5;TICK;CX_20_21_11_12_9_10_18_19_24_25_16_17_14_15_1_2_5_6_3_4;TICK;CX_16_21_7_12_5_10_14_19_11_6_22_17_20_15_18_13_3_8_9_4;TICK;CX_7_6_11_10_16_15_22_21_20_19_24_23_9_8_14_13_1_0_5_4;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;M_25_6_17_15_23_13_4;MX_21_2_12_10_19_8_0;DT(5,3,1)rec[-14]_rec[-28];DT(1,3,1)rec[-13]_rec[-27];DT(3,4,1)rec[-12]_rec[-26];DT(3,2,1)rec[-11]_rec[-25];DT(5,1,1)rec[-10]_rec[-24];DT(3,0,1)rec[-9]_rec[-23];DT(1,1,1)rec[-8]_rec[-22];DT(4,1,1)rec[-7]_rec[-17];DT(0,1,1)rec[-6]_rec[-15];DT(2,2,1)rec[-5]_rec[-18]_rec[-19];DT(2,0,1)rec[-4]_rec[-16]_rec[-19];DT(4,3,1)rec[-3]_rec[-21];DT(2,0.5,1)rec[-2]_rec[-)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(16]_rec[-18];DT(0,3,1)rec[-1]_rec[-20];TICK;R_13_6_17_15_23_25_4;RX_21_2_12_10_19_8_0;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;CX_21_20_12_11_10_9_19_18_25_24_17_16_15_14_2_1_6_5_4_3;TICK;CX_21_16_12_7_10_5_19_14_6_11_17_22_15_20_13_18_8_3_4_9;TICK;CX_6_7_10_11_15_16_21_22_19_20_23_24_8_9_13_14_0_1_4_5;TICK;CX_20_21_11_12_9_10_18_19_24_25_16_17_14_15_1_2_5_6_3_4;TICK;CX_16_21_7_12_5_10_14_19_11_6_22_17_20_15_18_13_3_8_9_4;TICK;CX_7_6_11_10_16_15_22_21_20_19_24_23_9_8_14_13_1_0_5_4;TICK;CX_21_25_2_6_12_17_10_15_19_23_8_13_0_4;TICK;M_25_6_17_15_23_13_4;MX_21_2_12_10_19_8_0;DT(5,3,2)rec[-14]_rec[-28];DT(1,3,2)rec[-13]_rec[-27];DT(3,4,2)rec[-12]_rec[-26];DT(3,2,2)rec[-11]_rec[-25];DT(5,1,2)rec[-10]_rec[-24];DT(3,0,2)rec[-9]_rec[-23];DT(1,1,2)rec[-8]_rec[-22];DT(4,1,2)rec[-7]_rec[-17];DT(0,1,2)rec[-6]_rec[-15];DT(2,2,2)rec[-5]_rec[-18]_rec[-19];DT(2,0,2)rec[-4]_rec[-16]_rec[-19];DT(4,3,2)rec[-3]_rec[-21];DT(2,0.5,2)rec[-2]_rec[-16]_rec[-18];DT(0,3,2)rec[-1]_rec[-20] )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( "> )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Open Circuit )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Surface Code )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Standard (ИZ) )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Stability (Z) )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( 4x4x5 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( #circuit=Q(0,1)0;Q(0,3)1;Q(0.5,0.5)2;Q(0.5,1.5)3;Q(0.5,2.5)4;Q(0.5,3.5)5;Q(1,0)6;Q(1,1)7;Q(1,2)8;Q(1,3)9;Q(1,4)10;Q(1.5,0.5)11;Q(1.5,1.5)12;Q(1.5,2.5)13;Q(1.5,3.5)14;Q(2,1)15;Q(2,2)16;Q(2,3)17;Q(2.5,0.5)18;Q(2.5,1.5)19;Q(2.5,2.5)20;Q(2.5,3.5)21;Q(3,0)22;Q(3,1)23;Q(3,2)24;Q(3,3)25;Q(3,4)26;Q(3.5,0.5)27;Q(3.5,1.5)28;Q(3.5,2.5)29;Q(3.5,3.5)30;Q(4,1)31;Q(4,3)32;POLYGON(0,0,1,0.25)11_2;POLYGON(0,0,1,0.25)3_12_13_4;POLYGON(0,0,1,0.25)2_3;POLYGON(0,0,1,0.25)13_20_21_14;POLYGON(0,0,1,0.25)19_28_29_20;POLYGON(0,0,1,0.25)11_18_19_12;POLYGON(0,0,1,0.25)27_18;POLYGON(0,0,1,0.25)27_28;POLYGON(0,0,1,0.25)4_5;POLYGON(0,0,1,0.25)14_5;POLYGON(0,0,1,0.25)30_21;POLYGON(0,0,1,0.25)29_30;POLYGON(1,0,0,0.25)2_11_12_3;POLYGON(1,0,0,0.25)12_19_20_13;POLYGON(1,0,0,0.25)18_27_28_19;POLYGON(1,0,0,0.25)20_29_30_21;POLYGON(1,0,0,0.25)4_13_14_5;TICK;RY_2_3_4_5_11_12_13_14_18_19_20_21_27_28_29_30;TICK;R_0_1_6_8_10_15_17_22_24_26_31_32;RX_7_9_25_23_16;TICK;CX_7_2_3_8_9_4_5_10_11_15_16_12_13_17_23_18_19_24_25_20_21_26)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_27_31_29_32;TICK;CX_2_0_4_1_12_8_14_10_18_15_20_17_28_24_30_26_7_3_16_13_9_5_23_19_25_21;TICK;CX_2_6_4_8_12_15_14_17_18_22_20_24_28_31_30_32_7_11_16_19_9_13_23_27_25_29;TICK;CX_3_0_5_1_11_6_7_12_13_8_9_14_19_15_16_20_21_17_27_22_23_28_29_24_25_30;TICK;M_0_1_6_8_10_15_17_22_24_26_31_32;MX_7_9_25_23_16;OI(0)rec[-6]_rec[-7]_rec[-8]_rec[-9]_rec[-10]_rec[-11]_rec[-12]_rec[-13]_rec[-14]_rec[-15]_rec[-16]_rec[-17];TICK;R_0_1_6_8_10_15_17_22_24_26_31_32;RX_7_9_25_23_16;MARKZ(0)6_8_10_15_17_22_24_26_31_32_0_1;TICK;CX_7_2_3_8_9_4_5_10_11_15_16_12_13_17_23_18_19_24_25_20_21_26_27_31_29_32;TICK;CX_2_0_4_1_12_8_14_10_18_15_20_17_28_24_30_26_7_3_16_13_9_5_23_19_25_21;TICK;CX_2_6_4_8_12_15_14_17_18_22_20_24_28_31_30_32_7_11_16_19_9_13_23_27_25_29;TICK;CX_3_0_5_1_11_6_7_12_13_8_9_14_19_15_16_20_21_17_27_22_23_28_29_24_25_30;TICK;M_0_1_6_8_10_15_17_22_24_26_31_32;MX_7_9_25_23_16;MARKZ(0)6_8_10_15_17_22_24_26_31_32_0_1;DT(0,1,0)rec[-17]_rec[-34];DT(0,3,0)rec[-16]_rec[-33];DT(1,0,0)rec[-15]_rec[-32];DT(1,2,0)rec[-14]_rec[-31];)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(DT(1,4,0)rec[-13]_rec[-30];DT(2,1,0)rec[-12]_rec[-29];DT(2,3,0)rec[-11]_rec[-28];DT(3,0,0)rec[-10]_rec[-27];DT(3,2,0)rec[-9]_rec[-26];DT(3,4,0)rec[-8]_rec[-25];DT(4,1,0)rec[-7]_rec[-24];DT(4,3,0)rec[-6]_rec[-23];DT(1,1,0)rec[-5]_rec[-22];DT(1,3,0)rec[-4]_rec[-21];DT(3,3,0)rec[-3]_rec[-20];DT(3,1,0)rec[-2]_rec[-19];DT(2,2,0)rec[-1]_rec[-18];TICK;R_0_1_6_8_10_15_17_22_24_26_31_32;RX_7_9_25_23_16;TICK;CX_7_2_3_8_9_4_5_10_11_15_16_12_13_17_23_18_19_24_25_20_21_26_27_31_29_32;TICK;CX_2_0_4_1_12_8_14_10_18_15_20_17_28_24_30_26_7_3_16_13_9_5_23_19_25_21;TICK;CX_2_6_4_8_12_15_14_17_18_22_20_24_28_31_30_32_7_11_16_19_9_13_23_27_25_29;TICK;CX_3_0_5_1_11_6_7_12_13_8_9_14_19_15_16_20_21_17_27_22_23_28_29_24_25_30;TICK;M_0_1_6_8_10_15_17_22_24_26_31_32;MX_7_9_25_23_16;DT(0,1,1)rec[-17]_rec[-34];DT(0,3,1)rec[-16]_rec[-33];DT(1,0,1)rec[-15]_rec[-32];DT(1,2,1)rec[-14]_rec[-31];DT(1,4,1)rec[-13]_rec[-30];DT(2,1,1)rec[-12]_rec[-29];DT(2,3,1)rec[-11]_rec[-28];DT(3,0,1)rec[-10]_rec[-27];DT(3,2,1)rec[-9]_rec[-26];DT(3,4,1)rec[-8])CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(_rec[-25];DT(4,1,1)rec[-7]_rec[-24];DT(4,3,1)rec[-6]_rec[-23];DT(1,1,1)rec[-5]_rec[-22];DT(1,3,1)rec[-4]_rec[-21];DT(3,3,1)rec[-3]_rec[-20];DT(3,1,1)rec[-2]_rec[-19];DT(2,2,1)rec[-1]_rec[-18];TICK;R_0_1_6_8_10_15_17_22_24_26_31_32;RX_7_9_25_23_16;TICK;CX_7_2_3_8_9_4_5_10_11_15_16_12_13_17_23_18_19_24_25_20_21_26_27_31_29_32;TICK;CX_2_0_4_1_12_8_14_10_18_15_20_17_28_24_30_26_7_3_16_13_9_5_23_19_25_21;TICK;CX_2_6_4_8_12_15_14_17_18_22_20_24_28_31_30_32_7_11_16_19_9_13_23_27_25_29;TICK;CX_3_0_5_1_11_6_7_12_13_8_9_14_19_15_16_20_21_17_27_22_23_28_29_24_25_30;TICK;M_0_1_6_8_10_15_17_22_24_26_31_32;MX_7_9_25_23_16;DT(0,1,2)rec[-17]_rec[-34];DT(0,3,2)rec[-16]_rec[-33];DT(1,0,2)rec[-15]_rec[-32];DT(1,2,2)rec[-14]_rec[-31];DT(1,4,2)rec[-13]_rec[-30];DT(2,1,2)rec[-12]_rec[-29];DT(2,3,2)rec[-11]_rec[-28];DT(3,0,2)rec[-10]_rec[-27];DT(3,2,2)rec[-9]_rec[-26];DT(3,4,2)rec[-8]_rec[-25];DT(4,1,2)rec[-7]_rec[-24];DT(4,3,2)rec[-6]_rec[-23];DT(1,1,2)rec[-5]_rec[-22];DT(1,3,2)rec[-4]_rec[-21];DT(3,3,2)rec[-3]_rec[-20];DT(3,1,2)r)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(ec[-2]_rec[-19];DT(2,2,2)rec[-1]_rec[-18];TICK;R_0_1_6_8_10_15_17_22_24_26_31_32;RX_7_9_25_23_16;TICK;CX_7_2_3_8_9_4_5_10_11_15_16_12_13_17_23_18_19_24_25_20_21_26_27_31_29_32;TICK;CX_2_0_4_1_12_8_14_10_18_15_20_17_28_24_30_26_7_3_16_13_9_5_23_19_25_21;TICK;CX_2_6_4_8_12_15_14_17_18_22_20_24_28_31_30_32_7_11_16_19_9_13_23_27_25_29;TICK;CX_3_0_5_1_11_6_7_12_13_8_9_14_19_15_16_20_21_17_27_22_23_28_29_24_25_30;TICK;M_0_1_6_8_10_15_17_22_24_26_31_32;MX_7_9_25_23_16;DT(0,1,3)rec[-17]_rec[-34];DT(0,3,3)rec[-16]_rec[-33];DT(1,0,3)rec[-15]_rec[-32];DT(1,2,3)rec[-14]_rec[-31];DT(1,4,3)rec[-13]_rec[-30];DT(2,1,3)rec[-12]_rec[-29];DT(2,3,3)rec[-11]_rec[-28];DT(3,0,3)rec[-10]_rec[-27];DT(3,2,3)rec[-9]_rec[-26];DT(3,4,3)rec[-8]_rec[-25];DT(4,1,3)rec[-7]_rec[-24];DT(4,3,3)rec[-6]_rec[-23];DT(1,1,3)rec[-5]_rec[-22];DT(1,3,3)rec[-4]_rec[-21];DT(3,3,3)rec[-3]_rec[-20];DT(3,1,3)rec[-2]_rec[-19];DT(2,2,3)rec[-1]_rec[-18];TICK;MY_2_3_4_5_11_12_13_14_18_19_20_21_27_28_29_30 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( "> )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Open Circuit )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Surface Code )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Standard (ИZ) )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Prepare (RY) )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( 5x5x4 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Clear Timeline Focus + result.append(R"CRUMBLE_PART( #circuit=Q(0,2)0;Q(0,4)1;Q(0.5,0.5)2;Q(0.5,1.5)3;Q(0.5,2.5)4;Q(0.5,3.5)5;Q(0.5,4.5)6;Q(1,0)7;Q(1,1)8;Q(1,2)9;Q(1,3)10;Q(1,4)11;Q(1.5,0.5)12;Q(1.5,1.5)13;Q(1.5,2.5)14;Q(1.5,3.5)15;Q(1.5,4.5)16;Q(2,0)17;Q(2,1)18;Q(2,2)19;Q(2,3)20;Q(2,4)21;Q(2,5)22;Q(2.5,0.5)23;Q(2.5,1.5)24;Q(2.5,2.5)25;Q(2.5,3.5)26;Q(2.5,4.5)27;Q(3,0)28;Q(3,1)29;Q(3,2)30;Q(3,3)31;Q(3,4)32;Q(3.5,0.5)33;Q(3.5,1.5)34;Q(3.5,2.5)35;Q(3.5,3.5)36;Q(3.5,4.5)37;Q(4,0)38;Q(4,1)39;Q(4,2)40;Q(4,3)41;Q(4,4)42;Q(4,5)43;Q(4.5,0.5)44;Q(4.5,1.5)45;Q(4.5,2.5)46;Q(4.5,3.5)47;Q(4.5,4.5)48;Q(5,1)49;Q(5,2)50;Q(5,3)51;Q(5,4)52;POLYGON(0,0,1,0.25)12_13_3;POLYGON(0,0,1,0.25)4_14_15_5;POLYGON(0,0,1,0.25)13_24_25_14;POLYGON(0,0,1,0.25)15_26_27_16;POLYGON(0,0,1,0.25)23_33_34_24;POLYGON(0,0,1,0.25)25_35_36_26;POLYGON(0,0,1,0.25)34_45_46_35;POLYGON(0,0,1,0.25)36_47_48_37;POLYGON(0,0,1,0.25)3_4;POLYGON(0,0,1,0.25)5_6;POLYGON(0,0,1,0.25)23_12;POLYGON(0,0,1,0.25)44_33;POLYGON(1,0,0,0.25)3_13_14_4;POLYGON(1,0,0,0.25)5_15_16_6;POLYGON(1,0,0,0.25)12_23_24_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(13;POLYGON(1,0,0,0.25)14_25_26_15;POLYGON(1,0,0,0.25)24_34_35_25;POLYGON(1,0,0,0.25)26_36_37_27;POLYGON(1,0,0,0.25)33_44_45_34;POLYGON(1,0,0,0.25)35_46_47_36;POLYGON(1,0,0,0.25)27_16;POLYGON(1,0,0,0.25)48_37;POLYGON(1,0,0,0.25)47_48;POLYGON(1,0,0,0.25)45_46;TICK;R_25_15_14_13_24_34_44_33_23_12_3_4_5_6;RX_45_46_35_47_36_26_48_37_27_16;TICK;R_0_1_42_40_38_31_29_21_19_17_10_8;RX_52_50_43_41_39_32_30_22_20_18_11_9;TICK;CX_37_42_35_40_33_38_26_31_24_29_16_21_14_19_12_17_5_10_3_8_52_48_50_46_41_36_39_34_32_27_30_25_20_15_18_13_11_6_9_4;TICK;CX_41_47_39_45_32_37_30_35_20_26_18_24_11_16_9_14_36_42_34_40_25_31_23_29_15_21_13_19_4_10;TICK;CX_52_47_50_45_43_37_41_35_39_33_32_26_30_24_22_16_20_14_18_12_11_5_9_3_4_0_6_1_48_42_46_40_44_38_36_31_34_29_27_21_25_19_23_17_15_10_13_8;TICK;CX_43_48_41_46_39_44_32_36_30_34_22_27_20_25_18_23_11_15_9_13_3_0_5_1_47_42_45_40_35_31_33_29_26_21_24_19_14_10_12_8;TICK;M_1_0_42_40_38_31_29_21_19_17_10_8;MX_52_50_43_41_39_32_30_22_20_18_11_9;DT(0,4,0)rec[-24];DT(0,2,0)rec[-23];DT(4,0,0)rec)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART([-20];DT(3,1,0)rec[-18];DT(2,2,0)rec[-16];DT(2,0,0)rec[-15];DT(1,3,0)rec[-14];DT(1,1,0)rec[-13];DT(5,4,0)rec[-12];DT(5,2,0)rec[-11];DT(4,5,0)rec[-10];DT(4,3,0)rec[-9];DT(3,4,0)rec[-7];DT(2,5,0)rec[-5];TICK;R_0_1_42_40_38_31_29_21_19_17_10_8;RX_52_50_43_41_39_32_30_22_20_18_11_9;TICK;CX_37_42_35_40_33_38_26_31_24_29_16_21_14_19_12_17_5_10_3_8_52_48_50_46_41_36_39_34_32_27_30_25_20_15_18_13_11_6_9_4;TICK;CX_41_47_39_45_32_37_30_35_20_26_18_24_11_16_9_14_36_42_34_40_25_31_23_29_15_21_13_19_4_10;TICK;CX_52_47_50_45_43_37_41_35_39_33_32_26_30_24_22_16_20_14_18_12_11_5_9_3_4_0_6_1_48_42_46_40_44_38_36_31_34_29_27_21_25_19_23_17_15_10_13_8;TICK;CX_43_48_41_46_39_44_32_36_30_34_22_27_20_25_18_23_11_15_9_13_3_0_5_1_47_42_45_40_35_31_33_29_26_21_24_19_14_10_12_8;TICK;M_1_0_42_40_38_31_29_21_19_17_10_8;MX_52_50_43_41_39_32_30_22_20_18_11_9;DT(0,4,1)rec[-24]_rec[-48];DT(0,2,1)rec[-23]_rec[-47];DT(4,4,1)rec[-22]_rec[-46];DT(4,2,1)rec[-21]_rec[-45];DT(4,0,1)rec[-20]_rec[-44];DT(3,3,1)rec[-19]_rec[-43];DT(3,1,1)rec[-18]_rec)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART([-42];DT(2,4,1)rec[-17]_rec[-41];DT(2,2,1)rec[-16]_rec[-40];DT(2,0,1)rec[-15]_rec[-39];DT(1,3,1)rec[-14]_rec[-38];DT(1,1,1)rec[-13]_rec[-37];DT(5,4,1)rec[-12]_rec[-36];DT(5,2,1)rec[-11]_rec[-35];DT(4,5,1)rec[-10]_rec[-34];DT(4,3,1)rec[-9]_rec[-33];DT(4,1,1)rec[-8]_rec[-32];DT(3,4,1)rec[-7]_rec[-31];DT(3,2,1)rec[-6]_rec[-30];DT(2,5,1)rec[-5]_rec[-29];DT(2,3,1)rec[-4]_rec[-28];DT(2,1,1)rec[-3]_rec[-27];DT(1,4,1)rec[-2]_rec[-26];DT(1,2,1)rec[-1]_rec[-25];TICK;POLYGON(0,0,1,0.25)13_24_25_14;POLYGON(0,0,1,0.25)4_14_15_5;POLYGON(0,0,1,0.25)15_26_27_16;POLYGON(0,0,1,0.25)25_35_36_26;POLYGON(0,0,1,0.25)3_4;POLYGON(0,0,1,0.25)5_6;POLYGON(0,0,1,0.25)23_33_34_24;POLYGON(0,0,1,0.25)2_12_13_3;POLYGON(0,0,1,0.25)34_45_46_35;POLYGON(0,0,1,0.25)36_47_48_37;POLYGON(0,0,1,0.25)38;POLYGON(0,0,1,0.25)28;POLYGON(0,0,1,0.25)17;POLYGON(0,0,1,0.25)7;POLYGON(0,0.5,0,1)2_48;POLYGON(1,0,0,0.25)3_13_14_4;POLYGON(1,0,0,0.25)14_25_26_15;POLYGON(1,0,0,0.25)5_15_16_6;POLYGON(1,0,0,0.25)26_36_37_27;POLYGON(1,0,0,0.25)24_34_35_25;POLYGON(1,0,)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(0,0.25)27_16;POLYGON(1,0,0,0.25)48_37;POLYGON(1,0,0,0.25)12_23_24_13;POLYGON(1,0,0,0.25)33_44_45_34;POLYGON(1,0,0,0.25)35_46_47_36;POLYGON(1,0,0,0.25)52;POLYGON(1,0,0,0.25)51;POLYGON(1,0,0,0.25)50;POLYGON(1,0,0,0.25)49;TICK;R_42_40_38_31_29_28_21_19_17_10_8_7_1_0;RX_52_51_50_49_43_41_39_32_30_22_20_18_11_9;RY_2;TICK;H_52_51_50_49_41_40_39_38_30_29_28_18_17_7_47_46_45_44_35_34_33_24_23_12;SQRT_X_DAG_42_31_19_8;TICK;XCY_48_52_36_41_25_30_13_18;TICK;CX_26_21_14_10_5_1_3_0_43_48_32_36_22_27_20_25_11_15_9_13_51_47_49_45_40_35_38_33_29_24_17_12_46_50_34_39_23_28;TICK;CX_27_21_15_10_6_1_4_0_43_37_32_26_22_16_20_14_11_5_9_3_40_46_38_44_29_34_17_23_47_52_45_50_35_41_33_39_24_30_12_18;XCY_42_48_31_36_19_25_8_13;TICK;CX_46_51_44_49_36_42_34_40_25_31_23_29_15_21_13_19_4_10_2_8_41_47_39_45_32_37_30_35_28_33_20_26_18_24_11_16_9_14_7_12;TICK;CX_47_51_45_49_37_42_35_40_26_31_24_29_16_21_14_19_5_10_3_8_41_36_39_34_32_27_30_25_28_23_20_15_18_13_11_6_9_4_7_2;TICK;M_52_51_50_49_42_40_31_29_21_19_10_8_1_0;MX_43_41_39_38_32_30_28_)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(22_20_18_17_11_9_7;DT(5,4,2)rec[-28]_rec[-40];DT(4,3,2)rec[-27]_rec[-37];DT(5,2,2)rec[-26]_rec[-39];DT(4,1,2)rec[-25]_rec[-36];DT(3,2,2)rec[-23]_rec[-34];DT(2,1,2)rec[-21]_rec[-31];DT(2,4,2)rec[-20]_rec[-45];DT(1,3,2)rec[-18]_rec[-42];DT(0,4,2)rec[-16]_rec[-52];DT(0,2,2)rec[-15]_rec[-51];DT(4,5,2)rec[-14]_rec[-38];DT(4,4,2)rec[-13]_rec[-24]_rec[-50];DT(4,2,2)rec[-12]_rec[-49];DT(4,0,2)rec[-11]_rec[-48];DT(3,4,2)rec[-10]_rec[-35];DT(3,3,2)rec[-9]_rec[-22]_rec[-47];DT(3,1,2)rec[-8]_rec[-46];DT(2,5,2)rec[-7]_rec[-33];DT(2,3,2)rec[-6]_rec[-32];DT(2,2,2)rec[-5]_rec[-19]_rec[-44];DT(2,0,2)rec[-4]_rec[-43];DT(1,4,2)rec[-3]_rec[-30];DT(1,2,2)rec[-2]_rec[-29];DT(1,1,2)rec[-1]_rec[-17]_rec[-41];TICK;POLYGON(0,0,1,0.25)2_12_13_3;POLYGON(0,0,1,0.25)13_24_25_14;POLYGON(0,0,1,0.25)4_14_15_5;POLYGON(0,0,1,0.25)15_26_27_16;POLYGON(0,0,1,0.25)25_35_36_26;POLYGON(0,0,1,0.25)36_47_48_37;POLYGON(0,0,1,0.25)23_33_34_24;POLYGON(0,0,1,0.25)34_45_46_35;POLYGON(0,0,1,0.25)44_45;POLYGON(0,0,1,0.25)3_4;POLYGON(0,0,1,0.25)5_6;POLYGON(0,)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(0,1,0.25)46_47;POLYGON(1,0,0,0.25)12_23_24_13;POLYGON(1,0,0,0.25)3_13_14_4;POLYGON(1,0,0,0.25)14_25_26_15;POLYGON(1,0,0,0.25)5_15_16_6;POLYGON(1,0,0,0.25)35_46_47_36;POLYGON(1,0,0,0.25)26_36_37_27;POLYGON(1,0,0,0.25)33_44_45_34;POLYGON(1,0,0,0.25)24_34_35_25;POLYGON(1,0,0,0.25)12_2;POLYGON(1,0,0,0.25)33_23;POLYGON(1,0,0,0.25)27_16;POLYGON(1,0,0,0.25)48_37;TICK;MPP_X33*X23_X12*X2_X27*X37*X36*X26_X25*X35*X34*X24_X4*X14*X13*X3_X6*X16*X15*X5;DT(3,0,3)rec[-6]_rec[-14];DT(1,0,3)rec[-5]_rec[-7];DT(3,4,3)rec[-4]_rec[-16];DT(3,2,3)rec[-3]_rec[-15];DT(1,2,3)rec[-2]_rec[-8];DT(1,4,3)rec[-1]_rec[-9];TICK;MPP_X48*X37_X27*X16_X36*X47*X46*X35_X34*X45*X44*X33_X13*X24*X23*X12_X15*X26*X25*X14;DT(4,5,4)rec[-6]_rec[-26];DT(2,5,4)rec[-5]_rec[-19];DT(4,3,4)rec[-4]_rec[-25];DT(4,0,4)rec[-3]_rec[-23]_rec[-24];DT(2,0,4)rec[-2]_rec[-16]_rec[-17];DT(2,3,4)rec[-1]_rec[-18];TICK;MPP_Z6*Z5_Z4*Z3_Z35*Z46*Z45*Z34_Z37*Z48*Z47*Z36_Z16*Z27*Z26*Z15_Z14*Z25*Z24*Z13;DT(0,4,5)rec[-6]_rec[-34];DT(0,2,5)rec[-5]_rec[-33];DT(4,2,5)rec[-4]_rec[-41]_rec)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART([-44];DT(4,4,5)rec[-3]_rec[-42]_rec[-46];DT(2,4,5)rec[-2]_rec[-38];DT(2,2,5)rec[-1]_rec[-37];TICK;MPP_Z47*Z46_Z45*Z44_Z24*Z34*Z33*Z23_Z26*Z36*Z35*Z25_Z5*Z15*Z14*Z4_Z3*Z13*Z12*Z2;DT(5,3,6)rec[-6]_rec[-51];DT(5,1,6)rec[-5]_rec[-49];DT(3,1,6)rec[-4]_rec[-45];DT(3,3,6)rec[-3]_rec[-46];DT(1,3,6)rec[-2]_rec[-42];DT(1,1,6)rec[-1]_rec[-41];TICK;MPP_X6*X5*X4*X3*Y2*Z23*Z12*Z44*Z33;OI(0)rec[-1]_rec[-54]_rec[-55]_rec[-56]_rec[-57]_rec[-58]_rec[-59]_rec[-60]_rec[-61]_rec[-62]_rec[-63]_rec[-64]_rec[-65] )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( "> )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Open Circuit )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( Surface Code )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Standard (ИZ) )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( Surgery (MZZ) )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( 7x3x5 )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(
+ result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( -)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); @@ -586,16 +540,16 @@ std::string stim_draw_internal::make_crumble_html() { )CRUMBLE_PART"); result.append(R"CRUMBLE_PART(class l{constructor(t,r,e,i,o,a,n,s,h=void 0){this.name=t,this.t=r,this.i=i,this.o=e,this.h=o,this.l=a,this.v=n,this.u=s,this.X=h}M(t){return new l(this.name,this.t,this.o,this.i,this.h,this.l,this.v,this.u,t)}}function I(r){var e=[];for(let t=0;tr.get(t)))for(let t=0;t{var i,o,a,[r,n]=r(t.R[0]);void 0!==r&&void 0!=)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(Z.u(this,t,r),""!==this.tag&&0{var i,o,a,[r,n]=r(t.R[0]);void 0!==r&&void 0!=)CRUMBLE_PART"); result.append(R"CRUMBLE_PART(=n&&({dx:t,dy:i,_:o,A:a}=pt(t.Y[0]),e.fillStyle=s,o===a?e.fillRect(r-t-2,n-i-2,o+4,a+4):(t=r+(t<0?1:-1)*Rt,i=n+(i<0?1:-1)*Rt,o=t+(o>Rt?1:0)*Rt*2,a=i+(a>Rt?1:0)*Rt*2,e.beginPath(),e.moveTo(r,n),e.lineTo(t,i),e.lineTo(o,a),e.lineTo(r,n),e.fill()))}}function*k(){yield new l("ISWAP",2,!0,!1,new Map([["IX","YZ"],["IZ","ZI"],["XI","ZY"],["ZI","IZ"]]),(t,r)=>t.k(r),(t,r)=>t.k(r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),h(e,i,o),h(e,r,t)}),yield new l("ISWAP_DAG",2,!0,!1,new Map([["IX","YZ"],["IZ","ZI"],["XI","ZY"],["ZI","IZ"]]),(t,r)=>t.k(r),(t,r)=>t.k(r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),h(e,i,o),h(e,r,t)}),yield new l("SWAP",2,!0,!1,new Map([["IX","XI"],["IZ","ZI"],["XI","IX"],["ZI","IZ"]]),(t,r)=>t.g(r),(t,r)=>t.g(r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),_(e,i,o),_(e,r,t)}),yield new l("CXSWAP",2,!0,!1,new Map([["IX","XI"],["IZ","ZZ"],["XI","XX"],["ZI","IZ"]]),(t,r)=>t.C(r),(t,r)=>t.S(r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),b(e,i,o))CRUMBLE_PART"); result.append(R"CRUMBLE_PART(,i=e,o=t,void 0!==(e=r)&&void 0!==o&&(i.fillStyle="white",i.strokeStyle="black",i.beginPath(),i.arc(e,o,Rt,0,2*Math.PI),i.fill(),i.stroke(),t=.4*Rt,i.strokeStyle="black",i.lineWidth=3,i.beginPath(),i.moveTo(e-t,o-t),i.lineTo(e+t,o+t),i.stroke(),i.moveTo(e-t,o+t),i.lineTo(e+t,o-t),i.stroke(),i.lineWidth=1)}),yield new l("CZSWAP",2,!0,!1,new Map([["IX","XZ"],["IZ","ZI"],["XI","ZX"],["ZI","IZ"]]),(t,r)=>t.P(r),(t,r)=>t.P(r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),b(e,i,o),b(e,r,t)})}function*g(){yield new l("CX",2,!0,!1,new Map([["IX","IX"],["IZ","ZZ"],["XI","XX"],["ZI","ZI"]]),(t,r)=>t.O(r),(t,r)=>t.O(r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),s(e,i,o),a(e,r,t)}),yield new l("CY",2,!0,!1,new Map([["IX","ZX"],["IZ","ZZ"],["XI","XY"],["ZI","ZI"]]),(t,r)=>t.T(r),(t,r)=>t.T(r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),s(e,i,o),n(e,r,t)}),yield new l("XCX",2,!0,!1,new Map([["IX","IX"],["IZ","XZ"],["XI","XI"],["ZI","ZX"]]),(t,r)=>t.N(r),(t,r)=>t.N(r),(t,r,e)=>{var[i)CRUMBLE_PART"); result.append(R"CRUMBLE_PART(,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),a(e,i,o),a(e,r,t)}),yield new l("XCY",2,!0,!1,new Map([["IX","XX"],["IZ","XZ"],["XI","XI"],["ZI","ZY"]]),(t,r)=>t.D(r),(t,r)=>t.D(r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),a(e,i,o),n(e,r,t)}),yield new l("YCY",2,!0,!1,new Map([["IX","YX"],["IZ","YZ"],["XI","XY"],["ZI","ZY"]]),(t,r)=>t.L(r),(t,r)=>t.L(r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),n(e,i,o),n(e,r,t)}),yield new l("CZ",2,!0,!1,new Map([["IX","ZX"],["IZ","IZ"],["XI","XZ"],["ZI","ZI"]]),(t,r)=>t.F(r),(t,r)=>t.F(r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),s(e,i,o),s(e,r,t)}),yield new l("MR",1,!0,!1,new Map([["X","ERR:I"],["Y","ERR:I"],["Z","I"]]),(t,r)=>t.U("Z",r),(t,r)=>t.U("Z",r),(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="gray",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("MR",r,t)}),yield new l("MRY",1,!0,!1,new Map([["X","ERR:I"],["Y",")CRUMBLE_PART"); result.append(R"CRUMBLE_PART(I"],["Z","ERR:I"]]),(t,r)=>t.U("Y",r),(t,r)=>t.U("Y",r),(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="gray",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("MRY",r,t)}),yield new l("MRX",1,!0,!1,new Map([["X","I"],["Y","ERR:I"],["Z","ERR:I"]]),(t,r)=>t.U("X",r),(t,r)=>t.U("X",r),(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="gray",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("MRX",r,t)}),yield new l("H",1,!0,!1,new Map([["X","Z"],["Z","X"]]),(t,r)=>t.G(r),(t,r)=>t.G(r),(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="yellow",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("H",r,t)}),yield new l("H_NXZ",1,!0,!1,new Map([["X","Z"],["Z","X"]]),(t,r)=>t.G(r),(t,r)=>t.G(r),(t,r,e)=>{va)CRUMBLE_PART"); result.append(R"CRUMBLE_PART(r[r,t]=r(t.R[0]);e.fillStyle="yellow",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("H",r,t-Rt/3),e.fillText("NXZ",r,t+Rt/3)}),yield new l("H_XY",1,!0,!1,new Map([["X","Y"],["Z","Z"]]),(t,r)=>t.H(r),(t,r)=>t.H(r),(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="yellow",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("H",r,t-Rt/3),e.fillText("XY",r,t+Rt/3)}),yield new l("H_NXY",1,!0,!1,new Map([["X","Y"],["Z","Z"]]),(t,r)=>t.H(r),(t,r)=>t.H(r),(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="yellow",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("H",r,t-Rt/3),e.fillText("NXY",r,t+Rt/3)}),yield new l("H_YZ",1,!0,!1,new Map([["X","X"],["Z","Y"]]),(t,r)=>t.K(r),(t,r)=>t.K(r),(t,r,e))CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(=>{var[r,t]=r(t.R[0]);e.fillStyle="yellow",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("H",r,t-Rt/3),e.fillText("YZ",r,t+Rt/3)}),yield new l("H_NYZ",1,!0,!1,new Map([["X","X"],["Z","Y"]]),(t,r)=>t.K(r),(t,r)=>t.K(r),(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="yellow",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("H",r,t-Rt/3),e.fillText("NYZ",r,t+Rt/3)}),yield new l("POLYGON",void 0,!1,!0,void 0,()=>{},()=>{},(t,r,e)=>{var i,o=[];for(i of t.R){var[a,n]=r(i);o.push([a-=.5,n-=.5])}S(e,o),e.globalAlpha*=t.Y[3],e.fillStyle=`rgb(${255*t.Y[0]},${255*t.Y[1]},${255*t.Y[2]})`,e.fill()}),yield new l("DETECTOR",void 0,!1,!0,void 0,()=>{},()=>{},(t,r,e)=>{}),yield new l("OBSERVABLE_INCLUDE",void 0,!1,!0,void 0,()=>{},()=>{},(t,r,e)=>{}),yield new l("MARKX",1,!0,!0,void 0,()=>{},()=>{},A("r)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(ed")),yield new l("MARKY",1,!0,!0,void 0,()=>{},()=>{},A("green")),yield new l("MARKZ",1,!0,!0,void 0,()=>{},()=>{},A("blue")),yield new l("MARK",1,!1,!0,void 0,()=>{},()=>{},(t,r,e)=>{var[r,t]=r(t.R[0]);void 0!==r&&void 0!==t&&(e.fillStyle="magenta",e.fillRect(r-Rt,t-Rt,Rt,Rt))}),yield new l("MXX",2,!0,!1,new Map([["II","II"],["IX","IX"],["IY","ERR:IY"],["IZ","ERR:IZ"],["XI","XI"],["XX","XX"],["XY","ERR:XY"],["XZ","ERR:XZ"],["YI","ERR:YI"],["YX","ERR:YX"],["YY","YY"],["YZ","YZ"],["ZI","ERR:ZI"],["ZX","ERR:ZX"],["ZY","ZY"],["ZZ","ZZ"]]),(t,r)=>t.$("XX",r),(t,r)=>t.$("XX",r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),e.fillStyle="gray",e.fillRect(i-Rt,o-Rt,2*Rt,2*Rt),e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(i-Rt,o-Rt,2*Rt,2*Rt),e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("MXX",i,o),e.fillText("MXX",r,t)}),yield new l("MYY",2,!0,!1,new Map([["II","II"],["IX","ERR:IX"],["IY","IY"],["IZ","ERR:IZ"],["XI","ERR)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(=>{var[r,t]=r(t.R[0]);e.fillStyle="yellow",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("H",r,t-Rt/3),e.fillText("YZ",r,t+Rt/3)}),yield new l("H_NYZ",1,!0,!1,new Map([["X","X"],["Z","Y"]]),(t,r)=>t.K(r),(t,r)=>t.K(r),(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="yellow",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("H",r,t-Rt/3),e.fillText("NYZ",r,t+Rt/3)}),yield new l("POLYGON",void 0,!1,!0,void 0,()=>{},()=>{},(t,r,e)=>{var i,o=[];for(i of t.R){var[a,n]=r(i);o.push([a-=.5,n-=.5])}S(e,o),e.globalAlpha*=t.Y[3],e.fillStyle=`rgb(${255*t.Y[0]},${255*t.Y[1]},${255*t.Y[2]})`,e.fill()}),yield new l("DETECTOR",void 0,!1,!0,void 0,()=>{},()=>{},(t,r,e)=>{}),yield new l("OBSERVABLE_INCLUDE",void 0,!1,!0,void 0,()=>{},()=>{},(t,r,e)=>{}),yield new l("MARKX",1,!0,!0,void 0,()=>{},()=>{},E("r)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(ed")),yield new l("MARKY",1,!0,!0,void 0,()=>{},()=>{},E("green")),yield new l("MARKZ",1,!0,!0,void 0,()=>{},()=>{},E("blue")),yield new l("MARK",1,!1,!0,void 0,()=>{},()=>{},(t,r,e)=>{var[r,t]=r(t.R[0]);void 0!==r&&void 0!==t&&(e.fillStyle="magenta",e.fillRect(r-Rt,t-Rt,Rt,Rt))}),yield new l("MXX",2,!0,!1,new Map([["II","II"],["IX","IX"],["IY","ERR:IY"],["IZ","ERR:IZ"],["XI","XI"],["XX","XX"],["XY","ERR:XY"],["XZ","ERR:XZ"],["YI","ERR:YI"],["YX","ERR:YX"],["YY","YY"],["YZ","YZ"],["ZI","ERR:ZI"],["ZX","ERR:ZX"],["ZY","ZY"],["ZZ","ZZ"]]),(t,r)=>t.$("XX",r),(t,r)=>t.$("XX",r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),e.fillStyle="gray",e.fillRect(i-Rt,o-Rt,2*Rt,2*Rt),e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(i-Rt,o-Rt,2*Rt,2*Rt),e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("MXX",i,o),e.fillText("MXX",r,t)}),yield new l("MYY",2,!0,!1,new Map([["II","II"],["IX","ERR:IX"],["IY","IY"],["IZ","ERR:IZ"],["XI","ERR)CRUMBLE_PART"); result.append(R"CRUMBLE_PART(:XI"],["XX","XX"],["XY","ERR:XY"],["XZ","XZ"],["YI","YI"],["YX","ERR:YX"],["YY","YY"],["YZ","ERR:YZ"],["ZI","ERR:ZI"],["ZX","ZX"],["ZY","ERR:ZY"],["ZZ","ZZ"]]),(t,r)=>t.$("YY",r),(t,r)=>t.$("YY",r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),e.fillStyle="gray",e.fillRect(i-Rt,o-Rt,2*Rt,2*Rt),e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(i-Rt,o-Rt,2*Rt,2*Rt),e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("MYY",i,o),e.fillText("MYY",r,t)}),yield new l("MZZ",2,!0,!1,new Map([["II","II"],["IX","ERR:IX"],["IY","ERR:IY"],["IZ","IZ"],["XI","ERR:XI"],["XX","XX"],["XY","XY"],["XZ","ERR:XZ"],["YI","ERR:YI"],["YX","YX"],["YY","YY"],["YZ","ERR:YZ"],["ZI","ZI"],["ZX","ERR:ZX"],["ZY","ERR:ZY"],["ZZ","ZZ"]]),(t,r)=>t.$("ZZ",r),(t,r)=>t.$("ZZ",r),(t,r,e)=>{var[i,o]=r(t.R[0]),[r,t]=r(t.R[1]);c(e,i,o,r,t),e.fillStyle="gray",e.fillRect(i-Rt,o-Rt,2*Rt,2*Rt),e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(i-Rt,o-Rt)CRUMBLE_PART"); result.append(R"CRUMBLE_PART(,2*Rt,2*Rt),e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("MZZ",i,o),e.fillText("MZZ",r,t)}),yield new l("ERR",1,!0,!1,new Map([["X","X"],["Z","Z"]]),()=>{},()=>{},(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="red",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("ERR",r,t)}),yield new l("I",1,!0,!1,new Map([["X","X"],["Z","Z"]]),()=>{},()=>{},(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="white",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("I",r,t)}),yield new l("X",1,!0,!1,new Map([["X","X"],["Z","Z"]]),()=>{},()=>{},(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="white",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillTe)CRUMBLE_PART"); result.append(R"CRUMBLE_PART(xt("X",r,t)}),yield new l("Y",1,!0,!1,new Map([["X","X"],["Z","Z"]]),()=>{},()=>{},(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="white",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("Y",r,t)}),yield new l("Z",1,!0,!1,new Map([["X","X"],["Z","Z"]]),()=>{},()=>{},(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="white",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("Z",r,t)}),yield new l("S",1,!0,!1,new Map([["X","Y"],["Z","Z"]]),(t,r)=>t.H(r),(t,r)=>t.H(r),(t,r,e)=>{var[r,t]=r(t.R[0]);e.fillStyle="yellow",e.fillRect(r-Rt,t-Rt,2*Rt,2*Rt),e.strokeStyle="black",e.strokeRect(r-Rt,t-Rt,2*Rt,2*Rt),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.fillText("S",r,t)}),yield new l("S_DAG",1,!0,!1,new Map([["X","Y"],["Z","Z"]]),(t,r)=>t.H(r),(t,r)=>t.H(r),(t,r,e)=>{var[r,t]=r(t.R[0]);)CRUMBLE_PART"); @@ -615,7 +569,7 @@ std::string stim_draw_internal::make_crumble_html() { )CRUMBLE_PART"); result.append(R"CRUMBLE_PART(`;return t=t+" }\n"+"}"}ot(){let r=C(this.nt(),t=>{let r=t.Z.name;return(r=(r=r.startsWith("MPP:")&&!B.has(r)?"MPP":r).startsWith("SPP:")&&!B.has(r)?"SPP":r).startsWith("SPP_DAG:")&&!B.has(r)&&(r="SPP_DAG"),""!==t.tag&&(r+="["+t.tag.replace("\\","\\B").replace("\r","\\r").replace("\n","\\n").replace("]","\\C")+"]"),0{var e=t.startsWith("MARK")||t.startsWith("POLY"),i=r.startsWith("MARK")||r.startsWith("POLY");return e!==i?e[t,r.get(t)]))}st(){var t=new U;return t.et=new Map(this.et),t.it=[...this.it],t}m(){let t=0;for(var[r,e]of this.et.entries())e.R[0]===r&&(t+=e.m());return t}ht(){var t,r=["M","MX","MY","MR","MRX","MRY","MXX","MYY","MZZ","RX","RY","R"];for(t of this.et.values())if(t.Z.name.startsWith("MPP:")||-1!==r.indexOf(t.Z.name))return!0;return!1}lt(){var t,r=["M","MX","MY","MR","MRX","MRY","MXX","MYY","MZZ","RX","RY","R"];for(t of this.et.values())if(1===t.R.length&&-1)CRUMBLE_PART"); result.append(R"CRUMBLE_PART(===r.indexOf(t.Z.name)&&0===t.m())return!0;return!1}ft(){var t,r=["MR","MRX","MRY","RX","RY","R"];for(t of this.et.values())if(-1!==r.indexOf(t.Z.name))return!0;return!1}vt(){var t,r=["M","MX","MY","MR","MRX","MRY","MXX","MYY","MZZ"];for(t of this.et.values())if(t.Z.name.startsWith("MPP:")||-1!==r.indexOf(t.Z.name))return!0;return!1}empty(){return 0===this.et.size&&0===this.it.length}ct(t){var r,e,i=new U;for(r of this.et.values())t(r)&&i.put(r);for(e of this.it)t(e)&&i.it.push(e);return i}dt(r){return this.ct(t=>!t.R.every(t=>!r(t)))}wt(e,t){var r,i,o=new Map,a=new Set;for(r of e.keys()){var n=e.get(r),s=this.et.get(r);if(void 0!==s){let r="";for(var h of s.R){a.has(h),a.add(h);let t=e.get(h);void 0===t&&(t="I"),r+=t}var l=s.p(r),f=l.startsWith("ERR:");for(let t=0;t-1===t.R.indexOf(r)),this.et.has(r)){var t,e=this.et.get(r);for(t of e.R)this.et.delete(t);return e}}Mt(r,e=void 0){this.it=this.it.filter(t=>void 0!==e&&t.Y[0]!==e||"MARKX"!==t.Z.name&&"MARKY"!==t.Z.name&&"MARKZ"!==t.Z.name||t.R[0]!==r)}put(t,r=!0){if(t.Z.i)"MARKX"!==t.Z.name&&"MARKY"!==t.Z.name&&"MARKZ"!==t.Z.name||this.Mt(t.R[0],t.Y[0]),this.it.push(t);else{for(var e of t.R)if(this.et.has(e)){if(!r)throw new Error("Collision");this.Xt(e)}for(var i of t.R)this.et.set(i,t)}}*nt(){for(var t of this.et.keys()){var r=this.et.get(t);r.R[0]===t&&(yield r)}yield*this.it}}function D(t){let r=void 0,e=void 0;for(var[i,o]of t)(void 0=)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(}else if("MARKY"===i.Z.name&&i.Y[0]===t){c=i.R[0];let t=o.get(c);void 0===t||"I"===t?t="Y":"X"===t?t="Z":"Y"===t?t="I":"Z"===t&&(t="X"),o.set(c,t)}else if("MARKZ"===i.Z.name&&i.Y[0]===t){var d=i.R[0];let t=o.get(d);void 0===t||"I"===t?t="Z":"X"===t?t="Y":"Y"===t?t="X":"Z"===t&&(t="I"),o.set(d,t)}return o}ut(){return 0===this.et.size&&0===this.it.length}Xt(r){if(this.it=this.it.filter(t=>-1===t.R.indexOf(r)),this.et.has(r)){var t,e=this.et.get(r);for(t of e.R)this.et.delete(t);return e}}Mt(r,e=void 0){this.it=this.it.filter(t=>void 0!==e&&t.Y[0]!==e||"MARKX"!==t.Z.name&&"MARKY"!==t.Z.name&&"MARKZ"!==t.Z.name||t.R[0]!==r)}put(t,r=!0){if(t.Z.i)"MARKX"!==t.Z.name&&"MARKY"!==t.Z.name&&"MARKZ"!==t.Z.name||this.Mt(t.R[0],t.Y[0]),this.it.push(t);else{for(var e of t.R)if(this.et.has(e)){if(!r)throw new Error("Collision");this.Xt(e)}for(var i of t.R)this.et.set(i,t)}}*nt(){for(var t of this.et.keys()){var r=this.et.get(t);r.R[0]===t&&(yield r)}yield*this.it}}function P(t){let r=void 0,e=void 0;for(var[i,o]of t)(void 0=)CRUMBLE_PART"); result.append(R"CRUMBLE_PART(==r||it.Zt(f,r),(t,r)=>t.Zt(f,r),(r,e,i)=>{let o=void 0,a=void 0;for(let t=0;td){a.push("[...]");break}e=G(e,o-1),i=G(i,o-1);a.push(e+": "+i)}return`Map{${a.join(", ")}}`}if(t instanceof Set){var n,s=r,h=[];for(n of t){if(h.length>d){h.push("[...]");break}h.push(G(n,s-1))}return`Set{${h.join(", ")}}`}if(void 0!==t[Symbol.iterator]){var l,f=r,v=[])CRUMBLE_PART"); result.append(R"CRUMBLE_PART(;for(l of t){if(v.length>d){v.push("[...]");break}v.push(G(l,f-1))}return`${t=Array.isArray(t)?"":t.constructor.name}[${v.join(", ")}]`}}function Q(t,r){try{var e=String(t);if(e!==x)return e}catch{}var i=t,o=r,a=[];for(s in i)if(i.hasOwnProperty(s)){if(a.length>d){a.push("[...]");break}var n=i[s],s=G(s,o-1),n=G(n,o-1);a.push(s+": "+n)}return void 0===i.constructor?"[an unknown non-primitive value with no constructor]":(e=(e=i.constructor.name)==={}.constructor.name?"":`(Type: ${e})`)+`{${a.join(", ")}}`}function G(t,r=z){return(null===(e=t)?"null":void 0===e?"undefined":"string"==typeof e?`"${e}"`:"number"==typeof e?""+e:void 0)||K(t,r)||Q(t,r);var e}function $(t){let r=[];var e,i=()=>{""!==o&&(r.push(o),o="")};let o="";for(e of t)" "===e?i():"*"===e?(i(),r.push("*")):o+=e;return i(),r}function q(e){var t=[];let i=0;for(;ie.length)throw Error(`Dangling combiner in ${e}.`);var o=[];for(let t=i;tt.Yt(f,r),(t,r)=>t.Yt(f,r),(r,e,i)=>{let o=void 0,a=void 0;for(let t=0;t{T[T.length-1].empty()||T.push(new U);for(let t=0;t{let o=0;for(let r=t;r{let a=[],n=[],e="",s="",t=o.indexOf(" "),r=o.indexOf("("),i=o.indexOf("["),h)CRUMBLE_PART"); result.append(R"CRUMBLE_PART(=o.indexOf("]");if(i!==-1&&t!==-1&&ti){e=o.substring(i+1,h).replaceAll("\\C","]").replaceAll("\\r","\r").replaceAll("\\n","\n").replaceAll("\\B","\\");o=o.substring(0,i)+" "+o.substring(h+1)}if(o.indexOf(")")!==-1){let[t,r]=o.split(")");let[e,i]=t.split("(");s=e.trim();a=i.split(",").map(t=>t.trim()).map(parseFloat);n=$(r)}else{let t=o.split(" ").map(t=>t.trim()).filter(t=>t!=="");if(t.length===0)return;let[r,...e]=t;s=r.trim();a=[];n=e.flatMap($)}let l=false;if(""!==s){0=L.length)return console.warn("Ignoring instruction due to out of range record target: "+o);var Y=L[Z];T[Y.bt].it.push(new F(B.get(s),e,new Float32Array([X]),new Uint32Array([Y._t[0]])))}return N+=u}if("SPP"===s||"SPP_DAG"===s){var R="SPP_DAG"===s,y=q(n),m;let r=T[T.length-1];for(m of y)try{r.put(V(e,new Float32Array(a),R,m),!1)}catch(t){T.push(new U),(r=T[T.length-1]).put(V(e,new Float32Array(a),R,m),!1)}return}if(s.startsWith("QUBIT_COORDS")){var p=a.length<1?0:a[0],I=a.length<2?0:a[1],b;for(b of n){var _=parseInt(b);D.has(_)?console.warn(`Ignoring "${o}" because there's already coordinate data for qubit ${_}.`):x.has(p+","+I)?console.warn(`Ignoring "${o}" because there's already a qubit placed at ${p},${I}.`):(D.set(_,[p,I]),x)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(.add(p+","+I))}return}}let t=!1;for(v of n)if(v.startsWith("rec["))"CX"!==s&&"CY"!==s&&"CZ"!==s&&"ZCX"!==s&&"ZCY"!==s||(t=!0);else if("number"!=typeof parseInt(v))throw new Error(o);if(t){var E=[];for(let t=0;t{let r=!0;for(;!D.has(t);){var e=r?t:o,i=e+",0";x.has(i)||(x.add(i),D.set(t,[e,0])),o+=!r,r=!1}};for(r of T)for(var i of r.nt())for(var a of i.R)e(a);var n=Math.max(...D.keys(),0)+1,h=new Float64Array(2*n);for(let t=0;t[t-r,t+r])}gt(){var t,r,e=new Map;for(let t=0;t1/256;)s/=2;let h;if(s<=1/256)h=1;else{h=1/s;let t=0;for(var[l,f]of e.values()){var v=(l-a+f-n)%(2*s),l=(l-a-f+n)%(2*s);t=t|(0==v?1:2)|(0==l?4:8)}5===t?h/=2:10===t&&(a-=s,h/=2)}let c=-a,d=-n;return(t,r)=>[)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(.add(p+","+I))}return}}let t=!1;for(v of n)if(v.startsWith("rec["))"CX"!==s&&"CY"!==s&&"CZ"!==s&&"ZCX"!==s&&"ZCY"!==s||(t=!0);else if("number"!=typeof parseInt(v))throw new Error(o);if(t){var A=[];for(let t=0;t{let r=!0;for(;!D.has(t);){var e=r?t:o,i=e+",0";x.has(i)||(x.add(i),D.set(t,[e,0])),o+=!r,r=!1}};for(r of T)for(var i of r.nt())for(var a of i.R)e(a);var n=Math.max(...D.keys(),0)+1,h=new Float64Array(2*n);for(let t=0;t[t-r,t+r])}gt(){var t,r,e=new Map;for(let t=0;t1/256;)s/=2;let h;if(s<=1/256)h=1;else{h=1/s;let t=0;for(var[l,f]of e.values()){var v=(l-a+f-n)%(2*s),l=(l-a-f+n)%(2*s);t=t|(0==v?1:2)|(0==l?4:8)}5===t?h/=2:10===t&&(a-=s,h/=2)}let c=-a,d=-n;return(t,r)=>[)CRUMBLE_PART"); result.append(R"CRUMBLE_PART((t+c)*h,(r+d)*h]}Ct(){return this.kt(this.gt())}St(e,i){return this.kt((t,r)=>[t+e,r+i])}st(){return this.St(0,0)}kt(r){var e=new Float64Array(this.Rt.length);for(let t=0;tt.st());return new u(e,t)}Pt(r){var e=new Map;for(let t=0;tr-t),u=w.Tt.join(":"),Z.has(u)||(Z.add(u),Y.push(w)));for([X,M]of f.entries())(M=[...new Set(M)]).sort((t,r)=>r-t),f.set(X,M);return Y.sort((t,r)=>t.Tt[0]-r.Tt[0]),{Nt:Y,Dt:f}}xt(){var t,r=new Set;for(t of this.yt)for(var N of t.nt())for(var D of N.R)r.add(D);var{Nt:a,Dt:e}=this.Pt(!0);a.reverse();let n=0;var i,s=this.m(),o=[];for(i of r){var x=this.Rt[2*i],L=this.Rt[2*i+1];o.push({Lt:i,x:x,y:L})}o.sort((t,r)=>t.x!==r.x?t.x-r.x:t.y!==r.y?t.y-r.y:t.Lt-r.Lt);var h=new Map,l=[];for(let t=0;t=g.length&&(t=0,i+=1),e=`DETECTOR(${g[t]}, ${C[t]}, ${i})`,X.has(e);t++);X.add(e);var O,T=[e];for(O of E.Tt)T.push(`rec[${O+A}]`);l.push(T.join(" ")),o=Math.max(o,i+1)}f=o;for([w,u]of[...e.entries()]){var K=s-n;if(!(0<=u[0]+K)){e.delete(w);var Q,$=[`OBSERVABLE_INCLUDE(${w})`];for(Q of u)$.push(`rec[${Q+K}]`);l.push($.join(" "))}}l.push("TICK")}for(;0=g.length&&(t=0,i+=1),e=`DETECTOR(${g[t]}, ${C[t]}, ${i})`,X.has(e);t++);X.add(e);var O,T=[e];for(O of A.Tt)T.push(`rec[${O+E}]`);l.push(T.join(" ")),o=Math.max(o,i+1)}f=o;for([w,u]of[...e.entries()]){var K=s-n;if(!(0<=u[0]+K)){e.delete(w);var Q,$=[`OBSERVABLE_INCLUDE(${w})`];for(Q of u)$.push(`rec[${Q+K}]`);l.push($.join(" "))}}l.push("TICK")}for(;0t.st()))}Ut(){var r=new Map;for(let t=0;t!(e instanceof t))){var s=t,h=r;if(s.length!==h.length)return!1;for(let t=0;t{performance.now(){this.er="idle",this.ir=-1/0,this.sr()},e)}}class i{constructor(t){this.hr=t}subscribe(t){return this.hr(t)}static of(...e){return new i(t=>{for(var r of e)t(r);return()=>{}})}lr(){let r=[];return this.subscribe(t=>r.push(t))(),r}map(e){return new i(r=>this.subscribe(t=>r(e(t))))}filter(e){return new i(r=>this.subscribe(t=>{e(t)&&r(t)}))}vr(s,h){return new i(r=>{)CRUMBLE_PART"); result.append(R"CRUMBLE_PART(let e=!1,i=!1,o,a,t=this.subscribe(t=>{o=t,e=!0,i&&r(h(o,a))}),n=s.subscribe(t=>{a=t,i=!0,e&&r(h(o,a))});return()=>{t(),n()}})}static cr(){return new i(t=>{let r,e=!1;return(r=()=>{e||(t(void 0),window.requestAnimationFrame(r))})(),()=>{e=!0}})}dr(){return new i(e=>{let i=()=>{},o=!1,t=this.subscribe(t=>{var r;o||(r=i,i=t.subscribe(e),r())});return()=>{o=!0,i(),t()}})}wr(r){return this.map(t=>(r(t),t))}ur(){return new i(r=>{let e=[];return e.push(this.subscribe(t=>e.push(t.subscribe(r)))),()=>{for(var t of e)t()}})}Xr(a){return new i(t=>{let r=void 0,e=!1,i=new nt(()=>{e||t(r)},a),o=this.subscribe(t=>{r=t,i.sr()});return()=>{e=!0,o()}})}static Mr(r,e){return new i(t=>(r.addEventListener(e,t),()=>r.removeEventListener(e,t)))}Zr(t){return new i(r=>{let e=t;return this.subscribe(t=>{0t===r);return new i(r=>{let e=!1,i=void 0;return this.subscribe(t=>{e&&o(i,t)||(i=t,e=!0,r(t))})})}}class st{constructor(){this.Rr=[],this.yr=new i(t=>{this.Rr.push(t);let r=!1;return()=)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(>{r||(r=!0,this.Rr.splice(this.Rr.indexOf(t),1))}})}mr(){return this.yr}send(t){for(var r of this.Rr)r(t)}}class ht{constructor(t=void 0){this.pr=t,this.Ir=new st,this.yr=new i(t=>(t(this.pr),this.Ir.mr().subscribe(t)))}mr(){return this.yr}set(t){this.pr=t,this.Ir.send(t)}get(){return this.pr}}class lt{constructor(t,r,e){if(r<0||r>=t.length)throw new Error("Bad index: "+{history:t,index:r,br:e});if(!Array.isArray(t))throw new Error("Bad history: "+{history:t,index:r,br:e});this.history=t,this.index=r,this.br=e,this._r=new st,this.Er=new ht(this.history[this.index])}Ar(){return this._r.mr()}kr(){return this.Er.mr()}gr(){return this.Er.get()}static Cr(t){return new lt([t],0,!1)}Sr(){return 0===this.index&&!this.br}Pr(){return this.index===this.history.length-1}clear(t){this.history=[t],this.index=0,this.br=!1,this.Er.set(t),this._r.send(t)}Or(t){this.br=t!==this.history[this.index],this._r.send(void 0)}Tr(){this.br=!1;var t=this.history[this.index];return this.Er.set(t),this._r.send(t),t}commit(t){t===this.hist)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(ory[this.index]?this.Tr():(this.br=!1,this.index+=1,this.history.splice(this.index,this.history.length-this.index),this.history.push(t),this.Er.set(t),this._r.send(t))}Nr(){if(!this.br){if(0===this.index)return;--this.index}this.br=!1;var t=this.history[this.index];return this.Er.set(t),this._r.send(t),t}Dr(){var t;if(this.index+1!==this.history.length)return this.index+=1,this.br=!1,t=this.history[this.index],this.Er.set(t),this._r.send(t),t}toString(){return"Revision("+G({index:this.index,count:this.history.length,Lr:this.br,head:this.history[this.index]})+")"}Gt(t){return t instanceof lt&&this.index===t.index&&this.br===t.br&&w(this.history,t.history)}}let It=32;function ft(t,e,N,o,D){var x,r=Math.floor(t.canvas.width/2),i=e.Fr();i.sort((t,r)=>{var[t,e]=o(t),[r,i]=o(r);return e!==i?e-i:t-r});let a=new Map,L=void 0,n=0,s=0,h=0,l=0;for(x of i){var[F,f]=o(x);s+=It,L!==f?(L=f,n=1.5*r,h=Math.max(h,l),l=0,s+=.25*It):(n+=.25*Rt,l++),a.set(F+","+f,[Math.round(n)+.5,Math.round(s)+.5])}let v=It+Math.ceil(Rt*h*.25);v)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(ar c=Math.floor(t.canvas.width/4/v);let U=e.Ur-c+1,d=Math.max(0,Math.min(U,D-2*c+1));var w=Math.min(d+2*c+2,D);let G=t=>{t-=e.Ur;return(t-=d-U)*v},u=(t,r)=>{var[t,e]=o(t);return[t,e,r]=[[t,e,r]][0],t=t+","+e,a.has(t)?([e,t]=a.get(t),[e+G(r),t]):[void 0,void 0]};t.save();try{t.clearRect(r,0,r,t.canvas.height);var H,z,K=new Map;for([H,z]of N.entries()){E=_=b=et=rt=tt=J=I=P=S=j=V=W=C=p=m=q=g=k=B=A=y=R=$=Q=Y=Z=M=X=void 0;var X=t,M=u,Z=z,Y=H,Q=d,$=w,R=v,y=K;for(let o=Q-1;o<=$;o++){y.has(o)||y.set(o,new Map);var m,p,I,b,_,E,A=y.get(o),B=Z.Gr(o+.5),k=Z.Gr(o);for([m,p]of B.Hr.entries()){let{dx:t,dy:r,_:e,A:i}=pt(Y,m,A);0<=Y&&Y<4?(t=0,e=R,i=5,0===Y?r=10:1===Y?r=5:2===Y?r=0:3===Y&&(r=-5)):t-=R/2;var[g,q]=M(m,o);if(void 0!==g&&void 0!==q){if("X"===p)X.fillStyle="red";else if("Y"===p)X.fillStyle="green";else{if("Z"!==p)throw new Error("Not a pauli: "+p);X.fillStyle="blue"}X.fillRect(g-t,q-r,e,i)}}for(I of k.zr){var{dx:C,dy:W,_:V,A:j}=pt(Y,I,A),[S,P]=(C-=R/2,M(I,o-.5));void 0!==S&&void 0!==P&&(X.strokeStyle="magenta",X.li)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(neWidth=8,X.strokeRect(S-C,P-W,V,j),X.lineWidth=1,X.fillStyle="black",X.fillRect(S-C,P-W,V,j))}for({Kr:b,Qr:_,color:E}of k.$r){var[J,tt]=M(b,o),[rt,et]=M(_,o);"X"===E?X.strokeStyle="red":"Y"===E?X.strokeStyle="green":"Z"===E?X.strokeStyle="blue":X.strokeStyle="purple",X.lineWidth=8,mt(X,J,tt,rt,et),X.lineWidth=1}}}t.globalAlpha*=.5,t.fillStyle="black";var it,O,ot,at=G(e.Ur)+1.5*r-v/2;t.fillRect(at,0,v,t.canvas.height),t.globalAlpha*=2,t.strokeStyle="black",t.fillStyle="black";for(it of i){var[nt,st]=u(it,d-1),[ht,lt]=u(it,w+1);t.beginPath(),t.moveTo(nt,st),t.lineTo(ht,lt),t.stroke()}t.textAlign="right",t.textBaseline="middle";for(O of i){var[ft,vt]=u(O,d-1),ct=e.Br.Rt[2*O],dt=e.Br.Rt[2*O+1];t.fillText(ct+`,${dt}:`,ft,vt)}for(let r=d;r<=w;r++){var wt=t=>u(t,r),ut=e.Br.yt[r];if(void 0!==ut)for(var Xt of ut.nt())Xt.I(wt,t)}t.globalAlpha=.5;for(ot of i){var[Mt,T]=u(ot,d-1),[Zt,Yt]=o(ot);e.qr>t.canvas.width/2&&e.Wr>=T+yt-.55*It&&e.Wr<=T+.55*It+yt&&(t.beginPath(),t.moveTo(Mt,T),t.lineTo(Zt,Yt),t.stroke(),t.fillStyl)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(e="black",t.fillRect(Zt-20,Yt-20,40,40),t.fillRect(t.canvas.width/2,T-It/3,t.canvas.width/2,2*It/3))}}finally{t.restore()}}class Z{constructor(t,r){if(32 32");this.t=r,this.Vr=t,this.jr=new Uint32Array(r),this.Jr=new Uint32Array(r),this.flags=new Uint32Array(r)}st(){var r=new Z(this.Vr,this.t);for(let t=0;t>=1,r>>=1,e>>=1,i>>=1}return s}static re(e){var t=e.length;if(0===t)throw new Error("strings.length === 0");var r,i=e[0].length;for(r of e)if(r.length!==i)throw new Error("Inconsistent string length.");var o=new Z(t,i);for(let r=0;r>e&1,o=this.jr[t]>>e&1,a=this.Jr[t]>>e&1;r+="_XZY!%$&"[o+2*a+4*i]}t.push(r)}return t}static ie(e,i){var o=new Z(e.length,i.length);for(let r=0;rt-r),["PropagatedPauliFrames {"]);for(t of r)e.push(` ${t}: `+this.he.get(t));return e.push("}"),e.join("\n")}Gr(t){let r=this.he.get(t);return r=void 0===r?new Y(new Map,new Set,[]):r}static le(r,e){var i=new O(new Map);let o=new Map;for(let t=0;tt[1]-r[1]);for(let r=t.yt.length-1;-1<=r;r--){var s,h=0<=r?t.yt[r]:new U,l=[...h.et.keys()];l.reverse();for(s of l){var f=h.et.get(s);if(f.R[0]===s){o.ae(f.Z,[...f.R]);for(let t=f.m();0"X"===t[0])?c.fillStyle="red":Y.every(t=>"Y"===t[0])?c.fillStyle="green":Y.every(t=>"Z"===t[0])?c.fillStyle="blue":c.fillStyle="black",c.strokeStyle=c.fillStyle;var R,y,Z=Y.map(t=>t[1]);let n=0,s=0;for([R,y]of Z)n+=R,s+=y;n/=Z.length,s/=Z.length,Z.sort((t,r)=>{var[t,e]=t,[r,i]=r;let o=Math.atan2(e-s,t-n),a=Math.atan2(i-s,r-n);return t===n&&e===s&&(o=-100),r===n&&i===s&&(a=-100),o-a}),S(c,Z),c.globalAlpha*=.25,c.fill(),c.globalAlpha*=4,c.lineWidth=2,c.stroke(),c.lineWidth=1}for([l,[f,v]]of Y){var{dx:m,dy:p,_:I,A:b}=pt(X,f+":"+v,M);if("X"===l)c.fillStyle="red";else if("Y"===l)c.fillStyle="green";else{if("Z"!==l)throw new Error("Not a pauli: "+l);c.fillStyle="blue"}c.fillRect(f-m,v-p,I,b)}for(_ of Z=u.Gr(d.Ur).zr){var[_,E]=w(_),{dx:A,dy:k,_:g,A:C}=pt(X,_+":"+E,M);c.lineWidth=X<0?2:8,c.strokeStyle="magenta",c.strokeRect(_-A,E-k,g,C),c.lineWidth)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(=1,c.fillStyle="black",c.fillRect(_-A,E-k,g,C)}}}let dt=!0;function T(t,r){t.save();try{dt&&r()}finally{t.restore()}}function wt(Z,Y){let R=Y.Br,r=0;for(var t of R.yt)for(var e of t.it){var i=e.Z;"MARKX"!==i.name&&"MARKY"!==i.name&&"MARKZ"!==i.name||(r=Math.max(r,e.Y[0]+1))}let y=(t,r)=>[t*P-N,r*P-yt],m=t=>{var r=R.Rt[2*t],t=R.Rt[2*t+1];return y(r,t)},p=new Map;for(let t=0;t{Z.fillStyle="white",Z.clearRect(0,0,Z.canvas.width,Z.canvas.height);var[t,r]=vt(Y.qr,Y.Wr);let e=Y.Ur;for(let t=0;t<=Y.Ur;t++)for(var i of R.yt[t].it)if("POLYGON"===i.Z.name){e=t;break}var o,a,n,s,h=[...R.yt[e].it])CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(;h.sort((t,r)=>r.R.length-t.R.length);for(o of h)"POLYGON"===o.Z.name&&o.I(m,Z);T(Z,()=>{for(let t=0;t<100;t+=.5){var[r,,]=y(t,0),e=""+t;Z.fillStyle="black",Z.fillText(e,r-Z.measureText(e).width/2,15)}for(let t=0;t<100;t+=.5){var[,i]=y(0,t),o=""+t;Z.fillStyle="black",Z.fillText(o,18-Z.measureText(o).width,i)}Z.strokeStyle="black";for(let r=0;r<100;r+=.5){var[t,,]=y(r,0),a=""+r;Z.fillStyle="black",Z.fillText(a,t-Z.measureText(a).width/2,15);for(let t=r%1;t<100;t+=1){var[n,s]=y(r,t),h=(Z.fillStyle="white",!I.has(r+","+t)),l=!b.has(r+","+t);h&&(Z.globalAlpha*=.25),l&&(Z.globalAlpha*=.25),Z.fillRect(n-Rt,s-Rt,2*Rt,2*Rt),Z.strokeRect(n-Rt,s-Rt,2*Rt,2*Rt),h&&(Z.globalAlpha*=4),l&&(Z.globalAlpha*=4)}}});for([a,n]of p.entries()){u=w=d=M=X=c=v=f=l=void 0;var l=Z,f=Y,v=m,c=n;if(a,void 0!==(c=c.Gr(f.Ur).$r))for(var{Kr:d,Qr:w,color:u}of c){var[d,X]=v(d),[w,M]=v(w);"X"===u?l.strokeStyle="red":"Y"===u?l.strokeStyle="green":"Z"===u?l.strokeStyle="blue":l.strokeStyle="purple",l.lineWidth=8,mt(l,d,X,w,M),l.lineWidth=1}}for(s )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(of R.yt[Y.Ur].nt())"POLYGON"!==s.Z.name&&s.I(m,Z);T(Z,()=>{Z.globalAlpha*=.25;for(var[t,r]of Y.de.values()){var[t,r]=y(t,r);Z.fillStyle="yellow",Z.fillRect(t-1.25*Rt,r-1.25*Rt,2.5*Rt,2.5*Rt)}}),T(Z,()=>{Z.globalAlpha*=.5;for(var[t,r]of Y.we.values()){var[t,r]=y(t,r);Z.fillStyle="blue",Z.fillRect(t-1.25*Rt,r-1.25*Rt,2.5*Rt,2.5*Rt)}}),ct(Z,Y,m,p),void 0!==t&&(Z.save(),Z.globalAlpha*=.5,[h,t]=y(t,r),Z.fillStyle="red",Z.fillRect(h-Rt,t-Rt,2*Rt,2*Rt),Z.restore()),T(Z,()=>{var t,r,e,i,o,a;Z.globalAlpha*=.25,Z.fillStyle="blue",void 0!==Y.ue&&void 0!==Y.qr&&(t=Math.min(Y.qr,Y.ue),r=Math.max(Y.qr,Y.ue),e=Math.min(Y.Wr,Y.Xe),i=Math.max(Y.Wr,Y.Xe),--t,r+=1,--e,i+=1,t-=N,r-=N,e-=yt,i-=yt,Z.fillRect(t,e,r-t,i-e));for([o,a]of Y.Me){var[n,s]=y(o,a);Z.fillRect(n-Rt,s-Rt,2*Rt,2*Rt)}})}),ft(Z,Y,p,m,R.yt.length),Z.save();try{Z.strokeStyle="black",Z.translate(Math.floor(Z.canvas.width/2),0);for(let n=0;n0==)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(=t.Gr(r).zr.size);0r.has(t))}}function Xt(r){let e=[1,0],i=[0,1];var o=(t,r)=>[t-r,t+r];r=(r%8+8)%8;for(let t=0;t[e[0]*t+i[0]*r,e[1]*t+i[1]*r]}function Mt(){try{return window.self===window.top}catch(t){}}class Zt{constructor(){this.Ye=!1,this.Re=void 0}ye(){this.Re={me:!0}}pe(t){this.Re=t}Ie(){this.Re=void 0}be(t,r){if(!r.startsWith("#"))CRUMBLE_PART"); - result.append(R"CRUMBLE_PART()throw new Error('"Expected a hash URL: '+{_e:t,Ee:r});if(Mt()&&this.Re!==t)if(this.Ye)document.location.hash=r;else try{void 0===this.Re?history.replaceState(t,"",r):(history.pushState(t,"",r),this.Re=void 0)}catch(t){console.warn("Calling 'history.replaceState/pushState' failed. Falling back to setting location.hash.",t),this.Ye=!0,document.location.hash=r}}}function Yt(t){return"#circuit="+(t=-1===(t=t.replaceAll("QUBIT_COORDS","Q").replaceAll("DETECTOR","DT").replaceAll("OBSERVABLE_INCLUDE","OI").replaceAll(", ",",").replaceAll(") ",")").replaceAll(" ","_").replaceAll("\n",";")).indexOf("%")&&-1===t.indexOf("&")?t:encodeURIComponent(t))}let r=document.getElementById("toolbox"),M=10.5,R=["H","S","R","M","MR","C","W","SC","MC","P","1-9"],bt=[1,2,2,2,2,1,2,2,2,-1,-1,-1];let _t=function(){var r=new Map([["0,0",B.get("H_YZ")],["0,1",B.get("H")],["0,2",B.get("H_XY")],["1,0",B.get("SQRT_X")],["1,1",B.get("SQRT_Y")],["1,2",B.get("S")],["2,0",B.get("RX")],["2,1",B.get("RY")],["2,2",B.get("R")],["3,0",B.get("MX")],)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(["3,1",B.get("MY")],["3,2",B.get("M")],["4,0",B.get("MRX")],["4,1",B.get("MRY")],["4,2",B.get("MRZ")],["5,0",B.get("CX")],["5,1",B.get("CY")],["5,2",B.get("CZ")],["6,0",B.get("CXSWAP")],["6,1",B.get("SWAP")],["6,2",B.get("CZSWAP")],["7,0",B.get("SQRT_XX")],["7,1",B.get("SQRT_YY")],["7,2",B.get("SQRT_ZZ")],["8,0",B.get("MXX")],["8,1",B.get("MYY")],["8,2",B.get("MZZ")]]);let e=9;for(let t=0;t<4;t++)r.set(e+",0",B.get("MARKX").M(t)),r.set(e+",1",B.get("MARKY").M(t)),r.set(e+",2",B.get("MARKZ").M(t)),r.set(e+",-1",B.get("MARK").M(t)),e+=1;return r}();function Et(t){var r,e=function(t){var r,e;if(!t.ctrlKey)return r=+t.zt.has("x"),e=+t.zt.has("y"),t=+t.zt.has("z"),r&&!e&&!t||!r&&e&&t?{Ae:0,strength:Math.max(r,Math.min(e,t))}:!r&&e&&!t||r&&!e&&t?{Ae:1,strength:Math.max(e,Math.min(r,t))}:!r&&!e&&t||r&&e&&!t?{Ae:2,strength:Math.max(t,Math.min(r,e))}:void 0}(t),t=function(i){if(!i.ctrlKey){let e=void 0;for(let r=0;r=e.strength)&&(e={ke:r,strength:t/R[r].length})}return e}}(t);let i=e,o=(void 0!==t&&void 0===e&&(r=bt[t.ke],i=void 0===r?void 0:{strength:0,Ae:r}),void 0);return void 0!==i&&void 0!==t&&(r=t.ke+","+i.Ae,_t.has(r))&&(o=_t.get(r)),{ge:e,Ce:i,Se:t,Pe:o}}const e=-P+Math.floor(P/4)+.5,o=-P+Math.floor(P/4)+.5;var t=document.getElementById("btnInsertLayer"),At=document.getElementById("btnDeleteLayer"),kt=document.getElementById("btnUndo"),gt=document.getElementById("btnRedo"),Ct=document.getElementById("btnClearMarkers");const St=document.getElementById("btnShowHideImportExport");var Pt=document.getElementById("btnNextLayer"),Ot=document.getElementById("btnPrevLayer"),Tt=document.getElementById("btnRotate45"),Nt=document.getElementById("btnRotate45Counter"),v=document.getElementById("btnExport"),Dt=document.getElementById("btnImport"),xt=document.getElementById("clear");const y=document.getElementById("txtStimCircuit");var Lt=document.getElementById("btnTimelineFocus"),Ft=document.getElementById("btnCle)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(arTimelineFocus"),Ut=document.getElementById("btnClearSelectedMarkers");const Gt=document.getElementById("btnShowExamples"),Ht=document.getElementById("examples-div");y.addEventListener("keyup",t=>t.stopPropagation()),y.addEventListener("keydown",t=>t.stopPropagation());let m=new class{constructor(t){this.rev=lt.Cr(""),this.canvas=t,this.Wr=void 0,this.qr=void 0,this.Oe=new at,this.Ur=0,this.we=new Map,this.de=new Map,this.ue=void 0,this.Xe=void 0,this.Te=new ht(this.Ne(void 0))}De(t){var r,e,i,o=this.xe(),a=o.yt[this.Ur],n=new Set,s=new Map;for(r of[["CX","reverse"],["CY","reverse"],["XCY","reverse"],["CXSWAP","reverse"],["XCZ","reverse"],["XCY","reverse"],["YCX","reverse"],["SWAPCX","reverse"],["RX","MX"],["R","M"],["RY","MY"]])s.set(r[0],r[1]),s.set(r[1],r[0]);for(e of this.we.keys()){var h=a.et.get(o.Ut().get(e));void 0!==h&&s.has(h.Z.name)&&n.add(h.R[0])}for(i of n){var l=a.et.get(i),f=s.get(l.Z.name);"reverse"===f?a.et.get(i).R.reverse():l.Z=B.get(f)}this.Le(o,t)}Fe(t){var r=this.xe();let e=this.Ur;for()CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(;e"MARKX"!==t.Z.name&&"MARKY"!==t.Z.name&&"MARKZ"!==t.Z.name);this.commit(r)}$e(i){var t=this.qr,r=this.Wr,o=this.ue,a=this.Xe,n=[];if(void 0!==t&&void 0!==o){var[s,h]=vt(o,a),l=Math.min(t,o),f=Math.max(t,o),v=Math.min(r,a),c=Math.max(r,a),t=P/4-Rt;l+=t,f-=t,v+=t,c-=t,l=Math.floor(2*l/P+.5)/2,f=Math.floor(2*f/P+.5)/2,v=Math.floor(2*v/P+.5)/2,c=Math.floor(2*c/P+.5)/2;let e=1;l!=f&&v!=c||(e=2);for(let r=l;r<=f;r+=.5)for(let t=v;t<=c;t+=.5)r%1!=t%1||i&&(s%e!=r%e||h%e!=t%e)||n.push([r,t])}return n}We(o,t,r){let e=this.xe();e=e.kt(o),!t&&r&&(this.de=(r=t=>{var r,e,i=new Map;for([r,e]of t.values())[r,e]=o(r,e),i.set(r+","+e,[r,e]);return i})(this.de),this.we=r(this.we)),this.Le(e,t)}Ve(t,r){let e=Xt(t),i=this.xe().kt(e).gt();this.We((t,r)=>([t,r]=e(t,r),i(t,r)),r,!0)}je(t){this.Ur=Math.max(t,0),this.Ge()}Je(t,r,e){r||e||this.we.clear();for(var[i,o]of t){var a=i+","+o;e&&this.we.has(a)?this.we.delete(a):this.we.set(a,[i,o])}this.Ge()}ti(t){var r,e=new Map,i=this.xe().yt[this.Ur];for(r of[...t]){var o=i.et.get(r);if(v)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(oid 0!==o)if("RX"===o.Z.name||"MX"===o.Z.name||"MRX"===o.Z.name)e.set(r,"X");else if("RY"===o.Z.name||"MY"===o.Z.name||"MRY"===o.Z.name)e.set(r,"Y");else if("R"===o.Z.name||"M"===o.Z.name||"MR"===o.Z.name)e.set(r,"Z");else if("MXX"===o.Z.name||"MYY"===o.Z.name||"MZZ"===o.Z.name){var a,n=o.Z.name[1];for(a of o.R)e.set(a,n)}else if(o.Z.name.startsWith("MPP:")&&void 0===o.Z.h&&o.R.length===o.Z.name.length-4){var s=o.Z.name.substring(4);for(let t=0;t{var[t,e]=t,[r,i]=r;return Math.atan2(e-a,t-o)-Math.atan2(i-a,r-o)});var s=this.xe().Ft(this.we.values()),h=s.Ut(),l=new Uint)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(32Array(this.we.size);for(let t=0;t!t.Z.name.startsWith("MARK")||t.Y[0]!==r)}this.Le(i,t)}fi(t,i){var r,e=this.xe(),o=O.le(e,i),a=this.Ur,n=0===a?new Y(new Map)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(,new Set,[]):o.Gr(a-.5),s=o.Gr(a+.5),h=e.yt[a],l=new Set;for(r of new Set([...n.Hr.keys(),...s.Hr.keys()]))if(!l.has(r)){var f=n.Hr.get(r),v=s.Hr.get(r),c=h.et.get(r);if(void 0!==c){var d=c.Z.name;let e=void 0;if("R"===d||"M"===d||"MR"===d)e="Z";else if("RX"===d||"MX"===d||"MRX"===d)e="X";else{if("RY"!==d&&"MY"!==d&&"MRY"!==d){if("MXX"===d||"MYY"===d||"MZZ"===d){e=d[1];let t=0;for(var w of c.R){if(l.has(w)){t=-1;break}t+=n.Hr.get(w)===e}if(2===t)for(var u of c.R)l.add(u),h.it.push(new F(B.get("MARK"+e),"",new Float32Array([i]),new Uint32Array([u])));continue}if(d.startsWith("MPP:")){let r=0;for(let t=0;tc.R.length/2)for(let t=0;t{var t,r,{Nt:e,Dt:i}=n.Pt(!1);for(let t=0;tt.Z.name!=)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(=e.Z.name||t.Y[0]!==e.Y[0])}this.Le(a,t)}}}(document.getElementById("cvn"));function zt(){var t=m.xe().xt().replaceAll("\nPOLYGON","\n#!pragma POLYGON").replaceAll("\nERR","\n#!pragma ERR").replaceAll("\nMARK","\n#!pragma MARK"),r=y;r.value=t+"\n",r.focus(),r.select()}v.addEventListener("click",t=>{zt()}),Dt.addEventListener("click",t=>{var r=y.value,r=u.It(r);m.commit(r)}),St.addEventListener("click",t=>{var r=document.getElementById("divImportExport");"none"===r.style.display?(r.style.display="block",St.textContent="Hide Import/Export",zt()):(r.style.display="none",St.textContent="Show Import/Export",y.value=""),setTimeout(()=>{window.scrollTo(0,0)},0)}),xt.addEventListener("click",t=>{m.Be()}),kt.addEventListener("click",t=>{m.Nr()}),Lt.addEventListener("click",t=>{m.de=new Map(m.we.entries()),m.Ge()}),Ut.addEventListener("click",t=>{m.ei(!1),m.Ge()}),Gt.addEventListener("click",t=>{"none"===Ht.style.display?(Ht.style.display="block",Gt.textContent="Hide Example Circuits"):(Ht.style.display="none",Gt.textC)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(ontent="Show Example Circuits")}),Ft.addEventListener("click",t=>{m.de=new Map,m.Ge()}),gt.addEventListener("click",t=>{m.Dr()}),Ct.addEventListener("click",t=>{m.qe()}),Tt.addEventListener("click",t=>{m.Ve(1,!1)}),Nt.addEventListener("click",t=>{m.Ve(-1,!1)}),t.addEventListener("click",t=>{m.Ke(!1)}),At.addEventListener("click",t=>{m.ze(!1)}),Pt.addEventListener("click",t=>{m.je(m.Ur+1)}),Ot.addEventListener("click",t=>{m.je(m.Ur-1)}),window.addEventListener("resize",t=>{m.canvas.width=m.canvas.scrollWidth,m.canvas.height=m.canvas.scrollHeight,m.Ge()}),m.canvas.addEventListener("mousemove",t=>{m.qr=t.offsetX+e,m.Wr=t.offsetY+o;var r=m.canvas.width/2;Kt&&1===t.buttons?m.je(Math.floor((t.offsetX-r)/8)):m.Ge()});let Kt=!1;m.canvas.addEventListener("mousedown",t=>{m.qr=t.offsetX+e,m.Wr=t.offsetY+o,m.ue=t.offsetX+e,m.Xe=t.offsetY+o;var r=m.canvas.width/2;(Kt=t.offsetY<20&&t.offsetX>r&&1===t.buttons)?m.je(Math.floor((t.offsetX-r)/8)):m.Ge()}),m.canvas.addEventListener("mouseup",t=>{var r=m.$e(t.altKey);m.ue=void 0)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(,m.Xe=void 0,m.qr=t.offsetX+e,m.Wr=t.offsetY+o,m.Je(r,t.shiftKey,t.ctrlKey),1===t.buttons&&(Kt=!1)});let Qt=void 0;async function $t(){let e=m.xe();e.yt=[e.yt[m.Ur]],0{var r=e.Rt[2*t],t=e.Rt[2*t+1];return m.we.has(r+","+t)}),[r,t]=D(m.we.values()),e=e.St(-r,-t));var t,r=e.xt();Qt=r;try{await navigator.clipboard.writeText(r)}catch(t){console.warn("Failed to write to clipboard. Using fallback emulated clipboard.",t)}}async function Bt(e){let i;try{i=await navigator.clipboard.readText()}catch(t){console.warn("Failed to read from clipboard. Using fallback emulated clipboard.",t),i=Qt}if(void 0!==i){let r=u.It(i);if(1!==r.yt.length)throw new Error(i);let t=m.xe();0m.Ve(-1,t)),o.set("t",t=>m.Ve(1,t)),o.set("escape",()=>m.Ue()),o.set("delete",t=>m.He(t)),o.set("backspace",t=>m.He(t)),o.set("ctrl+delete",t=>m.ze(t)),o.set("ctrl+insert",t=>m.Ke(t)),o.set("ctrl+backspace",t=>m.ze(t)),o.set("ctrl+z",t=>{t||m.Nr()}),o.set("ctrl+y",t=>{t||m.Dr()}),o.set("ctrl+shift+z",t=>{t||m.Dr()}),o.set("ctrl+c",async t=>{await $t()}),o.set("ctrl+v",Bt),o.set("ctrl+x",async t=>{var r;await $t(),0===m.we.size?((r=m.xe()).yt[m.Ur].et.clear(),r.yt[m.Ur].it.length=0,m.Le(r,t)):m.He(t)}),o.set("l",t=>{t||(m.de=new Map(m.we.entries()),m.Ge())}),o.set(" ",t=>m.ei(t));for(let[t,r]of[["1",0],["2",1],["3",2],["4",3],["5",4],["6",5],["7",6],["8",7],["9",8],["0",9],["-",10],["=",11],["\\",12],["`",13]])o.set(""+t,t=>m.ri(t,r)),o.set(t+"+x",t=>m.ni(t,B.get("MARKX").M(r))),o.set(t+"+y",t=>m.ni(t,B.get("MARKY").M(r))),o.set(t+"+z",t=>m.ni(t,B.get("MARKZ").M(r))),o.set(t+"+d",t=>m.li(t,r)),o.se)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(t(t+"+o",t=>m.si(t,r)),o.set(t+"+j",t=>m.vi(t,r)),o.set(t+"+k",t=>m.fi(t,r));let r=.25;function a(t,r,e=void 0){for(var i of t){if(o.has(i))throw new Error("Chord collision: "+i);o.set(i,t=>m.ni(t,B.get(r)))}void 0!==e&&a(t.map(t=>"shift+"+t),e)}return o.set("p",t=>m.ni(t,B.get("POLYGON"),[1,0,0,r])),o.set("alt+p",t=>m.ni(t,B.get("POLYGON"),[0,1,0,r])),o.set("shift+p",t=>m.ni(t,B.get("POLYGON"),[0,0,1,r])),o.set("p+x",t=>m.ni(t,B.get("POLYGON"),[1,0,0,r])),o.set("p+y",t=>m.ni(t,B.get("POLYGON"),[0,1,0,r])),o.set("p+z",t=>m.ni(t,B.get("POLYGON"),[0,0,1,r])),o.set("p+x+y",t=>m.ni(t,B.get("POLYGON"),[1,1,0,r])),o.set("p+x+z",t=>m.ni(t,B.get("POLYGON"),[1,0,1,r])),o.set("p+y+z",t=>m.ni(t,B.get("POLYGON"),[0,1,1,r])),o.set("p+x+y+z",t=>m.ni(t,B.get("POLYGON"),[1,1,1,r])),o.set("m+p+x",t=>m.ni(t,f("X".repeat(m.we.size)),[])),o.set("m+p+y",t=>m.ni(t,f("Y".repeat(m.we.size)),[])),o.set("m+p+z",t=>m.ni(t,f("Z".repeat(m.we.size)),[])),o.set("f",t=>m.De(t)),o.set("g",t=>m.Fe(t)),o.set("shift+>",t=>m.We((t,r)=>[t+1,r],t,)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(!1)),o.set("shift+<",t=>m.We((t,r)=>[t-1,r],t,!1)),o.set("shift+v",t=>m.We((t,r)=>[t,r+1],t,!1)),o.set("shift+^",t=>m.We((t,r)=>[t,r-1],t,!1)),o.set(">",t=>m.We((t,r)=>[t+1,r],t,!1)),o.set("<",t=>m.We((t,r)=>[t-1,r],t,!1)),o.set("v",t=>m.We((t,r)=>[t,r+1],t,!1)),o.set("^",t=>m.We((t,r)=>[t,r-1],t,!1)),o.set(".",t=>m.We((t,r)=>[t+.5,r+.5],t,!1)),a(["h","h+y","h+x+z"],"H","H"),a(["h+z","h+x+y"],"H_XY","H_XY"),a(["h+x","h+y+z"],"H_YZ","H_YZ"),a(["s+x","s+y+z"],"SQRT_X","SQRT_X_DAG"),a(["s+y","s+x+z"],"SQRT_Y","SQRT_Y_DAG"),a(["s","s+z","s+x+y"],"S","S_DAG"),a(["r+x","r+y+z"],"RX"),a(["r+y","r+x+z"],"RY"),a(["r","r+z","r+x+y"],"R"),a(["m+x","m+y+z"],"MX"),a(["m+y","m+x+z"],"MY"),a(["m","m+z","m+x+y"],"M"),a(["m+r+x","m+r+y+z"],"MRX"),a(["m+r+y","m+r+x+z"],"MRY"),a(["m+r","m+r+z","m+r+x+y"],"MR"),a(["c"],"CX","CX"),a(["c+x"],"CX","CX"),a(["c+y"],"CY","CY"),a(["c+z"],"CZ","CZ"),a(["j+x"],"X","X"),a(["j+y"],"Y","Y"),a(["j+z"],"Z","Z"),a(["c+x+y"],"XCY","XCY"),a(["alt+c+x"],"XCX","XCX"),a(["alt+c+y"],"YCY","YCY"),a([)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART("w"],"SWAP","SWAP"),a(["w+x"],"CXSWAP",void 0),a(["c+w+x"],"CXSWAP",void 0),a(["i+w"],"ISWAP","ISWAP_DAG"),a(["w+z"],"CZSWAP",void 0),a(["c+w+z"],"CZSWAP",void 0),a(["c+w"],"CZSWAP",void 0),a(["c+t"],"C_XYZ","C_ZYX"),a(["c+s+x"],"SQRT_XX","SQRT_XX_DAG"),a(["c+s+y"],"SQRT_YY","SQRT_YY_DAG"),a(["c+s+z"],"SQRT_ZZ","SQRT_ZZ_DAG"),a(["c+s"],"SQRT_ZZ","SQRT_ZZ_DAG"),a(["c+m+x"],"MXX","MXX"),a(["c+m+y"],"MYY","MYY"),a(["c+m+z"],"MZZ","MZZ"),a(["c+m"],"MZZ","MZZ"),o}();function Wt(r){if(m.Oe.jt(r),"keydown"===r.type){if("q"===r.key.toLowerCase())return e=r.shiftKey?5:1,void m.je(m.Ur-e);if("e"===r.key.toLowerCase())return e=r.shiftKey?5:1,void m.je(m.Ur+e);if("Home"===r.key)return m.je(0),void r.preventDefault();if("End"===r.key)return m.je(m.xe().yt.length-1),void r.preventDefault()}var t=m.Oe.Bt;if(0!==t.length){for(var e=t[t.length-1];0{m.Te.set(m.Ne(void 0));var t=m.Oe.qt(!1),a=(r.width=r.scrollWidth,r.height=r.scrollHeight,r.getContext("2d"));a.clearRect(0,0,r.width,r.height),a.textAlign="right",a.textBaseline="middle",a.fillText("X",7.5,24.5),a.fillText("Y",7.5,56.5),a.fillText("Z",7.5,88.5),a.textAlign="center",a.textBaseline="bottom";for(let t=0;t{try{var t,r=(()=>{var t=document.location.hash.substring(1),r=new Map;if(""!==t)for(var e of t.split("&")){var i,o=e.indexOf("=");-1!==o&&(i=e.substring(0,o),e=decodeURIComponent(e.substring(o+1)),r.set(i,)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(e))}return r})(),e=(r.has("circuit")||("[[[DEFAULT-CIRCUIT-CONTENT-LITERAL]]]"===(t=document.getElementById("txtDefaultCircuit")).value.replaceAll("_","-")?r.set("circuit",""):r.set("circuit",t.value)),u.It(r.get("circuit"))),i=e.xt();Vt.clear(i),e.yt.every(t=>t.ut())&&1===r.size&&i===r.get("circuit")?p.Ie():p.be(i,Yt(i))}catch(t){throw new Error(t)}},window.addEventListener("popstate",v),v(),Vt.kr().Yr().Zr(1).subscribe(t=>{p.be(t,Yt(t))})}m.Te.mr().subscribe(t=>requestAnimationFrame(()=>wt(m.canvas.getContext("2d"),t))),window.addEventListener("focus",()=>{m.Oe.Vt()}),window.addEventListener("blur",()=>{m.Oe.Vt()});for(let r of document.getElementById("examples-div").querySelectorAll("a"))r.onclick=t=>{if(!(t.shiftKey||t.ctrlKey||t.altKey||0!==t.button))return t=r.href.split("#circuit=")[1],m.rev.commit(t),!1}; + result.append(R"CRUMBLE_PART(>{r||(r=!0,this.Rr.splice(this.Rr.indexOf(t),1))}})}mr(){return this.yr}send(t){for(var r of this.Rr)r(t)}}class ht{constructor(t=void 0){this.pr=t,this.Ir=new st,this.yr=new i(t=>(t(this.pr),this.Ir.mr().subscribe(t)))}mr(){return this.yr}set(t){this.pr=t,this.Ir.send(t)}get(){return this.pr}}class lt{constructor(t,r,e){if(r<0||r>=t.length)throw new Error("Bad index: "+{history:t,index:r,br:e});if(!Array.isArray(t))throw new Error("Bad history: "+{history:t,index:r,br:e});this.history=t,this.index=r,this.br=e,this._r=new st,this.Ar=new ht(this.history[this.index])}Er(){return this._r.mr()}kr(){return this.Ar.mr()}gr(){return this.Ar.get()}static Cr(t){return new lt([t],0,!1)}Sr(){return 0===this.index&&!this.br}Pr(){return this.index===this.history.length-1}clear(t){this.history=[t],this.index=0,this.br=!1,this.Ar.set(t),this._r.send(t)}Or(t){this.br=t!==this.history[this.index],this._r.send(void 0)}Tr(){this.br=!1;var t=this.history[this.index];return this.Ar.set(t),this._r.send(t),t}commit(t){t===this.hist)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(ory[this.index]?this.Tr():(this.br=!1,this.index+=1,this.history.splice(this.index,this.history.length-this.index),this.history.push(t),this.Ar.set(t),this._r.send(t))}Nr(){if(!this.br){if(0===this.index)return;--this.index}this.br=!1;var t=this.history[this.index];return this.Ar.set(t),this._r.send(t),t}Dr(){var t;if(this.index+1!==this.history.length)return this.index+=1,this.br=!1,t=this.history[this.index],this.Ar.set(t),this._r.send(t),t}toString(){return"Revision("+G({index:this.index,count:this.history.length,Lr:this.br,head:this.history[this.index]})+")"}Gt(t){return t instanceof lt&&this.index===t.index&&this.br===t.br&&w(this.history,t.history)}}let It=32;function ft(t,e,N,o,D){var x,r=Math.floor(t.canvas.clientWidth/2),i=e.Fr();i.sort((t,r)=>{var[t,e]=o(t),[r,i]=o(r);return e!==i?e-i:t-r});let a=new Map,L=void 0,n=0,s=0,h=0,l=0;for(x of i){var[F,f]=o(x);s+=It,L!==f?(L=f,n=1.5*r,h=Math.max(h,l),l=0,s+=.25*It):(n+=.25*Rt,l++),a.set(F+","+f,[Math.round(n)+.5,Math.round(s)+.5])}let v=It+Math.ceil(Rt*h*)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(.25);var c=Math.floor(t.canvas.clientWidth/4/v);let U=e.Ur-c+1,d=Math.max(0,Math.min(U,D-2*c+1));var w=Math.min(d+2*c+2,D);let G=t=>{t-=e.Ur;return(t-=d-U)*v},u=(t,r)=>{var[t,e]=o(t);return[t,e,r]=[[t,e,r]][0],t=t+","+e,a.has(t)?([e,t]=a.get(t),[e+G(r),t]):[void 0,void 0]};t.save();try{t.clearRect(r,0,r,t.canvas.clientHeight);var H,z,K=new Map;for([H,z]of N.entries()){A=_=b=et=rt=tt=J=I=P=S=j=V=W=C=p=m=q=g=k=B=E=y=R=$=Q=Y=Z=M=X=void 0;var X=t,M=u,Z=z,Y=H,Q=d,$=w,R=v,y=K;for(let o=Q-1;o<=$;o++){y.has(o)||y.set(o,new Map);var m,p,I,b,_,A,E=y.get(o),B=Z.Gr(o+.5),k=Z.Gr(o);for([m,p]of B.Hr.entries()){let{dx:t,dy:r,_:e,A:i}=pt(Y,m,E);0<=Y&&Y<4?(t=0,e=R,i=5,0===Y?r=10:1===Y?r=5:2===Y?r=0:3===Y&&(r=-5)):t-=R/2;var[g,q]=M(m,o);if(void 0!==g&&void 0!==q){if("X"===p)X.fillStyle="red";else if("Y"===p)X.fillStyle="green";else{if("Z"!==p)throw new Error("Not a pauli: "+p);X.fillStyle="blue"}X.fillRect(g-t,q-r,e,i)}}for(I of k.zr){var{dx:C,dy:W,_:V,A:j}=pt(Y,I,E),[S,P]=(C-=R/2,M(I,o-.5));void 0!==S&&void 0!==P&&(X.strokeSt)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(yle="magenta",X.lineWidth=8,X.strokeRect(S-C,P-W,V,j),X.lineWidth=1,X.fillStyle="black",X.fillRect(S-C,P-W,V,j))}for({Kr:b,Qr:_,color:A}of k.$r){var[J,tt]=M(b,o),[rt,et]=M(_,o);"X"===A?X.strokeStyle="red":"Y"===A?X.strokeStyle="green":"Z"===A?X.strokeStyle="blue":X.strokeStyle="purple",X.lineWidth=8,mt(X,J,tt,rt,et),X.lineWidth=1}}}t.globalAlpha*=.5,t.fillStyle="black";var it,O,ot,at=G(e.Ur)+1.5*r-v/2;t.fillRect(at,0,v,t.canvas.clientHeight),t.globalAlpha*=2,t.strokeStyle="black",t.fillStyle="black";for(it of i){var[nt,st]=u(it,d-1),[ht,lt]=u(it,w+1);t.beginPath(),t.moveTo(nt,st),t.lineTo(ht,lt),t.stroke()}t.textAlign="right",t.textBaseline="middle";for(O of i){var[ft,vt]=u(O,d-1),ct=e.Br.Rt[2*O],dt=e.Br.Rt[2*O+1];t.fillText(ct+`,${dt}:`,ft,vt)}for(let r=d;r<=w;r++){var wt=t=>u(t,r),ut=e.Br.yt[r];if(void 0!==ut)for(var Xt of ut.nt())Xt.I(wt,t)}t.globalAlpha=.5;for(ot of i){var[Mt,T]=u(ot,d-1),[Zt,Yt]=o(ot);e.qr>t.canvas.clientWidth/2&&e.Wr>=T+yt-.55*It&&e.Wr<=T+.55*It+yt&&(t.beginPath(),t.moveTo(Mt,T),t.lineT)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(o(Zt,Yt),t.stroke(),t.fillStyle="black",t.fillRect(Zt-20,Yt-20,40,40),t.fillRect(t.canvas.clientWidth/2,T-It/3,t.canvas.clientWidth/2,2*It/3))}}finally{t.restore()}}class Z{constructor(t,r){if(32 32");this.t=r,this.Vr=t,this.jr=new Uint32Array(r),this.Jr=new Uint32Array(r),this.flags=new Uint32Array(r)}st(){var r=new Z(this.Vr,this.t);for(let t=0;t>=1,r>>=1,e>>=1,i>>=1}return s}static re(e){var t=e.length;if(0===t)throw new Error("strings.length === 0");var r,i=e[0].length;for(r of e)if(r.length!==i)throw new Error("Inconsistent string length.");var o=new Z(t,i);for)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART((let r=0;r>e&1,o=this.jr[t]>>e&1,a=this.Jr[t]>>e&1;r+="_XZY!%$&"[o+2*a+4*i]}t.push(r)}return t}static ie(e,i){var o=new Z(e.length,i.length);for(let r=0;rt-r),["PropagatedPauliFrames {"]);for(t of r)e.push(` ${t}: `+this.he.get(t));return e.push("}"),e.join("\n")}Gr(t){let r=this.he.get(t);return r=void 0===r?new Y(new Map,new Set,[]):r}static le(r,e){var i=new T(new Map);let o=new Map;for(let t=0;tt[1]-r[1]);for(let r=t.yt.length-1;-1<=r;r--){var s,h=0<=r?t.yt[r]:new U,l=[...h.et.keys()];l.reverse();for(s of l){var f=h.et.get(s);if(f.R[0]===s){o.ae(f.Z,[...f.R]);for(let t=f.m();0"X"===t[0])?c.fillStyle="red":Y.every(t=>"Y"===t[0])?c.fillStyle="green":Y.every(t=>"Z"===t[0])?c.fillStyle="blue":c.fillStyle="black",c.strokeStyle=c.fillStyle;var R,y,Z=Y.map(t=>t[1]);let n=0,s=0;for([R,y]of Z)n+=R,s+=y;n/=Z.length,s/=Z.length,Z.sort((t,r)=>{var[t,e]=t,[r,i]=r;let o=Math.atan2(e-s,t-n),a=Math.atan2(i-s,r-n);return t===n&&e===s&&(o=-100),r===n&&i===s&&(a=-100),o-a}),S(c,Z),c.globalAlpha*=.25,c.fill(),c.globalAlpha*=4,c.lineWidth=2,c.stroke(),c.lineWidth=1}for([l,[f,v]]of Y){var{dx:m,dy:p,_:I,A:b}=pt(X,f+":"+v,M);if("X"===l)c.fillStyle="red";else if("Y"===l)c.fillStyle="green";else{if("Z"!==l)throw new Error("Not a pauli: "+l);c.fillStyle="blue"}c.fillRect(f-m,v-p,I,b)}for(_ of Z=u.Gr(d.Ur).zr){var[_,A]=w(_),{dx:E,dy:k,_:g,A:C}=pt(X,_+":"+A,M);c.lineWidth=X<0?2:8,c.strokeStyle="mage)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(nta",c.strokeRect(_-E,A-k,g,C),c.lineWidth=1,c.fillStyle="black",c.fillRect(_-E,A-k,g,C)}}}let dt=!0;function N(t,r){t.save();try{dt&&r()}finally{t.restore()}}function wt(Z,Y){var t,r=window.devicePixelRatio||1;Z.save(),Z.scale(r,r);let R=Y.Br,e=0;for(t of R.yt)for(var i of t.it){var o=i.Z;"MARKX"!==o.name&&"MARKY"!==o.name&&"MARKZ"!==o.name||(e=Math.max(e,i.Y[0]+1))}let y=(t,r)=>[t*O-D,r*O-yt],m=t=>{var r=R.Rt[2*t],t=R.Rt[2*t+1];return y(r,t)},p=new Map;for(let t=0;t{Z.fillStyle="white",Z.clearRect(0,0,Z.canvas.clientWidth,Z.canvas.clientHeight);var[t,r]=vt(Y.qr,Y.Wr);let e=Y.Ur;for(l)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(et t=0;t<=Y.Ur;t++)for(var i of R.yt[t].it)if("POLYGON"===i.Z.name){e=t;break}var o,a,n,s,h=[...R.yt[e].it];h.sort((t,r)=>r.R.length-t.R.length);for(o of h)"POLYGON"===o.Z.name&&o.I(m,Z);N(Z,()=>{for(let t=0;t<100;t+=.5){var[r,,]=y(t,0),e=""+t;Z.fillStyle="black",Z.fillText(e,r-Z.measureText(e).width/2,15)}for(let t=0;t<100;t+=.5){var[,i]=y(0,t),o=""+t;Z.fillStyle="black",Z.fillText(o,18-Z.measureText(o).width,i)}Z.strokeStyle="black";for(let r=0;r<100;r+=.5){var[t,,]=y(r,0),a=""+r;Z.fillStyle="black",Z.fillText(a,t-Z.measureText(a).width/2,15);for(let t=r%1;t<100;t+=1){var[n,s]=y(r,t),h=(Z.fillStyle="white",!I.has(r+","+t)),l=!b.has(r+","+t);h&&(Z.globalAlpha*=.25),l&&(Z.globalAlpha*=.25),Z.fillRect(n-Rt,s-Rt,2*Rt,2*Rt),Z.strokeRect(n-Rt,s-Rt,2*Rt,2*Rt),h&&(Z.globalAlpha*=4),l&&(Z.globalAlpha*=4)}}});for([a,n]of p.entries()){u=w=d=M=X=c=v=f=l=void 0;var l=Z,f=Y,v=m,c=n;if(a,void 0!==(c=c.Gr(f.Ur).$r))for(var{Kr:d,Qr:w,color:u}of c){var[d,X]=v(d),[w,M]=v(w);"X"===u?l.strokeStyle="red":"Y"===u?l.strokeStyle="g)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(reen":"Z"===u?l.strokeStyle="blue":l.strokeStyle="purple",l.lineWidth=8,mt(l,d,X,w,M),l.lineWidth=1}}for(s of R.yt[Y.Ur].nt())"POLYGON"!==s.Z.name&&s.I(m,Z);N(Z,()=>{Z.globalAlpha*=.25;for(var[t,r]of Y.de.values()){var[t,r]=y(t,r);Z.fillStyle="yellow",Z.fillRect(t-1.25*Rt,r-1.25*Rt,2.5*Rt,2.5*Rt)}}),N(Z,()=>{Z.globalAlpha*=.5;for(var[t,r]of Y.we.values()){var[t,r]=y(t,r);Z.fillStyle="blue",Z.fillRect(t-1.25*Rt,r-1.25*Rt,2.5*Rt,2.5*Rt)}}),ct(Z,Y,m,p),void 0!==t&&(Z.save(),Z.globalAlpha*=.5,[h,t]=y(t,r),Z.fillStyle="red",Z.fillRect(h-Rt,t-Rt,2*Rt,2*Rt),Z.restore()),N(Z,()=>{var t,r,e,i,o,a;Z.globalAlpha*=.25,Z.fillStyle="blue",void 0!==Y.ue&&void 0!==Y.qr&&(t=Math.min(Y.qr,Y.ue),r=Math.max(Y.qr,Y.ue),e=Math.min(Y.Wr,Y.Xe),i=Math.max(Y.Wr,Y.Xe),--t,r+=1,--e,i+=1,t-=D,r-=D,e-=yt,i-=yt,Z.fillRect(t,e,r-t,i-e));for([o,a]of Y.Me){var[n,s]=y(o,a);Z.fillRect(n-Rt,s-Rt,2*Rt,2*Rt)}})}),ft(Z,Y,p,m,R.yt.length),Z.save();try{Z.strokeStyle="black",Z.translate(Math.floor(Z.canvas.clientWidth/2),0);for(let n=0;n0===t.Gr(r).zr.size);0r.has(t))}}function Xt(r){let e=[1,0],i=[0,1];var o=(t,r)=>[t-r,t+r];r=(r%8+8)%8;for(let t=0;t[e[0]*t+i[0]*r,e[1]*t+i[1]*r]}function Mt(){try{return window.self===window.top}catch(t){}}class Zt{co)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(nstructor(){this.Ye=!1,this.Re=void 0}ye(){this.Re={me:!0}}pe(t){this.Re=t}Ie(){this.Re=void 0}be(t,r){if(!r.startsWith("#"))throw new Error('"Expected a hash URL: '+{_e:t,Ae:r});if(Mt()&&this.Re!==t)if(this.Ye)document.location.hash=r;else try{void 0===this.Re?history.replaceState(t,"",r):(history.pushState(t,"",r),this.Re=void 0)}catch(t){console.warn("Calling 'history.replaceState/pushState' failed. Falling back to setting location.hash.",t),this.Ye=!0,document.location.hash=r}}}function Yt(t){return"#circuit="+(t=-1===(t=t.replaceAll("QUBIT_COORDS","Q").replaceAll("DETECTOR","DT").replaceAll("OBSERVABLE_INCLUDE","OI").replaceAll(", ",",").replaceAll(") ",")").replaceAll(" ","_").replaceAll("\n",";")).indexOf("%")&&-1===t.indexOf("&")?t:encodeURIComponent(t))}let o=document.getElementById("toolbox"),M=10.5,R=["H","S","R","M","MR","C","W","SC","MC","P","1-9"],bt=[1,2,2,2,2,1,2,2,2,-1,-1,-1];let _t=function(){var r=new Map([["0,0",B.get("H_YZ")],["0,1",B.get("H")],["0,2",B.get("H_XY")],["1,0",B.get("SQRT_X"))CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(],["1,1",B.get("SQRT_Y")],["1,2",B.get("S")],["2,0",B.get("RX")],["2,1",B.get("RY")],["2,2",B.get("R")],["3,0",B.get("MX")],["3,1",B.get("MY")],["3,2",B.get("M")],["4,0",B.get("MRX")],["4,1",B.get("MRY")],["4,2",B.get("MRZ")],["5,0",B.get("CX")],["5,1",B.get("CY")],["5,2",B.get("CZ")],["6,0",B.get("CXSWAP")],["6,1",B.get("SWAP")],["6,2",B.get("CZSWAP")],["7,0",B.get("SQRT_XX")],["7,1",B.get("SQRT_YY")],["7,2",B.get("SQRT_ZZ")],["8,0",B.get("MXX")],["8,1",B.get("MYY")],["8,2",B.get("MZZ")]]);let e=9;for(let t=0;t<4;t++)r.set(e+",0",B.get("MARKX").M(t)),r.set(e+",1",B.get("MARKY").M(t)),r.set(e+",2",B.get("MARKZ").M(t)),r.set(e+",-1",B.get("MARK").M(t)),e+=1;return r}();function At(t){var r,e=function(t){var r,e;if(!t.ctrlKey)return r=+t.zt.has("x"),e=+t.zt.has("y"),t=+t.zt.has("z"),r&&!e&&!t||!r&&e&&t?{Ee:0,strength:Math.max(r,Math.min(e,t))}:!r&&e&&!t||r&&!e&&t?{Ee:1,strength:Math.max(e,Math.min(r,t))}:!r&&!e&&t||r&&e&&!t?{Ee:2,strength:Math.max(t,Math.min(r,e))}:void 0}(t),t=function(i){if(!i.ctrlKey){let e=)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(void 0;for(let r=0;r=e.strength)&&(e={ke:r,strength:t/R[r].length})}return e}}(t);let i=e,o=(void 0!==t&&void 0===e&&(r=bt[t.ke],i=void 0===r?void 0:{strength:0,Ee:r}),void 0);return void 0!==i&&void 0!==t&&(r=t.ke+","+i.Ee,_t.has(r))&&(o=_t.get(r)),{ge:e,Ce:i,Se:t,Pe:o}}const e=-O+Math.floor(O/4)+.5,v=-O+Math.floor(O/4)+.5;var t=document.getElementById("btnInsertLayer"),Et=document.getElementById("btnDeleteLayer"),kt=document.getElementById("btnUndo"),gt=document.getElementById("btnRedo"),Ct=document.getElementById("btnClearMarkers");const St=document.getElementById("btnShowHideImportExport");var Pt=document.getElementById("btnNextLayer"),Ot=document.getElementById("btnPrevLayer"),Tt=document.getElementById("btnRotate45"),Nt=document.getElementById("btnRotate45Counter"),r=document.getElementById("btnExport"),Dt=document.getElementById("btnImport"),xt=document.getElementById("clear");const y=doc)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(ument.getElementById("txtStimCircuit");var Lt=document.getElementById("btnTimelineFocus"),Ft=document.getElementById("btnClearTimelineFocus"),Ut=document.getElementById("btnClearSelectedMarkers"),Gt=document.getElementById("btnShowExamples");const m=document.getElementById("examples-dialog");var Ht=document.getElementById("examples-close-button");y.addEventListener("keyup",t=>t.stopPropagation()),y.addEventListener("keydown",t=>t.stopPropagation());let p=new class{constructor(t){this.rev=lt.Cr(""),this.canvas=t,this.Wr=void 0,this.qr=void 0,this.Oe=new at,this.Ur=0,this.we=new Map,this.de=new Map,this.ue=void 0,this.Xe=void 0,this.Te=new ht(this.Ne(void 0))}De(t){var r,e,i,o=this.xe(),a=o.yt[this.Ur],n=new Set,s=new Map;for(r of[["CX","reverse"],["CY","reverse"],["XCY","reverse"],["CXSWAP","reverse"],["XCZ","reverse"],["XCY","reverse"],["YCX","reverse"],["SWAPCX","reverse"],["RX","MX"],["R","M"],["RY","MY"]])s.set(r[0],r[1]),s.set(r[1],r[0]);for(e of this.we.keys()){var h=a.et.get(o.Ut().get(e));void 0!==h&&s)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(.has(h.Z.name)&&n.add(h.R[0])}for(i of n){var l=a.et.get(i),f=s.get(l.Z.name);"reverse"===f?a.et.get(i).R.reverse():l.Z=B.get(f)}this.Le(o,t)}Fe(t){var r=this.xe();let e=this.Ur;for(;e"MARKX"!==t.Z.name&&"MARKY"!==t.Z.name&&"MARKZ"!==t.Z.name);this.commit(r)}$e(i){var t=this.qr,r=this.Wr,o=this.ue,a=this.Xe,n=[];if(void 0!==t&&void 0!==o){var[s,h]=vt(o,a),l=Math.min(t,o),f=Math.max(t,o),v=Math.min(r,a),c=Math.max(r,a),t=O/4-Rt;l+=t,f-=t,v+=t,c-=t,l=Math.floor(2*l/O+.5)/2,f=Math.floor(2*f/O+.5)/2,v=Math.floor(2*v/O+.5)/2,c=Math.floor(2*c/O+.5)/2;let e=1;l!=f&&v!=c||(e=2);for(let r=l;r<=f;r+=.5)for(let t=v;t<=c;t+=.5)r%1!=t%1||i&&(s%e!=r%e||h%e!=t%e)||n.push([r,t])}return n}We(o,t,r){let e=this.xe();e=e.kt(o),!t&&r&&(this.de=(r=t=>{var r,e,i=new Map;for([r,e]of t.values())[r,e]=o(r,e),i.set(r+","+e,[r,e]);return i})(this.de),this.we=r(this.we)),this.Le(e,t)}Ve(t,r){let e=Xt(t),i=this.xe().kt(e).gt();this.We((t,r)=>([t,r]=e(t,r),i(t,r)),r,!0)}je(t){this.Ur=Math.max(t,0),this.Ge()}Je(t,r,e){r||e||this.we.clear();f)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(or(var[i,o]of t){var a=i+","+o;e&&this.we.has(a)?this.we.delete(a):this.we.set(a,[i,o])}this.Ge()}ti(t){var r,e=new Map,i=this.xe().yt[this.Ur];for(r of[...t]){var o=i.et.get(r);if(void 0!==o)if("RX"===o.Z.name||"MX"===o.Z.name||"MRX"===o.Z.name)e.set(r,"X");else if("RY"===o.Z.name||"MY"===o.Z.name||"MRY"===o.Z.name)e.set(r,"Y");else if("R"===o.Z.name||"M"===o.Z.name||"MR"===o.Z.name)e.set(r,"Z");else if("MXX"===o.Z.name||"MYY"===o.Z.name||"MZZ"===o.Z.name){var a,n=o.Z.name[1];for(a of o.R)e.set(a,n)}else if(o.Z.name.startsWith("MPP:")&&void 0===o.Z.h&&o.R.length===o.Z.name.length-4){var s=o.Z.name.substring(4);for(let t=0;t{var[t,e]=t,[r,i]=r;return Math.atan2(e-a,t-o)-Math.atan2(i-a,r-o)});var s=this.xe().Ft(this.we.values()),h=s.Ut(),l=new Uint32Array(this.we.size);for(let t=0;t!t.Z.name.startsWith("MARK")||t.Y[0]!==r)}this.Le(i,t)}fi(t,i){var r,e=this.xe(),o=T.le(e,i),a=this.Ur,n=0===a?new Y(new Map,new Set,[]):o.Gr(a-.5),s=o.Gr(a+.5),h=e.yt[a],l=new Set;for(r of new Set([...n.Hr.keys(),...s.Hr.keys()]))if(!l.has(r)){var f=n.Hr.get(r),v=s.Hr.get(r),c=h.et.get(r);if(void 0!==c){var d=c.Z.name;let e=void 0;if("R"===d||"M"===d||"MR"===d)e="Z";else if("RX"===d||"MX"===d||"MRX"===d)e="X";else{if("RY"!==d&&"MY"!==d&&"MRY"!==d){if("MXX"===d||"MYY"===d||"MZZ"===d){e=d[1];let t=0;for(var w of c.R){if(l.has(w)){t=-1;break}t+=n.Hr.get(w)===e}if(2===t)for(var u of c.R)l.add(u),h.it.push(new F(B.get("MARK"+e),"",new Float32Array([i]),new Uint32Array([u])));continue}if(d.startsWith("MPP:")){let r=0;for(let t=0;tc.R.length/2)for(let t=0;t{var t,r,{Nt:e,Dt:i}=n.Pt(!1);for(let t=0;tt.Z.name!==e.Z.name||t.Y[0]!==e.Y[0])}this.Le(a,t)}}}(document.getElementById("cvn"));function zt(){var t=p.xe().xt().replaceAll("\nPOLYGON","\n#!pragma POLYGON").replaceAll("\nERR","\n#!pragma ERR").replaceAll("\nMARK","\n#!pragma MARK"),r=y;r.value=t+"\n",r.focus(),r.select()}r.addEventListener("click",t=>{zt()}),Dt.addEventListener("click",t=>{var r=y.value,r=u.It(r);p.commit(r)}),St.addEventListener("click",t=>{var r=document.getElementById("divImportExport");"none"===r.style.display?(r.style.display="block",St.textContent="Hide Import/Export",zt()):(r.style.display="none",St.textContent="Show Import/Export",y.value=""),setTimeout(()=>{window.scrollTo(0,0)},0)}),xt.addEventListener("click",t=>{p.Be()}),kt.addEventListener("click",t=>{p.Nr()}),Lt.addEventListener("click",t=>{p.de=new Map(p.we.entries()),p.Ge()}),Ut.addEventListener("clic)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(k",t=>{p.ei(!1),p.Ge()}),Gt.addEventListener("click",t=>{m.open?m.close():m.showModal()}),Ht.addEventListener("click",t=>{m.close()}),m.addEventListener("click",t=>{t.target===m&&m.close()}),Ft.addEventListener("click",t=>{p.de=new Map,p.Ge()}),gt.addEventListener("click",t=>{p.Dr()}),Ct.addEventListener("click",t=>{p.qe()}),Tt.addEventListener("click",t=>{p.Ve(1,!1)}),Nt.addEventListener("click",t=>{p.Ve(-1,!1)}),t.addEventListener("click",t=>{p.Ke(!1)}),Et.addEventListener("click",t=>{p.ze(!1)}),Pt.addEventListener("click",t=>{p.je(p.Ur+1)}),Ot.addEventListener("click",t=>{p.je(p.Ur-1)}),window.addEventListener("resize",t=>{var r=window.devicePixelRatio||1;p.canvas.width=p.canvas.scrollWidth*r,p.canvas.height=p.canvas.scrollHeight*r,p.Ge()}),p.canvas.addEventListener("mousemove",t=>{p.qr=t.offsetX+e,p.Wr=t.offsetY+v;var r=p.canvas.scrollWidth/2;Kt&&1===t.buttons?p.je(Math.floor((t.offsetX-r)/8)):p.Ge()});let Kt=!1;p.canvas.addEventListener("mousedown",t=>{p.qr=t.offsetX+e,p.Wr=t.offsetY+v,p.ue=t.offsetX+e,p)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(.Xe=t.offsetY+v;var r=p.canvas.scrollWidth/2;(Kt=t.offsetY<20&&t.offsetX>r&&1===t.buttons)?p.je(Math.floor((t.offsetX-r)/8)):p.Ge()}),p.canvas.addEventListener("mouseup",t=>{var r=p.$e(t.altKey);p.ue=void 0,p.Xe=void 0,p.qr=t.offsetX+e,p.Wr=t.offsetY+v,p.Je(r,t.shiftKey,t.ctrlKey),1===t.buttons&&(Kt=!1)});let Qt=void 0;async function $t(){let e=p.xe();e.yt=[e.yt[p.Ur]],0{var r=e.Rt[2*t],t=e.Rt[2*t+1];return p.we.has(r+","+t)}),[r,t]=P(p.we.values()),e=e.St(-r,-t));var t,r=e.xt();Qt=r;try{await navigator.clipboard.writeText(r)}catch(t){console.warn("Failed to write to clipboard. Using fallback emulated clipboard.",t)}}async function Bt(e){let i;try{i=await navigator.clipboard.readText()}catch(t){console.warn("Failed to read from clipboard. Using fallback emulated clipboard.",t),i=Qt}if(void 0!==i){let r=u.It(i);if(1!==r.yt.length)throw new Error(i);let t=p.xe();0p.Ve(-1,t)),o.set("t",t=>p.Ve(1,t)),o.set("escape",()=>p.Ue()),o.set("delete",t=>p.He(t)),o.set("backspace",t=>p.He(t)),o.set("ctrl+delete",t=>p.ze(t)),o.set("ctrl+insert",t=>p.Ke(t)),o.set("ctrl+backspace",t=>p.ze(t)),o.set("ctrl+z",t=>{t||p.Nr()}),o.set("ctrl+y",t=>{t||p.Dr()}),o.set("ctrl+shift+z",t=>{t||p.Dr()}),o.set("ctrl+c",async t=>{await $t()}),o.set("ctrl+v",Bt),o.set("ctrl+x",async t=>{var r;await $t(),0===p.we.size?((r=p.xe()).yt[p.Ur].et.clear(),r.yt[p.Ur].it.length=0,p.Le(r,t)):p.He(t)}),o.set("l",t=>{t||(p.de=new Map(p.we.entries()),p.Ge())}),o.set(" ",t=>p.ei(t));for(let[t,r]of[["1",0],["2",1],["3",2],["4",3],["5",4],["6",5],["7",6],["8",7],["9",8],["0",9],["-",10],["=",11],["\\")CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(,12],["`",13]])o.set(""+t,t=>p.ri(t,r)),o.set(t+"+x",t=>p.ni(t,B.get("MARKX").M(r))),o.set(t+"+y",t=>p.ni(t,B.get("MARKY").M(r))),o.set(t+"+z",t=>p.ni(t,B.get("MARKZ").M(r))),o.set(t+"+d",t=>p.li(t,r)),o.set(t+"+o",t=>p.si(t,r)),o.set(t+"+j",t=>p.vi(t,r)),o.set(t+"+k",t=>p.fi(t,r));let r=.25;function a(t,r,e=void 0){for(var i of t){if(o.has(i))throw new Error("Chord collision: "+i);o.set(i,t=>p.ni(t,B.get(r)))}void 0!==e&&a(t.map(t=>"shift+"+t),e)}return o.set("p",t=>p.ni(t,B.get("POLYGON"),[1,0,0,r])),o.set("alt+p",t=>p.ni(t,B.get("POLYGON"),[0,1,0,r])),o.set("shift+p",t=>p.ni(t,B.get("POLYGON"),[0,0,1,r])),o.set("p+x",t=>p.ni(t,B.get("POLYGON"),[1,0,0,r])),o.set("p+y",t=>p.ni(t,B.get("POLYGON"),[0,1,0,r])),o.set("p+z",t=>p.ni(t,B.get("POLYGON"),[0,0,1,r])),o.set("p+x+y",t=>p.ni(t,B.get("POLYGON"),[1,1,0,r])),o.set("p+x+z",t=>p.ni(t,B.get("POLYGON"),[1,0,1,r])),o.set("p+y+z",t=>p.ni(t,B.get("POLYGON"),[0,1,1,r])),o.set("p+x+y+z",t=>p.ni(t,B.get("POLYGON"),[1,1,1,r])),o.set("m+p+x",t=>p.ni(t,f("X".repeat(p.we)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(.size)),[])),o.set("m+p+y",t=>p.ni(t,f("Y".repeat(p.we.size)),[])),o.set("m+p+z",t=>p.ni(t,f("Z".repeat(p.we.size)),[])),o.set("f",t=>p.De(t)),o.set("g",t=>p.Fe(t)),o.set("shift+>",t=>p.We((t,r)=>[t+1,r],t,!1)),o.set("shift+<",t=>p.We((t,r)=>[t-1,r],t,!1)),o.set("shift+v",t=>p.We((t,r)=>[t,r+1],t,!1)),o.set("shift+^",t=>p.We((t,r)=>[t,r-1],t,!1)),o.set(">",t=>p.We((t,r)=>[t+1,r],t,!1)),o.set("<",t=>p.We((t,r)=>[t-1,r],t,!1)),o.set("v",t=>p.We((t,r)=>[t,r+1],t,!1)),o.set("^",t=>p.We((t,r)=>[t,r-1],t,!1)),o.set(".",t=>p.We((t,r)=>[t+.5,r+.5],t,!1)),a(["h","h+y","h+x+z"],"H","H"),a(["h+z","h+x+y"],"H_XY","H_XY"),a(["h+x","h+y+z"],"H_YZ","H_YZ"),a(["s+x","s+y+z"],"SQRT_X","SQRT_X_DAG"),a(["s+y","s+x+z"],"SQRT_Y","SQRT_Y_DAG"),a(["s","s+z","s+x+y"],"S","S_DAG"),a(["r+x","r+y+z"],"RX"),a(["r+y","r+x+z"],"RY"),a(["r","r+z","r+x+y"],"R"),a(["m+x","m+y+z"],"MX"),a(["m+y","m+x+z"],"MY"),a(["m","m+z","m+x+y"],"M"),a(["m+r+x","m+r+y+z"],"MRX"),a(["m+r+y","m+r+x+z"],"MRY"),a(["m+r","m+r+z","m+r+x+y"],"MR"),a(["c"],"CX","C)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(X"),a(["c+x"],"CX","CX"),a(["c+y"],"CY","CY"),a(["c+z"],"CZ","CZ"),a(["j+x"],"X","X"),a(["j+y"],"Y","Y"),a(["j+z"],"Z","Z"),a(["c+x+y"],"XCY","XCY"),a(["alt+c+x"],"XCX","XCX"),a(["alt+c+y"],"YCY","YCY"),a(["w"],"SWAP","SWAP"),a(["w+x"],"CXSWAP",void 0),a(["c+w+x"],"CXSWAP",void 0),a(["i+w"],"ISWAP","ISWAP_DAG"),a(["w+z"],"CZSWAP",void 0),a(["c+w+z"],"CZSWAP",void 0),a(["c+w"],"CZSWAP",void 0),a(["c+t"],"C_XYZ","C_ZYX"),a(["c+s+x"],"SQRT_XX","SQRT_XX_DAG"),a(["c+s+y"],"SQRT_YY","SQRT_YY_DAG"),a(["c+s+z"],"SQRT_ZZ","SQRT_ZZ_DAG"),a(["c+s"],"SQRT_ZZ","SQRT_ZZ_DAG"),a(["c+m+x"],"MXX","MXX"),a(["c+m+y"],"MYY","MYY"),a(["c+m+z"],"MZZ","MZZ"),a(["c+m"],"MZZ","MZZ"),o}();function Wt(r){if(p.Oe.jt(r),"keydown"===r.type){if("q"===r.key.toLowerCase())return e=r.shiftKey?5:1,void p.je(p.Ur-e);if("e"===r.key.toLowerCase())return e=r.shiftKey?5:1,void p.je(p.Ur+e);if("Home"===r.key)return p.je(0),void r.preventDefault();if("End"===r.key)return p.je(p.xe().yt.length-1),void r.preventDefault()}var t=p.Oe.Bt;if(0!==t.length){)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(for(var e=t[t.length-1];0{p.Te.set(p.Ne(void 0));var t=p.Oe.qt(!1),r=window.devicePixelRatio||1,a=(o.width=o.scrollWidth*r,o.height=o.scrollHeight*r,o.getContext("2d"));a.save(),a.scale(r,r),a.clearRect(0,0,o.scrollWidth,o.scrollHeight),a.textAlign="right",a.textBaseline="middle",a.fillText("X",7.5,24.5),a.fillText("Y",7.5,56.5),a.fillText("Z",7.5,88.5),a.textAlign="center",a.textBaseline="bottom";for(let t=0;t{try{var t,r=(()=>{var t=document.location.hash.substring(1),r=new Map;if(""!==t)for(var e of t.split("&")){var i,o=e.indexOf("=");-1!==o&&(i=e.substring(0,o),e=decodeURIComponent(e.substring(o+1)),r.set(i,e))}return r})(),e=(r.has("circuit")||("[[[DEFAULT-CIRCUIT-CONTENT-LITERAL]]]"===(t=document.getElementById("txtDefaultCircuit")).value.replaceAll("_","-")?r.set("circuit",""):r.set("circuit",t.value)),u.It(r.get("circuit"))),i=e.xt();Vt.clear(i),e.yt.every(t=>t.ut())&&1===r.size&&i===r.get("circuit")?jt.Ie():jt.be(i,Yt(i))}catch(t){throw new Error(t)}},window.addEventListener("popstate",Dt),Dt(),Vt.kr().Yr().Zr(1).subscribe(t=>{jt.be(t,Yt(t))})}p.Te.mr().subscribe(t=>requestAnimationFrame(()=>wt(p.canvas.getContext("2d"),t))),window.addEventListener("focus",()=>{p.Oe.Vt()}),window.addEventListener("blur",()=>{p.Oe.Vt()});for(let r of document.getElementById("examples-div").querySelectorAll("a"))CRUMBLE_PART"); + result.append(R"CRUMBLE_PART()r.onclick=t=>{if(!(t.shiftKey||t.ctrlKey||t.altKey||0!==t.button))return t=r.href.split("#circuit=")[1],p.rev.commit(t),m.close(),!1}; )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); From ae5f4daf7603e8b73d70ae89f8c939b0b76c4772 Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Mon, 13 Apr 2026 23:36:30 +0300 Subject: [PATCH 6/9] Close dialog on escape --- glue/crumble/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glue/crumble/main.js b/glue/crumble/main.js index 59eb512f5..a8e367481 100644 --- a/glue/crumble/main.js +++ b/glue/crumble/main.js @@ -205,7 +205,7 @@ function makeChordHandlers() { res.set('shift+t', preview => editorState.rotate45(-1, preview)); res.set('t', preview => editorState.rotate45(+1, preview)); - res.set('escape', () => editorState.clearFocus()); + res.set('escape', () => {if (dialogExamples.open) dialogExamples.close(); else editorState.clearFocus()}); res.set('delete', preview => editorState.deleteAtFocus(preview)); res.set('backspace', preview => editorState.deleteAtFocus(preview)); res.set('ctrl+delete', preview => editorState.deleteCurLayer(preview)); From 65ffb22fe5d7417229e0a8801e9cbf9590adb168 Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Mon, 13 Apr 2026 23:52:52 +0300 Subject: [PATCH 7/9] inline styles back to html (but into a style tag for better separation between content and form --- glue/crumble/crumble.css | 82 -------------------------------- glue/crumble/crumble.html | 99 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 92 insertions(+), 89 deletions(-) delete mode 100644 glue/crumble/crumble.css diff --git a/glue/crumble/crumble.css b/glue/crumble/crumble.css deleted file mode 100644 index cc2c9eabe..000000000 --- a/glue/crumble/crumble.css +++ /dev/null @@ -1,82 +0,0 @@ -body { - font-family: sans-serif; -} - -#main-container { - padding: 4px; - display: flex; - flex-direction: column; - height: 100vh; - box-sizing: border-box; -} - -#cvn { - width: 100%; - flex: 1; - min-height: 0; - border: 1px solid black; - margin: 0; - padding: 0; -} - -table { - border: 1px solid black; - margin: 10px; - text-align: left; - border-collapse: collapse; -} - -table tr { - border: 1px solid black; -} -table td { - border: 1px solid black; - padding-left: 5px; - padding-right: 5px; -} -table th { - border: 1px solid black; - padding-left: 5px; - padding-right: 5px; -} - -button { - background: white; - border: 1px solid #e9e9e9; - border-radius: 4px; - margin: 2px 4px; - padding: 2px 8px; -} - -button:hover { - background: #e9e9e9; -} - -button:active { - background: #cccccc; -} - -#button-container { - display: flex; - flex-wrap: wrap; - align-items: flex-start; -} - -.btn-group { - display: flex; - flex-direction: column; -} - -#examples-dialog { -} - -#examples-div { -} - -#examples-close-button { - position: absolute; - top: 10px; - right: 10px; - cursor: pointer; - font-weight: 900; -} diff --git a/glue/crumble/crumble.html b/glue/crumble/crumble.html index 8b726c5a0..ebb6189a6 100644 --- a/glue/crumble/crumble.html +++ b/glue/crumble/crumble.html @@ -3,7 +3,92 @@ Crumble - + @@ -19,7 +104,7 @@
- +
@@ -57,11 +142,11 @@
@@ -168,7 +253,7 @@ Open Circuit - + Color Code Superdense Stability (X+Z) @@ -190,7 +275,7 @@ Open Circuit - + Surface Code Standard (ИZ) Prepare (RY) From 48030d97bc2426ea3f94990e943d79b2de57578a Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Tue, 14 Apr 2026 00:16:55 +0300 Subject: [PATCH 8/9] Trigger device pixel scaling also when clicking import/export (otherwise canvas loses proportions) --- glue/crumble/main.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/glue/crumble/main.js b/glue/crumble/main.js index a8e367481..2fb7aa6f2 100644 --- a/glue/crumble/main.js +++ b/glue/crumble/main.js @@ -49,6 +49,12 @@ btnImport.addEventListener('click', _ev => { editorState.commit(circuit); }); +function applyDevicePixelScaling() { + const devicePixelRatio = window.devicePixelRatio || 1; + editorState.canvas.width = editorState.canvas.scrollWidth * devicePixelRatio; + editorState.canvas.height = editorState.canvas.scrollHeight * devicePixelRatio; +} + btnImportExport.addEventListener('click', _ev => { let div = /** @type{!HTMLDivElement} */ document.getElementById('divImportExport'); if (div.style.display === 'none') { @@ -62,6 +68,8 @@ btnImportExport.addEventListener('click', _ev => { } setTimeout(() => { window.scrollTo(0, 0); + applyDevicePixelScaling(); + editorState.force_redraw(); }, 0); }); @@ -136,9 +144,7 @@ btnPrevLayer.addEventListener('click', _ev => { }); window.addEventListener('resize', _ev => { - const devicePixelRatio = window.devicePixelRatio || 1; - editorState.canvas.width = editorState.canvas.scrollWidth * devicePixelRatio; - editorState.canvas.height = editorState.canvas.scrollHeight * devicePixelRatio; + applyDevicePixelScaling(); editorState.force_redraw(); }); @@ -507,9 +513,7 @@ function handleKeyboardEvent(ev) { document.addEventListener('keydown', handleKeyboardEvent); document.addEventListener('keyup', handleKeyboardEvent); -const devicePixelRatio = window.devicePixelRatio || 1; -editorState.canvas.width = editorState.canvas.scrollWidth * devicePixelRatio; -editorState.canvas.height = editorState.canvas.scrollHeight * devicePixelRatio; +applyDevicePixelScaling(); editorState.rev.changes().subscribe(() => { editorState.obs_val_draw_state.set(editorState.toSnapshot(undefined)); drawToolbox(editorState.chorder.toEvent(false)); From c91918255924dfaa8ac48d21f377094645a317dc Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Tue, 14 Apr 2026 18:20:28 +0300 Subject: [PATCH 9/9] generate crumble --- src/stim/diagram/crumble_data.cc | 208 ++++++++++++++++++++++++++++--- 1 file changed, 189 insertions(+), 19 deletions(-) diff --git a/src/stim/diagram/crumble_data.cc b/src/stim/diagram/crumble_data.cc index b11d59d4c..adadf8b10 100644 --- a/src/stim/diagram/crumble_data.cc +++ b/src/stim/diagram/crumble_data.cc @@ -12,7 +12,177 @@ std::string stim_draw_internal::make_crumble_html() { )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( Crumble )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( @@ -45,7 +215,7 @@ std::string stim_draw_internal::make_crumble_html() { )CRUMBLE_PART"); result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); @@ -121,15 +291,15 @@ std::string stim_draw_internal::make_crumble_html() { )CRUMBLE_PART"); result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART(
)CRUMBLE_PART"); @@ -415,7 +585,7 @@ std::string stim_draw_internal::make_crumble_html() { )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( Color Code )CRUMBLE_PART"); @@ -466,7 +636,7 @@ std::string stim_draw_internal::make_crumble_html() { )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); - result.append(R"CRUMBLE_PART( + result.append(R"CRUMBLE_PART( )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( Surface Code )CRUMBLE_PART"); @@ -631,18 +801,18 @@ std::string stim_draw_internal::make_crumble_html() { result.append(R"CRUMBLE_PART(i),o+=i[0],a+=i[1];o/=n.length,a/=n.length,n.sort((t,r)=>{var[t,e]=t,[r,i]=r;return Math.atan2(e-a,t-o)-Math.atan2(i-a,r-o)});var s=this.xe().Ft(this.we.values()),h=s.Ut(),l=new Uint32Array(this.we.size);for(let t=0;t!t.Z.name.startsWith("MARK")||t.Y[0]!==r)}this.Le(i,t)}fi(t,i){var r,e=this.xe(),o=T.le(e,i),a=this.Ur,n=0===a?new Y(new Map,new Set,[]):o.Gr(a-.5),s=o.Gr(a+.5),h=e.yt[a],l=new Set;for(r of new Set([...n.Hr.keys(),...s.Hr.keys()]))if(!l.has(r)){var f=n.Hr.get(r),v=s.Hr.get(r),c=h.et.get(r);if(void 0!==c){var d=c.Z.name;let e=void 0;if("R"===d||"M"===d||"MR"===d)e="Z";else if("RX"===d||"MX"===d||"MRX"===d)e="X";else{if("RY"!==d&&"MY"!==d&&"MRY"!==d){if("MXX"===d||"MYY"===d||"MZZ"===d){e=d[1];let t=0;for(var w of c.R){if(l.has(w)){t=-1;break}t+=n.Hr.get(w)===e}if(2===t)for(var u of c.R)l.add(u),h.it.push(new F(B.get("MARK"+e),"",new Float32Array([i]),new Uint32Array([u])));continue}if(d.startsWith("MPP:")){let r=0;for(let t=0;tc.R.length/2)for(let t=0;t{var t,r,{Nt:e,Dt:i}=n.Pt(!1);for(let t=0;tt.Z.name!==e.Z.name||t.Y[0]!==e.Y[0])}this.Le(a,t)}}}(document.getElementById("cvn"));function zt(){var t=p.xe().xt().replaceAll("\nPOLYGON","\n#!pragma POLYGON").replaceAll("\nERR","\n#!pragma ERR").replaceAll("\nMARK","\n#!pragma MARK"),r=y;r.value=t+"\n",r.focus(),r.select()}r.addEventListener("click",t=>{zt()}),Dt.addEventListener("click",t=>{var r=y.value,r=u.It(r);p.commit(r)}),St.addEventListener("click",t=>{var r=document.getElementById("divImportExport");"none"===r.style.display?(r.style.display="block",St.textContent="Hide Import/Export",zt()):(r.style.display="none",St.textContent="Show Import/Export",y.value=""),setTimeout(()=>{window.scrollTo(0,0)},0)}),xt.addEventListener("click",t=>{p.Be()}),kt.addEventListener("click",t=>{p.Nr()}),Lt.addEventListener("click",t=>{p.de=new Map(p.we.entries()),p.Ge()}),Ut.addEventListener("clic)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(k",t=>{p.ei(!1),p.Ge()}),Gt.addEventListener("click",t=>{m.open?m.close():m.showModal()}),Ht.addEventListener("click",t=>{m.close()}),m.addEventListener("click",t=>{t.target===m&&m.close()}),Ft.addEventListener("click",t=>{p.de=new Map,p.Ge()}),gt.addEventListener("click",t=>{p.Dr()}),Ct.addEventListener("click",t=>{p.qe()}),Tt.addEventListener("click",t=>{p.Ve(1,!1)}),Nt.addEventListener("click",t=>{p.Ve(-1,!1)}),t.addEventListener("click",t=>{p.Ke(!1)}),Et.addEventListener("click",t=>{p.ze(!1)}),Pt.addEventListener("click",t=>{p.je(p.Ur+1)}),Ot.addEventListener("click",t=>{p.je(p.Ur-1)}),window.addEventListener("resize",t=>{var r=window.devicePixelRatio||1;p.canvas.width=p.canvas.scrollWidth*r,p.canvas.height=p.canvas.scrollHeight*r,p.Ge()}),p.canvas.addEventListener("mousemove",t=>{p.qr=t.offsetX+e,p.Wr=t.offsetY+v;var r=p.canvas.scrollWidth/2;Kt&&1===t.buttons?p.je(Math.floor((t.offsetX-r)/8)):p.Ge()});let Kt=!1;p.canvas.addEventListener("mousedown",t=>{p.qr=t.offsetX+e,p.Wr=t.offsetY+v,p.ue=t.offsetX+e,p)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(.Xe=t.offsetY+v;var r=p.canvas.scrollWidth/2;(Kt=t.offsetY<20&&t.offsetX>r&&1===t.buttons)?p.je(Math.floor((t.offsetX-r)/8)):p.Ge()}),p.canvas.addEventListener("mouseup",t=>{var r=p.$e(t.altKey);p.ue=void 0,p.Xe=void 0,p.qr=t.offsetX+e,p.Wr=t.offsetY+v,p.Je(r,t.shiftKey,t.ctrlKey),1===t.buttons&&(Kt=!1)});let Qt=void 0;async function $t(){let e=p.xe();e.yt=[e.yt[p.Ur]],0{var r=e.Rt[2*t],t=e.Rt[2*t+1];return p.we.has(r+","+t)}),[r,t]=P(p.we.values()),e=e.St(-r,-t));var t,r=e.xt();Qt=r;try{await navigator.clipboard.writeText(r)}catch(t){console.warn("Failed to write to clipboard. Using fallback emulated clipboard.",t)}}async function Bt(e){let i;try{i=await navigator.clipboard.readText()}catch(t){console.warn("Failed to read from clipboard. Using fallback emulated clipboard.",t),i=Qt}if(void 0!==i){let r=u.It(i);if(1!==r.yt.length)throw new Error(i);let t=p.xe();0p.Ve(-1,t)),o.set("t",t=>p.Ve(1,t)),o.set("escape",()=>p.Ue()),o.set("delete",t=>p.He(t)),o.set("backspace",t=>p.He(t)),o.set("ctrl+delete",t=>p.ze(t)),o.set("ctrl+insert",t=>p.Ke(t)),o.set("ctrl+backspace",t=>p.ze(t)),o.set("ctrl+z",t=>{t||p.Nr()}),o.set("ctrl+y",t=>{t||p.Dr()}),o.set("ctrl+shift+z",t=>{t||p.Dr()}),o.set("ctrl+c",async t=>{await $t()}),o.set("ctrl+v",Bt),o.set("ctrl+x",async t=>{var r;await $t(),0===p.we.size?((r=p.xe()).yt[p.Ur].et.clear(),r.yt[p.Ur].it.length=0,p.Le(r,t)):p.He(t)}),o.set("l",t=>{t||(p.de=new Map(p.we.entries()),p.Ge())}),o.set(" ",t=>p.ei(t));for(let[t,r]of[["1",0],["2",1],["3",2],["4",3],["5",4],["6",5],["7",6],["8",7],["9",8],["0",9],["-",10],["=",11],["\\")CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(,12],["`",13]])o.set(""+t,t=>p.ri(t,r)),o.set(t+"+x",t=>p.ni(t,B.get("MARKX").M(r))),o.set(t+"+y",t=>p.ni(t,B.get("MARKY").M(r))),o.set(t+"+z",t=>p.ni(t,B.get("MARKZ").M(r))),o.set(t+"+d",t=>p.li(t,r)),o.set(t+"+o",t=>p.si(t,r)),o.set(t+"+j",t=>p.vi(t,r)),o.set(t+"+k",t=>p.fi(t,r));let r=.25;function a(t,r,e=void 0){for(var i of t){if(o.has(i))throw new Error("Chord collision: "+i);o.set(i,t=>p.ni(t,B.get(r)))}void 0!==e&&a(t.map(t=>"shift+"+t),e)}return o.set("p",t=>p.ni(t,B.get("POLYGON"),[1,0,0,r])),o.set("alt+p",t=>p.ni(t,B.get("POLYGON"),[0,1,0,r])),o.set("shift+p",t=>p.ni(t,B.get("POLYGON"),[0,0,1,r])),o.set("p+x",t=>p.ni(t,B.get("POLYGON"),[1,0,0,r])),o.set("p+y",t=>p.ni(t,B.get("POLYGON"),[0,1,0,r])),o.set("p+z",t=>p.ni(t,B.get("POLYGON"),[0,0,1,r])),o.set("p+x+y",t=>p.ni(t,B.get("POLYGON"),[1,1,0,r])),o.set("p+x+z",t=>p.ni(t,B.get("POLYGON"),[1,0,1,r])),o.set("p+y+z",t=>p.ni(t,B.get("POLYGON"),[0,1,1,r])),o.set("p+x+y+z",t=>p.ni(t,B.get("POLYGON"),[1,1,1,r])),o.set("m+p+x",t=>p.ni(t,f("X".repeat(p.we)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(.size)),[])),o.set("m+p+y",t=>p.ni(t,f("Y".repeat(p.we.size)),[])),o.set("m+p+z",t=>p.ni(t,f("Z".repeat(p.we.size)),[])),o.set("f",t=>p.De(t)),o.set("g",t=>p.Fe(t)),o.set("shift+>",t=>p.We((t,r)=>[t+1,r],t,!1)),o.set("shift+<",t=>p.We((t,r)=>[t-1,r],t,!1)),o.set("shift+v",t=>p.We((t,r)=>[t,r+1],t,!1)),o.set("shift+^",t=>p.We((t,r)=>[t,r-1],t,!1)),o.set(">",t=>p.We((t,r)=>[t+1,r],t,!1)),o.set("<",t=>p.We((t,r)=>[t-1,r],t,!1)),o.set("v",t=>p.We((t,r)=>[t,r+1],t,!1)),o.set("^",t=>p.We((t,r)=>[t,r-1],t,!1)),o.set(".",t=>p.We((t,r)=>[t+.5,r+.5],t,!1)),a(["h","h+y","h+x+z"],"H","H"),a(["h+z","h+x+y"],"H_XY","H_XY"),a(["h+x","h+y+z"],"H_YZ","H_YZ"),a(["s+x","s+y+z"],"SQRT_X","SQRT_X_DAG"),a(["s+y","s+x+z"],"SQRT_Y","SQRT_Y_DAG"),a(["s","s+z","s+x+y"],"S","S_DAG"),a(["r+x","r+y+z"],"RX"),a(["r+y","r+x+z"],"RY"),a(["r","r+z","r+x+y"],"R"),a(["m+x","m+y+z"],"MX"),a(["m+y","m+x+z"],"MY"),a(["m","m+z","m+x+y"],"M"),a(["m+r+x","m+r+y+z"],"MRX"),a(["m+r+y","m+r+x+z"],"MRY"),a(["m+r","m+r+z","m+r+x+y"],"MR"),a(["c"],"CX","C)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(X"),a(["c+x"],"CX","CX"),a(["c+y"],"CY","CY"),a(["c+z"],"CZ","CZ"),a(["j+x"],"X","X"),a(["j+y"],"Y","Y"),a(["j+z"],"Z","Z"),a(["c+x+y"],"XCY","XCY"),a(["alt+c+x"],"XCX","XCX"),a(["alt+c+y"],"YCY","YCY"),a(["w"],"SWAP","SWAP"),a(["w+x"],"CXSWAP",void 0),a(["c+w+x"],"CXSWAP",void 0),a(["i+w"],"ISWAP","ISWAP_DAG"),a(["w+z"],"CZSWAP",void 0),a(["c+w+z"],"CZSWAP",void 0),a(["c+w"],"CZSWAP",void 0),a(["c+t"],"C_XYZ","C_ZYX"),a(["c+s+x"],"SQRT_XX","SQRT_XX_DAG"),a(["c+s+y"],"SQRT_YY","SQRT_YY_DAG"),a(["c+s+z"],"SQRT_ZZ","SQRT_ZZ_DAG"),a(["c+s"],"SQRT_ZZ","SQRT_ZZ_DAG"),a(["c+m+x"],"MXX","MXX"),a(["c+m+y"],"MYY","MYY"),a(["c+m+z"],"MZZ","MZZ"),a(["c+m"],"MZZ","MZZ"),o}();function Wt(r){if(p.Oe.jt(r),"keydown"===r.type){if("q"===r.key.toLowerCase())return e=r.shiftKey?5:1,void p.je(p.Ur-e);if("e"===r.key.toLowerCase())return e=r.shiftKey?5:1,void p.je(p.Ur+e);if("Home"===r.key)return p.je(0),void r.preventDefault();if("End"===r.key)return p.je(p.xe().yt.length-1),void r.preventDefault()}var t=p.Oe.Bt;if(0!==t.length){)CRUMBLE_PART"); - result.append(R"CRUMBLE_PART(for(var e=t[t.length-1];0{p.Te.set(p.Ne(void 0));var t=p.Oe.qt(!1),r=window.devicePixelRatio||1,a=(o.width=o.scrollWidth*r,o.height=o.scrollHeight*r,o.getContext("2d"));a.save(),a.scale(r,r),a.clearRect(0,0,o.scrollWidth,o.scrollHeight),a.textAlign="right",a.textBaseline="middle",a.fillText("X",7.5,24.5),a.fillText("Y",7.5,56.5),a.fillText("Z",7.5,88.5),a.textAlign="center",a.textBaseline="bottom";for(let t=0;t{try{var t,r=(()=>{var t=document.location.hash.substring(1),r=new Map;if(""!==t)for(var e of t.split("&")){var i,o=e.indexOf("=");-1!==o&&(i=e.substring(0,o),e=decodeURIComponent(e.substring(o+1)),r.set(i,e))}return r})(),e=(r.has("circuit")||("[[[DEFAULT-CIRCUIT-CONTENT-LITERAL]]]"===(t=document.getElementById("txtDefaultCircuit")).value.replaceAll("_","-")?r.set("circuit",""):r.set("circuit",t.value)),u.It(r.get("circuit"))),i=e.xt();Vt.clear(i),e.yt.every(t=>t.ut())&&1===r.size&&i===r.get("circuit")?jt.Ie():jt.be(i,Yt(i))}catch(t){throw new Error(t)}},window.addEventListener("popstate",Dt),Dt(),Vt.kr().Yr().Zr(1).subscribe(t=>{jt.be(t,Yt(t))})}p.Te.mr().subscribe(t=>requestAnimationFrame(()=>wt(p.canvas.getContext("2d"),t))),window.addEventListener("focus",()=>{p.Oe.Vt()}),window.addEventListener("blur",()=>{p.Oe.Vt()});for(let r of document.getElementById("examples-div").querySelectorAll("a"))CRUMBLE_PART"); - result.append(R"CRUMBLE_PART()r.onclick=t=>{if(!(t.shiftKey||t.ctrlKey||t.altKey||0!==t.button))return t=r.href.split("#circuit=")[1],p.rev.commit(t),m.close(),!1}; + result.append(R"CRUMBLE_PART(new Set(["X","Y","Z"])).delete(c),u.delete(d),t=[...u][0])),void 0!==t&&v.it.push(new F(B.get("MARK"+t),"",new Float32Array([i]),new Uint32Array([h])))}v.it=v.it.filter(t=>t.Z.name!==e.Z.name||t.Y[0]!==e.Y[0])}this.Le(a,t)}}}(document.getElementById("cvn"));function zt(){var t=window.devicePixelRatio||1;p.canvas.width=p.canvas.scrollWidth*t,p.canvas.height=p.canvas.scrollHeight*t}function Kt(){var t=p.xe().xt().replaceAll("\nPOLYGON","\n#!pragma POLYGON").replaceAll("\nERR","\n#!pragma ERR").replaceAll("\nMARK","\n#!pragma MARK"),r=y;r.value=t+"\n",r.focus(),r.select()}r.addEventListener("click",t=>{Kt()}),Dt.addEventListener("click",t=>{var r=y.value,r=u.It(r);p.commit(r)}),St.addEventListener("click",t=>{var r=document.getElementById("divImportExport");"none"===r.style.display?(r.style.display="block",St.textContent="Hide Import/Export",Kt()):(r.style.display="none",St.textContent="Show Import/Export",y.value=""),setTimeout(()=>{window.scrollTo(0,0),zt(),p.Ge()},0)}),xt.addEventListener("click",t=>{p.Be()}))CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(,kt.addEventListener("click",t=>{p.Nr()}),Lt.addEventListener("click",t=>{p.de=new Map(p.we.entries()),p.Ge()}),Ut.addEventListener("click",t=>{p.ei(!1),p.Ge()}),Gt.addEventListener("click",t=>{m.open?m.close():m.showModal()}),Ht.addEventListener("click",t=>{m.close()}),m.addEventListener("click",t=>{t.target===m&&m.close()}),Ft.addEventListener("click",t=>{p.de=new Map,p.Ge()}),gt.addEventListener("click",t=>{p.Dr()}),Ct.addEventListener("click",t=>{p.qe()}),Tt.addEventListener("click",t=>{p.Ve(1,!1)}),Nt.addEventListener("click",t=>{p.Ve(-1,!1)}),t.addEventListener("click",t=>{p.Ke(!1)}),Et.addEventListener("click",t=>{p.ze(!1)}),Pt.addEventListener("click",t=>{p.je(p.Ur+1)}),Ot.addEventListener("click",t=>{p.je(p.Ur-1)}),window.addEventListener("resize",t=>{zt(),p.Ge()}),p.canvas.addEventListener("mousemove",t=>{p.qr=t.offsetX+e,p.Wr=t.offsetY+v;var r=p.canvas.scrollWidth/2;Qt&&1===t.buttons?p.je(Math.floor((t.offsetX-r)/8)):p.Ge()});let Qt=!1;p.canvas.addEventListener("mousedown",t=>{p.qr=t.offsetX+e,p.Wr)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(=t.offsetY+v,p.ue=t.offsetX+e,p.Xe=t.offsetY+v;var r=p.canvas.scrollWidth/2;(Qt=t.offsetY<20&&t.offsetX>r&&1===t.buttons)?p.je(Math.floor((t.offsetX-r)/8)):p.Ge()}),p.canvas.addEventListener("mouseup",t=>{var r=p.$e(t.altKey);p.ue=void 0,p.Xe=void 0,p.qr=t.offsetX+e,p.Wr=t.offsetY+v,p.Je(r,t.shiftKey,t.ctrlKey),1===t.buttons&&(Qt=!1)});let $t=void 0;async function Bt(){let e=p.xe();e.yt=[e.yt[p.Ur]],0{var r=e.Rt[2*t],t=e.Rt[2*t+1];return p.we.has(r+","+t)}),[r,t]=P(p.we.values()),e=e.St(-r,-t));var t,r=e.xt();$t=r;try{await navigator.clipboard.writeText(r)}catch(t){console.warn("Failed to write to clipboard. Using fallback emulated clipboard.",t)}}async function qt(e){let i;try{i=await navigator.clipboard.readText()}catch(t){console.warn("Failed to read from clipboard. Using fallback emulated clipboard.",t),i=$t}if(void 0!==i){let r=u.It(i);if(1!==r.yt.length)throw new Error(i);let t=p.xe();0p.Ve(-1,t)),o.set("t",t=>p.Ve(1,t)),o.set("escape",()=>{m.open?m.close():p.Ue()}),o.set("delete",t=>p.He(t)),o.set("backspace",t=>p.He(t)),o.set("ctrl+delete",t=>p.ze(t)),o.set("ctrl+insert",t=>p.Ke(t)),o.set("ctrl+backspace",t=>p.ze(t)),o.set("ctrl+z",t=>{t||p.Nr()}),o.set("ctrl+y",t=>{t||p.Dr()}),o.set("ctrl+shift+z",t=>{t||p.Dr()}),o.set("ctrl+c",async t=>{await Bt()}),o.set("ctrl+v",qt),o.set("ctrl+x",async t=>{var r;await Bt(),0===p.we.size?((r=p.xe()).yt[p.Ur].et.clear(),r.yt[p.Ur].it.length=0,p.Le(r,t)):p.He(t)}),o.set("l",t=>{t||(p.de=new Map(p.we.entries()),p.Ge())}),o.set(" ",t=>p.ei(t));for(let[t,r]of[["1",0],["2",1],["3",2],["4",3],["5",4],["6",5],["7",)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(6],["8",7],["9",8],["0",9],["-",10],["=",11],["\\",12],["`",13]])o.set(""+t,t=>p.ri(t,r)),o.set(t+"+x",t=>p.ni(t,B.get("MARKX").M(r))),o.set(t+"+y",t=>p.ni(t,B.get("MARKY").M(r))),o.set(t+"+z",t=>p.ni(t,B.get("MARKZ").M(r))),o.set(t+"+d",t=>p.li(t,r)),o.set(t+"+o",t=>p.si(t,r)),o.set(t+"+j",t=>p.vi(t,r)),o.set(t+"+k",t=>p.fi(t,r));let r=.25;function a(t,r,e=void 0){for(var i of t){if(o.has(i))throw new Error("Chord collision: "+i);o.set(i,t=>p.ni(t,B.get(r)))}void 0!==e&&a(t.map(t=>"shift+"+t),e)}return o.set("p",t=>p.ni(t,B.get("POLYGON"),[1,0,0,r])),o.set("alt+p",t=>p.ni(t,B.get("POLYGON"),[0,1,0,r])),o.set("shift+p",t=>p.ni(t,B.get("POLYGON"),[0,0,1,r])),o.set("p+x",t=>p.ni(t,B.get("POLYGON"),[1,0,0,r])),o.set("p+y",t=>p.ni(t,B.get("POLYGON"),[0,1,0,r])),o.set("p+z",t=>p.ni(t,B.get("POLYGON"),[0,0,1,r])),o.set("p+x+y",t=>p.ni(t,B.get("POLYGON"),[1,1,0,r])),o.set("p+x+z",t=>p.ni(t,B.get("POLYGON"),[1,0,1,r])),o.set("p+y+z",t=>p.ni(t,B.get("POLYGON"),[0,1,1,r])),o.set("p+x+y+z",t=>p.ni(t,B.get("POLYGON"),[1,)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(1,1,r])),o.set("m+p+x",t=>p.ni(t,f("X".repeat(p.we.size)),[])),o.set("m+p+y",t=>p.ni(t,f("Y".repeat(p.we.size)),[])),o.set("m+p+z",t=>p.ni(t,f("Z".repeat(p.we.size)),[])),o.set("f",t=>p.De(t)),o.set("g",t=>p.Fe(t)),o.set("shift+>",t=>p.We((t,r)=>[t+1,r],t,!1)),o.set("shift+<",t=>p.We((t,r)=>[t-1,r],t,!1)),o.set("shift+v",t=>p.We((t,r)=>[t,r+1],t,!1)),o.set("shift+^",t=>p.We((t,r)=>[t,r-1],t,!1)),o.set(">",t=>p.We((t,r)=>[t+1,r],t,!1)),o.set("<",t=>p.We((t,r)=>[t-1,r],t,!1)),o.set("v",t=>p.We((t,r)=>[t,r+1],t,!1)),o.set("^",t=>p.We((t,r)=>[t,r-1],t,!1)),o.set(".",t=>p.We((t,r)=>[t+.5,r+.5],t,!1)),a(["h","h+y","h+x+z"],"H","H"),a(["h+z","h+x+y"],"H_XY","H_XY"),a(["h+x","h+y+z"],"H_YZ","H_YZ"),a(["s+x","s+y+z"],"SQRT_X","SQRT_X_DAG"),a(["s+y","s+x+z"],"SQRT_Y","SQRT_Y_DAG"),a(["s","s+z","s+x+y"],"S","S_DAG"),a(["r+x","r+y+z"],"RX"),a(["r+y","r+x+z"],"RY"),a(["r","r+z","r+x+y"],"R"),a(["m+x","m+y+z"],"MX"),a(["m+y","m+x+z"],"MY"),a(["m","m+z","m+x+y"],"M"),a(["m+r+x","m+r+y+z"],"MRX"),a(["m+r+y","m+r+x+z"],"MRY"))CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(,a(["m+r","m+r+z","m+r+x+y"],"MR"),a(["c"],"CX","CX"),a(["c+x"],"CX","CX"),a(["c+y"],"CY","CY"),a(["c+z"],"CZ","CZ"),a(["j+x"],"X","X"),a(["j+y"],"Y","Y"),a(["j+z"],"Z","Z"),a(["c+x+y"],"XCY","XCY"),a(["alt+c+x"],"XCX","XCX"),a(["alt+c+y"],"YCY","YCY"),a(["w"],"SWAP","SWAP"),a(["w+x"],"CXSWAP",void 0),a(["c+w+x"],"CXSWAP",void 0),a(["i+w"],"ISWAP","ISWAP_DAG"),a(["w+z"],"CZSWAP",void 0),a(["c+w+z"],"CZSWAP",void 0),a(["c+w"],"CZSWAP",void 0),a(["c+t"],"C_XYZ","C_ZYX"),a(["c+s+x"],"SQRT_XX","SQRT_XX_DAG"),a(["c+s+y"],"SQRT_YY","SQRT_YY_DAG"),a(["c+s+z"],"SQRT_ZZ","SQRT_ZZ_DAG"),a(["c+s"],"SQRT_ZZ","SQRT_ZZ_DAG"),a(["c+m+x"],"MXX","MXX"),a(["c+m+y"],"MYY","MYY"),a(["c+m+z"],"MZZ","MZZ"),a(["c+m"],"MZZ","MZZ"),o}();function Vt(r){if(p.Oe.jt(r),"keydown"===r.type){if("q"===r.key.toLowerCase())return e=r.shiftKey?5:1,void p.je(p.Ur-e);if("e"===r.key.toLowerCase())return e=r.shiftKey?5:1,void p.je(p.Ur+e);if("Home"===r.key)return p.je(0),void r.preventDefault();if("End"===r.key)return p.je(p.xe().yt.length-1),void )CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(r.preventDefault()}var t=p.Oe.Bt;if(0!==t.length){for(var e=t[t.length-1];0{p.Te.set(p.Ne(void 0));var t=p.Oe.qt(!1),r=window.devicePixelRatio||1,a=(o.width=o.scrollWidth*r,o.height=o.scrollHeight*r,o.getContext("2d"));a.save(),a.scale(r,r),a.clearRect(0,0,o.scrollWidth,o.scrollHeight),a.textAlign="right",a.textBaseline="middle",a.fillText("X",7.5,24.5),a.fillText("Y",7.5,56.5),a.fillText("Z",7.5,88.5),a.textAlign="center",a.textBaseline="bottom";for(let t=0;t{try{var t,r=(()=>{var t=document.location.hash.substring(1),r=new Map;if(""!==t)for(var e of t.split("&")){var i,o=e.indexOf("=");-1!==o&&(i=e.substring(0,o),e=decodeURIComponent(e.substring(o+1)),r.set(i,e))}return r})(),e=(r.has("circuit")||("[[[DEFAULT-CIRCUIT-CONTENT-LITERAL]]]"===(t=document.getElementById("txtDefaultCircuit")).value.replaceAll("_","-")?r.set("circuit",""):r.set("circuit",t.value)),u.It(r.get("circuit"))),i=e.xt();jt.clear(i),e.yt.every(t=>t.ut())&&1===r.size&&i===r.get("circuit")?Jt.Ie():Jt.be(i,Yt(i))}catch(t){throw new Error(t)}},window.addEventListener("popstate",r),r(),jt.kr().Yr().Zr(1).subscribe(t=>{Jt.be(t,Yt(t))})}p.Te.mr().subscribe(t=>requestAnimationFrame(()=>wt(p.canvas.getContext("2d"),t))),window.addEventListener("focus",()=>{p.Oe.Vt()}),window.addEventListener("blur",()=>{p.Oe.Vt()});for(let r of document.getElementById("examples-div").querySelectorAll("a"))r.onclick=t=>{if(!(t.shiftKey||t.ctrlKey||t.altKey||0!)CRUMBLE_PART"); + result.append(R"CRUMBLE_PART(==t.button))return t=r.href.split("#circuit=")[1],p.rev.commit(t),m.close(),!1}; )CRUMBLE_PART"); result.append(R"CRUMBLE_PART( )CRUMBLE_PART");