-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
327 lines (304 loc) · 322 KB
/
index.html
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
<!DOCTYPE html>
<!-- Created with https://studio.penguinmod.com/PenguinMod-Packager/ -->
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<!-- We only include this to explicitly loosen the CSP of various packager environments. It does not provide any security. -->
<meta http-equiv="Content-Security-Policy" content="default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: blob:">
<title>hammouda101010 extensions</title>
<style>
body {
color: #ffffff;
font-family: sans-serif;
overflow: hidden;
margin: 0;
padding: 0;
}
:root, body.is-fullscreen {
background-color: #000000;
}
[hidden] {
display: none !important;
}
h1 {
font-weight: normal;
}
a {
color: inherit;
text-decoration: underline;
cursor: pointer;
}
#app, #loading, #error, #launch {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.screen {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
cursor: default;
user-select: none;
-webkit-user-select: none;
background-color: #000000;
}
#launch {
background-color: rgba(0, 0, 0, 0.7);
cursor: pointer;
}
.green-flag {
width: 80px;
height: 80px;
padding: 16px;
border-radius: 100%;
background: rgba(255, 255, 255, 0.75);
border: 3px solid hsla(0, 100%, 100%, 1);
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
}
#loading {
}
.progress-bar-outer {
border: 1px solid currentColor;
height: 10px;
width: 200px;
max-width: 200px;
}
.progress-bar-inner {
height: 100%;
width: 0;
background-color: currentColor;
}
.loading-text, noscript {
font-weight: normal;
font-size: 36px;
margin: 0 0 16px;
}
.loading-image {
margin: 0 0 16px;
}
#error-message, #error-stack {
font-family: monospace;
max-width: 600px;
white-space: pre-wrap;
user-select: text;
-webkit-user-select: text;
}
#error-stack {
text-align: left;
max-height: 200px;
overflow: auto;
}
.control-button {
width: 2rem;
height: 2rem;
padding: 0.375rem;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
user-select: none;
-webkit-user-select: none;
cursor: pointer;
border: 0;
border-radius: 4px;
}
.control-button:hover {
background: #00c3ff26;
}
.control-button.active {
background: #00c3ff59;
}
.fullscreen-button {
background: white !important;
}
.standalone-fullscreen-button {
position: absolute;
top: 0;
right: 0;
background-color: rgba(0, 0, 0, 0.5);
border-radius: 0 0 0 4px;
padding: 4px;
cursor: pointer;
}
.sc-canvas {
cursor: auto;
}
.sc-monitor-root[data-opcode^="data_"] .sc-monitor-value-color {
background-color: #ff8c1a;
}
.sc-monitor-row-value-outer {
background-color: #fc662c;
}
.sc-monitor-row-value-editing .sc-monitor-row-value-outer {
background-color: #e25b27;
}
</style>
<meta name="theme-color" content="#000000">
</head>
<body>
<div id="app"></div>
<div id="launch" class="screen" hidden title="Click to start">
<div class="green-flag">
<svg viewBox="0 0 16.63 17.5" width="42" height="44">
<defs><style>.cls-1,.cls-2{fill:#007AF4;stroke:#003080;stroke-linecap:round;stroke-linejoin:round;}.cls-2{stroke-width:1.5px;}</style></defs>
<path class="cls-1" d="M.75,2A6.44,6.44,0,0,1,8.44,2h0a6.44,6.44,0,0,0,7.69,0V12.4a6.44,6.44,0,0,1-7.69,0h0a6.44,6.44,0,0,0-7.69,0"/>
<line class="cls-2" x1="0.75" y1="16.75" x2="0.75" y2="0.75"/>
</svg>
</div>
</div>
<div id="loading" class="screen">
<noscript>Enable JavaScript</noscript>
<h1 class="loading-text">Loading Stuff</h1>
<div class="progress-bar-outer"><div class="progress-bar-inner" id="loading-inner"></div></div>
</div>
<div id="error" class="screen" hidden>
<h1>Error</h1>
<details>
<summary id="error-message"></summary>
<p id="error-stack"></p>
</details>
</div>
<script src="script.js"></script>
<script>
const appElement = document.getElementById('app');
const launchScreen = document.getElementById('launch');
const loadingScreen = document.getElementById('loading');
const loadingInner = document.getElementById('loading-inner');
const errorScreen = document.getElementById('error');
const errorScreenMessage = document.getElementById('error-message');
const errorScreenStack = document.getElementById('error-stack');
const handleError = (error) => {
console.error(error);
if (!errorScreen.hidden) return;
errorScreen.hidden = false;
errorScreenMessage.textContent = '' + error;
let debug = error && error.stack || 'no stack';
debug += '\nUser agent: ' + navigator.userAgent;
errorScreenStack.textContent = debug;
};
const setProgress = (progress) => {
if (loadingInner) loadingInner.style.width = progress * 100 + '%';
};
const interpolate = (a, b, t) => a + t * (b - a);
try {
setProgress(0.1);
const scaffolding = new Scaffolding.Scaffolding();
scaffolding.width = 480;
scaffolding.height = 360;
scaffolding.resizeMode = "preserve-ratio";
scaffolding.editableLists = false;
scaffolding.usePackagedRuntime = true;
scaffolding.setup();
scaffolding.appendTo(appElement);
const vm = scaffolding.vm;
window.scaffolding = scaffolding;
window.vm = scaffolding.vm;
window.Scratch = {
vm,
renderer: vm.renderer,
audioEngine: vm.runtime.audioEngine,
bitmapAdapter: vm.runtime.v2BitmapAdapter,
videoProvider: vm.runtime.ioDevices.video.provider
};
scaffolding.setUsername("player####".replace(/#/g, () => Math.floor(Math.random() * 10)));
scaffolding.setAccentColor("#00c3ff");
try {
scaffolding.addCloudProvider(new Scaffolding.Cloud.WebSocketProvider(["wss://clouddata.turbowarp.org","wss://clouddata.turbowarp.xyz"], "[email protected]"));
} catch (error) {
console.error(error);
}
vm.setTurboMode(false);
if (vm.setInterpolation) vm.setInterpolation(false);
if (vm.setFramerate) vm.setFramerate(60);
if (vm.renderer.setUseHighQualityRender) vm.renderer.setUseHighQualityRender(false);
if (vm.setRuntimeOptions) vm.setRuntimeOptions({
fencing: true,
miscLimits: true,
maxClones: 300,
dangerousOptimizations: false
});
if (vm.setCompilerOptions) vm.setCompilerOptions({
enabled: true,
warpTimer: false
});
if (vm.renderer.setMaxTextureDimension) vm.renderer.setMaxTextureDimension(2048);
if (typeof ScaffoldingAddons !== 'undefined') {
ScaffoldingAddons.run(scaffolding, {"gamepad":false,"pointerlock":false,"specialCloudBehaviors":false,"unsafeCloudBehaviors":false,"pause":false});
}
scaffolding.setExtensionSecurityManager({
getSandboxMode: () => 'unsandboxed',
canLoadExtensionFromProject: () => true
});
for (const extension of ["data:text/javascript;,(function(Scratch)%20%7B%20%2F*!%0D%0A%20*%20Created%20by%200znzw%20%7C%20v1.3%0D%0A%20*%20Licensed%20Under%20MIT%20%26%20LGPLv3%20License.%0D%0A%20*%20DO%20NOT%20REMOVE%20THIS%20COMMENT%0D%0A%20*%2F%0D%0A(async%20function%20(Scratch)%20%7B%0D%0A%20%20'use%20strict'%3B%0D%0A%0D%0A%20%20if%20(!Scratch.extensions.unsandboxed)%20%7B%0D%0A%20%20%20%20throw%20new%20Error(%60%22More%20Fields%22%20must%20be%20ran%20unsandboxed.%60)%3B%0D%0A%20%20%7D%0D%0A%0D%0A%20%20const%20vm%20%3D%20Scratch.vm%3B%0D%0A%20%20const%20runtime%20%3D%20vm.runtime%3B%0D%0A%20%20const%20hasOwn%20%3D%20(object%2C%20property)%20%3D%3E%20Object.prototype.hasOwnProperty.call(object%2C%20property)%3B%0D%0A%0D%0A%20%20%2F%2F%20Some%20checks%0D%0A%20%20const%20DOOMcheck%20%3D%20(vm.runtime.ioDevices.userData._username%20%3D%3D%3D%20'DOOM1997')%3B%0D%0A%20%20%2F%2F%20IDK%20maybe%20they%20are%20not%20on%20web%20or%20smth%20(or%20webkit%20cause%20yeah).%0D%0A%20%20const%20_URLSearchParams%20%3D%20(window.URLSearchParams%20%3F%3F%20class%20%7B%0D%0A%20%20%20%20has()%20%7Breturn(false)%7D%0D%0A%20%20%20%20get()%20%7Breturn('')%7D%3B%0D%0A%20%20%7D)%3B%0D%0A%20%20const%20searchParams%20%3D%20new%20_URLSearchParams(window.location.search)%3B%0D%0A%20%20const%20hideInlineTextarea%20%3D%20!searchParams.has('MoreFields_InlineTextarea')%3B%0D%0A%0D%0A%20%20%2F%2F%20%22Constants%22%0D%0A%20%20const%20customFieldTypes%20%3D%20%7B%7D%3B%0D%0A%20%20let%20Blockly%20%3D%20null%3B%20%2F%2F%20Blockly%20is%20used%20cause%20Its%20easier%20than%20ScratchBlocks%20imo%2C%20it%20does%20not%20make%20a%20difference.%0D%0A%0D%0A%20%20%2F%2F%20Me%20being%20lazy%0D%0A%20%20function%20_setCssNattr(node%2C%20attr%2C%20value)%20%7B%0D%0A%20%20%20%20node.setAttribute(attr%2C%20String(value))%3B%0D%0A%20%20%20%20node.style%5Battr%5D%20%3D%20value%3B%0D%0A%20%20%7D%0D%0A%20%20function%20_delCssNattr(node%2C%20attr)%20%7B%0D%0A%20%20%20%20node.removeAttribute(attr)%3B%0D%0A%20%20%20%20delete%20node.style%5Battr%5D%3B%0D%0A%20%20%7D%0D%0A%0D%0A%20%20%2F%2F%20These%20should%20NEVER%20be%20called%20without%20ScratchBlocks%20existing%0D%0A%20%20function%20_fixColours(doText%2C%20col1%2C%20textColor)%20%7B%0D%0A%20%20%20%20const%20LDA%20%3D%20-10%3B%0D%0A%20%20%20%20const%20LDC%20%3D%20Blockly._LightenDarkenColor%3B%0D%0A%20%20%20%20const%20self%20%3D%20this.sourceBlock_%3B%0D%0A%20%20%20%20const%20parent%20%3D%20self%3F.parentBlock_%3B%0D%0A%20%20%20%20if%20(!parent)%20return%3B%0D%0A%20%20%20%20const%20path%20%3D%20self%3F.svgPath_%3B%0D%0A%20%20%20%20const%20argumentSvg%20%3D%20path%3F.parentNode%3B%0D%0A%20%20%20%20const%20textNode%20%3D%20argumentSvg.querySelector('g.blocklyEditableText%20text')%3B%0D%0A%20%20%20%20const%20oldFirstColour%20%3D%20parent.colour_%3B%0D%0A%20%20%20%20self.colour_%20%3D%20(col1%20%3F%3F%20LDC(parent.colour_%2C%20LDA))%3B%0D%0A%20%20%20%20self.colourSecondary_%20%3D%20LDC(parent.colourSecondary_%2C%20LDA)%3B%0D%0A%20%20%20%20self.colourTertiary_%20%3D%20LDC(parent.colourTertiary_%2C%20LDA)%3B%0D%0A%20%20%20%20self.colourQuaternary_%20%3D%20LDC(parent%3F.colourQuaternary_%20%3F%3F%20oldFirstColour%2C%20LDA)%3B%0D%0A%20%20%20%20_setCssNattr(path%2C%20'fill'%2C%20self.colour_)%3B%0D%0A%20%20%20%20_setCssNattr(path%2C%20'stroke'%2C%20self.colourTertiary_)%3B%0D%0A%20%20%20%20if%20(doText%20%26%26%20textNode)%20_setCssNattr(textNode%2C%20'fill'%2C%20textColor%20%3F%3F%20'%23FFFFFF')%3B%0D%0A%20%20%7D%0D%0A%20%20function%20_moveDropdown(toArgument)%20%7B%0D%0A%20%20%20%20toArgument%20%3D%20toArgument%20%3F%3F%20false%3B%0D%0A%20%20%20%20Blockly.DropDownDiv.showPositionedByBlock(this%2C%20(toArgument%20%3F%20this.sourceBlock_%20%3A%20this.sourceBlock_.parentBlock_))%3B%0D%0A%20%20%7D%0D%0A%20%20function%20_disableReporters()%20%7B%0D%0A%20%20%20%20const%20block%20%3D%20this%3F.sourceBlock_%3F.parentBlock_%3B%0D%0A%20%20%20%20if%20(!block)%20return%3B%0D%0A%20%20%20%20%2F%2F%20%22i%22%20is%20the%20index%20in%20block.inputList%20of%20the%20current%20rendered%20connection%0D%0A%20%20%20%20%2F%2F%20todo%3A%20fix%20the%20index%20cause%20its%20always%20the%20last%20input%20%3Askull%3A%0D%0A%20%20%20%20let%20i%20%3D%20-1%2C%20found%20%3D%20false%3B%0D%0A%20%20%20%20block.inputList.find(input%20%3D%3E%20%7B%0D%0A%20%20%20%20%20%20if%20(found)%20return%20false%3B%0D%0A%20%20%20%20%20%20found%20%3D%20(input.connection%20%3D%3D%20this%20%7C%7C%20input%20%3D%3D%20this.sourceBlock_)%3B%0D%0A%20%20%20%20%20%20i%2B%2B%3B%0D%0A%20%20%20%20%20%20return%20found%3B%0D%0A%20%20%20%20%7D)%3B%0D%0A%20%20%20%20const%20connection%20%3D%20block.inputList%3F.%5Bi%5D%3F.connection%3B%0D%0A%20%20%20%20if%20(i%20%3C%200%20%7C%7C%20!connection)%20return%3B%0D%0A%20%20%20%20%2F%2F%20Lmao%20your%20wrong.%0D%0A%20%20%20%20connection.check_%20%3D%20%5B%5D%3B%0D%0A%20%20%7D%0D%0A%0D%0A%20%20%2F%2F%20https%3A%2F%2Fgithub.com%2FXeltalliv%2Fextensions%2Fblob%2Fexamples%2Fexamples%2Fcustom-field-types.js%0D%0A%20%20const%20bcfi%20%3D%20runtime._buildCustomFieldInfo.bind(runtime)%3B%0D%0A%20%20const%20bcftfsb%20%3D%20runtime._buildCustomFieldTypeForScratchBlocks.bind(runtime)%3B%0D%0A%20%20let%20fi%20%3D%20null%3B%0D%0A%20%20runtime._buildCustomFieldInfo%20%3D%20function%20(fieldName%2C%20fieldInfo%2C%20extensionId%2C%20categoryInfo)%20%7B%0D%0A%20%20%20%20fi%20%3D%20fieldInfo%3B%0D%0A%20%20%20%20return%20bcfi(fieldName%2C%20fieldInfo%2C%20extensionId%2C%20categoryInfo)%3B%0D%0A%20%20%7D%3B%0D%0A%20%20runtime._buildCustomFieldTypeForScratchBlocks%20%3D%20function%20(fieldName%2C%20output%2C%20outputShape%2C%20categoryInfo)%20%7B%0D%0A%20%20%20%20let%20res%20%3D%20bcftfsb(fieldName%2C%20output%2C%20outputShape%2C%20categoryInfo)%3B%0D%0A%20%20%20%20if%20(fi)%20%7B%0D%0A%20%20%20%20%20%20if%20(fi.color1)%20res.json.colour%20%3D%20fi.color1%3B%0D%0A%20%20%20%20%20%20if%20(fi.color2)%20res.json.colourSecondary%20%3D%20fi.color2%3B%0D%0A%20%20%20%20%20%20if%20(fi.color3)%20res.json.colourTertiary%20%3D%20fi.color3%3B%0D%0A%20%20%20%20%20%20if%20(hasOwn(fi%2C%20'output'))%20res.json.output%20%3D%20fi.output%3B%0D%0A%20%20%20%20%20%20fi%20%3D%20null%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20return%20res%3B%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20toRegisterOnBlocklyGot%20%3D%20%5B%5D%3B%0D%0A%0D%0A%20%20%2F%2F%20https%3A%2F%2Fgithub.com%2FLLK%2Fscratch-vm%2Fblob%2Ff405e59d01a8f9c0e3e986fb5276667a8a3c7d40%2Ftest%2Funit%2Fextension_conversion.js%23L85-L124%0D%0A%20%20%2F%2F%20https%3A%2F%2Fgithub.com%2FLLK%2Fscratch-vm%2Fcommit%2Fceaa3c7857b79459ccd1b14d548528e4511209e7%0D%0A%20%20vm.addListener('EXTENSION_FIELD_ADDED'%2C%20(fieldInfo)%20%3D%3E%20%7B%0D%0A%20%20%20%20console.log('EXTENSION_FIELD_ADDED'%2C%20fieldInfo%2C%20Blockly)%3B%0D%0A%20%20%20%20if%20(Blockly)%20Blockly.Field.register(fieldInfo.name%2C%20fieldInfo.implementation)%3B%0D%0A%20%20%20%20else%20toRegisterOnBlocklyGot.push(%5BfieldInfo.name%2C%20fieldInfo.implementation%5D)%3B%0D%0A%20%20%7D)%3B%0D%0A%0D%0A%20%20%2F%2F%20ArgumentType%20additions%0D%0A%20%20Scratch.ArgumentType.TEXTAREA%20%3D%20'TextareaInput'%3B%0D%0A%20%20Scratch.ArgumentType.INLINETEXTAREA%20%3D%20'TextareaInputInline'%3B%0D%0A%20%20Scratch.ArgumentType.SNAPBOOLEAN%20%3D%20'SnapBoolean'%3B%0D%0A%20%20Scratch.ArgumentType.INLINESLIDER%20%3D%20'SliderInline'%3B%0D%0A%20%20Scratch.ArgumentType.HIDDENSTRING%20%3D%20'StringHidden'%3B%0D%0A%20%20Scratch.ArgumentType.INLINEDATE%20%3D%20'DateInline'%3B%0D%0A%20%20Scratch.ArgumentType.FILE%20%3D%20'FileInput'%3B%0D%0A%0D%0A%20%0D%0A%20%20let%20implementations%20%3D%20%7B%0D%0A%20%20%20%20FieldTextarea%3A%20null%2C%0D%0A%20%20%20%20FieldInlineTextarea%3A%20null%2C%0D%0A%20%20%20%20FieldSnapBoolean%3A%20null%2C%0D%0A%20%20%20%20FieldInlineSlider%3A%20null%2C%0D%0A%20%20%20%20FieldInlineDate%3A%20null%2C%0D%0A%20%20%20%20FieldFileInput%3A%20null%2C%0D%0A%20%20%20%20FieldInlineDoom%3A%20null%2C%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20customFieldTypes%5BScratch.ArgumentType.TEXTAREA%5D%20%3D%20%7B%0D%0A%20%20%20%20output%3A%20Scratch.ArgumentType.STRING%2C%0D%0A%20%20%20%20color1%3A%20'%239566d3'%2C%0D%0A%20%20%20%20outputShape%3A%202%2C%0D%0A%20%20%20%20implementation%3A%20%7B%0D%0A%20%20%20%20%20%20fromJson%3A%20()%20%3D%3E%20new%20implementations.FieldTextarea()%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%20%20customFieldTypes%5BScratch.ArgumentType.INLINETEXTAREA%5D%20%3D%20%7B%0D%0A%20%20%20%20output%3A%20Scratch.ArgumentType.STRING%2C%0D%0A%20%20%20%20color1%3A%20'%239566d3'%2C%0D%0A%20%20%20%20outputShape%3A%202%2C%0D%0A%20%20%20%20implementation%3A%20%7B%0D%0A%20%20%20%20%20%20fromJson%3A%20()%20%3D%3E%20new%20implementations.FieldInlineTextarea()%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%20%20customFieldTypes%5BScratch.ArgumentType.SNAPBOOLEAN%5D%20%3D%20%7B%0D%0A%20%20%20%20output%3A%20Scratch.ArgumentType.BOOLEAN%2C%0D%0A%20%20%20%20color1%3A%20'%239566d3'%2C%0D%0A%20%20%20%20outputShape%3A%201%2C%0D%0A%20%20%20%20implementation%3A%20%7B%0D%0A%20%20%20%20%20%20fromJson%3A%20()%20%3D%3E%20new%20implementations.FieldSnapBoolean()%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%20%20customFieldTypes%5BScratch.ArgumentType.INLINESLIDER%5D%20%3D%20%7B%0D%0A%20%20%20%20output%3A%20Scratch.ArgumentType.NUMBER%2C%0D%0A%20%20%20%20color1%3A%20'%239566d3'%2C%0D%0A%20%20%20%20outputShape%3A%203%2C%0D%0A%20%20%20%20implementation%3A%20%7B%0D%0A%20%20%20%20%20%20fromJson%3A%20()%20%3D%3E%20new%20implementations.FieldInlineSlider()%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%20%20customFieldTypes%5BScratch.ArgumentType.HIDDENSTRING%5D%20%3D%20%7B%0D%0A%20%20%20%20output%3A%20Scratch.ArgumentType.STRING%2C%0D%0A%20%20%20%20color1%3A%20'%239566d3'%2C%0D%0A%20%20%20%20outputShape%3A%202%2C%0D%0A%20%20%20%20implementation%3A%20%7B%0D%0A%20%20%20%20%20%20fromJson%3A%20()%20%3D%3E%20new%20implementations.FieldHiddenTextInput()%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%20%20customFieldTypes%5BScratch.ArgumentType.INLINEDATE%5D%20%3D%20%7B%0D%0A%20%20%20%20output%3A%20Scratch.ArgumentType.NUMBER%2C%0D%0A%20%20%20%20color1%3A%20'%239566d3'%2C%0D%0A%20%20%20%20outputShape%3A%203%2C%0D%0A%20%20%20%20implementation%3A%20%7B%0D%0A%20%20%20%20%20%20fromJson%3A%20()%20%3D%3E%20new%20implementations.FieldInlineDate()%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%20%20customFieldTypes%5BScratch.ArgumentType.FILE%5D%20%3D%20%7B%0D%0A%20%20%20%20output%3A%20null%2C%0D%0A%20%20%20%20color1%3A%20'%239566d3'%2C%0D%0A%20%20%20%20outputShape%3A%203%2C%0D%0A%20%20%20%20implementation%3A%20%7B%0D%0A%20%20%20%20%20%20fromJson%3A%20()%20%3D%3E%20new%20implementations.FieldFileInput()%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%20%20customFieldTypes%5B'InlineDoom'%5D%20%3D%20%7B%0D%0A%20%20%20%20output%3A%20%5B%5D%2C%0D%0A%20%20%20%20color1%3A%20'%239566d3'%2C%0D%0A%20%20%20%20outputShape%3A%203%2C%0D%0A%20%20%20%20implementation%3A%20%7B%0D%0A%20%20%20%20%20%20fromJson%3A%20()%20%3D%3E%20new%20implementations.FieldInlineDoom()%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20%2F%2F%20Main%20try%20thing%0D%0A%20%20function%20tryUseScratchBlocks(_sb)%20%7B%0D%0A%20%20%20%20console.log('Got%20ScratchBlocks'%2C%20_sb)%3B%0D%0A%0D%0A%20%20%20%20Blockly%20%3D%20_sb%3B%0D%0A%20%20%20%20%2F%2F%20https%3A%2F%2Fstackoverflow.com%2Fquestions%2F5560248%2Fprogrammatically-lighten-or-darken-a-hex-color-or-rgb-and-blend-colors%0D%0A%20%20%20%20Blockly._LightenDarkenColor%20%3D%20function(col%2C%20amt)%20%7B%0D%0A%20%20%20%20%20%20const%20num%20%3D%20parseInt(col.replace('%23'%2C%20'')%2C%2016)%3B%0D%0A%20%20%20%20%20%20const%20r%20%3D%20(num%20%3E%3E%2016)%20%2B%20amt%3B%0D%0A%20%20%20%20%20%20const%20b%20%3D%20((num%20%3E%3E%208)%20%26%200x00FF)%20%2B%20amt%3B%0D%0A%20%20%20%20%20%20const%20g%20%3D%20(num%20%26%200x0000FF)%20%2B%20amt%3B%0D%0A%20%20%20%20%20%20const%20newColor%20%3D%20g%20%7C%20(b%20%3C%3C%208)%20%7C%20(r%20%3C%3C%2016)%3B%0D%0A%20%20%20%20%20%20return%20(col.at(0)%20%3D%3D%3D%20'%23'%20%3F%20'%23'%20%3A%20'')%20%2B%20newColor.toString(16)%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%2F%2F%20Patch%20for%20a%20bug%20in%20size_.height%0D%0A%20%20%20%20const%20_endBlockDrag%20%3D%20Blockly.BlockDragger.prototype.endBlockDrag%0D%0A%20%20%20%20Blockly.BlockDragger.prototype.endBlockDrag%20%3D%20function%20(...a)%20%7B%0D%0A%20%20%20%20%20%20_endBlockDrag.call(this%2C%20...a)%3B%0D%0A%20%20%20%20%20%20for%20(const%20childBlock%20of%20this.draggingBlock_.childBlocks_)%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20inputList%20%3D%20childBlock.inputList%3B%0D%0A%20%20%20%20%20%20%20%20if%20(inputList.length%20%3D%3D%3D%201%20%26%26%20inputList%5B0%5D.fieldRow.length%20%3D%3D%3D%201%20%26%26%20!!inputList%5B0%5D.fieldRow%5B0%5D%3F.inlineDblRender)%20childBlock.render()%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%2F%2F%20Fields%0D%0A%20%20%20%20const%20textInputs_trueToOriginal%20%3D%20true%3B%0D%0A%20%20%20%20implementations.FieldTextarea%20%3D%20class%20FieldTextarea%20extends%20Blockly.FieldTextInput%20%7B%0D%0A%20%20%20%20%20%20constructor(opt_value)%20%7B%0D%0A%20%20%20%20%20%20%20%20opt_value%20%3D%20Scratch.ArgumentType.TEXTAREA%3B%0D%0A%20%20%20%20%20%20%20%20super(opt_value)%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType('String')%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType(Scratch.ArgumentType.TEXTAREA)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20showEditor_()%20%7B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.clearContent()%3B%0D%0A%20%20%20%20%20%20%20%20const%20div%20%3D%20Blockly.DropDownDiv.getContentDiv()%3B%0D%0A%20%20%20%20%20%20%20%20const%20input%20%3D%20document.createElement('textarea')%3B%0D%0A%20%20%20%20%20%20%20%20input.value%20%3D%20this.getValue()%3B%0D%0A%20%20%20%20%20%20%20%20div.append(input)%3B%0D%0A%20%20%20%20%20%20%20%20this._textarea%20%3D%20input%3B%0D%0A%20%20%20%20%20%20%20%20input.addEventListener('input'%2C%20()%20%3D%3E%20this._onInput())%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.setColour(this.sourceBlock_.parentBlock_.getColour()%2C%20this.sourceBlock_.parentBlock_.getColourTertiary())%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.setCategory(this.sourceBlock_.parentBlock_.getCategory())%3B%0D%0A%20%20%20%20%20%20%20%20_moveDropdown.call(this)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20init(...initArgs)%20%7B%0D%0A%20%20%20%20%20%20%20%20Blockly.Field.prototype.init.call(this%2C%20...initArgs)%3B%0D%0A%20%20%20%20%20%20%20%20this.sourceBlock_.outputConnection.check_%20%3D%20%5B%5D%3B%0D%0A%20%20%20%20%20%20%20%20_fixColours.call(this%2C%20!textInputs_trueToOriginal%2C%20(textInputs_trueToOriginal%20%3F%20'%23FFFFFF'%20%3A%20undefined)%2C%20'%23FFFFFF')%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_onInput()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.setValue(this._textarea.value)%3B%0D%0A%20%20%20%20%20%20%20%20_moveDropdown.call(this)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20implementations.FieldInlineTextarea%20%3D%20class%20FieldInlineTextarea%20extends%20Blockly.Field%20%7B%0D%0A%20%20%20%20%20%20constructor(opt_value)%20%7B%0D%0A%20%20%20%20%20%20%20%20opt_value%20%3D%20Scratch.ArgumentType.INLINETEXTAREA%3B%0D%0A%20%20%20%20%20%20%20%20super(opt_value)%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType('String')%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType(Scratch.ArgumentType.INLINETEXTAREA)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20updateWidth()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.size_.width%20%3D%20this._FakeWidth%3B%0D%0A%20%20%20%20%20%20%20%20this.size_.height%20%3D%20this._FakeHeight%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20init(...initArgs)%20%7B%0D%0A%20%20%20%20%20%20%20%20this.inlineDblRender%20%3D%20true%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.Field.prototype.init.call(this%2C%20...initArgs)%3B%0D%0A%20%20%20%20%20%20%20%20_disableReporters.call(this)%3B%0D%0A%20%20%20%20%20%20%20%20this.textNode__%20%3D%20this.sourceBlock_.svgPath_.parentNode.querySelector('g.blocklyEditableText%20text')%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!!this.textNode__)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20this.textNode__.style.display%20%3D%20'none'%3B%0D%0A%20%20%20%20%20%20%20%20%20%20_fixColours.call(this%2C%20false%2C%20this.sourceBlock_.parentBlock_.colour_)%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20this._FakeWidth%20%3D%20this._FakeWidth%20%3F%3F%2040%3B%0D%0A%20%20%20%20%20%20%20%20this._FakeHeight%20%3D%20this._FakeHeight%20%3F%3F%2020%3B%0D%0A%20%20%20%20%20%20%20%20const%20textareaHolder%20%3D%20document.createElementNS('http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%2C%20'foreignObject')%3B%0D%0A%20%20%20%20%20%20%20%20textareaHolder.setAttribute('x'%2C%20'16')%3B%0D%0A%20%20%20%20%20%20%20%20textareaHolder.setAttribute('y'%2C%20'8')%3B%0D%0A%20%20%20%20%20%20%20%20textareaHolder.addEventListener('mousedown'%2C%20(e)%20%3D%3E%20e.stopPropagation())%3B%0D%0A%20%20%20%20%20%20%20%20const%20textarea%20%3D%20document.createElement('textarea')%3B%0D%0A%20%20%20%20%20%20%20%20textarea.addEventListener('input'%2C%20()%20%3D%3E%20this._onInput())%3B%0D%0A%20%20%20%20%20%20%20%20textarea.addEventListener('mouseup'%2C%20(e)%20%3D%3E%20this._resizeHolder())%3B%0D%0A%20%20%20%20%20%20%20%20if%20(this.fieldGroup_)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20this.fieldGroup_.insertAdjacentElement('afterend'%2C%20textareaHolder)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20textareaHolder.appendChild(textarea)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20this._textareaHolder%20%3D%20textareaHolder%3B%0D%0A%20%20%20%20%20%20%20%20%20%20this._textarea%20%3D%20textarea%3B%0D%0A%20%20%20%20%20%20%20%20%20%20if%20(this.sourceBlock_%20%26%26%20this.sourceBlock_.isInFlyout)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20textarea.disabled%20%3D%20true%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20textarea.style.resize%20%3D%20'none'%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20this._resizeHolder()%3B%0D%0A%20%20%20%20%20%20%20%20%20%20new%20ResizeObserver(()%20%3D%3E%20this._resizeHolder()).observe(this._textarea)%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_resizeHolder()%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20width%20%3D%20this._textarea.offsetWidth%20%2B%201%2C%20height%20%3D%20this._textarea.offsetHeight%20%2B%201%3B%0D%0A%20%20%20%20%20%20%20%20this._textareaHolder.setAttribute('width'%2C%20String(width%20%2B%203))%3B%0D%0A%20%20%20%20%20%20%20%20this._textareaHolder.setAttribute('height'%2C%20String(height%20%2B%203))%3B%0D%0A%20%20%20%20%20%20%20%20this._FakeWidth%20%3D%20width%20%2B%208%3B%0D%0A%20%20%20%20%20%20%20%20this._FakeHeight%20%3D%20height%20%2B%2016%3B%0D%0A%20%20%20%20%20%20%20%20this.updateWidth()%3B%0D%0A%20%20%20%20%20%20%20%20const%20ov%20%3D%20this.getValue()%3B%0D%0A%20%20%20%20%20%20%20%20this.setValue(ov%20%2B%20'~')%3B%0D%0A%20%20%20%20%20%20%20%20this.setValue(ov)%3B%0D%0A%20%20%20%20%20%20%20%20this.render_()%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_onInput()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.setValue(this._textarea.value)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20showEditor_()%20%7B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20implementations.FieldSnapBoolean%20%3D%20class%20FieldSnapBoolean%20extends%20Blockly.Field%20%7B%0D%0A%20%20%20%20%20%20constructor(opt_value)%20%7B%0D%0A%20%20%20%20%20%20%20%20opt_value%20%3D%20Number(opt_value)%3B%0D%0A%20%20%20%20%20%20%20%20super(opt_value)%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType('Boolean')%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType(Scratch.ArgumentType.SNAPBOOLEAN)%3B%0D%0A%20%20%20%20%20%20%20%20this.checkSymbol%20%3D%20String.fromCodePoint('10003')%3B%0D%0A%20%20%20%20%20%20%20%20this.slap%20%3D%20%60%24%7Bthis.checkSymbol%7D%5Cu00A0%5Cu00A0%5Cu00A0x%60%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%2F%2F%20Initial%20DOM%20building.%0D%0A%20%20%20%20%20%20init(...a)%20%7B%0D%0A%20%20%20%20%20%20%20%20Blockly.Field.prototype.init.call(this%2C%20...a)%3B%0D%0A%20%20%20%20%20%20%20%20_disableReporters.call(this)%3B%0D%0A%20%20%20%20%20%20%20%20const%20sliderCircle%20%3D%20document.createElementNS('http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%2C%20'circle')%3B%0D%0A%20%20%20%20%20%20%20%20sliderCircle.setAttribute('cx'%2C%20'0')%3B%0D%0A%20%20%20%20%20%20%20%20sliderCircle.setAttribute('cy'%2C%20'0')%3B%0D%0A%20%20%20%20%20%20%20%20sliderCircle.setAttribute('r'%2C%20'10')%3B%0D%0A%20%20%20%20%20%20%20%20sliderCircle.setAttribute('fill'%2C%20'white')%3B%0D%0A%20%20%20%20%20%20%20%20sliderCircle.setAttribute('transform'%2C%20'translate(16%2C%2016)')%3B%0D%0A%20%20%20%20%20%20%20%20this.sliderCircle_%20%3D%20sliderCircle%3B%0D%0A%20%20%20%20%20%20%20%20if%20(this.fieldGroup_)%20this.fieldGroup_.insertAdjacentElement('afterend'%2C%20sliderCircle)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%2F%2F%20Colors%20%3C3%0D%0A%20%20%20%20%20%20rerender()%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20fg_%20%3D%20this.fieldGroup_%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!fg_)%20return%3B%0D%0A%20%20%20%20%20%20%20%20const%20path%20%3D%20fg_%3F.previousElementSibling%3B%0D%0A%20%20%20%20%20%20%20%20if%20(path%3F.nodeName%20!%3D%3D%20'path')%20return%3B%0D%0A%20%20%20%20%20%20%20%20const%20circle%20%3D%20this.sliderCircle_%3B%0D%0A%20%20%20%20%20%20%20%20if%20(Number(this.getValue()))%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20path.setAttribute('stroke'%2C%20'%2321DD21')%3B%0D%0A%20%20%20%20%20%20%20%20%20%20path.setAttribute('fill'%2C%20'%2321DD21')%3B%0D%0A%20%20%20%20%20%20%20%20%20%20if%20(circle)%20circle.setAttribute('cx'%2C%20'24')%3B%0D%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20path.setAttribute('stroke'%2C%20'%23FF3333')%3B%0D%0A%20%20%20%20%20%20%20%20%20%20path.setAttribute('fill'%2C%20'%23FF3333')%3B%0D%0A%20%20%20%20%20%20%20%20%20%20if%20(circle)%20circle.setAttribute('cx'%2C%20'0')%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%2F%2F%20State%20management%0D%0A%20%20%20%20%20%20updateState(value%2C%20toggle)%20%7B%0D%0A%20%20%20%20%20%20%20%20let%20n%20%3D%20Number(value)%3B%0D%0A%20%20%20%20%20%20%20%20if%20(toggle)%20n%20%3D%20Number(!Boolean(Number(this.getValue())))%3B%0D%0A%20%20%20%20%20%20%20%20this.setValue(n)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20showEditor_()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.updateState(0%2C%20true)%3B%0D%0A%20%20%20%20%20%20%20%20this.render_()%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%2F%2F%20Rendering%0D%0A%20%20%20%20%20%20render_()%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(this.visible_%20%26%26%20this.textElement_)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Replace%20the%20text.%0D%0A%20%20%20%20%20%20%20%20%20%20this.textElement_.textContent%20%3D%20this.slap%3B%20%2F%2Fthis.getDisplayText_()%3B%0D%0A%20%20%20%20%20%20%20%20%20%20this.updateWidth()%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Update%20text%20centering%2C%20based%20on%20newly%20calculated%20width.%0D%0A%20%20%20%20%20%20%20%20%20%20var%20centerTextX%20%3D%20(this.size_.width%20-%20this.arrowWidth_)%20%2F%202%3B%0D%0A%20%20%20%20%20%20%20%20%20%20if%20(this.sourceBlock_.RTL)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20centerTextX%20%2B%3D%20this.arrowWidth_%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20In%20a%20text-editing%20shadow%20block's%20field%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20if%20half%20the%20text%20length%20is%20not%20at%20least%20center%20of%0D%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20visible%20field%20(FIELD_WIDTH)%2C%20center%20it%20there%20instead%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20unless%20there%20is%20a%20drop-down%20arrow.%0D%0A%20%20%20%20%20%20%20%20%20%20if%20(this.sourceBlock_.isShadow()%20%26%26%20!this.positionArrow)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20minOffset%20%3D%20Blockly.BlockSvg.FIELD_WIDTH%20%2F%202%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(this.sourceBlock_.RTL)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20X%20position%20starts%20at%20the%20left%20edge%20of%20the%20block%2C%20in%20both%20RTL%20and%20LTR.%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20First%20offset%20by%20the%20width%20of%20the%20block%20to%20move%20to%20the%20right%20edge%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20and%20then%20subtract%20to%20move%20to%20the%20same%20position%20as%20LTR.%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20minCenter%20%3D%20this.size_.width%20-%20minOffset%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20centerTextX%20%3D%20Math.min(minCenter%2C%20centerTextX)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20(width%20%2F%202)%20should%20exceed%20Blockly.BlockSvg.FIELD_WIDTH%20%2F%202%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20if%20the%20text%20is%20longer.%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20centerTextX%20%3D%20Math.max(minOffset%2C%20centerTextX)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Apply%20new%20text%20element%20x%20position.%0D%0A%20%20%20%20%20%20%20%20%20%20this.textElement_.setAttribute('x'%2C%20centerTextX)%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Update%20any%20drawn%20box%20to%20the%20correct%20width%20and%20height.%0D%0A%20%20%20%20%20%20%20%20if%20(this.box_)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20this.box_.setAttribute('width'%2C%20this.size_.width)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20this.box_.setAttribute('height'%2C%20this.size_.height)%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20%20%20if%20(this.textElement_)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20this.textElement_.style.display%20%3D%20'none'%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20%20%20this.rerender()%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20implementations.FieldInlineSlider%20%3D%20class%20FieldInlineSlider%20extends%20Blockly.FieldNumber%20%7B%0D%0A%20%20%20%20%20%20constructor(opt_value)%20%7B%0D%0A%20%20%20%20%20%20%20%20opt_value%20%3D%20Scratch.ArgumentType.INLINESLIDER%3B%0D%0A%20%20%20%20%20%20%20%20super(opt_value)%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType('Number')%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType(Scratch.ArgumentType.INLINESLIDER)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20updateWidth()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.size_.width%20%3D%20139%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20init(...initArgs)%20%7B%0D%0A%20%20%20%20%20%20%20%20Blockly.FieldNumber.prototype.init.call(this%2C%20...initArgs)%3B%0D%0A%20%20%20%20%20%20%20%20_disableReporters.call(this)%3B%0D%0A%20%20%20%20%20%20%20%20this.textNode__%20%3D%20this.sourceBlock_.svgPath_.parentNode.querySelector('g.blocklyEditableText%20text')%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!!this.textNode__)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20this.textNode__.style.display%20%3D%20'none'%3B%0D%0A%20%20%20%20%20%20%20%20%20%20_fixColours.call(this%2C%20false%2C%20this.sourceBlock_.parentBlock_.colour_)%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20if%20(!String(this.getValue()).includes('%2C'))%20this.setValue(%60%24%7Bthis.getValue()%7D%2C%24%7BNumber(this.getValue())-Number(this.getValue())%2F2%7D%2C%24%7BNumber(this.getValue())%2BNumber(this.getValue())%2F2%7D%60)%3B%0D%0A%20%20%20%20%20%20%20%20const%20vals%20%3D%20this.getValue().split('%2C')%3B%0D%0A%20%20%20%20%20%20%20%20const%20input%20%3D%20document.createElement('input')%3B%0D%0A%20%20%20%20%20%20%20%20input.type%20%3D%20'range'%3B%0D%0A%20%20%20%20%20%20%20%20input.value%20%3D%20Number(vals%5B0%5D)%3B%0D%0A%20%20%20%20%20%20%20%20input.min%20%3D%20Number(vals%5B1%5D)%3B%0D%0A%20%20%20%20%20%20%20%20input.max%20%3D%20Number(vals%5B2%5D)%3B%0D%0A%20%20%20%20%20%20%20%20input.width%20%3D%20139%3B%0D%0A%20%20%20%20%20%20%20%20input.height%20%3D%2016%3B%0D%0A%20%20%20%20%20%20%20%20input.addEventListener('input'%2C%20()%20%3D%3E%20this._onSliderInput())%3B%0D%0A%20%20%20%20%20%20%20%20const%20sliderHolder%20%3D%20document.createElementNS('http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%2C%20'foreignObject')%3B%0D%0A%20%20%20%20%20%20%20%20sliderHolder.setAttribute('x'%2C%20'16')%3B%0D%0A%20%20%20%20%20%20%20%20sliderHolder.setAttribute('y'%2C%20'8')%3B%0D%0A%20%20%20%20%20%20%20%20sliderHolder.setAttribute('width'%2C%20'139')%3B%0D%0A%20%20%20%20%20%20%20%20sliderHolder.setAttribute('height'%2C%20'16')%3B%0D%0A%20%20%20%20%20%20%20%20sliderHolder.addEventListener('mousedown'%2C%20(e)%20%3D%3E%20e.stopPropagation())%3B%0D%0A%20%20%20%20%20%20%20%20if%20(this.fieldGroup_)%20this.fieldGroup_.insertAdjacentElement('afterend'%2C%20sliderHolder)%3B%0D%0A%20%20%20%20%20%20%20%20sliderHolder.appendChild(input)%3B%0D%0A%20%20%20%20%20%20%20%20this._slider%20%3D%20input%3B%0D%0A%20%20%20%20%20%20%20%20this._sliderHolder%20%3D%20sliderHolder%3B%0D%0A%20%20%20%20%20%20%20%20this.render_()%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_onInput()%20%7B%0D%0A%20%20%20%20%20%20%20%20this._valInput.min%20%3D%20this._minInput.value%3B%0D%0A%20%20%20%20%20%20%20%20this._valInput.max%20%3D%20this._maxInput.value%3B%0D%0A%20%20%20%20%20%20%20%20this._slider.value%20%3D%20this._valInput.value%3B%0D%0A%20%20%20%20%20%20%20%20this._slider.min%20%3D%20this._minInput.value%3B%0D%0A%20%20%20%20%20%20%20%20this._slider.max%20%3D%20this._maxInput.value%3B%0D%0A%20%20%20%20%20%20%20%20const%20val%20%3D%20%60%24%7Bthis._slider.value%7D%2C%24%7Bthis._minInput.value%7D%2C%24%7Bthis._maxInput.value%7D%60%3B%0D%0A%20%20%20%20%20%20%20%20this.setValue(val)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_onSliderInput()%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(!!this._valInput)%20this._valInput.value%20%3D%20Number(this._slider.value)%3B%0D%0A%20%20%20%20%20%20%20%20const%20val%20%3D%20%60%24%7Bthis._slider.value%7D%2C%24%7Bthis._slider.min%7D%2C%24%7Bthis._slider.max%7D%60%3B%0D%0A%20%20%20%20%20%20%20%20this.setValue(val)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20showEditor_()%20%7B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.clearContent()%3B%0D%0A%20%20%20%20%20%20%20%20const%20div%20%3D%20Blockly.DropDownDiv.getContentDiv()%3B%0D%0A%20%20%20%20%20%20%20%20const%20minInput%20%3D%20document.createElement('input')%3B%0D%0A%20%20%20%20%20%20%20%20minInput.type%20%3D%20'number'%3B%0D%0A%20%20%20%20%20%20%20%20minInput.value%20%3D%20Number(this._slider.min)%3B%0D%0A%20%20%20%20%20%20%20%20const%20maxInput%20%3D%20document.createElement('input')%3B%0D%0A%20%20%20%20%20%20%20%20maxInput.type%20%3D%20'number'%3B%0D%0A%20%20%20%20%20%20%20%20maxInput.value%20%3D%20Number(this._slider.max)%3B%0D%0A%20%20%20%20%20%20%20%20const%20valInput%20%3D%20document.createElement('input')%3B%0D%0A%20%20%20%20%20%20%20%20valInput.type%20%3D%20'number'%3B%0D%0A%20%20%20%20%20%20%20%20valInput.value%20%3D%20Number(this._slider.value)%3B%0D%0A%20%20%20%20%20%20%20%20valInput.min%20%3D%20minInput.value%3B%0D%0A%20%20%20%20%20%20%20%20valInput.max%20%3D%20maxInput.value%3B%0D%0A%20%20%20%20%20%20%20%20div.append(document.createTextNode('Min%3A%20'))%3B%0D%0A%20%20%20%20%20%20%20%20div.append(minInput)%3B%0D%0A%20%20%20%20%20%20%20%20div.append(document.createElement('br'))%3B%0D%0A%20%20%20%20%20%20%20%20div.append(document.createTextNode('Value%3A%20'))%3B%0D%0A%20%20%20%20%20%20%20%20div.append(valInput)%3B%0D%0A%20%20%20%20%20%20%20%20div.append(document.createElement('br'))%3B%0D%0A%20%20%20%20%20%20%20%20div.append(document.createTextNode('Max%3A%20'))%3B%0D%0A%20%20%20%20%20%20%20%20div.append(maxInput)%3B%0D%0A%20%20%20%20%20%20%20%20this._minInput%20%3D%20minInput%3B%0D%0A%20%20%20%20%20%20%20%20this._maxInput%20%3D%20maxInput%3B%0D%0A%20%20%20%20%20%20%20%20this._valInput%20%3D%20valInput%3B%0D%0A%20%20%20%20%20%20%20%20minInput.addEventListener('input'%2C%20()%20%3D%3E%20this._onInput())%3B%0D%0A%20%20%20%20%20%20%20%20maxInput.addEventListener('input'%2C%20()%20%3D%3E%20this._onInput())%3B%0D%0A%20%20%20%20%20%20%20%20valInput.addEventListener('input'%2C%20()%20%3D%3E%20this._onInput())%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.setColour(this.sourceBlock_.parentBlock_.getColour()%2C%20this.sourceBlock_.parentBlock_.getColourTertiary())%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.setCategory(this.sourceBlock_.parentBlock_.getCategory())%3B%0D%0A%20%20%20%20%20%20%20%20_moveDropdown.call(this%2C%20true)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20implementations.FieldHiddenTextInput%20%3D%20class%20FieldHiddenTextInput%20extends%20Blockly.FieldTextInput%20%7B%0D%0A%20%20%20%20%20%20constructor(opt_value)%20%7B%0D%0A%20%20%20%20%20%20%20%20opt_value%20%3D%20Scratch.ArgumentType.HIDDENSTRING%3B%0D%0A%20%20%20%20%20%20%20%20super(opt_value)%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType('String')%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType(Scratch.ArgumentType.HIDDENSTRING)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20init(...initArgs)%20%7B%0D%0A%20%20%20%20%20%20%20%20Blockly.FieldTextInput.prototype.init.call(this%2C%20...initArgs)%3B%0D%0A%20%20%20%20%20%20%20%20_disableReporters.call(this)%3B%0D%0A%20%20%20%20%20%20%20%20this.textNode__%20%3D%20this.sourceBlock_.svgPath_.parentNode.querySelector('g.blocklyEditableText%20text')%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!!this.textNode__)%20_fixColours.call(this%2C%20true%2C%20this.sourceBlock_.parentBlock_.colour_%2C%20this.sourceBlock_.parentBlock_.colour_)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20showEditor_(...showArgs)%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(!!this.textNode__)%20_delCssNattr(this.textNode__%2C%20'fill')%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.FieldTextInput.prototype.showEditor_.call(this%2C%20...showArgs)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20implementations.FieldInlineDate%20%3D%20class%20FieldInlineDate%20extends%20Blockly.Field%20%7B%0D%0A%20%20%20%20%20%20%2F%2F%20For%20help%20with%20date%20related%20stuff%20look%20at%20these%20at%20they%20helped%20me%20alot.%0D%0A%20%20%20%20%20%20%2F%2F%20https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FHTML%2FElement%2Finput%2Fdate%0D%0A%20%20%20%20%20%20%2F%2F%20https%3A%2F%2Fstackoverflow.com%2Fquestions%2F847185%2Fconvert-a-unix-timestamp-to-time-in-javascript%0D%0A%20%20%20%20%20%20%2F%2F%20https%3A%2F%2Fstackoverflow.com%2Fquestions%2F7556591%2Fis-the-javascript-date-object-always-one-day-off%0D%0A%20%20%20%20%20%20constructor(opt_value)%20%7B%0D%0A%20%20%20%20%20%20%20%20opt_value%20%3D%20Scratch.ArgumentType.INLINEDATE%3B%0D%0A%20%20%20%20%20%20%20%20super(opt_value)%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType('Number')%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType(Scratch.ArgumentType.INLINEDATE)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20updateWidth()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.size_.width%20%3D%20136%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20init(...initArgs)%20%7B%0D%0A%20%20%20%20%20%20%20%20Blockly.FieldNumber.prototype.init.call(this%2C%20...initArgs)%3B%0D%0A%20%20%20%20%20%20%20%20_disableReporters.call(this)%3B%0D%0A%20%20%20%20%20%20%20%20this.textNode__%20%3D%20this.sourceBlock_.svgPath_.parentNode.querySelector('g.blocklyEditableText%20text')%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!!this.textNode__)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20this.textNode__.style.display%20%3D%20'none'%3B%0D%0A%20%20%20%20%20%20%20%20%20%20_fixColours.call(this%2C%20false%2C%20this.sourceBlock_.parentBlock_.colour_)%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20const%20validDateFormat%20%3D%20(%2F(%5Cd%7B4%7D(%5C-%7C%5C%2F)%5Cd%7B2%7D(%5C-%7C%5C%2F)%5Cd%7B2%7D)%2Fi.test(this.getValue()))%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!validDateFormat)%20this.setValue('2001-01-01')%3B%0D%0A%20%20%20%20%20%20%20%20const%20date%20%3D%20new%20Date(this._getDate())%3B%0D%0A%20%20%20%20%20%20%20%20const%20ts%20%3D%20this._dateFormat(date)%3B%0D%0A%20%20%20%20%20%20%20%20this.setValue(ts)%3B%0D%0A%20%20%20%20%20%20%20%20const%20input%20%3D%20document.createElement('input')%3B%0D%0A%20%20%20%20%20%20%20%20input.type%20%3D%20'date'%3B%0D%0A%20%20%20%20%20%20%20%20this._fixDate(input)%3B%0D%0A%20%20%20%20%20%20%20%20input.width%20%3D%20136%3B%0D%0A%20%20%20%20%20%20%20%20input.height%20%3D%2022%3B%0D%0A%20%20%20%20%20%20%20%20input.addEventListener('input'%2C%20()%20%3D%3E%20this._onInput())%3B%0D%0A%20%20%20%20%20%20%20%20input.addEventListener('change'%2C%20()%20%3D%3E%20this._onInput())%3B%0D%0A%20%20%20%20%20%20%20%20const%20dateHolder%20%3D%20document.createElementNS('http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%2C%20'foreignObject')%3B%0D%0A%20%20%20%20%20%20%20%20dateHolder.setAttribute('x'%2C%20'8')%3B%0D%0A%20%20%20%20%20%20%20%20dateHolder.setAttribute('y'%2C%20'5')%3B%0D%0A%20%20%20%20%20%20%20%20dateHolder.setAttribute('width'%2C%20'136')%3B%0D%0A%20%20%20%20%20%20%20%20dateHolder.setAttribute('height'%2C%20'22')%3B%0D%0A%20%20%20%20%20%20%20%20dateHolder.addEventListener('mousedown'%2C%20(e)%20%3D%3E%20e.stopPropagation())%3B%0D%0A%20%20%20%20%20%20%20%20if%20(this.fieldGroup_)%20this.fieldGroup_.insertAdjacentElement('afterend'%2C%20dateHolder)%3B%0D%0A%20%20%20%20%20%20%20%20dateHolder.appendChild(input)%3B%0D%0A%20%20%20%20%20%20%20%20this._date%20%3D%20input%3B%0D%0A%20%20%20%20%20%20%20%20this._dateHolder%20%3D%20dateHolder%3B%0D%0A%20%20%20%20%20%20%20%20this.render_()%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_onInput()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.setValue(this._date.value.toString())%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_getDate()%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20this.getValue().replaceAll('-'%2C%20'%2F')%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_dateFormat(date)%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20%60%24%7Bdate.getUTCFullYear()%7D-%24%7BString(date.getUTCMonth()%20%2B%201).padStart(2%2C%20'0')%7D-%24%7BString(date.getUTCDate()).padStart(2%2C%20'0')%7D%60%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_fixDate(_date)%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20date%20%3D%20new%20Date(this._getDate())%3B%0D%0A%20%20%20%20%20%20%20%20const%20ts%20%3D%20this._dateFormat(date)%3B%0D%0A%20%20%20%20%20%20%20%20const%20msUnix%20%3D%20date.getTime()%3B%0D%0A%20%20%20%20%20%20%20%20_date.valueAsNumber%20%3D%20msUnix%3B%0D%0A%20%20%20%20%20%20%20%20_date.value%20%3D%20ts%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20showEditor_()%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20TODO%3A%20add%20min%20and%20max%20date%20along%20with%20%22step%22%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%2F%2F%20icons%20from%3A%20https%3A%2F%2Ffonts.google.com%2Ficons%0D%0A%20%20%20%20const%20_fileIconColor%20%3D%20%60style%3D%22fill%3A%23FFFFFF%3Bstroke%3A%23FFFFFF%3B%22%20fill%3D%22%23FFFFFF%22%20stroke%3D%22%23FFFFFF%22%60%3B%0D%0A%20%20%20%20const%20settingsIcon%20%3D%20%60data%3Aimage%2Fsvg%2Bxml%3Bbase64%2C%24%7Bbtoa(%60%3Csvg%20%24%7B_fileIconColor%7D%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2224%22%20viewBox%3D%220%20-960%20960%20960%22%20width%3D%2224%22%3E%3Cpath%20d%3D%22m370-80-16-128q-13-5-24.5-12T307-235l-119%2050L78-375l103-78q-1-7-1-13.5v-27q0-6.5%201-13.5L78-585l110-190%20119%2050q11-8%2023-15t24-12l16-128h220l16%20128q13%205%2024.5%2012t22.5%2015l119-50%20110%20190-103%2078q1%207%201%2013.5v27q0%206.5-2%2013.5l103%2078-110%20190-118-50q-11%208-23%2015t-24%2012L590-80H370Zm70-80h79l14-106q31-8%2057.5-23.5T639-327l99%2041%2039-68-86-65q5-14%207-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99%2042q-22-23-48.5-38.5T533-694l-13-106h-79l-14%20106q-31%208-57.5%2023.5T321-633l-99-41-39%2068%2086%2064q-5%2015-7%2030t-2%2032q0%2016%202%2031t7%2030l-86%2065%2039%2068%2099-42q22%2023%2048.5%2038.5T427-266l13%20106Zm42-180q58%200%2099-41t41-99q0-58-41-99t-99-41q-59%200-99.5%2041T342-480q0%2058%2040.5%2099t99.5%2041Zm-2-140Z%22%2F%3E%3C%2Fsvg%3E%60)%7D%60%3B%0D%0A%20%20%20%20const%20uploadIcon%20%3D%20%60data%3Aimage%2Fsvg%2Bxml%3Bbase64%2C%24%7Bbtoa(%60%3Csvg%20%24%7B_fileIconColor%7D%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2224%22%20viewBox%3D%220%20-960%20960%20960%22%20width%3D%2224%22%3E%3Cpath%20d%3D%22M440-200h80v-167l64%2064%2056-57-160-160-160%20160%2057%2056%2063-63v167ZM240-80q-33%200-56.5-23.5T160-160v-640q0-33%2023.5-56.5T240-880h320l240%20240v480q0%2033-23.5%2056.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200%20640-640Z%22%2F%3E%3C%2Fsvg%3E%60)%7D%60%3B%0D%0A%20%20%20%20implementations.FieldFileInput%20%3D%20class%20FieldFileInput%20extends%20Blockly.Field%20%7B%0D%0A%20%20%20%20%20%20constructor(opt_value)%20%7B%0D%0A%20%20%20%20%20%20%20%20opt_value%20%3D%20Scratch.ArgumentType.FILE%3B%0D%0A%20%20%20%20%20%20%20%20super(opt_value)%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType('String')%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType(Scratch.ArgumentType.FILE)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20updateWidth()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.size_.width%20%3D%2040%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20init(...initArgs)%20%7B%0D%0A%20%20%20%20%20%20%20%20this._delim%20%3D%20'%5Cn'%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.FieldTextInput.prototype.init.call(this%2C%20...initArgs)%3B%0D%0A%20%20%20%20%20%20%20%20_disableReporters.call(this)%3B%0D%0A%20%20%20%20%20%20%20%20this.textNode__%20%3D%20this.sourceBlock_.svgPath_.parentNode.querySelector('g.blocklyEditableText%20text')%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!!this.textNode__)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20this.textNode__.style.display%20%3D%20'none'%3B%0D%0A%20%20%20%20%20%20%20%20%20%20_fixColours.call(this%2C%20false%2C%20this.sourceBlock_.parentBlock_.colour_)%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20this._fileData%20%3D%20null%3B%0D%0A%20%20%20%20%20%20%20%20const%20fg_%20%3D%20this.fieldGroup_%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!fg_)%20return%3B%0D%0A%20%20%20%20%20%20%20%20const%20path%20%3D%20fg_%3F.previousElementSibling%3B%0D%0A%20%20%20%20%20%20%20%20if%20(path%3F.nodeName%20!%3D%3D%20'path')%20return%3B%0D%0A%20%20%20%20%20%20%20%20const%20settingsButton%20%3D%20document.createElementNS('http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%2C%20'image')%3B%0D%0A%20%20%20%20%20%20%20%20settingsButton.setAttribute('width'%2C%20'24')%3B%0D%0A%20%20%20%20%20%20%20%20settingsButton.setAttribute('height'%2C%20'24')%3B%0D%0A%20%20%20%20%20%20%20%20settingsButton.setAttribute('x'%2C%20'19.5')%3B%0D%0A%20%20%20%20%20%20%20%20settingsButton.setAttribute('y'%2C%20'4')%3B%0D%0A%20%20%20%20%20%20%20%20settingsButton.setAttribute('xlink%3Ahref'%2C%20settingsIcon)%3B%0D%0A%20%20%20%20%20%20%20%20settingsButton.setAttribute('href'%2C%20settingsIcon)%3B%0D%0A%20%20%20%20%20%20%20%20settingsButton.addEventListener('mousedown'%2C%20(e)%20%3D%3E%20this._onSettingsClick(e))%3B%0D%0A%20%20%20%20%20%20%20%20this._settingsButton%20%3D%20settingsButton%3B%0D%0A%20%20%20%20%20%20%20%20const%20uploadButton%20%3D%20document.createElementNS('http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%2C%20'image')%3B%0D%0A%20%20%20%20%20%20%20%20uploadButton.setAttribute('width'%2C%20'24')%3B%0D%0A%20%20%20%20%20%20%20%20uploadButton.setAttribute('height'%2C%20'24')%3B%0D%0A%20%20%20%20%20%20%20%20uploadButton.setAttribute('x'%2C%20'-4')%3B%0D%0A%20%20%20%20%20%20%20%20uploadButton.setAttribute('y'%2C%20'3.5')%3B%0D%0A%20%20%20%20%20%20%20%20uploadButton.setAttribute('xlink%3Ahref'%2C%20uploadIcon)%3B%0D%0A%20%20%20%20%20%20%20%20uploadButton.setAttribute('href'%2C%20uploadIcon)%3B%0D%0A%20%20%20%20%20%20%20%20uploadButton.addEventListener('mousedown'%2C%20(e)%20%3D%3E%20this._onUploadClick(e))%3B%0D%0A%20%20%20%20%20%20%20%20this._uploadButton%20%3D%20uploadButton%3B%0D%0A%20%20%20%20%20%20%20%20fg_.appendChild(settingsButton)%3B%0D%0A%20%20%20%20%20%20%20%20fg_.appendChild(uploadButton)%3B%0D%0A%20%20%20%20%20%20%20%20this._saveFileData()%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_loadData(item)%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20value%20%3D%20this.getValue()%3B%0D%0A%20%20%20%20%20%20%20%20const%20cr1%20%3D%20value.indexOf(this._delim)%3B%0D%0A%20%20%20%20%20%20%20%20const%20cr2%20%3D%20value.indexOf(this._delim%2C%20cr1%20%2B%201)%3B%0D%0A%20%20%20%20%20%20%20%20switch%20(item)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20case%201%3A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this._fileData%20%3D%20value.substr(cr2%20%2B%201)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0D%0A%20%20%20%20%20%20%20%20%20%20case%202%3A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this._outputOptions.value%20%3D%20value.slice(0%2C%20cr1)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0D%0A%20%20%20%20%20%20%20%20%20%20case%203%3A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this._fileLimiter.value%20%3D%20value.slice(cr1%20%2B%201%2C%20cr2)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0D%0A%20%20%20%20%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_saveFileData(skipLoad)%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(!Boolean(skipLoad%20%3F%3F%20false))%20this._loadData(1)%3B%0D%0A%20%20%20%20%20%20%20%20this.showEditor_(true)%3B%0D%0A%20%20%20%20%20%20%20%20this._onInput(this._fileData)%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.hideWithoutAnimation()%3B%0D%0A%20%20%20%20%20%20%20%20this._fileData%20%3D%20null%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_onSettingsClick(e)%20%7B%0D%0A%20%20%20%20%20%20%20%20e.stopPropagation()%3B%0D%0A%20%20%20%20%20%20%20%20this.showEditor_(true)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_onUploadClick(e)%20%7B%0D%0A%20%20%20%20%20%20%20%20e.stopPropagation()%3B%0D%0A%20%20%20%20%20%20%20%20const%20fileInput%20%3D%20document.createElement('input')%3B%0D%0A%20%20%20%20%20%20%20%20this.showEditor_(true)%3B%0D%0A%20%20%20%20%20%20%20%20fileInput.type%20%3D%20'file'%3B%0D%0A%20%20%20%20%20%20%20%20fileInput.accept%20%3D%20this._fileLimiter.value.replaceAll(this._delim%2C%20'').trim()%20%7C%7C%20'*.*'%3B%0D%0A%20%20%20%20%20%20%20%20const%20loadType%20%3D%20this._outputOptions.value%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.hideWithoutAnimation()%3B%0D%0A%20%20%20%20%20%20%20%20const%20fiErr%20%3D%20(c%2C%20alr)%20%3D%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20c%20%3D%20!c%3B%0D%0A%20%20%20%20%20%20%20%20%20%20if%20(c)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this._uploadButton.style.display%20%3D%20'block'%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20fileInput.remove()%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20alert(alr)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20return%20c%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20fileInput.addEventListener('change'%2C%20(event)%20%3D%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20this._uploadButton.style.display%20%3D%20'none'%3B%0D%0A%20%20%20%20%20%20%20%20%20%20const%20fileList%20%3D%20event.target.files%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20This%20wont%20do%20anything%20why%20%3Acri%3A%0D%0A%20%20%20%20%20%20%20%20%20%20let%20noFileErr%20%3D%20()%20%3D%3E%20false%3B%0D%0A%20%20%20%20%20%20%20%20%20%20const%20unfe%20%3D%20()%20%3D%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(fileList.length%20%3C%200)%20noFileErr%20%3D%20()%20%3D%3E%20fiErr(true%2C%20'No%20file%20uploaded%3F')%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20true%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0D%0A%20%20%20%20%20%20%20%20%20%20window.addEventListener('focus'%2C%20unfe%2C%20%7Bonce%3A%20true%7D)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20if%20(unfe()%20%26%26%20noFileErr())%20return%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Ok%20done%20crying.%0D%0A%20%20%20%20%20%20%20%20%20%20const%20reader%20%3D%20new%20FileReader()%3B%0D%0A%20%20%20%20%20%20%20%20%20%20reader.addEventListener('load'%2C%20(event)%20%3D%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this._fileData%20%3D%20event.target.result%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this._saveFileData(true)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this._uploadButton.style.display%20%3D%20'block'%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20fileInput.remove()%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20alert('File%20uploaded.')%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%7D)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20const%20file%20%3D%20fileList%5B0%5D%3B%0D%0A%20%20%20%20%20%20%20%20%20%20if%20(fiErr(!!file%2C%20'File%20is%20null%3F!!%3F%3F'))%20return%3B%0D%0A%20%20%20%20%20%20%20%20%20%20switch(loadType)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20case%20'dataURL'%3A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reader.readAsDataURL(file)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20case%20'text'%3A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20reader.readAsText(file)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(fiErr(false%2C%20'Invalid%20output%20option.'))%20return%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%7D)%3B%0D%0A%20%20%20%20%20%20%20%20fileInput.click()%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_getFileData()%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(!!this._fileData)%20return%20this._fileData%3B%0D%0A%20%20%20%20%20%20%20%20this._loadData(1)%3B%0D%0A%20%20%20%20%20%20%20%20const%20fileData%20%3D%20this._fileData%20%3F%3F%20''%3B%0D%0A%20%20%20%20%20%20%20%20this._fileData%20%3D%20null%3B%0D%0A%20%20%20%20%20%20%20%20return%20fileData%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_onInput(fileData)%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(this._fileLimiter.value.trim().length%20%3C%201)%20this._fileLimiter.value%20%3D%20'*.*'%3B%0D%0A%20%20%20%20%20%20%20%20this.setValue(%60%24%7Bthis._outputOptions.value%7D%24%7Bthis._delim%7D%24%7Bthis._fileLimiter.value.replaceAll(this._delim%2C%20'')%7D%24%7Bthis._delim%7D%24%7BfileData%20%3F%3F%20this._getFileData()%7D%60)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_optDropdown(selected%2C%20...optValues)%20%7B%0D%0A%20%20%20%20%20%20%20%20optValues%20%3D%20(optValues%20%3F%3F%20%5B%5D).map(opt%20%3D%3E%20%60%3Coption%20value%3D%22%24%7Bopt%7D%22%24%7Bselected%3D%3D%3Dopt%20%3F%20'selected%3D%22%22'%20%3A%20''%7D%3E%24%7Bopt%7D%3C%2Foption%3E%60).join('%5Cn')%3B%0D%0A%20%20%20%20%20%20%20%20const%20select%20%3D%20document.createElement('select')%3B%0D%0A%20%20%20%20%20%20%20%20return%20%7B%20select%2C%20optValues%20%7D%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20showEditor_(forceShow)%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(!Boolean(forceShow%20%3F%3F%20false))%20return%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.clearContent()%3B%0D%0A%20%20%20%20%20%20%20%20const%20div%20%3D%20Blockly.DropDownDiv.getContentDiv()%3B%0D%0A%20%20%20%20%20%20%20%20const%20outputOptions_temp%20%3D%20this._optDropdown('dataURL'%2C%20'dataURL'%2C%20'text')%3B%0D%0A%20%20%20%20%20%20%20%20const%20outputOptions%20%3D%20outputOptions_temp.select%3B%0D%0A%20%20%20%20%20%20%20%20outputOptions.addEventListener('input'%2C%20()%20%3D%3E%20this._onInput())%3B%0D%0A%20%20%20%20%20%20%20%20const%20fileLimiter%20%3D%20document.createElement('input')%3B%0D%0A%20%20%20%20%20%20%20%20fileLimiter.addEventListener('input'%2C%20()%20%3D%3E%20this._onInput())%3B%0D%0A%20%20%20%20%20%20%20%20const%20clearBtn%20%3D%20document.createElement('button')%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!!this._getFileData().at(0))%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20clearBtn.addEventListener('click'%2C%20()%20%3D%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this._fileData%20%3D%20null%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this._onInput('')%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20clearBtn.nextElementSibling.remove()%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20clearBtn.remove()%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%7D)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20div.appendChild(clearBtn)%3B%0D%0A%20%20%20%20%20%20%20%20%20%20clearBtn.textContent%20%3D%20'Clear%20file.'%3B%0D%0A%20%20%20%20%20%20%20%20%20%20div.appendChild(document.createElement('br'))%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20div.appendChild(document.createTextNode('Upload%20as%3A%20'))%3B%0D%0A%20%20%20%20%20%20%20%20div.appendChild(outputOptions)%3B%0D%0A%20%20%20%20%20%20%20%20outputOptions.innerHTML%20%3D%20outputOptions_temp.optValues%3B%0D%0A%20%20%20%20%20%20%20%20div.appendChild(document.createElement('br'))%3B%0D%0A%20%20%20%20%20%20%20%20div.appendChild(document.createTextNode('Limit%20file%20types%3A%20'))%3B%0D%0A%20%20%20%20%20%20%20%20div.appendChild(fileLimiter)%3B%0D%0A%20%20%20%20%20%20%20%20div.appendChild(document.createElement('br'))%3B%0D%0A%20%20%20%20%20%20%20%20this._outputOptions%20%3D%20outputOptions%3B%0D%0A%20%20%20%20%20%20%20%20this._fileLimiter%20%3D%20fileLimiter%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.setColour(this.sourceBlock_.parentBlock_.getColour()%2C%20this.sourceBlock_.parentBlock_.getColourTertiary())%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.DropDownDiv.setCategory(this.sourceBlock_.parentBlock_.getCategory())%3B%0D%0A%20%20%20%20%20%20%20%20_moveDropdown.call(this%2C%20true)%3B%0D%0A%20%20%20%20%20%20%20%20this._loadData(2)%3B%0D%0A%20%20%20%20%20%20%20%20this._loadData(3)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20implementations.FieldInlineDoom%20%3D%20class%20FieldInlineDoom%20extends%20Blockly.Field%20%7B%0D%0A%20%20%20%20%20%20showEditor_()%20%7B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20constructor(opt_value)%20%7B%0D%0A%20%20%20%20%20%20%20%20opt_value%20%3D%20'InlineDoom'%3B%0D%0A%20%20%20%20%20%20%20%20super(opt_value)%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType('String')%3B%0D%0A%20%20%20%20%20%20%20%20this.addArgType('InlineDoom')%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20updateWidth()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.size_.width%20%3D%20650%3B%0D%0A%20%20%20%20%20%20%20%20this.size_.height%20%3D%20410%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20init(...initArgs)%20%7B%0D%0A%20%20%20%20%20%20%20%20this.inlineDblRender%20%3D%20true%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.Field.prototype.init.call(this%2C%20...initArgs)%3B%0D%0A%20%20%20%20%20%20%20%20_disableReporters.call(this)%3B%0D%0A%20%20%20%20%20%20%20%20this.textNode__%20%3D%20this.sourceBlock_.svgPath_.parentNode.querySelector('g.blocklyEditableText%20text')%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!!this.textNode__)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20this.textNode__.style.display%20%3D%20'none'%3B%0D%0A%20%20%20%20%20%20%20%20%20%20_fixColours.call(this%2C%20false%2C%20this.sourceBlock_.parentBlock_.colour_)%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20const%20fg_%20%3D%20this.fieldGroup_%3B%0D%0A%20%20%20%20%20%20%20%20if%20(!fg_)%20return%3B%0D%0A%20%20%20%20%20%20%20%20const%20path%20%3D%20fg_%3F.previousElementSibling%3B%0D%0A%20%20%20%20%20%20%20%20if%20(path%3F.nodeName%20!%3D%3D%20'path')%20return%3B%0D%0A%20%20%20%20%20%20%20%20const%20fObj%20%3D%20document.createElementNS('http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%2C%20'foreignObject')%3B%0D%0A%20%20%20%20%20%20%20%20fObj.setAttribute('width'%2C%20'650')%3B%0D%0A%20%20%20%20%20%20%20%20fObj.setAttribute('height'%2C%20'410')%3B%0D%0A%20%20%20%20%20%20%20%20fObj.setAttribute('x'%2C%20'0')%3B%0D%0A%20%20%20%20%20%20%20%20fObj.setAttribute('y'%2C%20'0')%3B%0D%0A%20%20%20%20%20%20%20%20this._fObj%20%3D%20fObj%3B%0D%0A%20%20%20%20%20%20%20%20this.fg_%20%3D%20fg_%3B%0D%0A%20%20%20%20%20%20%20%20if%20(this.fieldGroup_)%20this.fieldGroup_.insertAdjacentElement('afterend'%2C%20fObj)%3B%0D%0A%20%20%20%20%20%20%20%20this._addDOOM()%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20_addDOOM()%20%7B%0D%0A%20%20%20%20%20%20%20%20let%20frame%20%3D%20document.createElement('iframe')%3B%0D%0A%20%20%20%20%20%20%20%20frame.width%20%3D%20640%3B%0D%0A%20%20%20%20%20%20%20%20frame.height%20%3D%20400%3B%0D%0A%20%20%20%20%20%20%20%20frame.id%20%3D%20'DOOM'%3B%0D%0A%20%20%20%20%20%20%20%20this._fObj.appendChild(frame)%3B%0D%0A%20%20%20%20%20%20%20%20%2F**%0D%0A%20%20%20%20%20%20%20%20%20%20*%20%0D%0A%20%20%20%20%20%20%20%20%20%20*%20ORIGINAL%3A%20https%3A%2F%2Fdiekmann.github.io%2Fwasm-fizzbuzz%2Fdoom%2F%0D%0A%20%20%20%20%20%20%20%20%20%20*%20Ported%20for%20use%20in%20turbowarp%20blocks%0D%0A%20%20%20%20%20%20%20%20%20%20*%20%0D%0A%20%20%20%20%20%20%20%20%20%20*%2F%0D%0A%20%20%20%20%20%20%20%20frame.srcdoc%20%3D%20atob(%60PCEtLSBPUklHSU5BTDogaHR0cHM6Ly9kaWVrbWFubi5naXRodWIuaW8vd2FzbS1maXp6YnV6ei9kb29tLyAtLT48IWRvY3R5cGVodG1sPjxodG1sPjxib2R5PjxET09NPjxzdHlsZT4jb3V0cHV0e2JvcmRlcjozcHggZ3Jvb3ZlICM3ZmZmZDQ7YmFja2dyb3VuZC1jb2xvcjpiaXNxdWU7d2lkdGg6NTUwcHg7aGVpZ2h0OjQwMHB4O2ZvbnQtZmFtaWx5Om1vbm9zcGFjZSxzZXJpZjtmb250LXNpemU6MTBweDtvdmVyZmxvdy15OnNjcm9sbH0jb3V0cHV0IHNwYW4ubG9ne2NvbG9yOiM0ODNkOGJ9I291dHB1dCBzcGFuLnN0ZG91dHtjb2xvcjojMDAwfSNvdXRwdXQgc3Bhbi5zdGRlcnJ7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOmJyb3dufS5jb250YWluZXJ7ZGlzcGxheTpmbGV4fSp7bWFyZ2luOjBweDtwYWRkaW5nOjBweH08L3N0eWxlPjxzcGFuIGhpZGRlbj48cCBpZD1mb2N1c2hpbnQ%2BPC9wPjxwPjxidXR0b24gaWQ9ZW50ZXJCdXR0b24%2BPC9idXR0b24%2BPGJ1dHRvbiBpZD1sZWZ0QnV0dG9uPjwvYnV0dG9uPjxidXR0b24gaWQ9dXBCdXR0b24%2BPC9idXR0b24%2BPGJ1dHRvbiBpZD1kb3duQnV0dG9uPjwvYnV0dG9uPjxidXR0b24gaWQ9cmlnaHRCdXR0b24%2BPC9idXR0b24%2BIDxidXR0b24gaWQ9Y3RybEJ1dHRvbj48L2J1dHRvbj48YnV0dG9uIGlkPXNwYWNlQnV0dG9uPjwvYnV0dG9uPiA8YnV0dG9uIGlkPWFsdEJ1dHRvbj48L2J1dHRvbj48L3A%2BPC9zcGFuPjxkaXYgY2xhc3M9Y29udGFpbmVyPjxjYW52YXMgaGVpZ2h0PTQwMCBpZD1zY3JlZW4gdGFiaW5kZXg9MCB3aWR0aD02NDA%2BVGhpcyBpcyB3aGVyZSB0aGUgRG9vTSBzY3JlZW4gc2hvdWxkIHJlbmRlci48L2NhbnZhcz48ZGl2IGhpZGRlbiBpZD1vdXRwdXQ%2BPC9kaXY%2BPC9kaXY%2BPHNwYW4gaGlkZGVuPjxzcGFuIGlkPWdldG1zcHNfc3RhdHM%2BPC9zcGFuPjxzcGFuIGlkPWdldG1zX3N0YXRzPjwvc3Bhbj4gPHNwYW4gaWQ9ZnBzX3N0YXRzPjwvc3Bhbj48c3BhbiBpZD1kcmF3ZnJhbWVzX3N0YXRzPjwvc3Bhbj4gPHNwYW4gaWQ9YW5pbWF0aW9uZnBzX3N0YXRzPjwvc3Bhbj48L3NwYW4%2BPHNjcmlwdCBkZWZlcj4idXNlIHN0cmljdCI7dmFyIG1lbW9yeT1uZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHtpbml0aWFsOjEwOH0pO2NvbnN0IG91dHB1dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7ZnVuY3Rpb24gcmVhZFdhc21TdHJpbmcodCxlKXtsZXQgbj1uZXcgVWludDhBcnJheShtZW1vcnkuYnVmZmVyLHQsZSk7cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigidXRmOCIpLmRlY29kZShuKX1mdW5jdGlvbiBjb25zb2xlTG9nU3RyaW5nKHQsZSl7bGV0IG49cmVhZFdhc21TdHJpbmcodCxlKTtjb25zb2xlLmxvZygnIicrbisnIicpfWZ1bmN0aW9uIGFwcGVuZE91dHB1dCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtsZXQgcz1yZWFkV2FzbVN0cmluZyhlLG4pLnNwbGl0KCJcbiIpO2Zvcih2YXIgYT0wO2E8cy5sZW5ndGg7KythKWlmKDAhPXNbYV0ubGVuZ3RoKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7ci5jbGFzc0xpc3QuYWRkKHQpLHIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc1thXSkpLG91dHB1dC5hcHBlbmRDaGlsZChyKSxvdXRwdXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSksci5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCIsYmxvY2s6ImVuZCIsaW5saW5lOiJuZWFyZXN0In0pfX19Y29uc3QgZ2V0bXNwc19zdGF0cz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ2V0bXNwc19zdGF0cyIpLGdldG1zX3N0YXRzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJnZXRtc19zdGF0cyIpO3ZhciBnZXRtc19jYWxsc190b3RhbD0wLGdldG1zX2NhbGxzPTA7ZnVuY3Rpb24gZ2V0TWlsbGlzZWNvbmRzKCl7cmV0dXJuKytnZXRtc19jYWxscyxwZXJmb3JtYW5jZS5ub3coKX13aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtnZXRtc19jYWxsc190b3RhbCs9Z2V0bXNfY2FsbHMsZ2V0bXNwc19zdGF0cy5pbm5lclRleHQ9Z2V0bXNfY2FsbHMvMWUzKyJrIixnZXRtc19zdGF0cy5pbm5lclRleHQ9Z2V0bXNfY2FsbHNfdG90YWwsZ2V0bXNfY2FsbHM9MH0sMWUzKTtjb25zdCBjYW52YXM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmVlbiIpLGRvb21fc2NyZWVuX3dpZHRoPTY0MCxkb29tX3NjcmVlbl9oZWlnaHQ9NDAwLGZwc19zdGF0cz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnBzX3N0YXRzIiksZHJhd2ZyYW1lc19zdGF0cz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhd2ZyYW1lc19zdGF0cyIpO3ZhciBudW1iZXJfb2ZfZHJhd3NfdG90YWw9MCxudW1iZXJfb2ZfZHJhd3M9MDtmdW5jdGlvbiBkcmF3Q2FudmFzKHQpe3ZhciBlPW5ldyBVaW50OENsYW1wZWRBcnJheShtZW1vcnkuYnVmZmVyLHQsMTAyNGUzKSxuPW5ldyBJbWFnZURhdGEoZSw2NDAsNDAwKTtjYW52YXMuZ2V0Q29udGV4dCgiMmQiKS5wdXRJbWFnZURhdGEobiwwLDApLCsrbnVtYmVyX29mX2RyYXdzfXdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbigpe251bWJlcl9vZl9kcmF3c190b3RhbCs9bnVtYmVyX29mX2RyYXdzLGRyYXdmcmFtZXNfc3RhdHMuaW5uZXJUZXh0PW51bWJlcl9vZl9kcmF3c190b3RhbCxmcHNfc3RhdHMuaW5uZXJUZXh0PW51bWJlcl9vZl9kcmF3cyxudW1iZXJfb2ZfZHJhd3M9MH0sMWUzKTt2YXIgaW1wb3J0T2JqZWN0PXtqczp7anNfY29uc29sZV9sb2c6YXBwZW5kT3V0cHV0KCJsb2ciKSxqc19zdGRvdXQ6YXBwZW5kT3V0cHV0KCJzdGRvdXQiKSxqc19zdGRlcnI6YXBwZW5kT3V0cHV0KCJzdGRlcnIiKSxqc19taWxsaXNlY29uZHNfc2luY2Vfc3RhcnQ6Z2V0TWlsbGlzZWNvbmRzLGpzX2RyYXdfc2NyZWVuOmRyYXdDYW52YXN9LGVudjp7bWVtb3J5Om1lbW9yeX19O1dlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGZldGNoKCJodHRwczovL3N1cnYuaXMtYS5kZXYvZG9vbS53YXNtIiksaW1wb3J0T2JqZWN0KS50aGVuKHQ9Pnt0Lmluc3RhbmNlLmV4cG9ydHMubWFpbigpO2xldCBlPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIDg6cmV0dXJuIDEyNztjYXNlIDE3OnJldHVybiAxNTc7Y2FzZSAxODpyZXR1cm4gMTg0O2Nhc2UgMzc6cmV0dXJuIDE3MjtjYXNlIDM4OnJldHVybiAxNzM7Y2FzZSAzOTpyZXR1cm4gMTc0O2Nhc2UgNDA6cmV0dXJuIDE3NTtkZWZhdWx0OmlmKHQ%2BPTY1JiZ0PD05MClyZXR1cm4gdCszMjtpZih0Pj0xMTImJnQ8PTEyMylyZXR1cm4gdCs3NTtyZXR1cm4gdH19LG49ZnVuY3Rpb24oZSl7dC5pbnN0YW5jZS5leHBvcnRzLmFkZF9icm93c2VyX2V2ZW50KDAsZSl9LHM9ZnVuY3Rpb24oZSl7dC5pbnN0YW5jZS5leHBvcnRzLmFkZF9icm93c2VyX2V2ZW50KDEsZSl9O2NhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXtuKGUodC5rZXlDb2RlKSksdC5wcmV2ZW50RGVmYXVsdCgpfSwhMSksY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixmdW5jdGlvbih0KXtzKGUodC5rZXlDb2RlKSksdC5wcmV2ZW50RGVmYXVsdCgpfSwhMSksW1siZW50ZXJCdXR0b24iLDEzXSxbImxlZnRCdXR0b24iLDE3Ml0sWyJyaWdodEJ1dHRvbiIsMTc0XSxbInVwQnV0dG9uIiwxNzNdLFsiZG93bkJ1dHRvbiIsMTc1XSxbImN0cmxCdXR0b24iLDE1N10sWyJzcGFjZUJ1dHRvbiIsMzJdLFsiYWx0QnV0dG9uIiwxODRdXS5mb3JFYWNoKChbdCxlXSk9Pntjb25zb2xlLmxvZyh0KyIgZm9yICIrZSk7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCk7YS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwoKT0%2BbihlKSksYS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsKCk9PnMoZSkpLGEuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLCgpPT5zKGUpKX0pO2xldCBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2N1c2hpbnQiKSxyPWZ1bmN0aW9uKHQpe2EuaW5uZXJUZXh0PSJLZXlib2FyZCBldmVudHMgd2lsbCBiZSBjYXB0dXJlZCBhcyBsb25nIGFzIHRoZSB0aGUgRE9PTSBjYW52YXMgaGFzIGZvY3VzLiIsYS5zdHlsZS5mb250V2VpZ2h0PSJub3JtYWwifTtjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsciwhMSksY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IixmdW5jdGlvbih0KXthLmlubmVyVGV4dD0iQ2xpY2sgb24gdGhlIGNhbnZhcyB0byBjYXB1dGUgaW5wdXQgYW5kIHN0YXJ0IHBsYXlpbmcuIixhLnN0eWxlLmZvbnRXZWlnaHQ9ImJvbGQifSwhMSksY2FudmFzLmZvY3VzKCkscigpO2xldCBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmltYXRpb25mcHNfc3RhdHMiKTt2YXIgdT0wO2Z1bmN0aW9uIGMoZSl7Kyt1LHQuaW5zdGFuY2UuZXhwb3J0cy5kb29tX2xvb3Bfc3RlcCgpLHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYyl9d2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCl7by5pbm5lclRleHQ9dSx1PTB9LDFlMyksd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShjKX0pOzwvc2NyaXB0PjwvRE9PTT48L2JvZHk%2BPC9odG1sPg%3D%3D%60)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20while%20(toRegisterOnBlocklyGot.length%20%3E%200)%20%7B%0D%0A%20%20%20%20%20%20const%20%5Bname%2C%20impl%5D%20%3D%20toRegisterOnBlocklyGot.shift()%3B%0D%0A%20%20%20%20%20%20Blockly.Field.register(name%2C%20impl)%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%2F%2F%20Attempt%20to%20reload%20the%20workspace%20and%20what%20not.%0D%0A%20%20%20%20%2F%2F%20https%3A%2F%2Fgithub.com%2FTurboWarp%2Faddons%2Fblob%2Ftw%2Faddons%2Fcustom-block-shape%2Fupdate-all-blocks.js%0D%0A%20%20%20%20const%20eventsOriginallyEnabled%20%3D%20Blockly.Events.isEnabled()%2C%20workspace%20%3D%20Blockly.getMainWorkspace()%3B%0D%0A%20%20%20%20Blockly.Events.disable()%3B%0D%0A%20%20%20%20if%20(workspace)%20%7B%0D%0A%20%20%20%20%20%20if%20(vm.editingTarget)%20%7B%0D%0A%20%20%20%20%20%20%20%20vm.emitWorkspaceUpdate()%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20const%20flyout%20%3D%20workspace.getFlyout()%3B%0D%0A%20%20%20%20%20%20if%20(flyout)%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20flyoutWorkspace%20%3D%20flyout.getWorkspace()%3B%0D%0A%20%20%20%20%20%20%20%20Blockly.Xml.clearWorkspaceAndLoadFromXml(%0D%0A%20%20%20%20%20%20%20%20%20%20Blockly.Xml.workspaceToDom(flyoutWorkspace)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20flyoutWorkspace%0D%0A%20%20%20%20%20%20%20%20)%3B%0D%0A%20%20%20%20%20%20%20%20workspace.getToolbox().refreshSelection()%3B%0D%0A%20%20%20%20%20%20%20%20workspace.toolboxRefreshEnabled_%20%3D%20true%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20if%20(eventsOriginallyEnabled)%20Blockly.Events.enable()%3B%0D%0A%0D%0A%20%20%20%20%2F%2F%20Exposing%20fields%0D%0A%20%20%20%20%2F%2F%20This%20does%20not%20affect%20anything%20its%20just%20me%20doing%20debugging%20stuff.%0D%0A%20%20%20%20%2F%2F%20Blockly.FieldTextarea%20%3D%20FieldTextarea%3B%0D%0A%20%20%20%20%2F%2F%20Blockly.FieldSnapBoolean%20%3D%20FieldSnapBoolean%3B%0D%0A%20%20%20%20%2F%2F%20Blockly.FieldHiddenTextInput%20%3D%20FieldHiddenTextInput%3B%0D%0A%20%20%20%20%2F%2F%20Blockly.FieldInlineSlider%20%3D%20FieldInlineSlider%3B%0D%0A%20%20%20%20%2F%2F%20Blockly.FieldInlineDate%20%3D%20FieldInlineDate%3B%0D%0A%20%20%20%20%2F%2F%20Blockly.FieldFileInput%20%3D%20FieldFileInput%3B%0D%0A%20%20%20%20%2F%2F%20Skip%20DOOM%20cause%20its%20my%20funny%20field.%0D%0A%20%20%7D%0D%0A%0D%0A%20%20%2F%2F%20Passes%20%22Blockly%22%20to%20tryUseScratchBlocks%20if%20Scratch.gui%20is%20a%20object.%0D%0A%20%20if%20(typeof%20Scratch%3F.gui%20%3D%3D%3D%20'object')%20Scratch.gui.getBlockly().then((Blockly)%20%3D%3E%20tryUseScratchBlocks(Blockly))%3B%0D%0A%0D%0A%20%20%2F%2F%20Actual%20%22extension%22%20part%0D%0A%20%20class%20extension%20%7B%0D%0A%20%20%20%20constructor()%20%7B%7D%0D%0A%20%20%20%20getInfo()%20%7B%0D%0A%20%20%20%20%20%20const%20getInfo%20%3D%20(%7B%0D%0A%20%20%20%20%20%20%20%20id%3A%20'0znzwMoreFields'%2C%0D%0A%20%20%20%20%20%20%20%20name%3A%20'More%20Fields'%2C%0D%0A%20%20%20%20%20%20%20%20color1%3A%20'%239566d3'%2C%0D%0A%20%20%20%20%20%20%20%20color2%3A%20'%239566d3'%2C%0D%0A%20%20%20%20%20%20%20%20color3%3A%20'%239566d3'%2C%0D%0A%20%20%20%20%20%20%20%20color4%3A%20'%239566d3'%2C%0D%0A%20%20%20%20%20%20%20%20blocks%3A%20%5B%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20true%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20'multifieldTest'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20'file%20%5BFILE%5D%20snap%20bool%20%5BBOOL%5D%20slider%20%5BNUM%5D'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20FILE%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.FILE%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20'dataURL%5Cn*%2F*%5Cn'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20BOOL%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.SNAPBOOLEAN%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%200%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NUM%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.INLINESLIDER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20'10%2C0%2C20'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20'textarea'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20'textarea%20%5BTEXT%5D'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TEXT%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.TEXTAREA%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20'%3AD'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20hideInlineTextarea%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20'textareaInline'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20'textarea%20%5BTEXT%5D'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TEXT%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.INLINETEXTAREA%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20'%3AD'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20hideInlineTextarea%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.XML%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20xml%3A%20'%3Csep%20gap%3D%2216%22%2F%3E'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20'snapBool'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20'%5BBOOL%5D'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20BOOL%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.SNAPBOOLEAN%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%200%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20'sliderInline'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20'slider%3A%20%5BNUM%5D'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NUM%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.INLINESLIDER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20'10%2C0%2C20'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20'hiddenString'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20'%22secret%22%20%5BTEXT%5D'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TEXT%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.HIDDENSTRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20'oo%20a%20secret%20%3B)'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20'date'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20'date%20%5BDATE%5D'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20DATE%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.INLINEDATE%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20'2024-03-14'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20'file'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20'file%20%5BFILE%5D'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20FILE%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.FILE%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20'dataURL%5Cn*%2F*%5Cn'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20!DOOMcheck%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20'DOOM'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20'DOOM%20%5B_a%5D'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20_a%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20'InlineDoom'%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20''%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%5D%2C%0D%0A%20%20%20%20%20%20%20%20customFieldTypes%2C%0D%0A%20%20%20%20%20%20%7D)%3B%0D%0A%20%20%20%20%20%20return%20getInfo%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20multifieldTest()%20%7B%7D%0D%0A%20%20%20%20textarea(args)%20%7B%0D%0A%20%20%20%20%20%20return%20args.TEXT%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20textareaInline(args)%20%7B%0D%0A%20%20%20%20%20%20return%20args.TEXT%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20snapBool(args)%20%7B%0D%0A%20%20%20%20%20%20return%20Scratch.Cast.toBoolean(args.BOOL)%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20sliderInline(args)%20%7B%0D%0A%20%20%20%20%20%20return%20Scratch.Cast.toNumber(args.NUM.split('%2C')%5B0%5D)%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20hiddenString(args)%20%7B%0D%0A%20%20%20%20%20%20return%20args.TEXT%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20date(args)%20%7B%0D%0A%20%20%20%20%20%20let%20date%20%3D%20new%20Date(args.DATE.replaceAll('-'%2C%20'%2F'))%3B%0D%0A%20%20%20%20%20%20return%20(date.getTime())%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20file(args)%20%7B%0D%0A%20%20%20%20%20%20const%20cr1%20%3D%20args.FILE.indexOf('%5Cn')%3B%0D%0A%20%20%20%20%20%20const%20cr2%20%3D%20args.FILE.indexOf('%5Cn'%2C%20cr1%20%2B%201)%3B%0D%0A%20%20%20%20%20%20return%20args.FILE.substr(cr2%20%2B%201)%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20DOOM(args)%20%7B%0D%0A%20%20%20%20%20%20return%20''%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%0D%0A%20%20Scratch.extensions.register(new%20extension())%3B%0D%0A%7D)(Scratch)%3B%0D%0A%20%7D)(Scratch)%3B","data:text/javascript;,(function(Scratch)%20%7B%20%2F%2F%20Name%3A%20Clones%20Plus%0A%2F%2F%20ID%3A%20lmsclonesplus%0A%2F%2F%20Description%3A%20Expansion%20of%20Scratch's%20clone%20features.%0A%2F%2F%20By%3A%20LilyMakesThings%20%3Chttps%3A%2F%2Fscratch.mit.edu%2Fusers%2FLilyMakesThings%2F%3E%0A%2F%2F%20License%3A%20MIT%20AND%20LGPL-3.0%0A%0A%2F*%20generated%20l10n%20code%20*%2FScratch.translate.setup(%7B%22fi%22%3A%7B%22_Clones%2B%22%3A%22Kloonit%20%2B%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22kloonin%2C%20jonka%20%5BINPUTB%5D%20on%20%5BINPUTC%5D%2C%20%5BINPUTA%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22p%C3%A4%C3%A4hahmon%20%5BINPUT%5D%22%2C%22_clone%20count%22%3A%22kloonien%20m%C3%A4%C3%A4r%C3%A4%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22hahmon%20%5BINPUT%5D%20kloonien%20m%C3%A4%C3%A4r%C3%A4%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22onko%20olemassa%20klooni%2C%20jonka%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%3F%22%2C%22_costume%20%23%22%3A%22asusteen%20numero%22%2C%22_costume%20name%22%3A%22asusteen%20nimi%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22luo%20klooni%2C%20jonka%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22poista%20hahmon%20%5BINPUT%5D%20kloonit%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22poista%20kloonit%2C%20joiden%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%22%2C%22_direction%22%3A%22suunta%22%2C%22_is%20clone%3F%22%3A%22olenko%20klooni%3F%22%2C%22_myself%22%3A%22min%C3%A4%20itse%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22aseta%20muuttaja%20%5BINPUTA%5D%20arvoon%20%5BINPUTB%5D%20klooneilla%2C%20joiden%20%5BINPUTC%5D%20on%20%5BINPUTD%5D%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22aseta%20p%C3%A4%C3%A4hahmon%20muuttuja%20%5BINPUTA%5D%20arvoon%20%5BINPUTB%5D%22%2C%22_size%22%3A%22koko%22%2C%22_stop%20scripts%20in%20%5BINPUT%5D%22%3A%22pys%C3%A4yt%C3%A4%20koodit%20hahmossa%20%5BINPUT%5D%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22pys%C3%A4yt%C3%A4%20koodit%20klooneissa%2C%20joiden%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22pys%C3%A4yt%C3%A4%20p%C3%A4%C3%A4hahmon%20koodit%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22koskettaako%20kloonia%2C%20jonka%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%3F%22%2C%22_touching%20main%20sprite%3F%22%3A%22koskettaako%20p%C3%A4%C3%A4hahmoa%3F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22kloonin%2C%20jonka%20%5BINPUTB%5D%20on%20%5BINPUTC%5D%2C%20muuttuja%20%5BINPUTA%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22p%C3%A4%C3%A4hahmon%20muuttuja%20%5BINPUT%5D%22%2C%22_volume%22%3A%22%C3%A4%C3%A4nenvoimakkuus%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22kun%20aloitan%20kloonina%2C%20jonka%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%22%2C%22_x%20position%22%3A%22x-sijainti%22%2C%22_y%20position%22%3A%22y-sijainti%22%7D%2C%22ja%22%3A%7B%22_Clones%2B%22%3A%22%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%20%2B%22%2C%22_size%22%3A%22%E3%82%B5%E3%82%A4%E3%82%BA%22%7D%2C%22ko%22%3A%7B%22_Clones%2B%22%3A%22%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%ED%94%8C%EB%9F%AC%EC%8A%A4%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%5BINPUTB%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTC%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%9D%98%20%5BINPUTA%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22%EC%9B%90%EB%B3%B8%20%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%9D%98%20%5BINPUT%5D%22%2C%22_clone%20count%22%3A%22%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%EA%B0%9C%EC%88%98%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%EC%9D%98%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%EA%B0%9C%EC%88%98%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%9D%B4%20%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94%EA%B0%80%3F%22%2C%22_costume%20%23%22%3A%22%EB%AA%A8%EC%96%91%20%EB%B2%88%EC%A7%B8%22%2C%22_costume%20name%22%3A%22%EB%AA%A8%EC%96%91%20%EC%9D%B4%EB%A6%84%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EC%83%81%ED%83%9C%EB%A1%9C%20%EB%B3%B5%EC%A0%9C%ED%95%98%EA%B8%B0%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%EC%9D%98%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0%22%2C%22_direction%22%3A%22%EB%B0%A9%ED%96%A5%22%2C%22_is%20clone%3F%22%3A%22%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%9D%B8%EA%B0%80%3F%22%2C%22_myself%22%3A%22%EB%82%98%20%EC%9E%90%EC%8B%A0%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22%5BINPUTC%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTD%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%9D%98%20%5BINPUTA%5D%EC%9D%84(%EB%A5%BC)%20%5BINPUTB%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22%EC%9B%90%EB%B3%B8%20%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%9D%98%20%5BINPUTA%5D%EC%9D%84(%EB%A5%BC)%20%5BINPUTB%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_size%22%3A%22%ED%81%AC%EA%B8%B0%22%2C%22_stop%20scripts%20in%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%20%EB%A9%88%EC%B6%94%EA%B8%B0%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%EB%A9%88%EC%B6%94%EA%B8%B0%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22%EC%9B%90%EB%B3%B8%20%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%9D%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EB%A9%88%EC%B6%94%EA%B8%B0%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%97%90%20%EB%8B%BF%EC%95%98%EB%8A%94%EA%B0%80%3F%22%2C%22_touching%20main%20sprite%3F%22%3A%22%EC%9B%90%EB%B3%B8%20%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%97%90%20%EB%8B%BF%EC%95%98%EB%8A%94%EA%B0%80%3F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%5BINPUTB%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTC%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%9D%98%20%5BINPUTA%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22%EC%9B%90%EB%B3%B8%20%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%9D%98%20%5BINPUT%5D%22%2C%22_volume%22%3A%22%EC%9D%8C%EB%9F%89%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EC%83%81%ED%83%9C%EB%A1%9C%20%EB%B3%B5%EC%A0%9C%EB%90%98%EC%97%88%EC%9D%84%20%EB%95%8C%22%2C%22_x%20position%22%3A%22x%EC%A2%8C%ED%91%9C%22%2C%22_y%20position%22%3A%22y%EC%A2%8C%ED%91%9C%22%7D%2C%22nl%22%3A%7B%22_Clones%2B%22%3A%22Klonen%2B%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%5BINPUTA%5D%20van%20kloon%20met%20%5BINPUTB%5D%20%3D%20%5BINPUTC%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22%5BINPUT%5D%20van%20originele%20sprite%22%2C%22_clone%20count%22%3A%22aantal%20klonen%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22aantal%20klonen%20van%20%5BINPUT%5D%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22kloon%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%20bestaat%3F%22%2C%22_costume%20%23%22%3A%22uiterlijknummer%22%2C%22_costume%20name%22%3A%22uiterlijknaam%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22maak%20een%20kloon%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22verwijder%20klonen%20van%20%5BINPUT%5D%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22verwijder%20klonen%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%22%2C%22_direction%22%3A%22richting%22%2C%22_is%20clone%3F%22%3A%22is%20kloon%3F%22%2C%22_myself%22%3A%22mijzelf%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22maak%20variabele%20%5BINPUTA%5D%20%5BINPUTB%5D%20voor%20klonen%20met%20%5BINPUTC%5D%20%3D%20%5BINPUTD%5D%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22maak%20variabele%20%5BINPUTA%5D%20%5BINPUTB%5D%20voor%20originele%20sprite%22%2C%22_size%22%3A%22grootte%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22stop%20scripts%20in%20klonen%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22stop%20scripts%20in%20originele%20sprite%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22raak%20ik%20kloon%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%3F%22%2C%22_touching%20main%20sprite%3F%22%3A%22raak%20ik%20originele%20sprite%3F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22variabele%20%5BINPUTA%5D%20van%20kloon%20met%20%5BINPUTB%5D%20%3D%20%5BINPUTC%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22variabele%20%5BINPUT%5D%20van%20originele%20sprite%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22wanneer%20ik%20als%20kloon%20start%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%22%2C%22_x%20position%22%3A%22x-positie%22%2C%22_y%20position%22%3A%22y-positie%22%7D%2C%22pl%22%3A%7B%22_clone%20count%22%3A%22liczba%20klon%C3%B3w%22%2C%22_costume%20name%22%3A%22nazwa%20kostiumu%22%2C%22_direction%22%3A%22kierunek%22%2C%22_is%20clone%3F%22%3A%22jest%20klonem%3F%22%2C%22_size%22%3A%22wielko%C5%9B%C4%87%22%2C%22_volume%22%3A%22g%C5%82o%C5%9Bno%C5%9B%C4%87%22%2C%22_x%20position%22%3A%22pozycja%20x%22%2C%22_y%20position%22%3A%22pozycja%20y%22%7D%2C%22ru%22%3A%7B%22_Clones%2B%22%3A%22%D0%9A%D0%BB%D0%BE%D0%BD%D1%8B%2B%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%5BINPUTA%5D%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%B0%20%D1%81%20%5BINPUTB%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTC%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22%5BINPUT%5D%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%D0%B0%22%2C%22_clone%20count%22%3A%22%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2%20%5BINPUT%5D%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22%D0%BA%D0%BB%D0%BE%D0%BD%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTB%5D%20%D1%81%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82%3F%22%2C%22_costume%20%23%22%3A%22%D0%BA%D0%BE%D1%81%D1%82%D1%8E%D0%BC%20%23%22%2C%22_costume%20name%22%3A%22%D0%B8%D0%BC%D1%8F%20%D0%BA%D0%BE%D1%81%D1%82%D1%8E%D0%BC%D0%B0%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C%20%D0%BA%D0%BB%D0%BE%D0%BD%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%B2%20%5BINPUTB%5D%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BB%D0%BE%D0%BD%D1%8B%20%5BINPUT%5D%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BB%D0%BE%D0%BD%D1%8B%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTB%5D%22%2C%22_direction%22%3A%22%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%22%2C%22_is%20clone%3F%22%3A%22%D0%BA%D0%BB%D0%BE%D0%BD%3F%22%2C%22_myself%22%3A%22%D1%81%D0%B0%D0%BC%D0%BE%D0%B3%D0%BE%20%D1%81%D0%B5%D0%B1%D1%8F%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%5BINPUTA%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BINPUTB%5D%20%D0%B4%D0%BB%D1%8F%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2%20%5BINPUTC%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTD%5D%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%5BINPUTA%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BINPUTB%5D%20%D0%B4%D0%BB%D1%8F%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%D0%B0%22%2C%22_size%22%3A%22%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%22%2C%22_stop%20scripts%20in%20%5BINPUT%5D%22%3A%22%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B%20%5BINPUT%5D%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B%20%D0%B2%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%B0%D1%85%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTB%5D%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B%20%D0%B2%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%BC%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%D0%B5%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22%D0%BA%D0%B0%D1%81%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%B0%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%B2%20%5BINPUTB%5D%3F%22%2C%22_touching%20main%20sprite%3F%22%3A%22%D0%BA%D0%B0%D1%81%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%D0%B0%3F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%5BINPUTA%5D%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%B0%20%D1%81%20%5BINPUTB%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTC%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%5BINPUT%5D%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%D0%B0%22%2C%22_volume%22%3A%22%D0%BE%D0%B1%D1%8A%D1%91%D0%BC%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0%20%D1%8F%20%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%20%D0%BA%D0%B0%D0%BA%20%D0%BA%D0%BB%D0%BE%D0%BD%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%B2%20%5BINPUTB%5D%22%2C%22_x%20position%22%3A%22%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F%20x%22%2C%22_y%20position%22%3A%22%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F%20y%22%7D%2C%22uk%22%3A%7B%22_clone%20count%22%3A%22%D0%BA%D1%96%D0%BB%D1%8C%D0%BA%D1%96%D1%81%D1%82%D1%8C%20%D0%BA%D0%BB%D0%BE%D0%BD%D1%96%D0%B2%22%2C%22_is%20clone%3F%22%3A%22%D0%BA%D0%BB%D0%BE%D0%BD%3F%22%7D%2C%22zh-cn%22%3A%7B%22_Clones%2B%22%3A%22%E5%85%8B%E9%9A%86%20%2B%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%E8%8E%B7%E5%8F%96%5BINPUTB%5D%E4%B8%BA%5BINPUTC%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%E7%9A%84%5BINPUTA%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22%E8%A7%92%E8%89%B2%E6%9C%AC%E4%BD%93%E7%9A%84%5BINPUT%5D%22%2C%22_clone%20count%22%3A%22%E5%85%8B%E9%9A%86%E4%BD%93%E6%95%B0%E9%87%8F%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%E6%95%B0%E9%87%8F%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22%E5%AD%98%E5%9C%A8%5BINPUTA%5D%E4%B8%BA%5BINPUTB%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%EF%BC%9F%22%2C%22_costume%20%23%22%3A%22%E9%80%A0%E5%9E%8B%E7%BC%96%E5%8F%B7%22%2C%22_costume%20name%22%3A%22%E9%80%A0%E5%9E%8B%E5%90%8D%E7%A7%B0%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%88%9B%E5%BB%BA%E5%85%8B%E9%9A%86%E4%BD%93%E5%B9%B6%E5%B0%86%E5%AE%83%E7%9A%84%20%5BINPUTA%5D%20%E8%AE%BE%E4%B8%BA%20%5BINPUTB%5D%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22%E5%88%A0%E9%99%A4%5BINPUT%5D%E7%9A%84%E6%89%80%E6%9C%89%E5%85%8B%E9%9A%86%E4%BD%93%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%88%A0%E9%99%A4%5BINPUTA%5D%E4%B8%BA%5BINPUTB%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%22%2C%22_direction%22%3A%22%E6%96%B9%E5%90%91%22%2C%22_is%20clone%3F%22%3A%22%E6%98%AF%E5%85%8B%E9%9A%86%E4%BD%93%EF%BC%9F%22%2C%22_myself%22%3A%22%E8%87%AA%E5%B7%B1%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22%E5%B0%86%E6%BB%A1%E8%B6%B3%5BINPUTC%5D%E4%B8%BA%5BINPUTD%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%E7%9A%84%E5%8F%98%E9%87%8F%5BINPUTA%5D%E8%AE%BE%E4%B8%BA%5BINPUTB%5D%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22%E8%AE%BE%E7%BD%AE%E8%A7%92%E8%89%B2%E6%9C%AC%E4%BD%93%E7%9A%84%E5%8F%98%E9%87%8F%5BINPUTA%5D%E4%B8%BA%5BINPUTB%5D%22%2C%22_size%22%3A%22%E5%A4%A7%E5%B0%8F%22%2C%22_stop%20scripts%20in%20%5BINPUT%5D%22%3A%22%E5%81%9C%E6%AD%A2%5BINPUT%5D%E4%B8%AD%E7%9A%84%E8%84%9A%E6%9C%AC%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%81%9C%E6%AD%A2%5BINPUTA%5D%E4%B8%BA%5BINPUTB%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%E7%9A%84%E8%84%9A%E6%9C%AC%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22%E5%81%9C%E6%AD%A2%E8%A7%92%E8%89%B2%E6%9C%AC%E4%BD%93%E4%B8%AD%E7%9A%84%E8%84%9A%E6%9C%AC%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22%E7%A2%B0%E5%88%B0%20%5BINPUTA%5D%E4%B8%BA%20%5BINPUTB%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%EF%BC%9F%22%2C%22_touching%20main%20sprite%3F%22%3A%22%E7%A2%B0%E5%88%B0%E8%A7%92%E8%89%B2%E6%9C%AC%E4%BD%93%EF%BC%9F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%E8%8E%B7%E5%8F%96%5BINPUTB%5D%E4%B8%BA%5BINPUTC%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%E7%9A%84%E5%8F%98%E9%87%8F%5BINPUTA%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22%E8%A7%92%E8%89%B2%E6%9C%AC%E4%BD%93%E7%9A%84%E5%8F%98%E9%87%8F%5BINPUT%5D%22%2C%22_volume%22%3A%22%E9%9F%B3%E9%87%8F%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%BD%93%E6%88%91%E4%BD%9C%E4%B8%BA%E5%85%8B%E9%9A%86%E4%BD%93%E5%90%AF%E5%8A%A8%EF%BC%8C%E4%B8%94%E6%BB%A1%E8%B6%B3%5BINPUTA%5D%E4%B8%BA%5BINPUTB%5D%22%2C%22_x%20position%22%3A%22x%E5%9D%90%E6%A0%87%22%2C%22_y%20position%22%3A%22y%E5%9D%90%E6%A0%87%22%7D%7D)%3B%2F*%20end%20generated%20l10n%20code%20*%2F(function%20(Scratch)%20%7B%0A%20%20%22use%20strict%22%3B%0A%0A%20%20const%20menuIconURI%20%3D%0A%20%20%20%20%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAZ4AAAGeCAYAAACkfGcPAAAAAXNSR0IArs4c6QAAIABJREFUeF7tndl1HEeWQEFZ0ZovmTDGTHsiM9oTjTFjRbe84JwEWWChUJUZEW%2BJt9z%2B6B%2FGet9yEVWg%2BO2N%2F0GgGYHvf%2F3%2BPdKVv%2F3zP98inYezQMCaAAlvTZj1XQlEk4rW5ZGTFknWiUAA8USIAmeYIlBVLlMQ7gYjpVVyzNtFAPHsIs%2B%2BlwQQzCWi0wEIScaP2XYEEI8dW1aeJIBoJoFNDkdEk8AYbkYA8ZihZeEzAkgmRn4goxhx6HYKxNMt4pvui2g2gZ%2FcFhFNAmP4EgHEs4SNSSMEkM0IpbhjkFDc2GQ%2FGeLJHsFA50c0gYJhcBREZAC16ZKIp2ngta6NbLRI5loHCeWKV7TTIp5oEUlwHmSTIEiOR0RCjrCLbIV4igTS%2BhrIxppwjfWRUI04Wt8C8VgTTrw%2BskkcvABHR0IBghD0CIgnaGB2Hgvh7KRfb28EVC%2Bm0hshHinBIvORTZFABr8GEgoeIKfjIR4n0BG3QTYRo9LnTEioT6wfb4p4GsYe4TQMeuArI6DAwTE6GuIxAhtxWYQTMSqc6UYAAfXJBcTTINYIp0GQC10RARUK5ourIJ6iMUY2RQPb7FpIqGbAEU%2BxuCKcYgHlOu8EEFCtREA8ReKJcIoEkmucEkBANRIE8SSPI8JJHkCOv0QAAS1hCzMJ8YQJxdxBEM4cL0bXJICAcsYV8SSMG9JJGDSObEYA%2BZihNVsY8Zih1V8Y4egzZcU6BBBQnlgingSxQjgJgsQRwxBAQGFC8fIgiCdwjBBO4OBwtPAEEFDcECGeoLFBOkEDw7FSEUA%2BMcOFeILFBeEECwjHKUEAAcUKI%2BIJEg%2BEEyQQHKM0AQQUI7yIJ0AckE6AIHCENgSQz%2F5QI56NMUA4G%2BGzdXsCCGhfCiCeTeyRzibwbAuBOwLIZ086IB5n7gjHGTjbQWCAAAIagKQ4BPEowjxbCuE4gWYbCAgIICABvImpiGcC1upQpLNKjnkQ8CeAfOyZIx5jxkjHGDDLQ8CAAPIxgHr%2F3Zrt8n1XRzh9Y8%2FN6xBAQDax5MVjwBXpGEBlSQhsIoB89MEjHkWmCEcRJktBIBgBBKQXEMSjxBLpKIFkGQgEJoB8dIKDeBQ4Ih0FiCwBgSQEkI88UIhHyBDpCAEyHQIJCSAfWdAQzyI%2FhLMIjmkQKEQAAa0FE%2FEscEM6C9CYAoGiBJDPfGARzyQzpDMJjOEQaEAA%2BcwFGfFM8EI6E7AYCoFmBJDPeMARzwArhDMAiSEQgMA7AQR0nQiI54IR0rlOIkZAAAKfCSCf84xAPCd8kA7tBAIQWCWAfF6TQzwv2CCd1XJjHgQgcCOAfJ7nAuJ5wgXp0DggAAEtAsjnK0nE88AE6WiVG%2BtAAAK8fHjxXFYB0rlExAAIQGCRAC%2BfX%2BB48fxkgXQWq4lpEIDAMAHk8wNVe%2FEgnOGaYSAEIKBEoLuAWosH6ShVEctAAALTBDrLp614kM50nTABAhBQJtBVPi3Fg3SUq4flIACBZQId5dNOPEhnuT6YCAEIGBHoJp9W4kE6RlXDshCAgJhAJ%2Fm0EQ%2FSEdcFC0AAAsYEusinhXiQjnG1sDwEIKBGoIN8yosH6ajVAwtBAAJOBKrLB%2FE4JRLbQAACEBglgHhGSQUcx2snYFA4EgQgMESgsnzKvniQzlBuMwgCEAhMoKp8SooH6QSuJI4GAQhMEagon3LiQTpTOc1gCEAgAYFq8iklHqSToII4IgQgsESgknzKiAfpLOUykyAAgUQEqsinhHiQTqLK4agQgICIQAX5pBcP0hHlMJMhAIGEBLLLB%2FEkTDqODAEI9CaAeDbGn9fORvhsDQEIbCWQWT5pXzxIZ2vOszkEIBCAQFb5pBQP0gmQ8RwBAhAIQSCjfNKJB%2BmEyHUOAQEIBCKQTT6IJ1DycBQIQAACKwQQzwq1wTm8dgZBMQwCEGhHIJN80rx4kE67OuLCEIDAJIEs8kkhHqQzmX0MhwAE2hLIIJ%2Fw4kE6beuHi0MAAosEossH8SwGlmkQgAAEohJAPILI8NoRwGMqBCDQmkBk%2BYR98SCd1jXD5SEAAQUCUeWDeBSCyxIQgAAEIhJAPBNR4bUzAYuhEIAABE4IRJRPuBcP0qGGIAABCOgSiCafUOJBOrrJxmoQgAAEbgQiyQfxkJcQgAAEGhBAPE%2BCzGunQeZzRQhAYCuBKPIJ8%2BJBPFvzkc0hAIEGBBDPXZCRToOM54oQgEAIAhHks%2F3Fg3RC5CKHgAAEGhHYLR%2FE0yjZuCoEIACBg0Br8fDaoQggAAEI7CGwUz7bXjxIZ0%2BysSsEIACBG4Fd8kE85CAEIACBpgRaiYfXTtMs59oQgEA4Ajvks%2BXFg3jC5R4HggAEmhJoIR6k0zS7uTYEIBCWgLd8XF88SCds3nEwCECgOQFP%2BSCeHcn2P%2F%2F%2Btev%2F%2FteOE9Te857v2U1hXzsPuN0UgZLiafPaGW16MylBg%2FxKy4Lz%2FS4wn8lQxhYh4CUftxdPafFYN8HHpO7aFL0537h35V2kmXKNcQKlxFNSOruaYDcJReHMa2i8ezEyNQEP%2Bbi8eEqIJ2IDjCKhRzbSF0IG1gd76T1TtycOX5VACfG4S%2Beqaa00i6s1o2Xgyh1n7zDKZOYso2vOntV6%2FMwdrc%2FC%2BjIC%2FOLPOz9r%2BZi%2BeFylM9O0RhvFzJqydLeZPXrP2d1nuVydY3a92fN6jb%2B6p9c52GeewFUONoytpXxqiOcqaZ6l4Vkiraw3n%2Bo%2BM7QLZpXNs3OsruVDbn0XbebrJ2HmCIHRPGwW15TicXvtjCbNiHwka40k%2BM4xGkUj5XN%2FBulaO1mO7K3Be2QfxsgIzOZhs7haycfsxZNCPEfKHok0m3yyVN8zW6NgOnDSjo4Gd%2B0zsd4PAiv53CyeqcSTRjqdClBaMCtF2onv2V2l7OFoQ2A1p5vF00I%2BJi8exGNTJ6JVpcWyWqSiQxeaLOVfCEWIq0jyuVksU4jHTTqrT%2BUQWe98CI1CkRSq83XDbqcRh7CXS3YwST43jKO2fNRfPIgnYAFqFIqkUAMi2XokjXhsvUCBzSX53DB%2BocXjKh1ePHPVLy0WSaHOnbTHaGk8elCyu6Ukn5vGTlM%2Bqi8exDNWJ%2F%2F3r398DPzvP%2F8emyQdJS0WSaFKzz45%2F57v2VQ39q8OIY3JJBeG3xGQ5HPTuCGeW%2F5Ikse4Ckebn1tj1CiWgLw1ON%2FHwF1GGnExzuWSy0tyuWnMQorH%2FbUTUD7aTfCx4EVNUaNYJMWq2L2sOd%2BOKuI9c1%2BN2Mzsx9i1v8Nz49Y4XlryUfuorat4vJqg%2BKdyrWLZJJ8dnN0EpBUbhDJOQJLHjeMVSjzbpLPx1bOzES41RM1ikRTteGv4GBmB9XEY0xeQZnwWGLebIsnh5rHSkI%2FKi2e7eI6qkSTSRNVFaYJLLyDNgnHgHZG1qYA04zOR0y2HSvK3eZxCiCeEdBxePlGb4JSAtAtGUrwn3S4DazMBaceopVUGLi3JXWIk%2Fvd6xC%2BeUOIxevlkaYSXzVC7YCTF%2B6I3ZGJ9yXug%2Fz0doh2n1XNUnifJXeKzVzzhpGMgnmyN8LIZahaNpHifNLWMrC95rzRvzRit7N9hjiR3ic97hkg%2BchO9eMKJR5JMhRrh7SpPvwzXKhpF1lmF85gyqr98oBWnDhJZuaMkf4kN4vnIOUkiPSRulUb48qdxjcJR4l2JterrRyNGKw25yxxJ%2FhKbfeKp%2Btqp1gi%2FNEONopEU7V1jq8ga%2BSQxlySHNWooCaarY65%2B3Lb8UVso8UiSqPBr5%2F5qHx8DSYsG1le1qPv3faTxujxt0wGSPCYmH0mDeBTqp%2BpP4B%2Ff%2Bfzxm5ySpGAbvHZOv19boU%2BTW6F2PUeSx8Rkj3gqvnaqS%2Bf9IyCpeCTF2kg6yOe6728fIcllxPMpfCuvnqWP2qqJp4N0ooinC2tV%2BdDo9D2FeNSYuogH6ajFy3WhCK%2BdbtJBPq4pPrcZ4pnjdTF6Vj7TLx7Eoxovt8UQjxvqLxup%2FP0eXj26AUQ8qjz7iEeSOD%2BRd%2FoJfLd4OrF%2BVtFi%2BSAe1UYp%2Bo8KE4svsTAVD68d3dz3Wm23dI57Ih6Ff%2BKchqdXMpIfXInD0zjMyGfqo7ZK4unUCHeLpxPrs87Iq0fPG%2BKVEI8Y4eMC9cUjSZqGP30jHvUaW1oQ8Sxhs5kk6SG8ePxePLx2bPLfY1WReCQF2lDyV%2FFEPleEnP5ckteI52WQRl89wx%2B1VRFPt499RNI50ktSoIhH%2FzfcqjY9YZ456WrPNolijnhepAjimawdQUPoxnqUrOjVk6gJjfKQ%2FnAzvE%2F2gQliryqeKq%2Bdjr9dJXrxCKTTkfVoXxOJ59gkQQMaYiHMr6E9qg1KEPsR%2BQx91IZ48mYv4okXO8TzMyaIZy05g8sH8TyEteNHP7vE05H1TBcRySd44xnigHSGMD0dFDz%2BKuIJ9doRftndsRkinvX6tpyJeP5tibf%2B2snlc%2FlRG%2BLJncOIJ2b8EA%2FiEWUm4hHhm5sseJ53fO0ccBHPXIp5jUY8iEeUa4hHhG9uMuKZ44V4pnl5TUA8iEeUa5XFw8dsotQIMZkXT4gwfDkE4kE8y5kZXDq3e539ksHpdzyIZzk1wkzcIZ6uH2vOBl0kn2OzJA3oKRfBpxeznMuNTxJ3xNP0P92yQzpHkSOesVYnFs%2FZNhmaE%2FIZS5THURli%2B%2Fb2tiSecK%2BdA74gUTs2Q8SzVteWs0xl8%2BrgkRuVoKYt4xR27cixfALtlXxeftSGeMKm3vDBEM8wKrOBW0ST7SWEfK7zL5lwrr7nQTzXIU87AvHsC1044TxDEbGZIaHPkYoYo4my4sXzr39M4KoxFPH4xzGFcJJ%2BZ6AaTYngkstAlePFYlPiCfkxG9%2FxTOcL4plGtjwhpXA6CwjxLOf67MRn8nn6URvimUUbb%2FxHI5T8dCYozi6%2FzFFCOB0FJMjt1L%2FGvqFVIZ4N0L23%2FNIIEY9ZCEpK556WJHfMqCstjHiUQF4vg3iuGaUd8bIJSpqHoDgrv3jKC6eDfAS5zYtnrk0injleaUafNkLEoxrHVtKpLCDEo1oXZ4sNiSfs9zu3mwkSpuJP4ZeNEPGoFdgla7Wdgi4kyaVoVxL0EV4888F8lM%2BXXy5APPNQd8wYboKSZiEozkqSH2a9IxG895Tkk%2FdZz%2FYT5DbimQ8k4plnFm7GVCOUNApJcRb5b7ZNsQ6XKUYHkuSU0ZGml5XkdoX7TwOTTUA8Mn7bZ083QkmRSIqzgHimWW%2FPDscDSPLK8Zgvt5Lkdva7b%2BB%2FKp7wH7MdwCQJk7wZLjVCaZEIeGf%2BuG2JtWJBX7Hbfb73q0pzS5HX9FKCvE5972lQehPu5fPpOx7EowdZe6XlRiNtDpICTSr6ZdaLQb%2BSzMyy3mdP24QleS2tqZmAFhqbWzzCV49mkXvlhLiZSApFUqAJxSNmPZgUHnnodZeU8pHktaSeBvOj4rDW4jkC6lH0Womj0jykhSIo0nasLwK%2Fi4dKHp3dTZpjWgUzuo4gp1OKdpSL4TjEk%2BS%2FVK3WLKRNQVKkSUSvxvpF4e4SzuNxTO8pzTPDpvdlaUlOZ7qnJ9OLvfKLR%2FhxW5ZXj1qTkBaKpEibiyeKcO57glpePTYaaZ55NklJTme6pyfTFfGk%2BMWC%2B4tJEidBM1RvDpJiEbKOLnp11gny64iJxb3TfAwlyWlJLQUSwY6j3F49H7%2FV1k08kZthyIYgKdTAjdiCdcRXzlmTUWeQoTFL8jnD%2FXZYZWDP%2FOIp%2BnGbehP42fRF%2FyicAuuIotdmnU04ph%2B%2FRW%2FOiGdAE%2FpDEM9PptGahWYzfLybSD6SQr3L30i8LVnrl6z9ipo83k8bWT6SfI58L%2Fs0Ee2AeAI2Q83Cf9bgReIp9uqxZi2qzo2TNbkgno2BDLp1DfHQDJ%2Bm16tXhVg8hXhrNdhILzitXqPFJvSrhxePVrpMrVNHPEWaoVaxXzVCsXwkBRvklenFeqoigw3WYhT21SPJYz5qW87WT%2BJJ9xttj9eWJFGAZqhV5FfSOa4qFo%2BS6I9lRs67nOEnEzV47zq7BY9Xa2pwCvvqkfQMxCNKw0M%2B779OnV48yZuhVoGPNMNI4tkhH0%2FWouoMMlmFV8RGjXi2ZRjieYF%2BpIFrRU2lsCdfD13ls4O1Vp7sWkeLWbiP3BDPrpR6qyUexVeP50%2FiGoU9K8po4vHivYP1tupW3FiDG%2BJRDEjypRDPRQBnG%2FpKPkiLevWMHeWzi%2FVKXkSbI2UX8rue1VdPxI8OoyXMyXnqiUf51XNjt9rcr3JBo5hXz6YiHgPeq%2FeJzPrqbBn%2BXCNXS7x6kI44XWuKx6AZWn0UJC1maZNWkc%2FqT43Or83drMXVGmABKcNw4lnpFYhHnIl1xbOSUAM4pY3%2BcQtpIUvPoyIeI9bast%2FNeiC9wg%2BRMgz5cdtM%2FiIdlRxFPIsYpQ3%2F2FZaxBpneD%2FHH78tUniYZvTy0RBQFNY6oPeuImUZ8tVzJR%2BEo5p07%2BIp8Xd4XmExbIbShigt4HDiuSpehdRdvXMU1goIti8hZRlWPNvJ9jpAbfE4NMNVAUkKeLUBv0pttVePE%2B9Z5pFYV2gvEp6Ip0IGyO9QXzyOzfAWjisxiAp38i%2BLjqZIRvmM8I7IejQmUcdJmSKfqJH1O1cP8WyQz30Iv%2Fy7OH%2F%2BLYrwldhWFs8snpX7js6xYD26d9RxiCdqZPKcq494NstHKyUsG6GqfArwtmStlQ%2B71hHJhy%2Frd4UtzL69xEMzvEw85PMLEeJ5nS4i8RzLIp%2FLWqw8oJ94ksvHuhmqiycxb2vWmRsL4skcvf1n7ymepM3QqxEinx%2BF6cV7fxtYO4FIPrx41qAXmdVXPLcAGv9dH8088WyE3eXjyVozRzzXQjyetGvthXgSvX68m6GJfJLw9madsa0gnoxRi3FmxJPo5bOjGXaVzw7WMVrC%2BCkQzzgrRn4mgHgeMyLwR2%2B7mqGZfAK%2FfnaxztSgEE%2BmaMU6K%2BJ5FY%2BAAtrVDE3FE%2FTFuYt1rPZwfhqReK4uyi8fXBFK%2FeeI5yp8gQS0sxm6yCfQC2gn66uU3P3npsJ5djkktDvk6vsjnlGkmwUUoRG6ySeAgCLwHk1Nj3Husjm7FCLyCLnpHohnFu9GAUVohq7y2fgxXATWs6mpPT6UbF5dDglph91lPcQjwewsoUjNcIuAHF9CkVhLUnRlbgrh3F8M%2BayEeescxKOJ31hE0ZrhNvk4vISisdZM01drpRPO40UQkEeaqOyBeFQwXiyiJKSIzXC7fM7QC7hHZG2VqumFg4CsUsNsXcRjhvbFwgWbYVj5FGStma7lhIOANNPDdC3EY4r3yeKFm2E4ARVmLU3b8tLhOyBpipjORzymeHuJ57htKPkgnqfZ3Uo6NwJ8%2F%2BPd6U73Qzze4WjQDMPIR8D6SItq3%2FO0FA4vH%2B8ON7Qf4hnCpDhI0AyzNcLtAhKwriae9tLh5aPYxORLIR45w7kVmjXDzPLJJvpXiYh0HsjwsdtczzIYjXgMoF4uKZBP1ma4TUANWd%2FnH9I5qUYEdNmqrAYgHiuyZ%2Bs2bobuAhKwzv5xWxTpPP6wFOVc7yWKfHZ0wDfEswN702b4qeF4FryAd9oX5p9%2Fu2a2FqctUvLMRdeoxN0M8eyIjaARZv0p%2FGVD8Sh6AW%2BthuqZZl7N25qN1z14%2BXhm54%2B9EI8%2F8x87NmqGww3ESkIC1tlEP8x6Me%2BtZfPqWNb34iO3xYRYnIZ4FsGJpzVphssNQ1NCsBan6y7hPB58OZ9GCGjm3Mh%2Bjccgnl3Bb9AM1ZqERkMozluN9ZN6iCKd%2B6OZ3Vcj13b1lET7Ip5dwRI2wgwfAak2B2lDEPKO2HytG3H0Ox%2F3V82xG1Bpru3qKYn2RTw7g1W4Gao3BGkzELKOLHpt1hmEYy1dvvOxbYyIx5bv%2BepFm6FVIxT%2FHSAh74gN2Yr1zrJY2VubA%2BJZicL4HMQzzspmZLFmqN0A7pv9bvFEe%2FVYsrZJdttVtXkgH7t4fTuW%2Fv7X79%2FttmDlUwJC8VRuhl%2F%2Bxvsfv8mTqRBvzUYb8TW3Gmw1LtKPd1cvUHzet3%2F%2B5xviiRDkIs1QreBP%2FkmCCK%2BeCLL3YB2hNFbPoMYH%2BayG4OU8xKOOdHFBBfFUaoZnP32LxXOAUuC9%2B4Wg1Vh332OxYi6nafF53wj5XPKeGYB4ZmhZj1Vohjvlo1XoV40wing6sLZOeev1tXIS8ehGCvHo8pSthniG%2F8XP7vLRaKhXgpclc5zZGqx49ejGE%2FHo8pSvllQ%2BWsU92gwjicf75aPBepSzPKFjrKDBjFePXiwRjx5LnZWUxHM7jFeD0Sjs2bN2lc8O1jrJvXcVDW7IRyeGiEeHo%2B4qyeSjUdCz0jmARxOPx8tnF2vdBN%2BzmgY7xKMTO8Sjw1F%2FlUTykRb0inRuwCPKx1JAUtaWZ9MvAv0Vxfz47TaVoHyI51iNv0SqwlRnEWXxWDUccSGf%2FH2dEZAq4jk2asJbIvmReEQfo5GvvHpkUT6kc6zw%2Fn%2BIRwbTZLZBM9QWkLSQNRphZPlo8o7A2iTPnReVckQ8soAhHhk%2Fn9lG8tFqiNIiDiUeo5fPLVGkd43A2ifpbXeRckQ8svggHhk%2Fv9lB5SMtYGkjvg9A9FePhnwkvDVZ%2ByW%2B3U4Slu%2Bn4rue5eAgnmV0zhMNxXN%2Fk9nmJC3e2f3OqKuJx%2FjVs8o7Emvn7DfZTsoT8ayHBfGss%2FOf6SSfmZ%2FMJcWrKZ3bmTPKZ5S3hLXWx6r%2BSW%2B7o4gpL57l4CCeZXSbJjrL5%2Bqnc0nhWojnOG9m%2BTzLqhuniKw3VYHathKmfNy2HoYv4jmW4leq14G6zNwoH837WYmnonyk3C1ZS8%2B2cz7i8ad%2Fk86x88evUyMe%2F0As7VhAPpbNUPXVcwQoOW9L1kv5G2iSSD583DYdScQzjSzghKQN0aMRIp8f%2BerBOmBlDB8J8QyjUhmIeFQwBlgkoXy8mqG6fBK%2BfrxYB6iEpSMgniVsy5MQzzK6gBOTycezGXaXjyfrgJVxeSTEc4lIdQDiUcUZYLFE8vFshibiSfTy8WQdoAqmj4B4ppGJJrwUz7Eqv9kmYrt3cgIBeTdDM%2FkkEJA3673Jv7Y78lnjNjvrXjrH3E%2B%2F1YZ4ZnEGHB9YPrsaYVf57OIdsCpeHgnx%2BEQL8fhw3r9LQAHtbISm8gn6%2BtnJe38BjJ0A8Yxxko5CPFKC2eYHEtDuRmgun2AC2s07Q6kgHp8oXYqHj9t8AuG%2BSwABRWiELvIJIKAIrN1zfGFDxLMAbXLKo3SefseDeCapZhy%2BSUJRmqGbfG65sYF3FNbRywPx2EcI8dgzzrWDc0OM1Azd5eMsoUisIxcF4rGPDuKxZ5x3BwcJRWuG2%2BTjJKFovCMWB%2BKxjwrisWdcbwdFIUVshNvlc5YxQvYReUcrEMRjH5Fh8fA9j30w0u4gaIZRG2FV%2BUTlHSn3EY9tNJ5J5%2BUvFyAe22CkX72gfI6YhBRQUdYRagDp2EcB8dgz7rND4WYYTj6FWe8uGMRjHwHEY8%2B4zw4NmmEYATVgvatwEI89%2BWnx8HGbfVDS7tCkGYaQTxPWr2rhSg6S77Gu1j6tT%2F4F0sv29Uo6p9%2FxIJ5Lrn0HNGuGWwUkYH0kqKQx70zwGSms3nFmjy8sEM9leiCeS0QMmCLQsBluk09H1n%2F%2BPZWOt8EzAhJJ59gQ8VzGaFk8vHou2fYc0LkZ7mg4At4zzThKMkukMHpfyR7vnHbkQZQADZzjTDqXH7UhngHCXYc0aoZPm5Rn4xGwzvZxm1gIgx8vivbxjH3S%2FoJ4kgYu%2FLEFzXD0p9IIDIYalHUjErDOJJ4h1oNJcZZj4n2s4z14x8jDEE%2Fk6GQ%2BG83wefSsmpKAdxbRi4XwEJFX9xbvYxXjzP3g4exi8fBxW6Fs0LyKoBG2%2BSlcs0E14C0WwpP8fiYf0T6aMdWsx0BrXUln6DsexBMootGOQjMcj4i0YcF6nPXJy0cknWNdaRyXb5FnIuLJE6ucJ6UZzsVN2rSK8xZL4SQax8tHZX1pDOcyJuVoNfHw6kkZf%2FtDCxthho%2FcVJrVLRLSpiXkHf27HlXWVtkvjaHVuYKsOyKd4Y%2FaEE%2BQqEY8Bs1wPCrSpiVkHV304cUjjd94pqQdiXjShi7ZwWmGcwGTNi94z%2FHWHC2NneZZgq6lLh5ePUEjvftYCo2w1U%2Fi0ualwDvyR25hXz3SuO2uU4f9R6Uz9VEb4nGIXNYtaIbjkdNoYPAe5601UiNuWmcJug7iCRqY0seiGY6HV9rEFFi3emWOR%2Bb5SGm8pPsnmW8mHl49STJgxzFphuPUNRoZvMd5S0dqxEt6huDzZ6Qz%2FVEb4gke%2Fd3HoxmORUCjkSmx5uVzETKNWI1lRepRiCd1%2BJIfnmY4HkCNhgbvcd6rIzXitLp3onnm4uHVkygbdhyVZjhGXaOhKbLm5fMkbBoxGsuG1KNmpbP0URviSZ0j9oenGY4z1mhs8B7nPTtSIz6zeyYc7yYe5JMwOzyPTDMco63R2JRZ8%2FL5GTqN2IxlQepRK9JZfvEgntS54nP4Rg1R9JceNRpcI9ZH8op4z2S%2FRmxm9ks4FvEkDFrpIxs0w8g%2FjS83Q63mBm%2BbctKKj83ptq%2FqLh5ePdtjHv8ARs0wooCWxXNcRqu5NeAt4rxaMVrxWd0%2F6LxV6Yg%2BakM8QbMh2rEMm2EEAak0Qs3GVpi3CuvV%2BtCM0eoZgs1DPMECwnEeCBg3wx0CUm%2BCmo2tEG91zpLi1IyR5BxB5m4TD6%2BeIBmQ4RgOzfCGweq%2FvmzeBLUamyNrC%2Bmbc5bUi1aMJGcIMFciHfFHbYgnQAZkOoJzQ9Roiq5NULOpbWD9mIojPwC48tWqFc04aZ3JeZ3t4kE%2BzhHPvl2AhhgaoWZTg7VdqDXjZHdKk5Wl0lF58SAek9jWXpSGeB5f7aYGb5t60o6TzSnVVw0jHuSjHtv6C9IMX8fYoqHhb01JAAAKFElEQVTB26amLGJlc1KVVTWko%2FbiQTwqMe23CM0Q%2BVTI%2BkbyCSce5FOhgjbcAfkgnw1pp75lA%2FloSUf1xYN41FO514II6Hm8LRoarG1qyyJWNiddWhXxLGFjUngCXRri0aBm7mrV0GbOED55nhzwnpvXXa1iFYB%2FWPHw6gmQHRWO4NUkvFk9NqWZe1o2tJlzeDNb3e8ZL697WsZqlYdwnqZ01D9qQzzC6DL9FwGvJuHB%2FKwRjd7To5mNnsWD2eoeV5y87nh1jtX7bZoXXjzIZ1NmVN3Wq1FY8BttPqN3HF1PcpfRs0j2sJg7w8brjjNnsmCitKa2dExePIhHKdos85mAV7PQ4j7bdEbvN7vu6n1Gz7O6vta8VR5e91s9nxYfhXXSiAf5KESbJZ4T8GoYK%2FylTWb0btJ9Zu82eq7ZdVfHa93f615a513lJZhnIR2zFw%2FiEUSaqeMEvBrH2Ym0m8ronbT3HaU%2Ber7R9UbHWd3X6z5W5x%2FltzgunXiQz2KkmbZOoEoTmbnHzoY2c86VqHrdzfoet7t73WeF9ZM5VtIxffEgHqXos8w6AY2GsqtZzJx91xmvIjNyhyhnHznr1X1H%2FjzKfQfOmlY8yGcgugyBwCsCM80wUUMLG%2FAZ3pJLJIiVpXTMXzy32Hz%2F6%2FfvkjgxFwJtCcw0wwQNLXwcZ3hLLhM4VtbSQTySxGEuBLwIzDbDwE3NC5lon1neq5sFjVMZ8fCR22pmMg8CPwnMNsOgTS1NPGd5r14sWJw8pOP24kE8q1nJPAjcEZhthsGaWrpYzvJevWCgOJUTD%2FJZzUrmQUAgn2NqoMaWLpaN5OMlHdcXD%2BJJV3IcOCqB1WaIgNYiusp7drfN8SkrHuQzm4mMh8ALApJmuLnBpYyphPfMhTfFxlM67i%2BeG39%2BvXomExkLAQP58BHcfFoVlY%2B3dBDPfOoxAwKxCGg0w00%2FZccCOXgaDd5XWznHo414%2BMjtKvP4cwhMEtBoiM4Nb%2FKGcYZrsL66jVMsdkhn24sH8VxlHX8OgQUCmg3RqfEt3DLGFE3Wz27kxL%2BdeJBPjPrhFMUIWDREpyaYLhIWrG8QHJjvks7WF8%2BNL79okK7cOHB0AlYN0aEZRkf75XxJWe%2BUDuJJl%2BUcGAKDBCwaIuJ5Dj8h6%2Fbi4SO3wUbCMAjMEtBuiIjndQQSsd4tnRAvHj5ym%2B0mjIfABAHNhoh4zsEnYB1BOohnon4ZCoG0BLQaIuK5ToHgrBHPkxDyiwbXec0ICCwRkDZEpDOOPSjrKNIJ9eLhu57xvGYkBJYIrDZEpDOPOyBrxHMSRl498znODAgME1hpiIhnGO%2BngbOsDTlHkk64F88taMhnLc%2BZBYEhAqMN0bARDp2zyqAR3oaso0knrHj42K1KxXGP0ATOGqJhIwzNxPpw98wdGEeUDuKxTjLWhwAEILCRAOJZgM9HbgvQmAIBCEDg7e0tqnRCv3j4vofagQAEILBGILJ0EM9aTJkFAQhAIDQBxKMQHj5yU4DIEhCAQAsC0aWT4sXDR24taoVLQgACCgQySCeVeI7D8vJRyEyWgAAEShLIIp104kE%2BJeuFS0EAAkICmaSDeITBZjoEIACBCAQQj0MU%2BMjNATJbQAACKQhkk07KF88tE5BPiprgkBCAgCGBjNJJLR6%2B7zHMZpaGAATCE8gqnfTiQT7ha4MDQgACBgQySwfxGCQES0IAAhCwJoB4rAkPrM%2F3PQOQGAIBCJQgkF06JV48t0xCPiVqiktAAAInBCpIp5R4%2BL6HeoUABCoTqCKdcuJBPpXLjrtBoC%2BBStIpKR7k07c4uTkEKhKoJp2y4kE%2BFcuPO0GgH4GK0iktHuTTr0i5MQQqEagqnfLiQT6VypC7QKAPgcrSQTx98pibQgACiQggnkTBenVU%2Fo5PgSByBQg0IVBdOi1ePLdcRT5NqpZrQiAxgQ7SaSUevu9JXI0cHQINCHSRTjvxIJ8G1csVIZCQQCfptBQP8klYlRwZAoUJdJNOW%2FEgn8JVzNUgkIhAR%2Bm0Fg%2FySVSdHBUCBQl0lU578SCfgtXMlSCQgEBn6SCeuwTl160TVCtHhEByAt2Fcwvft%2BRxVD0%2B8lHFyWIQgMAdAaTzCwbieSgN5EOvgAAEtAkgnc9EEc%2BTDEM%2B2mXHehDoSwDpfI094nlRD8inb6Pg5hDQIoB0npNEPCcZhny0yo91INCPANJ5HXPEc1EPyKdfw%2BDGEJASQDrnBBHPQIYhnwFIDIEABN4JIJ3rREA814w%2BRiCgCVgMhUAzAghnPOCIZ5zV%2B0jkMwmM4RBoQADpzAUZ8czxQj4LvJgCgcoEkM58dBHPPDPks8iMaRCoRgDprEUU8axx43sfITemQyAzAYQjix7ikfHj9aPAjyUgkIkA0pFHC%2FHIGSIfJYYsA4HoBJCOToQQjw5H5KPIkaUgEJEA0tGLCuLRY8n3PgYsWRICuwkgHP0IIB59prx%2BjJiyLAS8CSAdG%2BKIx4Yrrx9jriwPAUsCCMeS7tsb4rHly%2BvHgS9bQECTANLRpPl8LcRjzxj5ODFmGwhICSAdKcGx%2BYhnjJPaKP5bb2ooWQgCagQQjhrKoYUQzxAm%2FUEISJ8pK0JglgDCmSWmMx7x6HBcWgX5LGFjEgRUCCAdFYxLiyCeJWy6kxCQLk9Wg8AZAYSzPz8Qz%2F4YvJ8A%2BQQJBMcoTQDpxAgv4okRh49TIKBgAeE4JQggnFhhRDyx4oGAgsaDY%2BUkgHBixg3xxIwLH78FjgtHy0EA6cSNE%2BKJGxtePwliwxHjEUA48WLyeCLEEz9GCChRjDjqPgIIZx%2F72Z0RzyyxAOP5BYQAQeAIYQggnDChGD4I4hlGFWsg8okVD06zhwDS2cNduivikRLcPB8BbQ4A228hgHC2YFfbFPGoody7EALay5%2FdfQggHB%2FO1rsgHmvCzusjIGfgbOdCAOG4YHbbBPG4ofbdCAH58mY3GwIIx4br7lURz%2B4IOOyPhBwgs4UaAWSjhjLsQognbGj0D4aA9Jmyoh4BhKPHMvpKiCd6hAzOh4AMoLLkMgGEs4wu7UTEkzZ08oMjIDlDVlgngHDW2WWfiXiyR1Dp%2FEhICSTLnBJANiTIQQDxkAdfCCAhkkKTALLRpFljLcRTI44mt0BAJljbLIpw2oR6%2BqKIZxpZzwlIqGfcZ2%2BNbGaJ9RyPeHrGXXRrJCTCV24ysikXUvMLIR5zxLU3QEK14%2FvqdsimZ9y1bo14tEiyzhsSqp0EyKZ2fD1vh3g8aTfbCxHlDjiiyR2%2FyKdHPJGjU%2BhsSChHMJFNjjhlPyXiyR7BpOdHRDECh2hixKHbKRBPt4gHvi8ysg0OkrHly%2BrjBBDPOCtGOhNARDLgiEbGj9l2BBCPHVtWNiKAkD6DRTBGicayZgQQjxlaFt5BoKqUkMuObGJPKwKIx4os64YlEE1OSCVsqnAwIwL%2FD9mA6Lk1zUVXAAAAAElFTkSuQmCC%22%3B%0A%0A%20%20%2F**%0A%20%20%20*%20%40param%20%7BVM.Target%7Cnull%7D%20target%0A%20%20%20*%20%40param%20%7Bstring%7Cunknown%7D%20thing%0A%20%20%20*%20%40returns%20%7Bstring%7Cnumber%7Cboolean%7D%0A%20%20%20*%2F%0A%20%20const%20getThingOfTarget%20%3D%20(target%2C%20thing)%20%3D%3E%20%7B%0A%20%20%20%20if%20(!target)%20%7B%0A%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22x%20position%22)%20%7B%0A%20%20%20%20%20%20return%20target.x%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22y%20position%22)%20%7B%0A%20%20%20%20%20%20return%20target.y%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22direction%22)%20%7B%0A%20%20%20%20%20%20return%20target.direction%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22costume%20num%22)%20%7B%0A%20%20%20%20%20%20return%20target.currentCostume%20%2B%201%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22costume%20name%22)%20%7B%0A%20%20%20%20%20%20return%20target.getCostumes()%5Btarget.currentCostume%5D.name%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22size%22)%20%7B%0A%20%20%20%20%20%20return%20target.size%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22volume%22)%20%7B%0A%20%20%20%20%20%20return%20target.volume%3B%0A%20%20%20%20%7D%0A%20%20%20%20%2F%2F%20this%20should%20never%20happen%0A%20%20%20%20return%20%22%22%3B%0A%20%20%7D%3B%0A%0A%20%20class%20ClonesPlus%20%7B%0A%20%20%20%20getInfo()%20%7B%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20id%3A%20%22lmsclonesplus%22%2C%0A%20%20%20%20%20%20%20%20name%3A%20Scratch.translate(%22Clones%2B%22)%2C%0A%20%20%20%20%20%20%20%20color1%3A%20%22%23FFAB19%22%2C%0A%20%20%20%20%20%20%20%20color2%3A%20%22%23EC9C13%22%2C%0A%20%20%20%20%20%20%20%20color3%3A%20%22%23CF8B17%22%2C%0A%20%20%20%20%20%20%20%20menuIconURI%3A%20menuIconURI%2C%0A%20%20%20%20%20%20%20%20blocks%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22whenCloneStartsWithVar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.HAT%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22createCloneWithVar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22touchingCloneWithVar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22touchingMainSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22touching%20main%20sprite%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setVariableOfClone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%220%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTC%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTD%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getVariableOfClone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTC%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setVariableOfMainSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getVariableOfMainSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22variable%20%5BINPUT%5D%20of%20main%20sprite%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22cloneExists%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getThingOfClone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22thingOfMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTC%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getThingOfMainSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22%5BINPUT%5D%20of%20main%20sprite%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22thingOfMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22stopScriptsInSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22stop%20scripts%20in%20%5BINPUT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22spriteMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22stopScriptsInClone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22stopScriptsInMainSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22stop%20scripts%20in%20main%20sprite%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22deleteClonesInSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22delete%20clones%20in%20%5BINPUT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22spriteMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22deleteCloneWithVar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22isClone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22is%20clone%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22cloneCount%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22clone%20count%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22spriteCloneCount%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22clone%20count%20of%20%5BINPUT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22spriteMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20menus%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20spriteMenu%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%22getSprites%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20menus%20use%20acceptReporters%3A%20false%20for%20Scratch%20parity%0A%20%20%20%20%20%20%20%20%20%20variablesMenu%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%22getVariables%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20thingOfMenu%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22x%20position%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22x%20position%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22y%20position%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22y%20position%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22direction%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22direction%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22costume%20%23%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22costume%20num%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22costume%20name%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22costume%20name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22size%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22size%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22volume%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22volume%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20whenCloneStartsWithVar(args%2C%20util)%20%7B%0A%20%20%20%20%20%20%2F%2F%20TODO%3A%20this%20is%20really%20not%20ideal.%20this%20should%20be%20an%20event-based%20hat%20ideally%2C%20but%20we%20don't%20have%20a%20good%0A%20%20%20%20%20%20%2F%2F%20way%20to%20do%20that%20right%20now...%0A%20%20%20%20%20%20if%20(util.target.isOriginal)%20%7B%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20variable%20%3D%20util.target.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20const%20expectedValue%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20if%20(variable)%20%7B%0A%20%20%20%20%20%20%20%20return%20Scratch.Cast.compare(variable.value%2C%20expectedValue)%20%3D%3D%3D%200%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20createCloneWithVar(args%2C%20util)%20%7B%0A%20%20%20%20%20%20%2F%2F%20%40ts-expect-error%20-%20not%20typed%20yet%0A%20%20%20%20%20%20Scratch.vm.runtime.ext_scratch3_control._createClone(%0A%20%20%20%20%20%20%20%20util.target.sprite.name%2C%0A%20%20%20%20%20%20%20%20util.target%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20const%20clones%20%3D%20util.target.sprite.clones%3B%0A%20%20%20%20%20%20const%20cloneNum%20%3D%20clones.length%20-%201%3B%0A%20%20%20%20%20%20const%20cloneVariable%20%3D%20clones%5BcloneNum%5D.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20if%20(cloneVariable)%20%7B%0A%20%20%20%20%20%20%20%20cloneVariable.value%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20touchingCloneWithVar(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20drawableCandidates%20%3D%20util.target.sprite.clones%0A%20%20%20%20%20%20%20%20.filter((clone)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20variable%20%3D%20clone.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20variable%20%26%26%20Scratch.Cast.compare(variable.value%2C%20args.INPUTB)%20%3D%3D%3D%200%0A%20%20%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20%20%20.map((clone)%20%3D%3E%20clone.drawableID)%3B%0A%20%20%20%20%20%20if%20(drawableCandidates.length%20%3D%3D%3D%200)%20%7B%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20Scratch.vm.renderer.isTouchingDrawables(%0A%20%20%20%20%20%20%20%20util.target.drawableID%2C%0A%20%20%20%20%20%20%20%20drawableCandidates%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20touchingMainSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20if%20(util.target.isOriginal)%20%7B%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20main%20%3D%20util.target.sprite.clones%5B0%5D%3B%0A%20%20%20%20%20%20const%20drawableCandidates%20%3D%20%5Bmain.drawableID%5D%3B%0A%20%20%20%20%20%20return%20Scratch.vm.renderer.isTouchingDrawables(%0A%20%20%20%20%20%20%20%20util.target.drawableID%2C%0A%20%20%20%20%20%20%20%20drawableCandidates%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setVariableOfClone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20newVariableValue%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20const%20expectedVarValue%20%3D%20args.INPUTD%3B%0A%20%20%20%20%20%20const%20clones%20%3D%20util.target.sprite.clones%3B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%201%3B%20index%20%3C%20clones.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20const%20checkVar%20%3D%20clones%5Bindex%5D.lookupVariableById(args.INPUTC)%3B%0A%20%20%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20%20%20checkVar%20%26%26%0A%20%20%20%20%20%20%20%20%20%20Scratch.Cast.compare(checkVar.value%2C%20expectedVarValue)%20%3D%3D%3D%200%0A%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20editVar%20%3D%20clones%5Bindex%5D.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(editVar)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20editVar.value%20%3D%20newVariableValue%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20getVariableOfClone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20clone%20%3D%20this.getCloneFromVariable(%0A%20%20%20%20%20%20%20%20args.INPUTB%2C%0A%20%20%20%20%20%20%20%20args.INPUTC%2C%0A%20%20%20%20%20%20%20%20util.target.sprite.clones%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20if%20(!clone)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F%2F%20guaranteed%20to%20exist%20by%20getCloneFromVariable%0A%20%20%20%20%20%20const%20cloneVar%20%3D%20clone.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20return%20cloneVar.value%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setVariableOfMainSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20main%20%3D%20util.target.sprite.clones%5B0%5D%3B%0A%20%20%20%20%20%20const%20variableObj%20%3D%20main.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20if%20(variableObj)%20%7B%0A%20%20%20%20%20%20%20%20variableObj.value%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20getVariableOfMainSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20main%20%3D%20util.target.sprite.clones%5B0%5D%3B%0A%20%20%20%20%20%20const%20variableObj%20%3D%20main.lookupVariableById(args.INPUT)%3B%0A%20%20%20%20%20%20if%20(variableObj)%20%7B%0A%20%20%20%20%20%20%20%20return%20variableObj.value%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20cloneExists(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20clone%20%3D%20this.getCloneFromVariable(%0A%20%20%20%20%20%20%20%20args.INPUTA%2C%0A%20%20%20%20%20%20%20%20args.INPUTB%2C%0A%20%20%20%20%20%20%20%20util.target.sprite.clones%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20return%20!!clone%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getThingOfClone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20clone%20%3D%20this.getCloneFromVariable(%0A%20%20%20%20%20%20%20%20args.INPUTB%2C%0A%20%20%20%20%20%20%20%20args.INPUTC%2C%0A%20%20%20%20%20%20%20%20util.target.sprite.clones%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20return%20getThingOfTarget(clone%2C%20args.INPUTA)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getThingOfMainSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20main%20%3D%20util.target.sprite.clones%5B0%5D%3B%0A%20%20%20%20%20%20return%20getThingOfTarget(main%2C%20args.INPUT)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20stopScriptsInSprite(args)%20%7B%0A%20%20%20%20%20%20const%20targetObj%20%3D%20Scratch.vm.runtime.getSpriteTargetByName(args.INPUT)%3B%0A%20%20%20%20%20%20if%20(targetObj)%20%7B%0A%20%20%20%20%20%20%20%20Scratch.vm.runtime.stopForTarget(targetObj)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20stopScriptsInMainSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20Scratch.vm.runtime.stopForTarget(util.target.sprite.clones%5B0%5D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20stopScriptsInClone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20clones%20%3D%20util.target.sprite.clones%3B%0A%20%20%20%20%20%20let%20expectedValue%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%201%3B%20index%20%3C%20clones.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20const%20cloneVariable%20%3D%20clones%5Bindex%5D.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20%20%20cloneVariable%20%26%26%0A%20%20%20%20%20%20%20%20%20%20Scratch.Cast.compare(cloneVariable.value%2C%20expectedValue)%20%3D%3D%3D%200%0A%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20Scratch.vm.runtime.stopForTarget(clones%5Bindex%5D)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20deleteClonesInSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20target%20%3D%20Scratch.vm.runtime.getSpriteTargetByName(args.INPUT)%3B%0A%20%20%20%20%20%20if%20(!target)%20%7B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20clones%20%3D%20target.sprite.clones%3B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%20clones.length%20-%201%3B%20index%20%3E%200%3B%20index--)%20%7B%0A%20%20%20%20%20%20%20%20Scratch.vm.runtime.disposeTarget(clones%5Bindex%5D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20deleteCloneWithVar(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20clones%20%3D%20util.target.sprite.clones%3B%0A%20%20%20%20%20%20const%20expectedValue%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%20clones.length%20-%201%3B%20index%20%3E%200%3B%20index--)%20%7B%0A%20%20%20%20%20%20%20%20const%20cloneVar%20%3D%20clones%5Bindex%5D.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20%20%20cloneVar%20%26%26%0A%20%20%20%20%20%20%20%20%20%20Scratch.Cast.compare(cloneVar.value%2C%20expectedValue)%20%3D%3D%3D%200%0A%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20Scratch.vm.runtime.disposeTarget(clones%5Bindex%5D)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20isClone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20return%20!util.target.isOriginal%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20cloneCount(args%2C%20util)%20%7B%0A%20%20%20%20%20%20return%20Scratch.vm.runtime._cloneCounter%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20spriteCloneCount(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20target%20%3D%20Scratch.vm.runtime.getSpriteTargetByName(args.INPUT)%3B%0A%20%20%20%20%20%20if%20(target)%20%7B%0A%20%20%20%20%20%20%20%20return%20target.sprite.clones.length%20-%201%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%200%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20%40param%20%7Bstring%7D%20variableId%0A%20%20%20%20%20*%20%40param%20%7Bunknown%7D%20expectedValue%0A%20%20%20%20%20*%20%40param%20%7BVM.Target%5B%5D%7D%20clones%0A%20%20%20%20%20*%20%40returns%20%7BVM.Target%7Cnull%7D%0A%20%20%20%20%20*%2F%0A%20%20%20%20getCloneFromVariable(variableId%2C%20expectedValue%2C%20clones)%20%7B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%201%3B%20index%20%3C%20clones.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20const%20cloneVar%20%3D%20clones%5Bindex%5D.lookupVariableById(variableId)%3B%0A%20%20%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20%20%20cloneVar%20%26%26%0A%20%20%20%20%20%20%20%20%20%20Scratch.Cast.compare(cloneVar.value%2C%20expectedValue)%20%3D%3D%3D%200%0A%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20clones%5Bindex%5D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20null%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getSprites()%20%7B%0A%20%20%20%20%20%20let%20spriteNames%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20const%20targets%20%3D%20Scratch.vm.runtime.targets%3B%0A%20%20%20%20%20%20const%20myself%20%3D%20Scratch.vm.runtime.getEditingTarget().sprite.name%3B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%201%3B%20index%20%3C%20targets.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20const%20curTarget%20%3D%20targets%5Bindex%5D.sprite%3B%0A%20%20%20%20%20%20%20%20let%20display%20%3D%20curTarget.name%3B%0A%20%20%20%20%20%20%20%20if%20(myself%20%3D%3D%3D%20curTarget.name)%20%7B%0A%20%20%20%20%20%20%20%20%20%20display%20%3D%20Scratch.translate(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20default%3A%20%22myself%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20description%3A%20%22Item%20in%20a%20dropdown%20that%20refers%20to%20the%20current%20sprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20(targets%5Bindex%5D.isOriginal)%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20jsonOBJ%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20display%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20curTarget.name%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20spriteNames.push(jsonOBJ)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20(spriteNames.length%20%3E%200)%20%7B%0A%20%20%20%20%20%20%20%20return%20spriteNames%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20return%20%5B%7B%20text%3A%20%22%22%2C%20value%3A%200%20%7D%5D%3B%20%2F%2Fthis%20should%20never%20happen%20but%20it's%20a%20failsafe%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20getSpriteObj(name)%20%7B%0A%20%20%20%20%20%20%2F%2FThis%20is%20unused%20but%20I'm%20leaving%20it%20in%20for%20potential%20future%20blocks%0A%20%20%20%20%20%20const%20spriteObj%20%3D%20Scratch.vm.runtime.getSpriteTargetByName(name)%3B%0A%20%20%20%20%20%20return%20JSON.stringify(spriteObj)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getVariables()%20%7B%0A%20%20%20%20%20%20%2F%2F%20%40ts-expect-error%20-%20Blockly%20not%20typed%20yet%0A%20%20%20%20%20%20const%20variables%20%3D%0A%20%20%20%20%20%20%20%20typeof%20Blockly%20%3D%3D%3D%20%22undefined%22%0A%20%20%20%20%20%20%20%20%20%20%3F%20%5B%5D%0A%20%20%20%20%20%20%20%20%20%20%3A%20Blockly.getMainWorkspace()%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getVariableMap()%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getVariablesOfType(%22%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.filter((model)%20%3D%3E%20model.isLocal)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.map((model)%20%3D%3E%20(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20model.name%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20model.getId()%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D))%3B%0A%20%20%20%20%20%20if%20(variables.length%20%3E%200)%20%7B%0A%20%20%20%20%20%20%20%20return%20variables%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20return%20%5B%7B%20text%3A%20%22%22%2C%20value%3A%20%22%22%20%7D%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20Scratch.extensions.register(new%20ClonesPlus())%3B%0A%7D)(Scratch)%3B%0A%20%7D)(Scratch)%3B","data:text/javascript;,(function(Scratch)%20%7B%20%2F%2F%20Name%3A%20Network%0A%2F%2F%20ID%3A%20truefantomnetwork%0A%2F%2F%20Description%3A%20Various%20blocks%20for%20interacting%20with%20the%20network.%0A%2F%2F%20By%3A%20TrueFantom%20%3Chttps%3A%2F%2Fscratch.mit.edu%2Fusers%2FTrueFantom%2F%3E%0A%2F%2F%20License%3A%20MIT%0A%0A%2F*%20generated%20l10n%20code%20*%2FScratch.translate.setup(%7B%22de%22%3A%7B%22_Network%22%3A%22Netzwerk%22%7D%2C%22fi%22%3A%7B%22_(1)%20text%22%3A%22(1)%20teksti%22%2C%22_(3)%20status%20ok%3F%22%3A%22(3)%20onko%20tila%20ok%3F%22%2C%22_(4)%20status%22%3A%22(4)%20tila%22%2C%22_(5%201)%20status%20text%20and%20text%22%3A%22(5%201)%20tilateksti%20ja%20teksti%22%2C%22_(5)%20status%20text%22%3A%22(5)%20tilateksti%22%2C%22_(6%204)%20type%20and%20status%22%3A%22(6%204)%20tyyppi%20ja%20tila%22%2C%22_(6)%20type%22%3A%22(6)%20tyyppi%22%2C%22_(7)%20redirected%3F%22%3A%22(7)%20onko%20uudelleenohjattu%3F%22%2C%22_(9)%20body%20used%3F%22%3A%22(9)%20onko%20runkoa%20k%C3%A4ytetty%3F%22%2C%22_Network%22%3A%22Verkko%22%2C%22_apple%22%3A%22omena%22%2C%22_browser%22%3A%22selain%22%2C%22_connected%20to%20internet%3F%22%3A%22onko%20yhteydess%C3%A4%20internetiin%3F%22%2C%22_current%20url%22%3A%22nykyinen%20url-osoite%22%2C%22_default%22%3A%22oletus%22%2C%22_delete%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22tee%20delete-pyynt%C3%B6%20sivustoon%20%5BUSER_URL%5D%20ja%20ilmoita%20vastauksen%20%5BRESPONSES_TYPES%5D%20jaettuna%20merkill%C3%A4%20%5BSPLIT%5D%22%2C%22_downlink%20max%20speed%20in%20mb%2Fs%22%3A%22enimm%C3%A4isvastaanottovauhti%20megabittein%C3%A4%20sekunnissa%22%2C%22_downlink%20speed%20in%20mb%2Fs%22%3A%22vastaanottonopeus%20megabittein%C3%A4%20sekunnissa%22%2C%22_get%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22tee%20get-pyynt%C3%B6%20sivustoon%20%5BUSER_URL%5D%20ja%20ilmoita%20vastauksen%20%5BRESPONSES_TYPES%5D%20jaettuna%20merkill%C3%A4%20%5BSPLIT%5D%22%2C%22_network%20generation%22%3A%22verkon%20sukupolvi%22%2C%22_network%20type%22%3A%22verkon%20tyyppi%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20tab%22%3A%22avaa%20%5BUSER_URL%5D%20uudessa%20v%C3%A4lilehdess%C3%A4%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20window%20with%20width%3A%20%5BWIDTH%5D%20height%3A%20%5BHEIGHT%5D%20left%3A%20%5BLEFT%5D%20top%3A%20%5BTOP%5D%22%3A%22avaa%20%5BUSER_URL%5D%20uudessa%20ikkunassa%3A%20leveys%20%5BWIDTH%5D%20korkeus%3A%20%5BHEIGHT%5D%20vasen%20sijainti%3A%20%5BLEFT%5D%20yl%C3%A4sijainti%3A%20%5BTOP%5D%22%2C%22_patch%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22tee%20patch-pyynt%C3%B6%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20sivustoon%20%5BUSER_URL%5D%20ja%20ilmoita%20vastauksen%20%5BRESPONSES_TYPES%5D%20jaettuna%20merkill%C3%A4%20%5BSPLIT%5D%22%2C%22_post%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22tee%20post-pyynt%C3%B6%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20sivustoon%20%5BUSER_URL%5D%20ja%20ilmoita%20vastauksen%20%5BRESPONSES_TYPES%5D%20jaettuna%20merkill%C3%A4%20%5BSPLIT%5D%22%2C%22_put%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22tee%20put-pyynt%C3%B6%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20sivustoon%20%5BUSER_URL%5D%20ja%20ilmoita%20vastauksen%20%5BRESPONSES_TYPES%5D%20jaettuna%20merkill%C3%A4%20%5BSPLIT%5D%22%2C%22_redirect%20this%20tab%20to%20%5BUSER_URL%5D%22%3A%22siirry%20osoitteeseen%20%5BUSER_URL%5D%20t%C3%A4ll%C3%A4%20v%C3%A4lilehdell%C3%A4%22%2C%22_rtt%20in%20ms%22%3A%22viive%20millisekunteina%22%7D%2C%22it%22%3A%7B%22_Network%22%3A%22Rete%22%2C%22_apple%22%3A%22mela%22%7D%2C%22ja%22%3A%7B%22_Network%22%3A%22%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%22%2C%22_apple%22%3A%22%E3%82%8A%E3%82%93%E3%81%94%22%2C%22_browser%22%3A%22%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%22%2C%22_default%22%3A%22%E9%BB%99%E8%AA%8D%22%7D%2C%22ko%22%3A%7B%22_(1)%20text%22%3A%22(1)%20%ED%85%8D%EC%8A%A4%ED%8A%B8%22%2C%22_(3)%20status%20ok%3F%22%3A%22(3)%20%EC%83%81%ED%83%9C%EA%B0%80%20ok%EC%9D%B8%EC%A7%80%20%EC%97%AC%EB%B6%80%22%2C%22_(7)%20redirected%3F%22%3A%22(7)%20%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%ED%8A%B8%EC%9D%B8%EC%A7%80%20%EC%97%AC%EB%B6%80%22%2C%22_Network%22%3A%22%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%22%2C%22_browser%22%3A%22%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%22%2C%22_connected%20to%20internet%3F%22%3A%22%EC%9D%B8%ED%84%B0%EB%84%B7%EC%97%90%20%EC%97%B0%EA%B2%B0%EB%90%98%EC%97%88%EB%8A%94%EA%B0%80%3F%22%2C%22_current%20url%22%3A%22%ED%98%84%EC%9E%AC%20URL%22%2C%22_default%22%3A%22%EA%B8%B0%EB%B3%B8%22%7D%2C%22nb%22%3A%7B%22_Network%22%3A%22Nettverk%22%2C%22_browser%22%3A%22nettleser%22%7D%2C%22nl%22%3A%7B%22_Network%22%3A%22Netwerk%22%2C%22_apple%22%3A%22appel%22%2C%22_default%22%3A%22standaard%22%7D%2C%22pl%22%3A%7B%22_browser%22%3A%22przegl%C4%85darka%22%7D%2C%22ru%22%3A%7B%22_Network%22%3A%22%D0%A1%D0%B5%D1%82%D1%8C%22%2C%22_apple%22%3A%22%D1%8F%D0%B1%D0%BB%D0%BE%D0%BA%D0%BE%22%2C%22_browser%22%3A%22%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%22%2C%22_default%22%3A%22%D0%BF%D0%BE%20%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D1%8E%22%7D%2C%22uk%22%3A%7B%22_browser%22%3A%22%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%22%7D%2C%22zh-cn%22%3A%7B%22_(1)%20text%22%3A%22(1)%20%E6%96%87%E6%9C%AC%22%2C%22_(3)%20status%20ok%3F%22%3A%22(3)%20%E7%8A%B6%E6%80%81%20ok%3F%22%2C%22_(4)%20status%22%3A%22(4)%20%E7%8A%B6%E6%80%81%22%2C%22_(5%201)%20status%20text%20and%20text%22%3A%22(5%201)%20%E7%8A%B6%E6%80%81%E6%96%87%E6%9C%AC%E5%92%8C%E6%96%87%E6%9C%AC%22%2C%22_(5)%20status%20text%22%3A%22(5)%20%E7%8A%B6%E6%80%81%E6%96%87%E6%9C%AC%22%2C%22_(6%204)%20type%20and%20status%22%3A%22(6%204)%20%E7%B1%BB%E5%9E%8B%E5%92%8C%E7%8A%B6%E6%80%81%22%2C%22_(6)%20type%22%3A%22(6)%20%E7%B1%BB%E5%9E%8B%22%2C%22_(7)%20redirected%3F%22%3A%22(7)%20%E5%B7%B2%E9%87%8D%E5%AE%9A%E5%90%91%EF%BC%9F%22%2C%22_(9)%20body%20used%3F%22%3A%22(9)%20%E8%AF%B7%E6%B1%82%E4%BD%93%E5%B7%B2%E4%BD%BF%E7%94%A8%EF%BC%9F%22%2C%22_Network%22%3A%22%E7%BD%91%E7%BB%9C%22%2C%22_apple%22%3A%22%E8%8B%B9%E6%9E%9C%22%2C%22_browser%22%3A%22%E6%B5%8F%E8%A7%88%E5%99%A8%E5%90%8D%E7%A7%B0%22%2C%22_connected%20to%20internet%3F%22%3A%22%E5%B7%B2%E8%81%94%E7%BD%91%EF%BC%9F%22%2C%22_current%20url%22%3A%22%E5%BD%93%E5%89%8Durl%22%2C%22_default%22%3A%22%E9%BB%98%E8%AE%A4%E7%B1%BB%E5%9E%8B%22%2C%22_delete%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22%E5%88%A0%E9%99%A4%5BUSER_URL%5D%E7%9A%84%E5%93%8D%E5%BA%94%5BRESPONSES_TYPES%5D%E4%BB%A5%5BSPLIT%5D%E5%88%86%E5%89%B2%22%2C%22_downlink%20max%20speed%20in%20mb%2Fs%22%3A%22%E6%9C%80%E5%A4%A7%E4%B8%8B%E8%A1%8C%E9%80%9F%E5%BA%A6%20mb%2Fs%22%2C%22_downlink%20speed%20in%20mb%2Fs%22%3A%22%E4%B8%8B%E8%A1%8C%E9%80%9F%E5%BA%A6%20mb%2Fs%22%2C%22_get%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22%E8%8E%B7%E5%8F%96%5BUSER_URL%5D%E7%9A%84%E5%93%8D%E5%BA%94%5BRESPONSES_TYPES%5D%E4%BB%A5%5BSPLIT%5D%E5%88%86%E5%89%B2%22%2C%22_network%20generation%22%3A%22%E7%BD%91%E7%BB%9C%E4%BB%A3%E9%99%85%22%2C%22_network%20type%22%3A%22%E7%BD%91%E7%BB%9C%E7%B1%BB%E5%9E%8B%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20tab%22%3A%22%E5%9C%A8%E6%96%B0%E6%A0%87%E7%AD%BE%E9%A1%B5%E6%89%93%E5%BC%80%5BUSER_URL%5D%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20window%20with%20width%3A%20%5BWIDTH%5D%20height%3A%20%5BHEIGHT%5D%20left%3A%20%5BLEFT%5D%20top%3A%20%5BTOP%5D%22%3A%22%E5%9C%A8%E6%96%B0%E7%AA%97%E5%8F%A3%E6%89%93%E5%BC%80%5BUSER_URL%5D%20%E5%AE%BD%3A%20%5BWIDTH%5D%20%E9%AB%98%3A%20%5BHEIGHT%5D%20%E5%B7%A6%3A%20%5BLEFT%5D%20%E4%B8%8A%3A%20%5BTOP%5D%22%2C%22_patch%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22patch%5BCONTENT_TYPE%5D%5BBODY%5D%E7%9A%84%5BUSER_URL%5D%E5%93%8D%E5%BA%94%5BRESPONSES_TYPES%5D%E4%BB%A5%5BSPLIT%5D%E5%88%86%E5%89%B2%22%2C%22_post%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22post%5BCONTENT_TYPE%5D%5BBODY%5D%E7%9A%84%5BUSER_URL%5D%E5%93%8D%E5%BA%94%5BRESPONSES_TYPES%5D%E4%BB%A5%5BSPLIT%5D%E5%88%86%E5%89%B2%22%2C%22_put%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22put%5BCONTENT_TYPE%5D%5BBODY%5D%E7%9A%84%5BUSER_URL%5D%E5%93%8D%E5%BA%94%5BRESPONSES_TYPES%5D%E4%BB%A5%5BSPLIT%5D%E5%88%86%E5%89%B2%22%2C%22_redirect%20this%20tab%20to%20%5BUSER_URL%5D%22%3A%22%E8%B7%B3%E8%BD%AC%E5%88%B0%5BUSER_URL%5D%22%2C%22_rtt%20in%20ms%22%3A%22%E5%BE%80%E8%BF%94%E6%97%B6%E5%BB%B6%20ms%22%7D%7D)%3B%2F*%20end%20generated%20l10n%20code%20*%2F((Scratch)%20%3D%3E%20%7B%0A%20%20%22use%20strict%22%3B%0A%0A%20%20const%20icon%20%3D%0A%20%20%20%20%22data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB2aWV3Qm94PSIwLDAsMjI1LjM1NDgsMjI1LjM1NDgiIGhlaWdodD0iMjI1LjM1NDgiIHdpZHRoPSIyMjUuMzU0OCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTI3LjMyMjc0LC02Ny4zMjI2KSI%2BPGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZT0ibm9uZSIgZmlsbC1ydWxlPSJub256ZXJvIiBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iPjxwYXRoIHN0cm9rZS13aWR0aD0iMCIgZmlsbD0iIzE0NjYwMCIgZD0iTTEyNy4zMjI3NSwxODBjMCwtNjIuMjMwMDEgNTAuNDQ3MzksLTExMi42Nzc0IDExMi42Nzc0LC0xMTIuNjc3NGM2Mi4yMzAwMSwwIDExMi42Nzc0LDUwLjQ0NzM5IDExMi42Nzc0LDExMi42Nzc0YzAsNjIuMjMwMDEgLTUwLjQ0NzM5LDExMi42Nzc0IC0xMTIuNjc3NCwxMTIuNjc3NGMtNjIuMjMwMDEsMCAtMTEyLjY3NzQsLTUwLjQ0NzM5IC0xMTIuNjc3NCwtMTEyLjY3NzR6Ij48L3BhdGg%2BPGcgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSIjZmZmZmZmIj48cGF0aCBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpbmRleCZxdW90OzpudWxsfSIgZD0iTTI2MS4zNjIzNSwxNDYuNjIzNTlsLTUuMTUwOTcsNS4yNzQ2MmwtMTMuMTg1NTEsLTEyLjIzOTg5bDE5LjIzNjg5LC0xOS40OTU4OWMxMC41OTE0NywtMTAuNTkxNDcgMjcuNzU4NCwtMTAuNTkxNDcgMzguMzQxMTIsMGwxMi43ODAzOCwxMi43ODAzOGMxMC41OTE0NywxMC41ODI3MSAxMC41OTE0NywyNy43NDk2NSAwLDM4LjM0MTEybC0zOC4zNDExMiwzOC4zNDExMmMtMTAuNTkxNDcsMTAuNTg2OTUgLTI3Ljc0OTY1LDEwLjU4Njk1IC0zOC4zNDExMiwwbC0xMi43ODAzNywtMTIuNzgwMzdsLTEyLjY3Mzc4LC0xMy4yMjYxMmwxMi4yNjMwNCwtMTIuNDMzbDI1Ljk3MTQ5LDI1LjY1OTEyYzMuNTIxNzQsMy41MjE3NCA5LjI1ODY0LDMuNTIxNzQgMTIuNzgwMzgsMGwzOC4zNDExMiwtMzguMzQxMTJjMy41MzA0OSwtMy41MzA0OSAzLjUzMDQ5LC05LjI1ODY0IDAsLTEyLjc4MDM4bC0xMi43ODAzNywtMTIuNzgwMzdjLTMuNTIxNzQsLTMuNTIxNzMgLTkuMjQ5ODgsLTMuNTMwNDkgLTEyLjc4MDM4LDBsLTEzLjY4MDc5LDEzLjY4MDc5eiI%2BPC9wYXRoPjxwYXRoIGRhdGEtcGFwZXItZGF0YT0ieyZxdW90O2luZGV4JnF1b3Q7Om51bGx9IiBkPSJNMjE4LjYzNzczLDIxMy4zNzY0bDUuMTUwOTcsLTUuMjc0NjJsMTMuMTg1NTEsMTIuMjM5ODlsLTE5LjIzNjg5LDE5LjQ5NTg5Yy0xMC41OTE0NywxMC41OTE0NyAtMjcuNzU4NCwxMC41OTE0NyAtMzguMzQxMTIsMGwtMTIuNzgwMzgsLTEyLjc4MDM4Yy0xMC41OTE0NywtMTAuNTgyNzEgLTEwLjU5MTQ3LC0yNy43NDk2NSAwLC0zOC4zNDExMWwzOC4zNDExMiwtMzguMzQxMTJjMTAuNTkxNDcsLTEwLjU4Njk1IDI3Ljc0OTY1LC0xMC41ODY5NSAzOC4zNDExMiwwbDEyLjc4MDM3LDEyLjc4MDM3bDEyLjY3Mzc4LDEzLjIyNjEybC0xMi4yNjMwNSwxMi40MzNsLTI1Ljk3MTQ4LC0yNS42NTkxMmMtMy41MjE3NCwtMy41MjE3NCAtOS4yNTg2NCwtMy41MjE3NCAtMTIuNzgwMzgsMGwtMzguMzQxMTIsMzguMzQxMTJjLTMuNTMwNDksMy41MzA0OSAtMy41MzA0OSw5LjI1ODY0IDAsMTIuNzgwMzhsMTIuNzgwMzcsMTIuNzgwMzdjMy41MjE3NCwzLjUyMTczIDkuMjQ5ODgsMy41MzA0OSAxMi43ODAzOCwwbDEzLjY4MDc5LC0xMy42ODA3OXoiPjwvcGF0aD48L2c%2BPC9nPjwvZz48L3N2Zz48IS0tcm90YXRpb25DZW50ZXI6MTEyLjY3NzI1NToxMTIuNjc3NDA1LS0%2B%22%3B%0A%0A%20%20const%20fetch_url%20%3D%20(%0A%20%20%20%20%7B%20USER_URL%2C%20BODY%2C%20CONTENT_TYPE%2C%20RESPONSES_TYPES%2C%20SPLIT%20%7D%2C%0A%20%20%20%20METHOD%0A%20%20)%20%3D%3E%20%7B%0A%20%20%20%20SPLIT%20%3D%20String(SPLIT)%3B%0A%20%20%20%20CONTENT_TYPE%20%3D%20Number(CONTENT_TYPE)%3B%0A%20%20%20%20RESPONSES_TYPES%20%3D%0A%20%20%20%20%20%20String(RESPONSES_TYPES)%0A%20%20%20%20%20%20%20%20.split(%22%20%22)%0A%20%20%20%20%20%20%20%20.filter((word)%20%3D%3E%20word%20!%3D%3D%20%22%22).length%20%3E%3D%201%0A%20%20%20%20%20%20%20%20%3F%20String(RESPONSES_TYPES)%0A%20%20%20%20%20%20%20%20%20%20%20%20.split(%22%20%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20.filter((word)%20%3D%3E%20word%20!%3D%3D%20%22%22)%0A%20%20%20%20%20%20%20%20%3A%20%5B%229%22%5D%3B%0A%20%20%20%20let%20single%20%3D%20METHOD%20%3D%3D%3D%20%22GET%22%20%7C%7C%20METHOD%20%3D%3D%3D%20%22DELETE%22%3B%0A%20%20%20%20return%20Scratch.fetch(String(USER_URL)%2C%20%7B%0A%20%20%20%20%20%20method%3A%20METHOD%2C%0A%20%20%20%20%20%20headers%3A%20single%0A%20%20%20%20%20%20%20%20%3F%20%7B%7D%0A%20%20%20%20%20%20%20%20%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Content-Type%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20CONTENT_TYPE%20%3D%3D%3D%201%20%3F%20%22text%2Fplain%22%20%3A%20%22application%2Fjson%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20redirect%3A%20single%20%3F%20%22follow%22%20%3A%20%22follow%22%2C%0A%20%20%20%20%20%20body%3A%20CONTENT_TYPE%20%3D%3D%3D%201%20%3F%20String(BODY)%20%3A%20JSON.stringify(BODY)%2C%0A%20%20%20%20%7D)%0A%20%20%20%20%20%20.then((res)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20const%20responses%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%3D%20RESPONSES_TYPES.length%20-%201%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20switch%20(Number(RESPONSES_TYPES%5Bi%5D))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(res.text())%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%202%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(JSON.stringify(res.json()))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%203%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(String(res.ok))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%204%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(res.status)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%205%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(res.statusText)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%206%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(res.type)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%207%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(String(res.redirected))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%208%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(res.url)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%209%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(single%20%3F%20res.url%20%3A%20String(res.bodyUsed))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20Promise.all(responses)%3B%0A%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20.then((arr)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20let%20responses%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%3D%20RESPONSES_TYPES.length%20-%201%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20responses%20%2B%3D%20SPLIT%20%2B%20arr%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20SPLIT%20%3D%3D%3D%20%22%22%20%3F%20responses%20%3A%20responses.slice(1)%3B%0A%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20.catch((err)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20console.error(err)%3B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%7D%3B%0A%0A%20%20class%20Network%20%7B%0A%20%20%20%20getInfo()%20%7B%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20id%3A%20%22truefantomnetwork%22%2C%0A%20%20%20%20%20%20%20%20name%3A%20Scratch.translate(%22Network%22)%2C%0A%0A%20%20%20%20%20%20%20%20color1%3A%20%22%23146600%22%2C%0A%20%20%20%20%20%20%20%20color2%3A%20%22%23125C00%22%2C%0A%20%20%20%20%20%20%20%20color3%3A%20%22%23105200%22%2C%0A%0A%20%20%20%20%20%20%20%20menuIconURI%3A%20icon%2C%0A%0A%20%20%20%20%20%20%20%20blocks%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22connected_to_internet_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22connected%20to%20internet%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22browser_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22browser%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22current_url_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22current%20url%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22network_type_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22network%20type%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22network_generation_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22network%20generation%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22downlink_speed_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22downlink%20speed%20in%20mb%2Fs%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22downlink_max_speed_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22downlink%20max%20speed%20in%20mb%2Fs%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22rtt_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22rtt%20in%20ms%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22get_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22get%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fhttpbin.org%2Fget%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20RESPONSES_TYPES%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22only_url_response_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPLIT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22delete_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22delete%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fhttpbin.org%2Fdelete%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20RESPONSES_TYPES%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22only_url_response_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPLIT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22post_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22post%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fhttpbin.org%2Fpost%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20BODY%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22apple%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20CONTENT_TYPE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22content_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20RESPONSES_TYPES%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22response_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPLIT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22put_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22put%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fhttpbin.org%2Fput%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20BODY%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22apple%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20CONTENT_TYPE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22content_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20RESPONSES_TYPES%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22response_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPLIT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22patch_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22patch%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fhttpbin.org%2Fpatch%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20BODY%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22apple%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20CONTENT_TYPE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22content_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20RESPONSES_TYPES%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22response_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPLIT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22open_link_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22open%20%5BUSER_URL%5D%20in%20new%20tab%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fextensions.turbowarp.org%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22open_window_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22open%20%5BUSER_URL%5D%20in%20new%20window%20with%20width%3A%20%5BWIDTH%5D%20height%3A%20%5BHEIGHT%5D%20left%3A%20%5BLEFT%5D%20top%3A%20%5BTOP%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fextensions.turbowarp.org%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20WIDTH%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20HEIGHT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20LEFT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TOP%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22redirect_link_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22redirect%20this%20tab%20to%20%5BUSER_URL%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fextensions.turbowarp.org%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5D%2C%0A%0A%20%20%20%20%20%20%20%20menus%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20content_type%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(1)%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22(2)%20json%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%222%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20only_url_response_type%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(1)%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22(2)%20json%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%222%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(3)%20status%20ok%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%223%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(4)%20status%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%224%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(5)%20status%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%225%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(5%201)%20status%20text%20and%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%225%201%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(6)%20type%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%226%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(6%204)%20type%20and%20status%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%226%204%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(7)%20redirected%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%227%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22(8)%20url%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%228%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20response_type%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(1)%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22(2)%20json%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%222%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(3)%20status%20ok%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%223%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(4)%20status%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%224%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(5)%20status%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%225%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(5%201)%20status%20text%20and%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%225%201%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(6)%20type%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%226%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(6%204)%20type%20and%20status%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%226%204%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(7)%20redirected%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%227%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22(8)%20url%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%228%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(9)%20body%20used%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%229%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20default%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22default%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20connected_to_internet_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20navigator.onLine%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20browser_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20let%20has%20%3D%20(input)%20%3D%3E%20navigator.userAgent.includes(input)%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Firefox%22))%20return%20%22firefox%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22SamsungBrowser%22))%20return%20%22samsung%20internet%22%3B%0A%20%20%20%20%20%20%20%20if%20((has(%22Opera%22)%20%7C%7C%20has(%22OPR%22))%20%26%26%20has(%22GX%22))%20return%20%22opera%20gx%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Opera%22)%20%7C%7C%20has(%22OPR%22))%20return%20%22opera%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Trident%22))%20return%20%22internet%20explorer%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Edge%22))%20return%20%22legacy%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Edg%22))%20return%20%22edge%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22YaBrowser%22)%20%7C%7C%20has(%22YaSearchBrowser%22))%20return%20%22yandex%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Miui%22))%20return%20%22mi%20browser%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22UBrowser%22))%20return%20%22uc%20browser%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Chrome%22))%20return%20%22chromium%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Safari%22))%20return%20%22safari%22%3B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20current_url_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20document.URL%20%7C%7C%20%22%22%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20network_type_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20switch%20(navigator.connection.type)%20%7B%0A%20%20%20%20%20%20%20%20%20%20case%20%22bluetooth%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22bluetooth%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22cellular%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22cellular%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22ethernet%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22ethernet%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22wifi%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22wi-fi%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22wimax%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22wimax%22%3B%0A%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20network_generation_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20switch%20(navigator.connection.effectiveType)%20%7B%0A%20%20%20%20%20%20%20%20%20%20case%20%22slow-2g%22%3A%0A%20%20%20%20%20%20%20%20%20%20case%20%222g%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%222g%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%223g%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%223g%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%224g%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%224g%22%3B%0A%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20downlink_speed_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20navigator.connection.downlink%20%7C%7C%20%22%22%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20downlink_max_speed_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20navigator.connection.downlinkMax%20%7C%7C%20%22%22%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20rtt_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20navigator.connection.rtt%20%7C%7C%20%22%22%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20get_block(args)%20%7B%0A%20%20%20%20%20%20return%20fetch_url(args%2C%20%22GET%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20delete_block(args)%20%7B%0A%20%20%20%20%20%20return%20fetch_url(args%2C%20%22DELETE%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20post_block(args)%20%7B%0A%20%20%20%20%20%20return%20fetch_url(args%2C%20%22POST%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20put_block(args)%20%7B%0A%20%20%20%20%20%20return%20fetch_url(args%2C%20%22PUT%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20patch_block(args)%20%7B%0A%20%20%20%20%20%20return%20fetch_url(args%2C%20%22PATCH%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20open_link_block(%7B%20USER_URL%20%7D)%20%7B%0A%20%20%20%20%20%20Scratch.openWindow(USER_URL)%3B%0A%20%20%20%20%7D%0A%20%20%20%20open_window_block(%7B%20USER_URL%2C%20WIDTH%2C%20HEIGHT%2C%20LEFT%2C%20TOP%20%7D)%20%7B%0A%20%20%20%20%20%20let%20params%20%3D%20%22popup%3D1%22%3B%0A%20%20%20%20%20%20params%20%2B%3D%20isNaN(WIDTH)%0A%20%20%20%20%20%20%20%20%3F%20%22%22%0A%20%20%20%20%20%20%20%20%3A%20%60%2Cwidth%3D%24%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Number(WIDTH)%20%3C%20100%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20100%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(WIDTH)%20%3E%20window.screen.width%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20window.screen.width%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(WIDTH)%0A%20%20%20%20%20%20%20%20%20%20%7D%60%3B%0A%20%20%20%20%20%20params%20%2B%3D%20isNaN(HEIGHT)%0A%20%20%20%20%20%20%20%20%3F%20%22%22%0A%20%20%20%20%20%20%20%20%3A%20%60%2Cheight%3D%24%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Number(HEIGHT)%20%3C%20100%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20100%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(HEIGHT)%20%3E%20window.screen.height%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20window.screen.height%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(HEIGHT)%0A%20%20%20%20%20%20%20%20%20%20%7D%60%3B%0A%20%20%20%20%20%20params%20%2B%3D%20isNaN(LEFT)%0A%20%20%20%20%20%20%20%20%3F%20%22%22%0A%20%20%20%20%20%20%20%20%3A%20%60%2Cleft%3D%24%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Number(LEFT)%20%3C%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(LEFT)%20%3E%20window.screen.width%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20window.screen.width%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(LEFT)%0A%20%20%20%20%20%20%20%20%20%20%7D%60%3B%0A%20%20%20%20%20%20params%20%2B%3D%20isNaN(TOP)%0A%20%20%20%20%20%20%20%20%3F%20%22%22%0A%20%20%20%20%20%20%20%20%3A%20%60%2Ctop%3D%24%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Number(TOP)%20%3C%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(TOP)%20%3E%20window.screen.height%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20window.screen.height%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(TOP)%0A%20%20%20%20%20%20%20%20%20%20%7D%60%3B%0A%20%20%20%20%20%20Scratch.openWindow(String(USER_URL)%2C%20params)%3B%0A%20%20%20%20%7D%0A%20%20%20%20redirect_link_block(%7B%20USER_URL%20%7D)%20%7B%0A%20%20%20%20%20%20Scratch.redirect(USER_URL)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20Scratch.extensions.register(new%20Network())%3B%0A%7D)(Scratch)%3B%0A%20%7D)(Scratch)%3B","data:text/javascript;,(function(Scratch)%20%7B%20%2F%2F%20Name%3A%20Display%20Text%0A%2F%2F%20ID%3A%20SPdisText%0A%2F%2F%20Description%3A%20Display%20Text%20in%20Your%20Projects!%0A%2F%2F%20By%3A%20SharkPool%0A%0A%2F%2F%20Version%20V.1.4.4%0A%0A(function%20(Scratch)%20%7B%0A%20%20%22use%20strict%22%3B%0A%20%20if%20(!Scratch.extensions.unsandboxed)%20throw%20new%20Error(%22Display%20Text%20must%20run%20unsandboxed!%22)%3B%0A%0A%20%20const%20menuIconURI%20%3D%0A%22data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NS4yMzQiIGhlaWdodD0iNjUuMjM0IiB2aWV3Qm94PSIwIDAgNjUuMjM0IDY1LjIzNCI%2BPGcgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIj48cGF0aCBkPSJNMCAzMi42MTdDMCAxNC42MDMgMTQuNjAzIDAgMzIuNjE3IDBzMzIuNjE3IDE0LjYwMyAzMi42MTcgMzIuNjE3LTE0LjYwMyAzMi42MTctMzIuNjE3IDMyLjYxN1MwIDUwLjYzMSAwIDMyLjYxNyIgZmlsbD0iIzNjNGU1YyIvPjxwYXRoIGQ9Ik0zLjM5MSAzMi42MTdjMC0xNi4xNDEgMTMuMDg1LTI5LjIyNiAyOS4yMjYtMjkuMjI2czI5LjIyNiAxMy4wODUgMjkuMjI2IDI5LjIyNi0xMy4wODUgMjkuMjI2LTI5LjIyNiAyOS4yMjZTMy4zOTEgNDguNzU4IDMuMzkxIDMyLjYxNyIgZmlsbD0iIzc4OSIvPjxwYXRoIGQ9Ik0xOS4wNzYgNDkuNDc5YTMuMzIgMy4zMiAwIDAgMS0zLjMyMS0zLjMydi00Ljk1aDIuNjA3djIuODU1YTIuODEgMi44MSAwIDAgMCAyLjgwOCAyLjgwOGgyLjg1NHYyLjYwN3ptMjQuOTg4LTIuNjA3YTIuODEgMi44MSAwIDAgMCAyLjgwOC0yLjgwOFY0MS4yMWgyLjYwN3Y0Ljk0OGEzLjMyIDMuMzIgMCAwIDEtMy4zMiAzLjMyMWgtNC45NXYtMi42MDd6bS0yOC4zMS0yNy43OTZhMy4zMiAzLjMyIDAgMCAxIDMuMzIyLTMuMzIxaDQuOTQ4djIuNjA3SDIxLjE3YTIuODEgMi44MSAwIDAgMC0yLjgwOCAyLjgwOHYyLjg1NGgtMi42MDd6bTMwLjQwNC0zLjMyMWEzLjMyIDMuMzIgMCAwIDEgMy4zMjEgMy4zMnY0Ljk1aC0yLjYwN1YyMS4xN2EyLjgxIDIuODEgMCAwIDAtMi44MDgtMi44MDhINDEuMjF2LTIuNjA3eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIuNSIvPjxwYXRoIGQ9Ik0yNS44MTEgMjcuNTIxYS45My45MyAwIDAgMS0uOTI4LS45Mjl2LTEuNjI2YzAtLjUxMy40MTUtLjkyOC45MjgtLjkyOGgxMy42MTJjLjUxMyAwIC45MjguNDE1LjkyOC45Mjh2MS42MjZhLjkzLjkzIDAgMCAxLS45MjguOTI5eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0zMC44NzUgMjYuNjU3YS45My45MyAwIDAgMSAuOTI5LS45M2gxLjYyNmEuOTMuOTMgMCAwIDEgLjkyOS45M3YxMy42MTFhLjkzLjkzIDAgMCAxLS45MjkuOTI4aC0xLjYyNmEuOTMuOTMgMCAwIDEtLjkyOS0uOTI4eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvZz48L3N2Zz4%3D%22%3B%0A%0A%20%20const%20blockIconURI%20%3D%0A%22data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OS42MjQiIGhlaWdodD0iNDkuNjI0IiB2aWV3Qm94PSIwIDAgNDkuNjI0IDQ5LjYyNCI%2BPGcgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIj48cGF0aCBkPSJNMCA0OS42MjRWMGg0OS42MjR2NDkuNjI0eiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMS4yNzEgNDEuNjc0YTMuMzIgMy4zMiAwIDAgMS0zLjMyMS0zLjMydi00Ljk1aDIuNjA3djIuODU1YTIuODEgMi44MSAwIDAgMCAyLjgwOCAyLjgwOGgyLjg1NHYyLjYwN3ptMjQuOTg4LTIuNjA3YTIuODEgMi44MSAwIDAgMCAyLjgwOC0yLjgwOHYtMi44NTRoMi42MDd2NC45NDhhMy4zMiAzLjMyIDAgMCAxLTMuMzIgMy4zMjFoLTQuOTV2LTIuNjA3ek03Ljk0OSAxMS4yNzFhMy4zMiAzLjMyIDAgMCAxIDMuMzIyLTMuMzIxaDQuOTQ4djIuNjA3aC0yLjg1NGEyLjgxIDIuODEgMCAwIDAtMi44MDggMi44MDh2Mi44NTRINy45NXpNMzguMzUzIDcuOTVhMy4zMiAzLjMyIDAgMCAxIDMuMzIxIDMuMzJ2NC45NWgtMi42MDd2LTIuODU1YTIuODEgMi44MSAwIDAgMC0yLjgwOC0yLjgwOGgtMi44NTRWNy45NXoiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48cGF0aCBkPSJNMTguMDA2IDE5LjcxNmEuOTMuOTMgMCAwIDEtLjkyOC0uOTI5di0xLjYyNmMwLS41MTMuNDE1LS45MjguOTI4LS45MjhoMTMuNjEyYy41MTMgMCAuOTI4LjQxNS45MjguOTI4djEuNjI2YS45My45MyAwIDAgMS0uOTI4LjkyOXoiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBkPSJNMjMuMDcgMTguODUyYS45My45MyAwIDAgMSAuOTI5LS45M2gxLjYyNmEuOTMuOTMgMCAwIDEgLjkyOS45M3YxMy42MTFhLjkzLjkzIDAgMCAxLS45MjkuOTI4aC0xLjYyNmEuOTMuOTMgMCAwIDEtLjkyOS0uOTI4eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvZz48L3N2Zz4%3D%22%3B%0A%0A%20%20const%20vm%20%3D%20Scratch.vm%3B%0A%20%20const%20runtime%20%3D%20vm.runtime%3B%0A%20%20const%20render%20%3D%20vm.renderer%3B%0A%20%20const%20fontMenu%20%3D%20%5B%0A%20%20%20%20%22Scratch%22%2C%20%22Sans%20Serif%22%2C%20%22Serif%22%2C%20%22Handwriting%22%2C%20%22Marker%22%2C%20%22Curly%22%2C%20%22Pixel%22%0A%20%20%5D%3B%0A%0A%20%20let%20allText%20%3D%20%5B%5D%2C%20clickedTxts%20%3D%20%5B%5D%2C%20txtSettings%20%3D%20%7B%7D%3B%0A%0A%20%20const%20xmlEscape%20%3D%20function%20(unsafe)%20%7B%0A%20%20%20%20unsafe%20%3D%20String(unsafe)%3B%0A%20%20%20%20return%20unsafe.replace(%2F%5B%3C%3E%26'%22%5D%2Fg%2C%20c%20%3D%3E%20%7B%0A%20%20%20%20%20%20switch%20(c)%20%7B%0A%20%20%20%20%20%20%20%20case%20%22%3C%22%3A%20return%20%22%26lt%3B%22%3B%0A%20%20%20%20%20%20%20%20case%20%22%3E%22%3A%20return%20%22%26gt%3B%22%3B%0A%20%20%20%20%20%20%20%20case%20%22%26%22%3A%20return%20%22%26amp%3B%22%3B%0A%20%20%20%20%20%20%20%20case%20%22'%22%3A%20return%20%22%26apos%3B%22%3B%0A%20%20%20%20%20%20%20%20case%20%22%5C%22%22%3A%20return%20%22%26quot%3B%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D)%3B%0A%20%20%7D%3B%0A%0A%20%20class%20SPdisText%20%7B%0A%20%20%20%20constructor()%20%7B%0A%20%20%20%20%20%20runtime.on(%22PROJECT_START%22%2C%20()%20%3D%3E%20%7B%20this.removeAllTxt()%20%7D)%3B%0A%20%20%20%20%20%20runtime.on(%22PROJECT_STOP_ALL%22%2C%20()%20%3D%3E%20%7B%20this.removeAllTxt()%20%7D)%3B%0A%20%20%20%20%7D%0A%20%20%20%20getInfo()%20%7B%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20id%3A%20%22SPdisText%22%2C%0A%20%20%20%20%20%20%20%20name%3A%20%22Display%20Text%22%2C%0A%20%20%20%20%20%20%20%20color1%3A%20%22%23778899%22%2C%0A%20%20%20%20%20%20%20%20color2%3A%20%22%235E707F%22%2C%0A%20%20%20%20%20%20%20%20color3%3A%20%22%233C4E5C%22%2C%0A%20%20%20%20%20%20%20%20menuIconURI%2C%0A%20%20%20%20%20%20%20%20blockIconURI%2C%0A%20%20%20%20%20%20%20%20blocks%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22printTxt%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22print%20text%20%5BTXT%5D%20with%20ID%20%5BID%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TXT%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22hello%20world%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22replaceTxt%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22replace%20text%20of%20ID%20%5BID%5D%20with%20%5BTXT%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TXT%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22lorem%20ipsum%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22removeTxt%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22remove%20text%20with%20ID%20%5BID%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22removeAllTxt%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22remove%20all%20text%22%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22displayedTexts%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22printed%20texts%20from%20ID%20%5BID%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22existingID%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22text%20with%20ID%20%5BID%5D%20exist%3F%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22allIDs%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22all%20text%20IDs%22%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%20blockType%3A%20Scratch.BlockType.LABEL%2C%20text%3A%20%22Formatting%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTextFont%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20font%20of%20ID%20%5BID%5D%20to%20%5BFONT%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20FONT%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22FONTS%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setFontSize%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20font%20size%20of%20ID%20%5BID%5D%20to%20%5BSIZE%5Dpx%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SIZE%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%2030%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setThick%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20boldness%20of%20ID%20%5BID%5D%20to%20%5BNUM%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NUM%20%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%20100%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTextAlignment%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20text%20alignment%20of%20ID%20%5BID%5D%20to%20%5BALIGNMENT%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ALIGNMENT%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22ALIGNMENTS%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setMargins%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20margins%20of%20ID%20%5BID%5D%20to%20width%20%5BWIDTH%5D%20height%20%5BHEIGHT%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20WIDTH%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%20100%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20HEIGHT%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%2030%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTextSpacing%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20%5BATT%5D%20spacing%20of%20ID%20%5BID%5D%20to%20%5BSPACING%5D%20px%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPACING%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%205%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ATT%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22TEXT_ATT%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setOverflow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20text%20overflow%20of%20ID%20%5BID%5D%20to%20%5BTYPE%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TYPE%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22OVERFLOW%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22attOfText%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22%5BATT%5D%20of%20text%20with%20ID%20%5BID%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ATT%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22FORMATS%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22lineCnt%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22%23%20of%20lines%20in%20text%20ID%20%5BID%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTextColor%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20text%20color%20of%20ID%20%5BID%5D%20to%20%5BCOLOR%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20COLOR%3A%20%7B%20type%3A%20Scratch.ArgumentType.COLOR%2C%20defaultValue%3A%20%22%23000000%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTextDropShadow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20text%20shadow%20of%20ID%20%5BID%5D%20to%20x%20%5Bx%5D%20y%20%5By%5D%20z%20%5Bz%5D%20color%20%5BCOLOR%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%200%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%200%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20z%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%202%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20COLOR%3A%20%7B%20type%3A%20Scratch.ArgumentType.COLOR%2C%20defaultValue%3A%20%22%23ff0000%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTextOutline%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20outline%20of%20ID%20%5BID%5D%20to%20%5BCOLOR%5D%20with%20thickness%20%5BTHICKNESS%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20COLOR%3A%20%7B%20type%3A%20Scratch.ArgumentType.COLOR%2C%20defaultValue%3A%20%22%23ff0000%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20THICKNESS%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%203%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setLine%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20text%20line%20of%20ID%20%5BID%5D%20to%20%5BTYPE1%5D%20%5BTYPE2%5D%20colored%20%5BCOLOR%5D%20thickness%20%5BTHICK%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TYPE1%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22STYLE%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TYPE2%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22LINE_TYPE%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20COLOR%3A%20%7B%20type%3A%20Scratch.ArgumentType.COLOR%2C%20defaultValue%3A%20%22%23ff0000%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20THICK%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%202%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22makeGradient%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22make%20a%20%5BTYPE%5D%20gradient%20with%20%5BCOLOR1%5D%20and%20%5BCOLOR2%5D%20at%20angle%20%5BANGLE%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20COLOR1%3A%20%7B%20type%3A%20Scratch.ArgumentType.COLOR%2C%20defaultValue%3A%20%22%23ff0000%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20COLOR2%3A%20%7B%20type%3A%20Scratch.ArgumentType.COLOR%2C%20defaultValue%3A%20%22%2300ff00%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ANGLE%3A%20%7B%20type%3A%20Scratch.ArgumentType.ANGLE%2C%20defaultValue%3A%2090%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TYPE%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22GRADIENTS%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%20blockType%3A%20Scratch.BlockType.LABEL%2C%20text%3A%20%22%E2%86%93%20Will%20Lose%20Some%20Formatting%20%E2%86%93%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTextCurve%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20text%20curve%20of%20ID%20%5BID%5D%20to%20%5BARC%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ARC%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22%3Csvg%3E%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22presetCurve%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22preset%20curve%20%5BARC%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ARC%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22ARCS%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%20blockType%3A%20Scratch.BlockType.LABEL%2C%20text%3A%20%22Positioning%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22presetTextPosition%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22preset%20position%20of%20ID%20%5BID%5D%20to%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20X%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%200%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Y%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%200%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTextPosition%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20position%20of%20ID%20%5BID%5D%20to%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20X%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%200%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Y%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%200%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTextZIndex%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20layer%20of%20ID%20%5BID%5D%20to%20%5BZ_INDEX%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Z_INDEX%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%201%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22textPosition%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22%5BATT%5D%20of%20ID%20%5BID%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ATT%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22POS%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%20blockType%3A%20Scratch.BlockType.LABEL%2C%20text%3A%20%22Effects%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setEffect%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22set%20%5BEFFECT%5D%20of%20ID%20%5BID%5D%20to%20%5BVALUE%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20VALUE%3A%20%7B%20type%3A%20Scratch.ArgumentType.NUMBER%2C%20defaultValue%3A%205%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20EFFECT%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22EFFECTS%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22amtOfEffect%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22current%20%5BEFFECT%5D%20of%20ID%20%5BID%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20EFFECT%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22EFFECTS%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22resetEffect%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22reset%20effects%20of%20ID%20%5BID%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%20blockType%3A%20Scratch.BlockType.LABEL%2C%20text%3A%20%22Advanced%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22debug%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22toggle%20debug%20mode%20%5BTOGGLE%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TOGGLE%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22TOGGLE%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22resetTxt%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22reset%20text%20settings%20with%20ID%20%5BID%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22reuseStyle%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22reuse%20text%20settings%20in%20ID%20%5BID%5D%20for%20ID%20%5BID2%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID2%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text2%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22toggleSelect%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22toggle%20highlighting%20for%20ID%20%5BID%5D%20%5BTYPE%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TYPE%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22TOGGLE%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22makeClick%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22toggle%20clicking%20for%20ID%20%5BID%5D%20%5BTYPE%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TYPE%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20menu%3A%20%22TOGGLE%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22isClicked%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22ID%20%5BID%5D%20clicked%3F%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%20type%3A%20Scratch.ArgumentType.STRING%2C%20defaultValue%3A%20%22my-text%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22whenClick%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.EVENT%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20isEdgeActivated%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22when%20any%20text%20clicked%22%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22clickedID%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22clicked%20text%20ID%22%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20menus%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20FONTS%3A%20%7B%20acceptReporters%3A%20true%2C%20items%3A%20%22allFonts%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20TOGGLE%3A%20%5B%22on%22%2C%20%22off%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20TEXT_ATT%3A%20%5B%22letter%22%2C%20%22line%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20POS%3A%20%5B%22x%20position%22%2C%20%22y%20position%22%2C%20%22z%20layer%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20OVERFLOW%3A%20%5B%22visible%22%2C%20%22hidden%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20ARCS%3A%20%5B%22circle%22%2C%20%22hill%22%2C%20%22dip%22%2C%20%22wave%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20STYLE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%22solid%22%2C%20%22wavy%22%2C%20%22dashed%22%2C%20%22double%22%5D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20LINE_TYPE%3A%20%7B%20acceptReporters%3A%20true%2C%20items%3A%20%5B%22underline%22%2C%20%22strikethrough%22%5D%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20ALIGNMENTS%3A%20%7B%20acceptReporters%3A%20true%2C%20items%3A%20%5B%22left%22%2C%20%22right%22%2C%20%22center%22%5D%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20GRADIENTS%3A%20%7B%20acceptReporters%3A%20true%2C%20items%3A%20%5B%22linear%22%2C%20%22radial%22%5D%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20THICK%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%20%3A%20%22thick%22%2C%20value%20%3A%20%22900%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%20%3A%20%22medium%22%2C%20value%20%3A%20%22600%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%20%3A%20%22none%22%2C%20value%20%3A%20%221%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20FORMATS%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22font%22%2C%20value%3A%20%22fontFamily%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22font%20size%22%2C%20value%3A%20%22fontSize%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22boldness%22%2C%20value%3A%20%22fontWeight%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22alignment%22%2C%20value%3A%20%22textAlign%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22margin%20width%22%2C%20value%3A%20%22width%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22margin%20height%22%2C%20value%3A%20%22height%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22display%20width%22%2C%20value%3A%20%22box2w%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22display%20height%22%2C%20value%3A%20%22box2h%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22letter%20spacing%22%2C%20value%3A%20%22letterSpacing%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22line%20spacing%22%2C%20value%3A%20%22lineHeight%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22overflow%20type%22%2C%20value%3A%20%22overflow%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20EFFECTS%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22blur%22%2C%20value%3A%20%22blur%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22saturation%22%2C%20value%3A%20%22saturate%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22contrast%22%2C%20value%3A%20%22contrast%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22brightness%22%2C%20value%3A%20%22brightness%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22hue%22%2C%20value%3A%20%22hue-rotate%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22opacity%22%2C%20value%3A%20%22opacity%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22sepia%22%2C%20value%3A%20%22sepia%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22invert%22%2C%20value%3A%20%22invert%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22direction%22%2C%20value%3A%20%22rotate%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22scale%20x%22%2C%20value%3A%20%22scaleX%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22scale%20y%22%2C%20value%3A%20%22scaleY%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22skew%20x%22%2C%20value%3A%20%22skewX%22%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20text%3A%20%22skew%20y%22%2C%20value%3A%20%22skewY%22%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Helper%20Funcs%0A%20%20%20%20allFonts()%20%7B%0A%20%20%20%20%20%20const%20customFonts%20%3D%20runtime.fontManager%20%3F%20runtime.fontManager.getFonts().map((i)%20%3D%3E%20(%7B%20text%3A%20i.name%2C%20value%3A%20i.family%20%7D))%20%3A%20%5B%5D%3B%0A%20%20%20%20%20%20return%20%5B...fontMenu%2C%20...customFonts%5D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20fixID(ID)%20%7B%0A%20%20%20%20%20%20ID%20%3D%20xmlEscape(Scratch.Cast.toString(ID).replaceAll(%22%20%22%2C%20%22_%22).replaceAll(%2F%5B%23%25()%2C.%7B%7D%5B%2F%5C%5D%24%40%5E*%26'%22%3B%3A%5D%2Fg%2C%20%22-%22))%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%20%3D%20%7B%20...txtSettings%5BID%5D%20%7D%3B%0A%20%20%20%20%20%20return%20ID%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20handleClick(e)%20%7B%0A%20%20%20%20%20%20clickedTxts.push(e.target.className)%3B%0A%20%20%20%20%20%20const%20index%20%3D%20clickedTxts.length%20-%201%3B%0A%20%20%20%20%20%20const%20threads%20%3D%20runtime.startHats(%22SPdisText_whenClick%22)%3B%0A%20%20%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%20threads.length%3B%20i%2B%2B)%20threads%5Bi%5D.SPdisTxtClickID%20%3D%20e.target.className%3B%0A%20%20%20%20%20%20setTimeout(()%20%3D%3E%20%7B%20clickedTxts.splice(index%2C%201)%20%7D%2C%20100)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20updateStyles(txtSetting%2C%20optOverrideName)%20%7B%0A%20%20%20%20%20%20const%20propsd2Func%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%5B%22textMAR%22%2C%20%22setMargins%22%5D%2C%20%5B%22preTxt1%22%2C%20%22presetTextPosition%22%5D%2C%0A%20%20%20%20%20%20%20%20%5B%22textCLR%22%2C%20%22setTextColor%22%5D%2C%20%5B%22textLIN%22%2C%20%22setLine%22%5D%2C%0A%20%20%20%20%20%20%20%20%5B%22textOUT%22%2C%20%22setTextOutline%22%5D%2C%20%5B%22textSHA%22%2C%20%22setTextDropShadow%22%5D%2C%0A%20%20%20%20%20%20%20%20%5B%22txtFont%22%2C%20%22setTextFont%22%5D%2C%20%5B%22txtFontSZ%22%2C%20%22setFontSize%22%5D%2C%0A%20%20%20%20%20%20%20%20%5B%22txtALI%22%2C%20%22setTextAlignment%22%5D%2C%20%5B%22lineDIS%22%2C%20%22setTextSpacing%22%5D%2C%0A%20%20%20%20%20%20%20%20%5B%22letDIS%22%2C%20%22setTextSpacing%22%5D%2C%20%5B%22textOVR%22%2C%20%22setOverflow%22%5D%2C%0A%20%20%20%20%20%20%20%20%5B%22txtFontTK%22%2C%20%22setThick%22%5D%0A%20%20%20%20%20%20%5D%3B%0A%20%20%20%20%20%20if%20(optOverrideName)%20%7B%0A%20%20%20%20%20%20%20%20for%20(const%20%5Bid%2C%20func%5D%20of%20propsd2Func)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(txtSetting%5Bid%5D)%20this%5Bfunc%5D(%7B%20...txtSetting%5Bid%5D%2C%20ID%3A%20optOverrideName%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20for%20(const%20%5Bid%2C%20func%5D%20of%20propsd2Func)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(txtSetting%5Bid%5D)%20this%5Bfunc%5D(txtSetting%5Bid%5D)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Block%20Funcs%0A%20%20%20%20debug(args)%20%7B%0A%20%20%20%20%20%20const%20toggle%20%3D%20args.TOGGLE%20%3D%3D%3D%20%22on%22%20%3F%20%22solid%22%20%3A%20%22none%22%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%5E%3D%22SP_Text-Ext-%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20element.style.border%20%3D%20toggle%3B%20element.style.borderWidth%20%3D%20%221px%22%3B%0A%20%20%20%20%20%20%20%20element.style.borderColor%20%3D%20element.style.textAlign%20%3D%3D%3D%20%22center%22%20%3F%20%22%2300ff00%22%20%3A%20element.style.textAlign%20%3D%3D%3D%20%22right%22%20%3F%20%22blue%22%20%3A%20%22red%22%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20const%20cross%20%3D%20document.getElementById(%60SP_Text-Debug-Cross%60)%3B%0A%20%20%20%20%20%20if%20(toggle%20%3D%3D%3D%20%22none%22%20%26%26%20cross)%20cross.parentNode.removeChild(cross)%3B%0A%20%20%20%20%20%20else%20if%20(toggle%20%3D%3D%3D%20%22solid%22%20%26%26%20!cross)%20%7B%0A%20%20%20%20%20%20%20%20const%20crossElement%20%3D%20document.createElement(%22img%22)%3B%0A%20%20%20%20%20%20%20%20crossElement.src%20%3D%20%0A%20%20%20%20%20%20%20%20%20%20%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAA8AAAALQCAYAAABfdxm0AAAAAXNSR0IArs4c6QAAIABJREFUeF7t3b%2BubPl23ffTgCM%2FhKjYqUKBEd%2FAoRKDBnEDZYwEPYGgiBmDC8IXThj6DRQRCp06FvUQjgy0wdu9r%2B6p7t1rrVFz1585Ph2Rt9Zv1hrfseacNU6dvc8P3%2F7dv%2F%2Fxm%2F8QQAABBBBAAAEEEEAAAQQQWE7gBwF4ucPkIYAAAggggAACCCCAAAII%2FJHA%2FwjA%2F%2Fj3P2ByncA%2F%2F%2FM%2F%2F%2FEb9L%2F4i7%2FA7zo%2BJ5YT0B%2FLDSbvEoG%2F%2FpvfnfobV3%2F4h9%2FbJ5fIungTAXtjk5u0fBUBfRKS%2FflvPgvAIb%2BPYx7AOwE6vpqA%2FlhtL3EXCQjAF4G5vJKAvVFpO9EXCeiTi8A%2BLheAQ3A3xzyAMxxV2UlAf%2Bz0lar7CHwWhH3zex9Xp3cQsDd2%2BEjF1xLQJyFfATgEJwDPgFOlgoABXWEzkRcJCMAXgbm8ioC9UWU3sSEBfRKCE4BDcALwDDhVKggY0BU2ExkS%2BC%2FffvzjzwT%2F1bcf%2FMxvyNCxfQTsjX2eUjRPQJ%2BETAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJHBvAL79ZVp%2Bi3RoxJse2%2Bq%2FvfGmD6TbfigBfRLiFoBDcALwDDhVKggY0BU2ExkSEIBDcI79kYAA7EFAoJeAz1eh9wJwCE4AngGnSgUBA7rCZiJDAmkAPht8fvynb3%2F8LdMf%2F%2F3wl9%2B%2B%2B23TR6%2BflXVb5%2Fbc7fuerfvB5%2BP629%2BWffT62ff5uC6td3vu9n2Pfsv3vefPPg9XeTzrenvjWeS97zsR0CehWwJwCE4AngGnSgUBA7rCZiJDAgLwb4M7CqRHr1%2B1Ja13b4C997wAfNVp1yPw%2FgR8vgo9FIBDcALwDDhVKggY0BU2ExkSePcAfPQN8tHrR9iOAunR60f1P17%2FLIBe%2Feb26jfUR%2Fd%2F9PrH%2FQvAZ512HQJ7CPh8FXopAIfgBOAZcKpUEDCgK2wmMiQgAL%2FGN8ACcPgAf9Exe%2BOLwCq7ioA%2BCe0UgENwAvAMOFUqCBjQFTa%2Frciz37B9JnDq%2FNE3jfd%2B05f%2BjO7RN7j3vn72wUn%2FivBVf6avP6p37%2Bu3%2FLZ8E2xvnO0M1zUT0Ceh%2BwJwCE4AngGnSgUBA7rC5rcVeRRAjoRNnReAr30TfHv1Z%2Fyu%2BjN9%2FVG9e18XgI861OsI7CXg81XorQAcghOAZ8CpUkHAgK6w%2Be1FHgWRW4FXrz%2F6BvmrA%2FDH%2Bx99Y3t7n0fX3%2Fv62QfnVb8B%2Frj%2Fr7q%2Fq8%2BZb4DPPlGuQ%2BD9Cfh8FXooAIfgBOAZcKpUEDCgK2x%2Be5FXg8bV6wXgnwhM%2FXNItzyf9Q2wAPw1rW9vfA1XVXcR0CehnwJwCE4AngGnSgUBA7rC5rcXeTXQXr3%2BXQPwkbGP%2Bgb4s6B59pvzIx1p%2FaPn4Ktfv9XlG%2BCzTrsOgfcn4PNV6KEAHIITgGfAqVJBwICusPntRR4FlVuBV68XgH8ikH4DnAbUqw%2FmVV%2BPrv%2Fq1wXgqw67HoE9BHy%2BCr0UgENwAvAMOFUqCBjQFTavEXlvYLkK4uo%2Fg5R%2Bw5f%2BFugjPb4B%2FvHHP2f0rH8H%2BOMe0ufjyOdHv25vPJq493tHAvokdE0ADsEJwDPgVKkgYEBX2LxGpAB8zUoBWAC%2B9sScu9reOMfJVd0E9EnovwAcghOAZ8CpUkHAgK6weZ3I9Lf6XgXx1d8A3xtQv%2Fr81W8sj%2F6A4pb%2Fs68%2Fev97X7%2FVe5Xn1ef1UdfbG48i7X3emYA%2BCd0TgENwAvAMOFUqCBjQFTavEykA%2F2SpAPzDD7%2F1cN8bYO89LwCvGz0EIXCagM9Xp1F9f6EAHIITgGfAqVJBwICusHmtyKOAcq%2Fwq98Af7zf2W%2F6vjrAftxP%2BjPGZ3V8vM9VP85ef%2B8feDz7%2FFWO9z63X33e3vhqwupvIKBPQhcF4BCcADwDTpUKAgZ0hc1rRZ4NUCkAAfh33%2F0SqT%2F8w%2B%2Fv%2Bsb11oez%2Fj07wN77%2FgJw2oHOIfC%2BBHy%2BCr0TgENwAvAMOFUqCBjQFTavFXk2QKUAvjoAp%2Ff1qHPbgtujuN2%2BzzaO9sazniTv%2B04E9EnolgAcghOAZ8CpUkHAgK6wea1IAfhrrd0W3L6W1ufVt3G0N571JHnfdyKgT0K3BOAQnAA8A06VCgIGdIXNa0W%2BagD%2BAP7uwefj%2Fo%2F%2B6vPaB%2BxOYe%2Fu%2F2fy7Y07HwzHKwjok9BmATgEJwDPgFOlgoABXWHzWpEC8NdaKwDfx1cAvo%2Bf0wi8MwGfr0L3BOAQnAA8A06VCgIGdIXNa0W%2BegBeC56wagL2RrX9xJ8koE9Ogrq9TAAOwQnAM%2BBUqSBgQFfYvFakALzWWsJemIC98cLmuLWXIaBPQisE4BCcADwDTpUKAgZ0hc1rRQrAa60l7IUJ2BsvbI5bexkC%2BiS0QgAOwQnAM%2BBUqSBgQFfYvFakALzWWsJemIC98cLmuLWXIaBPQisE4BCcADwDTpUKAgZ0hc1EhgTSfwc4fDvHEHgLAvbGW9jkJp9MQJ%2BEBgjAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SgrwNwP%2F8n%2F5DWMkxBBBAAAEEELhK4G%2F%2F9r%2F98cjf%2Fd2%2FvnrU9QgggAACCCBwkcBf%2FMf%2F%2FMcTP3z7OQkLwBcJuhwBBBBAAIE7CAjAd8BzFAEEEEAAgYsEfhGAv%2F3j3%2F9wsYbLv3375q8geAwQ%2BJyA%2FvB0IPA5AX8F2tOBwC8J2BueCgSOCeiTY0a%2FeoWfAQ7B3RzzAM5wVGUnAf2x01eqZggIwDMcVdlFwN7Y5Sc1X0NAn4RcBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU214v8r%2F%2F044%2F%2FAuHf%2FuUPl36XhgBc%2F%2BgA8CsE7A2PBQLHBPTJMaNfvUIADsEJwDPgVKkgYEBX2FwvUgCufwQAGCRgbwzCVGotAX0SWisAh%2BAE4BlwqlQQMKArbK4T%2BRF4j4QffSPsG%2BAjgl5vJGBvNLpO81UC%2BuQqsZ%2BvF4BDcALwDDhVKggY0BU214kUgOssJ%2FiBBOyNB8L2Vm9LQJ%2BE1gnAITgBeAacKhUEDOgKm2tE3gbf2294PwvGn30T7BvgmkeH0AsE7I0LsFxaS0CfhNYLwCE4AXgGnCoVBAzoCptrRArANVYT%2BkQC9sYT4XvrtyGgT0KrBOAQnAA8A06VCgIGdIXNNSKPAvAHiLPX%2BQa45tEh9AIBe%2BMCLJfWEtAnofUCcAhOAJ4Bp0oFAQO6wuYakWeD7dnrBOCaR4fQCwTsjQuwXFpLQJ%2BE1gvAITgBeAacKhUEDOgKm2tEng22Z38WWACueXQIvUDA3rgAy6W1BPRJaL0AHIITgGfAqVJBwICusLlGpABcYzWhTyRgbzwRvrd%2BGwL6JLRKAA7BCcAz4FSpIGBAV9i8TuRH0P3stzenQfi2nm%2BA1z06BA0QsDcGICqxnoA%2BCS0WgENwAvAMOFUqCBjQFTavEykAr7OUoDciYG%2B8kVlu9WkE9EmIXgAOwQnAM%2BBUqSBgQFfY%2FPYiP%2FuZ3VthH9%2Fgnv0Z36Nvin0D%2FPaPDgFfQMDe%2BAKoSq4joE9CSwXgEJwAPANOlQoCBnSFzW8vUgB%2BewsJWETA3lhkJilfRkCfhGgF4BCcADwDTpUKAgZ0hc1vK%2FLoG9qjb3qvBudbUL4BfttHx41%2FIQF74wvhKr2GgD4JrRSAQ3AC8Aw4VSoIGNAVNr%2BtSAH4ba1z44sJ2BuLzSVtjIA%2BCVEKwCE4AXgGnCoVBAzoCpvfVuRRAP4QdvW6z357tG%2BA3%2FZRceMPJGBvPBC2t3pbAvoktE4ADsEJwDPgVKkgYEBX2Py2Iq8G2w%2BhR%2F88kgD8to%2BEG38BAvbGC5jgFl6egD4JLRKAQ3AC8Aw4VSoIGNAVNr%2BtyDQAHwXhs0D8DPBZUq5rImBvNLlNa0pAn4TkBOAQnAA8A06VCgIGdIXNbytSAH5b69z4YgL2xmJzSRsjoE9ClAJwCE4AngGnSgUBA7rC5pcReTbQ3t7w2XNnrzsLxDfAZ0m5romAvdHkNq0pAX0SkhOAQ3AC8Aw4VSoIGNAVNr%2BMyDSgnj139rqzQATgs6Rc10TA3mhym9aUgD4JyQnAITgBeAacKhUEDOgKm19G5NG%2F2%2FvZjZ49JwC%2FjNVuZDEBe2OxuaSNEdAnIUoBOAQnAM%2BAU6WCgAFdYfPLiDwbZG9v%2BOw5AfhlrHYjiwnYG4vNJW2MgD4JUQrAITgBeAacKhUEDOgKm58u8rMAe3tjR%2F880VSds0D8FeizpFzXRMDeaHKb1pSAPgnJCcAhOAF4BpwqFQQM6Aqbny5yKrhO1TkLRAA%2BS8p1TQTsjSa3aU0J6JOQnAAcghOAZ8CpUkHAgK6w%2BekiP4Lr7Te89%2F6V5c%2FqTgkWgKdIqrOJgL2xyU1avoqAPgnJCsAhOAF4BpwqFQQM6Aqbny5SAH66BW4AgTEC9sYYSoUWE9AnobkCcAhOAJ4Bp0oFAQO6wuaXF%2FnZN8Ff%2FQ3vERjfAB8R8nojAXuj0XWarxLQJ1eJ%2FXy9AByCE4BnwKlSQcCArrD55UUKwC9vkRtE4E8E7A0PAwLHBPTJMaNfvUIADsEJwDPgVKkgYEBX2PzyIh%2F9y63OAvEN8FlSrmsiYG80uU1rSkCfhOQE4BCcADwDTpUKAgZ0hc0vL1IAfnmL3CACvgH2DCBwgYDPVxdg%2FfmlAnAITgCeAadKBQEDusLmlxf5WQA%2B%2BneBv1qYb4C%2FmrD670jA3nhH19zzownok5C4AByCE4BnwKlSQcCArrD55UUKwC9vkRtEwDfAngEELhDw%2BeoCLN8Ah7B%2B45gHcJ6pinsI6I89Xr6jknv%2FHeCv1uwb4K8mrP47ErA33tE19%2FxoAvokJO4b4BCcb4BnwKlSQcCArrD5ZUUKwC9rjRtD4FMC9oaHA4FjAvrkmNGvXiEAh%2BAE4BlwqlQQMKArbCYyJOAb4BCcY6tRtCQ1AAAgAElEQVQJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyHINAD%2F9d%2F87sc%2Ff8s%2F%2FMPvfwhvYcUxD%2BBv2%2Bh5WfGYxyL0R4zOwQICVwOwefrchwL%2Fx%2FC3Nx7D%2BV3eRd%2F9ulMtfTLuvwA80%2FotD2BKa%2FzBTW%2FEuacQ0B9Pwe5N34SAAPwmRv18m%2FbZY%2FyyNx7D%2BV3eRd8JwKNfvF4NwGcfwB%2F%2F6dt33xD%2F8JffvvuG%2BOj1r2rI2%2Fe9fZ%2Fb%2Bzx7Hx91j85%2F1ft%2FfID6uN%2B%2F%2BvbDd7yPXj%2Br87bO7bnb9719%2Fezzc%2FZ%2BXPceBHyQeQ%2Bf3OVzCJwNwGfn59F%2BPXr9LAX7zN%2BEO%2FusJNfZGwm1fWda5p4c8dOz%2B7AcIQB%2FPyyOAuxno8WD%2B%2BAHd9%2BMX63IB5nV9hJ3JwEB%2BHuAR39ge%2FT6WTv8ge5ZUs%2B5zt54DvdXe1cB%2BHtH%2FMHj0B88tgTgoz%2FxPnr9KPh%2BvP5ZgD6qf%2FT60UA6%2BkBw9Pqj6p8dZEf34%2FX3IuCDzHv55W4fS%2BDdAvDRvjp6%2FYju0b46ev1R9e2zI9L3vW5v3Mdvy%2BmzfXY0d45eP%2BJ1dP7o9a%2FKER998q%2F%2B%2B1989xZXv9A7mqtHrx%2FxOzp%2F9PpH%2FbPPw9H9fBOAf0L0rAf3w6D0%2FT%2FOHz04R68fPShH549eH39wj27Y6y9FwAeZl7LDzbwYAQH4e0OO9snR60f2Hp0%2Fet0%2BOyI887q9McPx3aucDTxHn6OPXj%2FidHT%2B6HUB%2BMfvfjQ2%2FVHNs8%2FDkZ%2BnA3D6hulX9emDdCj4kwuuvt9nup71DfBnQfhW7md%2Ft%2F5o4d%2F7%2Bu19pM9T6q9zzyXgg8xz%2BXv31yZwFIDTeflV%2B%2FdoXx69ftaN9K8o37uvjs7bZ2cdvO86e%2BM%2Bfu9%2B%2BtXm3hHPq3NvKkdMfQNclyPOfgP8bg%2Fi0YN6%2B%2FqzHtyP%2B7j6%2Fp%2Fp84HhqvOufwQBH2QeQdl7vCsBAfjXnbPP3vWJnrlve2OG47tWebfccfVzvAB83y%2FrTZ%2BPP%2FXDVwfgNOBdfZDSBr%2F6Ph%2FXf3zTe%2Fb80XVHr5%2FV5wPDWVKueyQBH2QeSdt7vRuBrwrAX7V%2Fj%2FbV0etn%2FbHPzpLaeZ29sdPXs6ruDThX59DV6%2B%2Bdr1M5wjfAPznxh3%2F4%2FXf%2F%2Bs3hcyYA%2F%2FY%2F13QLUAD%2BiUj6d%2Fc%2FeN472A4fbBe8FAEfZF7KDjfzYgQE4F83RAB%2BsQf1wbdjbzwY%2BIu93b2fE68G2qvXC8DfPzBHPzpy7%2Bu3j%2Be9z8eX%2Fwxw%2BoAc9WH6s03p%2FdwG36t1jhrr6PUjHrevHz1o0%2FWuvt%2FdD%2B5VAa5%2FKgEfZJ6K35u%2FOIFXC8BHuI721dHrR%2FXts6uEdl5vb%2Bz09ayqez8nTs%2Bh2%2Fu%2BWv%2BrcsT0N8AfOq9%2Brj%2Fy9aje0esC8M8EBODfftSuPkhv9%2BAe3bDXX4qADzIvZYebeTECArB99mKP5Evcjr3xEjY87SYE4O%2FRfxa4BeCfOL3cX4G%2BN6hOd97VP7H5eP8jHbf3efvboI%2Fe9%2Bj1qxwE4KvEXP%2BVBHyQ%2BUq6ar87ga8KwEd76%2Bq%2FE%2FnZPry67676ZZ9dJbbjentjh4%2BpijQAf9XcOzv%2FPtN7dF9pjhCABeBTPZYGza96cO9tqM9E%2B8Bw6nFw0YMI%2BCDzINDe5i0JCMC%2FbZt99paP9d03bW%2FcjfCtCwjA3777pU6%2BAf7%2BcU6fjz9V%2BapfgnUUNO99%2FWpXH73f1XpXg%2BvR%2Bx%2B9ftXoqx8Yjq6%2F9%2FVbvlf1pP449xoEfJB5DR%2FcxWsSmA7AR%2Fvk2a9fnf9H%2B%2BfW1aPr733dPntMH9kbj%2BH8qu9ydU48e66lHI%2Fu%2ByhvnP0G%2BCrPozn59nNXAE4f2Z%2FO3fvgHj3YH697cO%2FzyennEvBB5rn8vftrExCAf%2Fufr1j%2FQey1H8%2Bn3Z298TT0L%2FHGVz%2F3Hn0e%2F%2BrXU2hH93WUEwTgnwh92c8AXw1iR4be%2B%2FrVB%2B3ev8L82fsd6bg9d3Qfn%2F1M1tVBMP2B4UNH%2Bs9SXH1%2Brvrr%2Btcm4IPMa%2Fvj7p5L4CgAX52fR3vp3tc%2F%2B0B2S9E%2Be%2B5z9e7vbm%2B8u4Mz93%2F28%2B%2B9c%2B3q%2BSN1Z3%2FHwtH7yhHfEzj7PBz5c%2FqfQXrVBXwo8OcLjoLn2cV99CAePfBH9%2BEDw1lHXfdOBHyQeSe33OujCQjAj%2F0G2B%2FoPvoJz97P3si4bTt1NvAcBcnp1484H%2BWBz%2F4g8eicHPG7H%2F%2Bc%2FeVvfj8On%2F0r0FcD8NGDse31rx7UZwfAq3PdouPVOb%2Fa%2FX11f7yaXveDwBUC0wH4yns%2F49ote2CLjmc8A2fe0944Q2n%2FNfrstz0%2B2ydbOI7pEIBnhsfZBzB9tzHD0xsYOrdFxxCOmjJf3R81IAldSUAA%2Fu1vgF%2FVdPvsa52xN76W77tU12cC8J8TGHsergZg3wT%2F%2BoP41YP6w%2FD4q%2F4nT7qxB%2FbJOrx9RuCr%2ByO7K6cQeA0CZwPwlv1rn73Gc%2Ffqd2FvvLpDj70%2FnyPvyx%2Fm7g0%2FAXimgb96UHtwZ3xS5TkEvro%2FnqPKuyIwQ0AAnuH4qCo%2BiD%2BGtL3xGM7v8i76TgD%2BcwJ3fyGYBuB3aZhH3adB%2FSjS3ucdCeiPd3TNPT%2BKwNUA%2FKj78j4IPJOAvfFM%2Bt77XQjok9ApATgEd3PMAzjDUZWdBPTHTl%2BpmiEgAM9wVGUXAXtjl5%2FUfA0BfRJyFYBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTORFAre%2F1OXj%2BN2%2F3OPifbgcgVckYG%2B8oivu6dUI6JPQEQE4BCcAz4BTpYKAAV1hM5EXCQjAF4G5vIqAvVFlN7EhAX0SgrsNwH%2F9P%2F9%2Ff6zkT6CvAfUAXuPl6i4C%2BqPLb2p%2Fm8Bnwff2lD3sSWomYG80u0%2F7WQL65Cypn6770z8r%2B%2F%2F%2BT3%2F8%2F3%2F49nMSFoCvgfy42gOYcXOqg4D%2B6PCZynMEBOBznFzVTcDe6Paf%2BnME9Mk5Th9XHQbgjwv9CfQ5sB7Ac5xc1UlAf3T6TvX3BM4G31tu9rAnqZGAvdHoOs1XCeiTc8Ru9%2B8fPvsGWAA%2BB9Q3wNc4ubqTgAHd6TvVArBnAIGUgL2RknOuiYA%2BOef25QD8f%2Fxvvz9Xufyq%2F%2F7%2F%2FK9%2FJPCv%2Fpf%2Fq5wE%2BQj8koD%2B8FQg8O3b%2F%2F5%2F%2Fi7CYA9H2Bx6cwL2xpsb6PYfQkCfnMN8u38PvwG2eM%2BB9QCe4%2BSqTgL6o9N3qr8nIAB7IhA4T8DeOM%2FKlb0E9Mk57y8HYD97dA6sv4JwjpOrOgnoj07fqf6egJ8B9kQgcJ6AvXGelSt7CeiTc95f%2FivQAvA5sB7Ac5xc1UlAf3T6TrUA7BlAICVgb6TknGsioE%2FOuX06AAu%2B54B%2BXOUBvMbL1V0E9EeX39T%2BNoGz3wTbw56kZgL2RrP7tJ8loE%2FOkvrpusN%2FBsnivQbUA3iNl6u7COiPLr%2BpFYA9AwjcS8DeuJeg8w0E9Mk1lz8NwN%2F%2B8e9%2FuFbK1f9CwAPoOUDgcwL6w9OBwC8JfPZNsD%2BA9rRsIvDj%2F%2F2HH%2F9Fzw%2F%2F5q8vfb60NzY9BbQcEdAnR4SGX%2F93%2F%2F6nufTt5%2F9DAM4AG9QZN6c6COiPDp%2BpvEZAAL7Gy9XvScAH%2B%2Ff0zV0%2FloA%2BeSzvj9wrAP%2FM3QP44AfQ270lgat9IgC%2Fpc1u%2BkEE%2Fsu3H%2F%2F4J9F%2F9e2HS9%2BQPej2vA0Clwh87IejQ0ffCNsbRwS9%2Fs4E9MmT3fMN8PcGXP1g%2F3HaoH7yg%2BztH0rgap%2Foj4fa483ejIAA%2FGaGud3fJOCDvQcEgWMC%2BuSY0Zde0R6APYBf%2BngpvoTAvX0iAC95EMj4EgIC8JdgVfTBBG73xO03vJ%2Ftkc%2B%2BCbY3Hmygt3sIAX3yEMzHbyIA%2F%2FTLGY7%2B81d1jgh5fTMBAXizu7Q9m4AA%2FGwHvP8EAR%2FsJyiqsZ2APnkRh1sDsAfwRR5At%2FHSBKb6xJ%2Fkv7TNbu7JBATgJxvg7UcIHO2Ljzc5e529MWKLIi9G4Ozzf%2FY6fRIaLAD%2FBM5f1QkfIMdWEzgawGf%2FSpsBvfoxIe5OAgLwnQAdfwkCR%2FtCAH4Jm9zEkwnokycb8PH2AvCvB2CD%2BkUeULfxVAJTg1oAfqqN3vzFCQjAL26Q2ztFIN0XH8Vvv4iwN05hd9GbEdAnL2KYACwAv8ij6DZekEA6qH2QeUEz3dLLEhCAX9YaN3aBQLovBOALkF369gT0yYtYKABfC8AG9Ys8uG7jIQSmBrU%2FyX%2BIXd7kTQkIwG9qXOltH%2F0zeOne8AenpQ%2FUUtn6JDP2x3%2F69t0vJ%2F7hL7%2F9cKbS5XMCsAB85sFyTSeB9IPM7R8UCcCdzw%2FV5wgIwOc4ueo1CPhg%2Fxo%2BuIvXJqBPMn8uB9mf3%2Bbyua0B%2BOjB%2B7Al%2FYDvTyqzB9up1yLwqD4RgF%2FLd3fzWgQE4Nfyw918T%2BDqP4N39pcjHn3%2Bsjc8ie9EQJ%2FMunU20J697hd3JwB%2F%2F%2B8Af%2Fbv%2FRrUsw%2B2aq9BQAB%2BDR%2FcRTcBAbjb%2F1dX74P9qzvk%2Fl6BgD6ZdeFssD173doAfPXB%2B%2Bwb4I%2F%2F%2FeifRfIN8OyDrtpjCDyrT%2FxJ%2FmP89S7vSUAAfk%2Fftt%2F10R%2F8H33Tm%2B6bD672xvYnbIc%2BffI1Pp4NtmevE4D%2FzV9%2F98PURwP8s6AsAH%2FNA6%2Fq1xJIP5Dc2yc%2ByHytr6q%2FNwEB%2BL3923r3PthvdZauSQL6ZJLm%2F6h1NtievW5dAL73wTv6JvgW2Gd%2FRdoH%2FK9pAFVnCDy7T%2FTHjI%2Bq7CQgAO%2F09d1VHe2Ns18Q3F732eeoW172xrs%2FQR33r0%2B%2B1ufPAm4cfD9u991%2FBvjowUu%2FufrMTgH4ax901b%2BGwLP7xAeZr%2FFV1R0EBOAdPm5TcSfM%2F4MAACAASURBVLQ3BOBtjtOTENAnCbXzZwTgT1hNP3j%2BpPL8Q%2BnK9yHw7D4RgN%2FnWXGnjycgAD%2BeuXc8JpDujY%2FKZ7%2Fp%2FexO7I1jj1zx9QSOflmoPvl6D%2F7lHW6D8J%2FmzMl%2FJ%2FgXd7n9G%2BCrf0IpAD%2FmQfYujyWQDuijDzBHi%2BFDpQ8yj%2FXbu70XAQH4vfxqudt0bwjALU9Ih86jzzn65DHPQW0A%2FuwBfPaD5wP%2BYx5873IfgWf3iQB8n39O7yYgAO%2F291XUnd0Dt%2Fd79tzZ687ysDfOknLdJIGjXxaa%2FnOp6RdyR9pa%2BkQAPvgtzmcfzKk%2FoRSAj1rT669A4OwHk7M%2FM39VU8uAvsrF9Qj8CwEB2HPwCAJn94AA%2FAg3vMerEhCAX9OZmgB89QE8O9jPXnfVfh%2FwrxJz%2FQSBq8%2Fz2evPXndWg%2F44S8p1jQQE4EbXH685%2FQPOs%2Bfsjcd76h3nCBw9v1df%2F%2ByLtqM6VxVt%2F3xV90uwBOCrLeD6RgJXB%2BnZ689ed5b59gF9loPrEPg1AgKw5%2BIRBM4G2aNvgH2wf4Rb3uPRBI4%2B91x9XZ%2FMOFgTgK8%2BYB9%2F5fnsYD%2Bqn9rlA35Kzrl7CJx97j%2Fe4%2Bz1032iP%2B5x2dntBATg7Q4%2FV9%2FRFwqffVA%2FG4Rvrzv65YlnadgbZ0m5boLAR5%2Bc%2FVHKs9d9dm%2F65LddO%2Fvv%2FJ697hfv9mq%2FBfrog%2Fdnrz%2Frg%2F0HUIN6YvyocZXA2edeAL5K1vUIPI6AAPw41o3vJAA3uk7zVQIC8FViX3v92WB79rq3CcBn%2F2Tl9rqpQX%2FVVgH4KjHX30Pg3uf83vNX711%2FXCXm%2BiYCAnCT24%2FX%2BtkH%2B6MvHI7u9CgwHJ0%2Fet3eOCLk9UkCR89z2i9Hde%2FVsLVPzgbbs9cJwD8TmPqrBx9Atz6A9zam819D4N4Ae%2B%2F5q6r0x1Virm8iIAA3uf14rQLw45l7x%2FcjcBRUBeDHeno22J69bn0AvhV49EBP2ekD%2FhRJdc4QmP5A89V9oj%2FOuOqaVgICcKvzr6H76EfLpr8wOKva3jhLynWPIHDUJx%2F38Oh%2B2dYnaaC9fO5VfwY4%2FSvQAvAjxoD3eDYBAfjZDnh%2FBOYICMBzLFW6TuDog%2F2jP9B%2FKNj2wf66M068EoGjPhGAZ9y6HGR%2FftvL514tAB%2Fh8wAeEfI6At%2B%2BHfXJoz%2FQ%2BCDjqUTgcwICsKfjmQQe%2FSMxZ7XaG2dJue4RBI765NGfq%2FxB0Z2uC8B3Avz5uEE9w1GVGQIC8AxHVRB4BAEB%2BBGUvcdnBI4%2B2Ptmy7ODwC%2B%2FWLhlIgC%2F2VPy7gHYA%2FhmD5zbfQiBV%2FtA4w%2BIHmK7N3lTAgLwmxq35Lav%2FnN6j5JtbzyKtPf5LQJHn6eeFXx9A3zncysA3wnQN8AzAFUZJXA0sB%2F9J%2Fo%2ByIzaq9gyAgLwMkPfTI4A%2FGaGud2HEjj6PCUAP9SOuTd7lwDsAZzzXKX9BF7tA40AvP%2BZozAnIADn7JzMCaT%2FrEv%2BjtdO2hvXeLn6awjok6%2Fh%2BvSqAvCMBQb1DEdVZggIwDMcVUHgEQQE4EdQ9h63BHyw90wgcExAnxwzessrnh2Azz5YZ697lgkC8LPId7zv2ef%2F7HWPpqY%2FHk3c%2B70TAQH4ndxyr48iYG88irT3eWcC%2BiR0TwAOwd0c8wDOcFTl1wmcDbZnr3s0Z%2F3xaOLe750ICMDv5JZ7fRQBe%2BNRpL3POxPQJ6F7zwrAr%2FZXNEN8fzrmAbyXoPO%2FRmBLn%2BgPzzcCnxMQgD0dCPySgL3hqUDgmIA%2BOWb0q1cIwCE43wDPgFPlNwkIwB4QBPYTEID3e0zhdQI%2B2F9n5kQfAX0Sev7oAPyqf0UzxOcb4HvBOf%2BrBLb1iQHtQUfAN8CeAQSuELA3rtBybSsBfRI6LwCH4HwDPANOFQHYM4BAOQHfAJc%2FAOT%2FKgEf7D0YCBwT0CfHjH71ikcH4PA2X%2F6YB%2FDlLXKDTySgP54I31u%2FPAEB%2BOUtcoNPIGBvPAG6t3w7AvoktEwADsH5BngGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgbwPwP%2F%2Bn%2FxBWcgwBBBBAAAEErhL427%2F9b3888nd%2F96%2BvHnU9AggggAACCFwk8Bf%2F8T%2F%2F8cQP335OwgLwRYIuRwABBBBA4A4CAvAd8BxFAAEEEEDgIoFfBOBv%2F%2Fj3P1ys4fJv3775KwgeAwQ%2BJ6A%2FPB0IfE7AX4H2dCDwSwL2hqcCgWMC%2BuSY0a9e4WeAQ3A3xzyAMxxV2UlAf%2Bz0laoZAgLwDEdVdhGwN3b5Sc3XENAnIVcBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc31Iv%2FrP%2F34479A%2BLd%2F%2BcOl36UhANc%2FOgD8CgF7w2OBwDEBfXLM6FevEIBDcALwDDhVKggY0BU214sUgOsfAQAGCdgbgzCVWktAn4TWCsAhOAF4BpwqFQQM6Aqb60R%2BBN4j4UffCPsG%2BIig1xsJ2BuNrtN8lYA%2BuUrs5%2BsF4BCcADwDTpUKAgZ0hc11IgXgOssJfiABe%2BOBsL3V2xLQJ6F1AnAITgCeAadKBQEDusLmGpG3wff2G97PgvFn3wT7Brjm0SH0AgF74wIsl9YS0Ceh9QJwCE4AngGnSgUBA7rC5hqRAnCN1YQ%2BkYC98UT43vptCOiT0CoBOAQnAM%2BAU6WCgAFdYXONyKMA%2FAHi7HW%2BAa55dAi9QMDeuADLpbUE9ElovQAcghOAZ8CpUkHAgK6wuUbk2WB79joBuObRIfQCAXvjAiyX1hLQJ6H1AnAITgCeAadKBQEDusLmGpFng%2B3ZnwUWgGseHUIvELA3LsByaS0BfRJaLwCH4ATgGXCqVBAwoCtsrhEpANdYTegTCdgbT4Tvrd%2BGgD4JrRKAQ3AC8Aw4VSoIGNAVNq8R%2BRFwj%2F793jQI39b1DfCaR4eQQQL2xiBMpdYS0CehtQJwCE4AngGnSgUBA7rC5jUiBeA1VhLyxgTsjTc2z60%2FjIA%2BCVELwCE4AXgGnCoVBAzoCpvfVuRnP6t7Kyj9936Pvin2DfDbPjpu%2FAsJ2BtfCFfpNQT0SWilAByCE4BnwKlSQcCArrD5bUUKwG9rnRtfTMDeWGwuaWME9EmIUgAOwQnAM%2BBUqSBgQFfY%2FHYij76ZPftbnNMA%2FQHMN8Bv9%2Bi44QcQsDceANlbvD0BfRJaKACH4ATgGXCqVBAwoCtsfjuRAvDbWeaGiwjYG0VmkxoT0CchOgE4BCcAz4BTpYKAAV1h89uJPArAH4LOXnd7%2FdFvkfYN8Ns9Mm74gQTsjQfC9lZvS0CfhNYJwCE4AXgGnCoVBAzoCpvfTuTZYHv2OgH47R4BN%2FzCBOyNFzbHrb0MAX0SWiEAh%2BAE4BlwqlQQMKArbH47kWeD7dmfBU4B%2BBnglJxzmwnYG5vdpW2KgD4JSQrAITgBeAacKhUEDOgKm99OpAD8dpa54SIC9kaR2aTGBPRJiE4ADsEJwDPgVKkgYEBX2PwyIs8G248bPnv92euugvAN8FVirm8gYG80uEzjvQT0SUhQAA7BCcAz4FSpIGBAV9j8MiKvBtWz15%2B97ioIAfgqMdc3ELA3Glym8V4C%2BiQkKACH4ATgGXCqVBAwoCtsfhmRV39m9%2Bz1AvDLWOxGO%2Fm6HAAAFSBJREFUCgjYGwUmk3g3AX0SIhSAQ3AC8Aw4VSoIGNAVNr%2BMyLOB9uOGz14vAL%2BMxW6kgIC9UWAyiXcT0CchQgE4BCcAz4BTpYKAAV1h89NFfhZkb2%2Fss3%2Bf997zKQB%2FBTol59xmAvbGZndpmyKgT0KSAnAITgCeAadKBQEDusLmp4u8N8Deez4FIACn5JzbTMDe2OwubVME9ElIUgAOwQnAM%2BBUqSBgQFfY%2FHSRHwH29hve9K8uf1ZvWqgAPE1UvQ0E7I0NLtLw1QT0SUhYAA7BCcAz4FSpIGBAV9j8dJEC8NMtcAMIjBGwN8ZQKrSYgD4JzRWAQ3AC8Aw4VSoIGNAVNr%2B8yM%2B%2BCX7UN72fAfIN8Ms%2FOm7wCQTsjSdA95ZvR0CfhJYJwCE4AXgGnCoVBAzoCptfXqQA%2FPIWuUEE%2FkTA3vAwIHBMQJ8cM%2FrVKwTgEJwAPANOlQoCBnSFzS8v8lm%2F5OoIjG%2BAjwh5vZGAvdHoOs1XCeiTq8R%2Bvl4ADsEJwDPgVKkgYEBX2PzyIgXgl7fIDSLgG2DPAAIXCPh8dQHWn18qAIfgBOAZcKpUEDCgK2x%2BeZGfBeDP%2Fl3gRwnyDfCjSHufdyJgb7yTW%2B71WQT0SUheAA7BCcAz4FSpIGBAV9j88iIF4Je3yA0i4BtgzwACFwj4fHUBlm%2BAQ1i%2FccwDOM9UxT0E9MceL19Jydl%2F3%2Ffsdc%2FS5hvgZ5H3vq9MwN54ZXfc26sQ0CehE74BDsH5BngGnCoVBAzoCpsfLvJssD173cMF%2FPyGAvCzyHvfVyZgb7yyO%2B7tVQjok9AJATgEJwDPgFOlgoABXWHzw0S%2B6l9lTgEIwCk55zYTsDc2u0vbFAF9EpIUgENwAvAMOFUqCBjQFTY%2FTKQA%2FDDU3giBpxGwN56G3hu%2FEQF9EpolAIfgBOAZcKpUEDCgK2z%2BcpGv%2FleZUwC%2BAU7JObeZgL2x2V3apgjok5CkAByCE4BnwKlSQcCArrD5y0UKwF%2BO2Bsg8DIE7I2XscKNvDABfRKaIwCH4ATgGXCqVBAwoCtsJjIk4BvgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSEBATgE59hqAvbGanuJGyKgT0KQAnAITgCeAadKBQEDusJmIkMCAnAIzrHVBOyN1fYSN0RAn4QgBeAQnAA8A06VCgIGdIXNRIYEBOAQnGOrCdgbq%2B0lboiAPglBCsAhOAF4BpwqFQQM6AqbiQwJCMAhOMdWE7A3VttL3BABfRKCFIBDcALwDDhVKggY0BU2ExkSEIBDcI6tJmBvrLaXuCEC%2BiQEKQCH4ATgGXCqVBAwoCtsJjIkIACH4BxbTcDeWG0vcUME9EkIUgAOwQnAM%2BBUqSBgQFfYTGRIQAAOwTm2moC9sdpe4oYI6JMQpAAcghOAZ8CpUkHAgK6wmciQgAAcgnNsNQF7Y7W9xA0R0CchSAE4BCcAz4BTpYKAAV1hM5EhAQE4BOfYagL2xmp7iRsioE9CkAJwCE4AngGnSgUBA7rCZiJDAgJwCM6x1QTsjdX2EjdEQJ%2BEIAXgEJwAPANOlQoCBnSFzUSGBATgEJxjqwnYG6vtJW6IgD4JQQrAITgBeAacKhUEDOgKm4kMCQjAITjHVhOwN1bbS9wQAX0SghSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3COrSZgb6y2l7ghAvokBCkAh%2BAE4BlwqlQQMKArbCYyJCAAh%2BAcW03A3lhtL3FDBPRJCFIADsEJwDPgVKkgYEBX2ExkSEAADsE5tpqAvbHaXuKGCOiTEKQAHIITgGfAqVJBwICusJnIkIAAHIJzbDUBe2O1vcQNEdAnIUgBOAQnAM%2BAU6WCgAFdYTORIQEBOATn2GoC9sZqe4kbIqBPQpACcAhOAJ4Bp0oFAQO6wmYiQwICcAjOsdUE7I3V9hI3RECfhCAF4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJDAkIwCE4x1YTsDdW20vcEAF9EoIUgENwAvAMOFUqCBjQFTYTGRIQgENwjq0mYG%2Bstpe4IQL6JAQpAIfgBOAZcKpUEDCgK2wmMiQgAIfgHFtNwN5YbS9xQwT0SQhSAA7BCcAz4FSpIGBAV9hMZEhAAA7BObaagL2x2l7ihgjokxCkAByCE4BnwKlSQcCArrCZyJCAAByCc2w1AXtjtb3EDRHQJyFIATgEJwDPgFOlgoABXWEzkSGBewPwX%2F%2FN737887f%2Bwz%2F8%2FofwVhwrIPAuz4u9UfAwkng3AX0SIhSAQ3AC8Aw4VSoIGNAVNhMZEhCAQ3CORQQE4AibQwi8JAGfr0JbBOAQnAA8A06VCgIGdIXNRIYE0gB8Nsj8%2BE%2FfvvuG%2BIe%2F%2FPbdN8RHr5%2BVdVvn9tzt%2B56t%2B8Hn4%2Fq%2F%2BvbDd%2Fd%2F9PrZ90mvS9%2F%2F9tzt%2B9%2FqvH393vNnn5%2BUy73n7I17CTrfQECfhC4LwCE4AXgGnCoVBAzoCpuJDAkIwL8N7ihgHr0e2nL6WPr%2B9wbYe88LwKctdiECL0vA56vQGgE4BCcAz4BTpYKAAV1hM5EhgXcPwEffIB%2B9foTtKGAevX5UP339swB69Zvbq99oH%2Bk9ev1DrwCcOu8cAq9DwOer0AsBOAQnAM%2BAU6WCgAFdYTORIQEB%2BLfBHQW6o9dDWw6PCcCHiO66wN64C5%2FDJQT0SWi0AByCE4BnwKlSQcCArrCZyJDA1QCcfnOX%2Fozu0Te4975%2BFlv6V36%2FOiBfrX90%2FVe%2Ffss7fZ7O%2BpZeZ2%2Bk5JxrIqBPQrcF4BCcADwDTpUKAgZ0hc1EhgQE4HPgBOCfON0bkAXgc8%2BbqxB4BwI%2BX4UuCcAhOAF4BpwqFQQM6AqbiQwJPCoAf9ze0Te2tzKOrr%2F39bPYtgTgD71fpecoIAvAZ5841yHw%2BgR8vgo9EoBDcALwDDhVKggY0BU2ExkSEIDPgfuqwHju3T%2B%2F6mrgFIDPEbc3znFyVTcBfRL6LwCH4ATgGXCqVBAwoCtsJjIk8OoB%2BEjWo74B%2Fiw4Hv3W5aP7T4N1ej9HgfmrX7%2Fl4WeAj54QryPwugR8vgq9EYBDcALwDDhVKggY0BU2ExkSEICvgTsKiNeq%2FfJnam%2FPHwXsq%2FdzdP1Xvy4AX31CXI%2FA6xLw%2BSr0RgAOwQnAM%2BBUqSBgQFfYTGRI4FEBOP0t0Eey3v0b4CN9R68fBdbb80fXf%2FXrAvCRo15H4H0I%2BHwVeiUAh%2BAE4BlwqlQQMKArbCYyJCAAXwN3FBCvVbv%2F6qv3c3T9V78uAN%2FvuQoIvAoBn69CJwTgEJwAPANOlQoCBnSFzUSGBL46AN%2F7De1Xn7%2F6M6hHAfHqN66hbX86Nn0%2FR%2FXufV0Avtdx5xF4HQI%2BX4VeCMAhOAF4BpwqFQQM6AqbiQwJCMC%2F%2B%2FHP0f3hH37%2Fw2%2BhPAqAAvCP3%2FE8%2Bhnmq38AET7ml4%2FZG5eROVBIQJ%2BEpgvAITgBeAacKhUEDOgKm4kMCVwNwB9vcza4fPU3uB%2F3k%2F6M8VkdH%2B%2FzKgF4%2BrdH3z4%2BR8H13ve%2Fyj18vONj9kaMzsEiAvokNFsADsEJwDPgVKkgYEBX2ExkSEAAfs9vgO8NoM8%2BLwCHDesYAi9EwOer0AwBOAQnAM%2BAU6WCgAFdYTORIYGvDsDhbT3s2KsHsYeBePAbvTp3e%2BPBD4S3e0sC%2BiS0TQAOwQnAM%2BBUqSBgQFfYTGRIQAC%2B9g1wiNmxGwICsEcCgfcn4PNV6KEAHIITgGfAqVJBwICusJnIkEAagD%2Fe7tWDzBGWj%2Fs%2F%2BuVXR3W8fo7Auzwv9sY5P13VTUCfhP4LwCE4AXgGnCoVBAzoCpuJDAkIwD99AywAhw%2FQxWMC8EVgLkfghQn4fBWaIwCH4ATgGXCqVBAwoCtsJjIkcG8ADt%2FWMQRemoC98dL2uLkXIaBPQiME4BCcADwDTpUKAgZ0hc1EhgQE4BCcY6sJ2Bur7SVuiIA%2BCUEKwCE4AXgGnCoVBAzoCpuJvEjg9q%2Bifhz3V4EvgnT5SgL2xkpbiRomoE9CoAJwCE4AngGnSgUBA7rCZiIvEhCALwJzeRUBe6PKbmJDAvokBCcAh%2BAE4BlwqlQQMKArbCbyJIHPgu%2Ftcd8EnwTqspUE7I2VthI1TECfhEAF4BCcADwDTpUKAgZ0hc1EniQgAJ8E5bJqAvZGtf3EnySgT06Cur3sFwE4rOMYAggggAACCCCAAAIIIIAAAu9A4IdvPyfhd7hZ94gAAggggAACCCCAAAIIIIBASuD%2FBznmLlqmzjvmAAAAAElFTkSuQmCC%22%3B%0A%20%20%20%20%20%20%20%20crossElement.id%20%3D%20%22SP_Text-Debug-Cross%22%3B%0A%20%20%20%20%20%20%20%20crossElement.style.position%20%3D%20%22absolute%22%3B%0A%20%20%20%20%20%20%20%20crossElement.style.width%20%3D%20%22480px%22%3B%20crossElement.style.height%20%3D%20%22360px%22%3B%0A%20%20%20%20%20%20%20%20crossElement.style.transform%20%3D%20%22translate(-50%25%2C%20-50%25)%22%3B%0A%20%20%20%20%20%20%20%20crossElement.style.zIndex%20%3D%20%220%22%3B%0A%20%20%20%20%20%20%20%20render.addOverlay(crossElement%2C%20%22scale-centered%22)%3B%0A%20%20%20%20%20%20%20%20allText.push(%60%23SP_Text-Debug-Cross%60)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20printTxt(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20settings%20%3D%20txtSettings%5BID%5D%3B%0A%20%20%20%20%20%20const%20textDiv%20%3D%20document.createElement(%22div%22)%3B%0A%20%20%20%20%20%20textDiv.style.transformOrigin%20%3D%20%22left%20top%22%3B%0A%20%20%20%20%20%20const%20txtElement%20%3D%20document.createElement(%22div%22)%3B%0A%20%20%20%20%20%20txtElement.innerHTML%20%3D%20xmlEscape(args.TXT).replace(%2F%5Cn%2Fg%2C%20%22%3Cbr%3E%22)%3B%0A%20%20%20%20%20%20txtElement.id%20%3D%20%60SP_Text-Ext-%24%7BID%7D%60%3B%0A%20%20%20%20%20%20txtElement.classList.add(ID)%3B%0A%20%20%20%20%20%20txtElement.style.userSelect%20%3D%20%22none%22%3B%0A%20%20%20%20%20%20txtElement.setAttribute(%22sptxtpos%22%2C%20%22120%7C-10%22)%3B%0A%20%20%20%20%20%20textDiv.appendChild(txtElement)%3B%0A%20%20%20%20%20%20render.addOverlay(textDiv%2C%20%22scale-centered%22)%3B%0A%20%20%20%20%20%20allText.push(%60%23SP_Text-Ext-%24%7BID%7D%60)%3B%0A%20%20%20%20%20%20const%20box%20%3D%20txtElement.getBoundingClientRect()%3B%0A%20%20%20%20%20%20if%20(settings.textMAR%20%3D%3D%3D%20undefined)%20this.setMargins(%7B%20ID%2C%20WIDTH%20%3A%20box.width%20%2F%202%2C%20HEIGHT%20%3A%20box.height%20%7D)%3B%0A%20%20%20%20%20%20this.updateStyles(settings)%3B%20%2F%2F%20add%20formatting%20(if%20any)%0A%20%20%20%20%7D%0A%0A%20%20%20%20replaceTxt(args)%20%7B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20if%20(elements.length%20%3E%200)%20elements.forEach((element)%20%3D%3E%20%7B%20element.innerHTML%20%3D%20xmlEscape(args.TXT).replace(%2F%5Cn%2Fg%2C%20%22%3Cbr%3E%22)%20%7D)%3B%0A%20%20%20%20%20%20else%20this.printTxt(args)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20removeTxt(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elementsToRemove%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elementsToRemove.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20render.removeOverlay(element.parentNode)%3B%0A%20%20%20%20%20%20%20%20element.removeEventListener(%22click%22%2C%20this.handleClick)%3B%0A%20%20%20%20%20%20%20%20const%20index%20%3D%20allText.indexOf(%60%23SP_Text-Ext-%24%7BID%7D%60)%3B%0A%20%20%20%20%20%20%20%20if%20(index%20!%3D%3D%20-1)%20allText.splice(index%2C%201)%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20removeAllTxt()%20%7B%0A%20%20%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%20allText.length%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20const%20elementsToRemove%20%3D%20document.querySelectorAll(allText%5Bi%5D)%3B%0A%20%20%20%20%20%20%20%20elementsToRemove.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20render.removeOverlay(element.parentNode)%3B%0A%20%20%20%20%20%20%20%20%20%20element.removeEventListener(%22click%22%2C%20this.handleClick)%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20allText%20%3D%20%5B%5D%3B%20clickedTxts%20%3D%20%5B%5D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20displayedTexts(args)%20%7B%0A%20%20%20%20%20%20let%20texts%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%20texts.push(element.textContent)%20%7D)%3B%0A%20%20%20%20%20%20return%20JSON.stringify(texts)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20allIDs()%20%7B%0A%20%20%20%20%20%20const%20cleanedIDs%20%3D%20allText.map((item)%20%3D%3E%20item.replace(%2F%5E%23SP_Text-Ext-%2F%2C%20%22%22))%3B%0A%20%20%20%20%20%20for%20(let%20i%20%3D%20cleanedIDs.length%20-%201%3B%20i%20%3E%3D%200%3B%20i--)%20%7B%0A%20%20%20%20%20%20%20%20if%20(cleanedIDs%5Bi%5D%20%3D%3D%3D%20%22%23SP_Text-Debug-Cross%22)%20cleanedIDs.splice(i%2C%201)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20JSON.stringify(cleanedIDs)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20existingID(args)%20%7B%0A%20%20%20%20%20%20const%20index%20%3D%20allText.indexOf(%60%23SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%60)%3B%0A%20%20%20%20%20%20return%20Scratch.Cast.toBoolean(allText%5Bindex%5D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20makeGradient(args)%20%7B%20return%20%60%24%7Bargs.TYPE%7D-gradient(%24%7Bargs.ANGLE%7Ddeg%2C%20%24%7Bargs.COLOR1%7D%2C%20%24%7Bargs.COLOR2%7D)%60%20%7D%0A%0A%20%20%20%20setTextColor(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20element.style.color%20%3D%20args.COLOR%3B%0A%20%20%20%20%20%20%20%20if%20(args.COLOR.includes(%22gradient%22))%20%7B%0A%20%20%20%20%20%20%20%20%20%20element.style.background%20%3D%20args.COLOR%3B%0A%20%20%20%20%20%20%20%20%20%20element.style.color%20%3D%20%22transparent%22%3B%0A%20%20%20%20%20%20%20%20%20%20element.style.webkitTextFillColor%20%3D%20%22transparent%22%3B%0A%20%20%20%20%20%20%20%20%20%20element.style.webkitBackgroundClip%20%3D%20%22text%22%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20element.style.color%20%3D%20args.COLOR%3B%0A%20%20%20%20%20%20%20%20%20%20element.style.background%20%3D%20%22none%22%3B%0A%20%20%20%20%20%20%20%20%20%20element.style.webkitTextFillColor%20%3D%20%22initial%22%3B%0A%20%20%20%20%20%20%20%20%20%20element.style.webkitBackgroundClip%20%3D%20%22initial%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5B%22textCLR%22%5D%20%3D%20%7B%20...args%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTextDropShadow(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20element.style.textShadow%20%3D%20args.z%20%3D%3D%3D%200%20%3F%20%22none%22%20%3A%20%60%24%7Bargs.x%7Dpx%20%24%7Bargs.y%20*%20-1%7Dpx%20%24%7Bargs.z%7Dpx%20%24%7Bargs.COLOR%7D%60%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5B%22textSHA%22%5D%20%3D%20%7B%20...args%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setOverflow(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%20element.style.overflow%20%3D%20args.TYPE%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5B%22textOVR%22%5D%20%3D%20%7B%20...args%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTextOutline(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20element.style.webkitTextStrokeColor%20%3D%20args.COLOR%3B%0A%20%20%20%20%20%20%20%20element.style.webkitTextStrokeWidth%20%3D%20%60%24%7Bargs.THICKNESS%7Dpx%60%3B%0A%20%20%20%20%20%20%20%20%2F%2Fmulti-platform%20support%20cuz%20we%20cant%20have%20nice%20things%0A%20%20%20%20%20%20%20%20element.style.textStrokeColor%20%3D%20args.COLOR%3B%0A%20%20%20%20%20%20%20%20element.style.textStrokeWidth%20%3D%20%60%24%7Bargs.THICKNESS%7Dpx%60%3B%0A%20%20%20%20%20%20%20%20element.style.mozTextStrokeColor%20%3D%20args.COLOR%3B%0A%20%20%20%20%20%20%20%20element.style.mozTextStrokeWidth%20%3D%20%60%24%7Bargs.THICKNESS%7Dpx%60%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5B%22textOUT%22%5D%20%3D%20%7B%20...args%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setLine(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20lineType%20%3D%20args.TYPE2.replace(%22strike%22%2C%20%22line-%22)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20element.style.textDecorationLine%20%3D%20lineType%3B%0A%20%20%20%20%20%20%20%20element.style.textDecorationStyle%20%3D%20args.TYPE1%3B%0A%20%20%20%20%20%20%20%20element.style.textDecorationThickness%20%3D%20%60%24%7Bargs.THICK%7Dpx%60%3B%0A%20%20%20%20%20%20%20%20element.style.textDecorationColor%20%3D%20args.COLOR%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5B%22textLIN%22%5D%20%3D%20%7B%20...args%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setMargins(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20element.style.width%20%3D%20%60%24%7Bargs.WIDTH%7Dpx%60%3B%0A%20%20%20%20%20%20%20%20element.style.height%20%3D%20%60%24%7Bargs.HEIGHT%7Dpx%60%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5B%22textMAR%22%5D%20%3D%20%7B%20...args%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTextAlignment(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%20element.style.textAlign%20%3D%20args.ALIGNMENT%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5B%22txtALI%22%5D%20%3D%20%7B%20...args%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTextFont(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%20element.style.fontFamily%20%3D%20args.FONT%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5B%22txtFont%22%5D%20%3D%20%7B%20...args%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setFontSize(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%20element.style.fontSize%20%3D%20%60%24%7Bargs.SIZE%7Dpx%60%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5B%22txtFontSZ%22%5D%20%3D%20%7B%20...args%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setThick(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%20element.style.fontWeight%20%3D%20args.NUM%20*%209%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5B%22txtFontTK%22%5D%20%3D%20%7B%20...args%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTextSpacing(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20element.style%5Bargs.ATT%20%3D%3D%3D%20%22letter%22%20%3F%20%22letterSpacing%22%20%3A%20%22lineHeight%22%5D%20%3D%20%60%24%7Bargs.SPACING%7Dpx%60%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20txtSettings%5BID%5D%5Bargs.ATT%20%3D%3D%3D%20%22letter%22%20%3F%20%22letDIS%22%20%3A%20%22lineDIS%22%5D%20%3D%20%7B%20...args%2C%20ID%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20presetTextPosition(args)%20%7B%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20if%20(args.isPrint%20%3D%3D%3D%20undefined)%20txtSettings%5BID%5D%5B%22preTxt1%22%5D%20%3D%20%7B%20...args%2C%20isPrint%3A%20true%20%7D%3B%0A%20%20%20%20%20%20else%20%7B%0A%20%20%20%20%20%20%20%20const%20pos%20%3D%20%5BScratch.Cast.toNumber(args.X)%2C%20Scratch.Cast.toNumber(args.Y)%5D%3B%0A%20%20%20%20%20%20%20%20runtime.once(%22AFTER_EXECUTE%22%2C%20()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%3B%0A%20%20%20%20%20%20%20%20%20%20const%20element%20%3D%20elements%5Belements.length%20-%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20const%20centerW%20%3D%20parseFloat(element.style.width)%20%2F%202%3B%0A%20%20%20%20%20%20%20%20%20%20const%20computedStyle%20%3D%20window.getComputedStyle(element)%3B%0A%20%20%20%20%20%20%20%20%20%20const%20lineHeight%20%3D%20computedStyle.getPropertyValue(%22line-height%22)%3B%0A%20%20%20%20%20%20%20%20%20%20const%20fontSize%20%3D%20computedStyle.getPropertyValue(%22font-size%22)%3B%0A%20%20%20%20%20%20%20%20%20%20const%20centerH%20%3D%20(lineHeight%20%3D%3D%3D%20%22normal%22%20%3F%20parseFloat(fontSize)%20*%201.2%20%3A%20parseFloat(lineHeight))%20%2F%202%3B%0A%0A%20%20%20%20%20%20%20%20%20%20let%20transform%20%3D%20element.style.transform%3B%0A%20%20%20%20%20%20%20%20%20%20const%20string%20%3D%20%60translate(%24%7Bpos%5B0%5D%20-%20centerW%7Dpx%2C%20%24%7B(pos%5B1%5D%20*%20-1)%20-%20centerH%7Dpx)%60%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(transform.includes(%22translate%22))%20transform%20%3D%20transform.replace(%2Ftranslate%5C(%5B%5E)%5D*%5C)%2F%2C%20string)%3B%0A%20%20%20%20%20%20%20%20%20%20else%20transform%20%2B%3D%20%60%20%24%7Bstring%7D%60%3B%0A%20%20%20%20%20%20%20%20%20%20element.style.transform%20%3D%20transform.trim()%3B%0A%20%20%20%20%20%20%20%20%20%20element.style.position%20%3D%20%22absolute%22%3B%0A%20%20%20%20%20%20%20%20%20%20element.setAttribute(%22sptxtpos%22%2C%20%60%24%7Bpos%5B0%5D%7D%7C%24%7Bpos%5B1%5D%7D%60)%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTextPosition(args)%20%7B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20const%20pos%20%3D%20%5BScratch.Cast.toNumber(args.X)%2C%20Scratch.Cast.toNumber(args.Y)%5D%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20let%20centerW%20%3D%20parseFloat(element.style.width)%20%2F%202%3B%0A%20%20%20%20%20%20%20%20if%20(isNaN(centerW))%20centerW%20%3D%20(element.getBoundingClientRect().width%20%3F%3F%200%20)%20%2F%202%3B%0A%20%20%20%20%20%20%20%20const%20computedStyle%20%3D%20window.getComputedStyle(element)%3B%0A%20%20%20%20%20%20%20%20const%20lineHeight%20%3D%20computedStyle.getPropertyValue(%22line-height%22)%3B%0A%20%20%20%20%20%20%20%20const%20fontSize%20%3D%20computedStyle.getPropertyValue(%22font-size%22)%3B%0A%20%20%20%20%20%20%20%20const%20centerH%20%3D%20(lineHeight%20%3D%3D%3D%20%22normal%22%20%3F%20parseFloat(fontSize)%20*%201.2%20%3A%20parseFloat(lineHeight))%20%2F%202%3B%0A%0A%20%20%20%20%20%20%20%20let%20transform%20%3D%20element.style.transform%3B%0A%20%20%20%20%20%20%20%20const%20string%20%3D%20%60translate(%24%7Bpos%5B0%5D%20-%20centerW%7Dpx%2C%20%24%7B(pos%5B1%5D%20*%20-1)%20-%20centerH%7Dpx)%60%3B%0A%20%20%20%20%20%20%20%20if%20(transform.includes(%22translate%22))%20transform%20%3D%20transform.replace(%2Ftranslate%5C(%5B%5E)%5D*%5C)%2F%2C%20string)%3B%0A%20%20%20%20%20%20%20%20else%20transform%20%2B%3D%20%60%20%24%7Bstring%7D%60%3B%0A%20%20%20%20%20%20%20%20element.style.transform%20%3D%20transform.trim()%3B%0A%20%20%20%20%20%20%20%20element.style.position%20%3D%20%22absolute%22%3B%0A%20%20%20%20%20%20%20%20element.setAttribute(%22sptxtpos%22%2C%20%60%24%7Bpos%5B0%5D%7D%7C%24%7Bpos%5B1%5D%7D%60)%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20textPosition(args)%20%7B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20let%20value%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20(args.ATT%20%3D%3D%3D%20%22z%20layer%22)%20value%20%3D%20element.parentNode.parentNode.style.zIndex%3B%0A%20%20%20%20%20%20%20%20else%20value%20%3D%20element.getAttribute(%22sptxtpos%22)%3F.split(%22%7C%22%2C%202)%5Bargs.ATT.includes(%22x%22)%20%3F%200%20%3A%201%5D%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20return%20value%20%7C%7C%200%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20attOfText(args)%20%7B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20let%20value%3B%0A%20%20%20%20%20%20if%20(args.ATT.includes(%22box2%22))%20%7B%0A%20%20%20%20%20%20%20%20const%20calcs%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20tempSpan%20%3D%20document.createElement(%22span%22)%3B%0A%20%20%20%20%20%20%20%20%20%20tempSpan.innerHTML%20%3D%20element.textContent%3B%0A%20%20%20%20%20%20%20%20%20%20tempSpan.style.fontSize%20%3D%20element.style.fontSize%3B%0A%20%20%20%20%20%20%20%20%20%20tempSpan.style.fontFamily%20%3D%20getComputedStyle(element).fontFamily%3B%0A%20%20%20%20%20%20%20%20%20%20tempSpan.style.display%20%3D%20%22inline%22%3B%0A%20%20%20%20%20%20%20%20%20%20document.body.appendChild(tempSpan)%3B%0A%20%20%20%20%20%20%20%20%20%20calcs.push(tempSpan%5B%60offset%24%7Bargs.ATT.includes(%22w%22)%20%3F%20%22Width%22%20%3A%20%22Height%22%7D%60%5D)%3B%0A%20%20%20%20%20%20%20%20%20%20document.body.removeChild(tempSpan)%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20return%20JSON.stringify(calcs)%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%20value%20%3D%20element.style%5Bargs.ATT%5D%20%7D)%3B%0A%20%20%20%20%20%20%20%20value%20%3D%20args.ATT%20%3D%3D%3D%20%22fontFamily%22%20%7C%7C%20args.ATT%20%3D%3D%3D%20%22textAlign%22%20%7C%7C%20args.ATT%20%3D%3D%3D%20%22overflow%22%20%3F%20value%20%3A%20parseFloat(value)%3B%0A%20%20%20%20%20%20%20%20value%20%3D%20args.ATT%20%3D%3D%3D%20%22fontWeight%22%20%3F%20value%20%2F%209%20%3A%20value%3B%0A%20%20%20%20%20%20%20%20return%20value%20%7C%7C%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20lineCnt(args)%20%7B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20let%20value%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%20value.push(element.querySelectorAll(%22br%22).length%20%2B%201%20%7C%7C%201)%20%7D)%3B%0A%20%20%20%20%20%20return%20value.length%20%3E%201%20%3F%20JSON.stringify(value)%20%3A%20(value%5B0%5D%20%7C%7C%200)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTextZIndex(args)%20%7B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%20element.parentNode.parentNode.style.zIndex%20%3D%20Math.round(args.Z_INDEX)%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setEffect(args)%20%7B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20const%20val%20%3D%20Scratch.Cast.toNumber(args.VALUE)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20const%20parent%20%3D%20element.parentNode%3B%0A%20%20%20%20%20%20%20%20const%20curStyles%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%20%20element.style.filter%20%7C%7C%20%22%22%2C%0A%20%20%20%20%20%20%20%20%20%20element.parentNode.style.transform%20%7C%7C%20%22%22%2C%0A%20%20%20%20%20%20%20%20%20%20element.style.opacity%20%7C%7C%20%22%22%0A%20%20%20%20%20%20%20%20%5D%3B%0A%20%20%20%20%20%20%20%20const%20regex%20%3D%20new%20RegExp(%60%24%7Bargs.EFFECT%7D%5C%5C(%5B%5E)%5D%2B%5C%5C)%60%2C%20%22g%22)%3B%0A%20%20%20%20%20%20%20%20curStyles.forEach((curStyle%2C%20index)%20%3D%3E%20%7B%20curStyles%5Bindex%5D%20%3D%20curStyle.replace(regex%2C%20%22%22)%20%7D)%3B%0A%20%20%20%20%20%20%20%20switch%20(args.EFFECT)%20%7B%0A%20%20%20%20%20%20%20%20%20%20case%20%22saturate%22%3A%20return%20element.style.filter%20%3D%20%60%24%7BcurStyles%5B0%5D%7D%20saturate(%24%7Bval%7D%25)%60%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22contrast%22%3A%20return%20element.style.filter%20%3D%20%60%24%7BcurStyles%5B0%5D%7D%20contrast(%24%7Bval%20%2B%20100%7D%25)%60%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22brightness%22%3A%20return%20element.style.filter%20%3D%20%60%24%7BcurStyles%5B0%5D%7D%20brightness(%24%7Bval%20%2B%20100%7D%25)%60%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22hue-rotate%22%3A%20return%20element.style.filter%20%3D%20%60%24%7BcurStyles%5B0%5D%7D%20hue-rotate(%24%7Bval%7Ddeg)%60%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22opacity%22%3A%20return%20element.style.opacity%20%3D%20(100%20-%20val)%20%2F%20100%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22sepia%22%3A%20return%20element.style.filter%20%3D%20%60%24%7BcurStyles%5B0%5D%7D%20sepia(%24%7Bval%7D%25)%60%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22invert%22%3A%20return%20element.style.filter%20%3D%20%60%24%7BcurStyles%5B0%5D%7D%20invert(%24%7Bval%7D%25)%60%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22scaleX%22%3A%20return%20parent.style.transform%20%3D%20%60%24%7BcurStyles%5B1%5D%7D%20scaleX(%24%7Bval%20%2F%20100%7D)%60%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22scaleY%22%3A%20return%20parent.style.transform%20%3D%20%60%24%7BcurStyles%5B1%5D%7D%20scaleY(%24%7Bval%20%2F%20100%7D)%60%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22skewX%22%3A%20return%20parent.style.transform%20%3D%20%60%24%7BcurStyles%5B1%5D%7D%20skewX(%24%7Bval%7Ddeg)%60%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22skewY%22%3A%20return%20parent.style.transform%20%3D%20%60%24%7BcurStyles%5B1%5D%7D%20skewY(%24%7Bval%7Ddeg)%60%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22rotate%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20let%20transform%20%3D%20element.style.transform%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(transform.includes(%22rotate%22))%20transform%20%3D%20transform.replace(%2Frotate%5C(%5B%5E)%5D*%5C)%2F%2C%20%60rotate(%24%7Bval%20-%2090%7Ddeg)%60)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20transform%20%2B%3D%20%60%20rotate(%24%7Bval%20-%2090%7Ddeg)%60%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20element.style.transform%20%3D%20transform.trim()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20element.style.transformOrigin%20%3D%20%22center%22%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20default%3A%20return%20element.style.filter%20%3D%20%60%24%7BcurStyles%5B0%5D%7D%20blur(%24%7Bval%7Dpx)%60%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20resetEffect(args)%20%7B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20element.parentNode.style.transform%20%3D%20(element.parentNode.style.transform%20%7C%7C%20%22%22)%0A%20%20%20%20%20%20%20%20%20%20.replace(%2FscaleX%5C(%5B%5E)%5D*%5C)%2F%2C%20%22scaleX(1)%22).replace(%2FscaleY%5C(%5B%5E)%5D*%5C)%2F%2C%20%22scaleY(1)%22)%0A%20%20%20%20%20%20%20%20%20%20.replace(%2FskewX%5C(%5B%5E)%5D*%5C)%2F%2C%20%22skewX(0deg)%22).replace(%2FskewY%5C(%5B%5E)%5D*%5C)%2F%2C%20%22skewY(0deg)%22)%3B%0A%20%20%20%20%20%20%20%20element.style.transform%20%3D%20(element.style.transform%20%7C%7C%20%22%22)%0A%20%20%20%20%20%20%20%20%20%20.replace(%2Frotate%5C(%5B%5E)%5D*%5C)%2F%2C%20%22rotate(0deg)%22)%3B%0A%20%20%20%20%20%20%20%20element.style.filter%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20element.style.opacity%20%3D%201%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20amtOfEffect(args)%20%7B%0A%20%20%20%20%20%20const%20effect%20%3D%20args.EFFECT%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20let%20effectValue%20%3D%20effect%20%3D%3D%3D%20%22rotate%22%20%3F%2090%20%3A%20effect.includes(%22scale%22)%20%3F%20100%20%3A%200%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20(effect%20%3D%3D%3D%20%22rotate%22%20%7C%7C%20effect.includes(%22scale%22)%20%7C%7C%20effect.includes(%22skew%22))%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20thisElement%20%3D%20effect%20%3D%3D%3D%20%22rotate%22%20%3F%20element%20%3A%20element.parentNode%3B%0A%20%20%20%20%20%20%20%20%20%20const%20transformV%20%3D%20thisElement.style.transform.split(%22%20%22)%3B%0A%20%20%20%20%20%20%20%20%20%20const%20index%20%3D%20transformV.findIndex(value%20%3D%3E%20value.includes(effect))%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(index%20!%3D%3D%20-1)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20effectValue%20%3D%20transformV%5Bindex%5D.replace(%2F%5B%5E%5Cd.-%5D%2Fg%2C%20%22%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20effectValue%20%3D%20effect%20%3D%3D%3D%20%22rotate%22%20%3F%20parseFloat(effectValue)%20%2B%2090%20%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20parseFloat(effectValue)%20*%20(effect.includes(%22scale%22)%20%3F%20100%20%3A%201)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20(effect%20%3D%3D%3D%20%22opacity%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20effectValue%20%3D%20100%20-%20(parseFloat(element.style.opacity%20%7C%7C%200)%20*%20100)%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20filterV%20%3D%20element.style.filter.split(%22%20%22)%3B%0A%20%20%20%20%20%20%20%20%20%20const%20index%20%3D%20filterV.findIndex((value)%20%3D%3E%20value.includes(effect))%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(index%20!%3D%3D%20-1)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20effectValue%20%3D%20effect%20%3D%3D%3D%20%22contrast%22%20%7C%7C%20effect%20%3D%3D%3D%20%22brightness%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20parseFloat(filterV%5Bindex%5D.replace(%2F%5B%5E%5Cd.-%5D%2Fg%2C%20%22%22))%20-%20100%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20parseFloat(filterV%5Bindex%5D.replace(%2F%5B%5E%5Cd.-%5D%2Fg%2C%20%22%22))%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20return%20effectValue%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTextCurve(args)%20%7B%0A%20%20%20%20%20%20%2F%2F%20TODO%20clean%20this%20up%20and%20add%20more%20availiable%20text%20stylings%0A%20%20%20%20%20%20%2F%2F%20Perhaps%20make%20the%20entire%20extension%20rely%20on%20svgs%3F%0A%20%20%20%20%20%20const%20ID%20%3D%20this.fixID(args.ID)%3B%0A%20%20%20%20%20%20const%20settings%20%3D%20txtSettings%5BID%5D%3B%0A%20%20%20%20%20%20const%20regex%20%3D%20args.ARC.includes(%22%3Csvg%22)%20%3F%20%2F%3Cpath%5B%5E%3E%5D*d%3D%22(%5B%5E%22%5D*)%22%2F%20%3A%20%2F%3Cpath%5B%5E%3E%5D*d%3D%22(%5B%5E%22%5D*)%22%2F%3B%0A%20%20%20%20%20%20const%20match%20%3D%20args.ARC.match(regex)%3B%0A%20%20%20%20%20%20const%20outline%20%3D%20settings%5B%22textOUT%22%5D%20!%3D%3D%20undefined%20%3F%20settings%5B%22textOUT%22%5D%20%3A%20%22%22%3B%0A%20%20%20%20%20%20if%20(match%20%26%26%20match%5B1%5D)%20%7B%0A%20%20%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7BID%7D%22%5D%60)%0A%20%20%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20existingSvg%20%3D%20element.querySelector(%22svg%22)%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(existingSvg)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20path%20%3D%20existingSvg.querySelector(%22path%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20path.setAttribute(%22d%22%2C%20match%5B1%5D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20textFill%20%3D%20existingSvg.querySelector(%22text%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textFill.setAttribute(%22fill%22%2C%20element.style.color%20%3D%3D%3D%20%22transparent%22%20%3F%20%22%23000%22%20%3A%20element.style.color)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20textPathFill%20%3D%20existingSvg.querySelector(%22textPath%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textPathFill.setAttribute(%22href%22%2C%20%60%23MyPath-%24%7BID%7D%60)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textPathFill.textContent%20%3D%20element.textContent%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20textStroke%20%3D%20existingSvg.querySelector(%22text%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textStroke.setAttribute(%22fill%22%2C%20outline%20%3F%20outline.inputs.COLOR%20%3F%3F%20%22%2300000000%22%20%3A%20%22%2300000000%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textStroke.setAttribute(%22stroke%22%2C%20outline%20%3F%20outline.inputs.COLOR%20%3F%3F%20%22%2300000000%22%20%3A%20%22%2300000000%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textStroke.setAttribute(%22stroke-width%22%2C%20outline%20%3F%20outline.inputs.THICKNESS%20%3F%3F%201%20%3A%201)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20textPathStroke%20%3D%20existingSvg.querySelector(%22textPath%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textPathStroke.setAttribute(%22href%22%2C%20%60%23MyPath-%24%7BID%7D%60)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textPathStroke.textContent%20%3D%20element.textContent%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20svg%20%3D%20document.createElementNS(%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%2C%20%22svg%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20defs%20%3D%20document.createElementNS(%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%2C%20%22defs%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20path%20%3D%20document.createElementNS(%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%2C%20%22path%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20path.setAttribute(%22id%22%2C%20%60MyPath-%24%7BID%7D%60)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20path.setAttribute(%22d%22%2C%20match%5B1%5D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20defs.appendChild(path)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20textStroke%20%3D%20document.createElementNS(%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%2C%20%22text%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textStroke.setAttribute(%22fill%22%2C%20outline%20%3F%20outline.inputs.COLOR%20%3A%20%22%2300000000%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textStroke.setAttribute(%22stroke%22%2C%20outline%20%3F%20outline.inputs.COLOR%20%3A%20%22%2300000000%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textStroke.setAttribute(%22stroke-width%22%2C%20outline%20%3F%20outline.inputs.THICKNESS%20%3A%201)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20textPathStroke%20%3D%20document.createElementNS(%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%2C%20%22textPath%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textPathStroke.setAttribute(%22href%22%2C%20%60%23MyPath-%24%7BID%7D%60)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textPathStroke.textContent%20%3D%20element.textContent%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textStroke.appendChild(textPathStroke)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20svg.appendChild(defs)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20svg.appendChild(textStroke)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20textFill%20%3D%20document.createElementNS(%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%2C%20%22text%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textFill.setAttribute(%22fill%22%2C%20element.style.color%20%3D%3D%3D%20%22transparent%22%20%3F%20%22%23000%22%20%3A%20element.style.color)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20textPathFill%20%3D%20document.createElementNS(%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%2C%20%22textPath%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textPathFill.setAttribute(%22href%22%2C%20%60%23MyPath-%24%7BID%7D%60)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textPathFill.textContent%20%3D%20element.textContent%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20textFill.appendChild(textPathFill)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20svg.appendChild(textFill)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20element.innerHTML%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20element.appendChild(svg)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20presetCurve(args)%20%7B%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20circle%3A%20%60%3Csvg%3E%3Cpath%20d%3D%22M41.9375%2C89.5c0%2C-37.83151%2030.66849%2C-68.5%2068.5%2C-68.5c37.83151%2C0%2068.5%2C30.66849%2068.5%2C68.5c0%2C37.83151%20-30.66849%2C68.5%20-68.5%2C68.5c-37.83151%2C0%20-68.5%2C-30.66849%20-68.5%2C-68.5z%22%2F%3E%3C%2Fsvg%3E%60%2C%0A%20%20%20%20%20%20%20%20hill%3A%20%60%3Csvg%3E%3Cpath%20d%3D%22M37.4375%2C89.5c0%2C0%2043.00879%2C-31%2074.5%2C-31c31.49121%2C0%2071.5%2C31%2071.5%2C31%22%2F%3E%3C%2Fsvg%3E%60%2C%0A%20%20%20%20%20%20%20%20dip%3A%20%60%3Csvg%3E%3Cpath%20d%3D%22M37.4375%2C89.5c0%2C0%2042.00879%2C25%2073.5%2C25c31.49121%2C0%2072.5%2C-25%2072.5%2C-25%22%2F%3E%3C%2Fsvg%3E%60%2C%0A%20%20%20%20%20%20%20%20wave%3A%20%60%3Csvg%3E%3Cpath%20d%3D%22M24.4375%2C98.67214c0%2C0%2038.3049%2C-22.48612%2065.97496%2C-23c27.67006%2C-0.51388%2044.8836%2C19.04663%2076.52154%2C23.35359c37.46107%2C5.09968%2076.066%2C-17.35359%2076.066%2C-17.35359%22%2F%3E%3C%2Fsvg%3E%60%0A%20%20%20%20%20%20%7D%5Bargs.ARC%5D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20resetTxt(args)%20%7B%20delete%20txtSettings%5Bthis.fixID(args.ID)%5D%20%7D%0A%0A%20%20%20%20reuseStyle(args)%20%7B%0A%20%20%20%20%20%20this.updateStyles(txtSettings%5Bthis.fixID(args.ID)%5D%2C%20this.fixID(args.ID2))%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20toggleSelect(args)%20%7B%0A%20%20%20%20%20%20const%20type%20%3D%20args.TYPE%20%3D%3D%3D%20%22on%22%20%3F%20%22auto%22%20%3A%20%22none%22%3B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20element.style.userSelect%20%3D%20type%3B%20element.style.webkitUserSelect%20%3D%20type%3B%20element.style.mozUserSelect%20%3D%20type%3B%0A%20%20%20%20%20%20%20%20element.style.pointerEvents%20%3D%20type%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20makeClick(args)%20%7B%0A%20%20%20%20%20%20const%20elements%20%3D%20document.querySelectorAll(%60div%5Bid%3D%22SP_Text-Ext-%24%7Bthis.fixID(args.ID)%7D%22%5D%60)%3B%0A%20%20%20%20%20%20elements.forEach((element)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20(args.TYPE%20%3D%3D%3D%20%22on%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20element.style.pointerEvents%20%3D%20%22auto%22%3B%0A%20%20%20%20%20%20%20%20%20%20element.style.cursor%20%3D%20%22pointer%22%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20element.style.pointerEvents%20%3D%20%22none%22%3B%0A%20%20%20%20%20%20%20%20%20%20element.style.cursor%20%3D%20%22none%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20element.removeEventListener(%22click%22%2C%20this.handleClick)%3B%0A%20%20%20%20%20%20%20%20if%20(args.TYPE%20%3D%3D%3D%20%22on%22)%20element.addEventListener(%22click%22%2C%20this.handleClick)%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20isClicked(args)%20%7B%20return%20clickedTxts.indexOf(this.fixID(args.ID))%20%3E%20-1%20%7D%0A%0A%20%20%20%20clickedID(_%2C%20util)%20%7B%20return%20util.thread.SPdisTxtClickID%20%3F%3F%20%22%22%20%7D%0A%20%20%7D%0A%0A%20%20Scratch.extensions.register(new%20SPdisText())%3B%0A%7D)(Scratch)%3B%0A%20%7D)(Scratch)%3B"]) {
vm.extensionManager.loadExtensionURL(extension);
}
vm.runtime.isProjectPermissionManagerDisabled = true;
} catch (e) {
handleError(e);
}
</script>
<script>
const getProjectData = (function() {
const storage = scaffolding.storage;
storage.onprogress = (total, loaded) => {
setProgress(interpolate(0.2, 0.98, loaded / total));
};
storage.addWebStore(
[
storage.AssetType.ImageVector,
storage.AssetType.ImageBitmap,
storage.AssetType.Sound,
storage.AssetType.Font
].filter(i => i),
(asset) => new URL('./assets/' + asset.assetId + '.' + asset.dataFormat, location).href
);
return () => new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.onload = () => {
resolve(xhr.response);
};
xhr.onerror = () => {
if (location.protocol === 'file:') {
reject(new Error('Zip environment must be used from a website, not from a file URL.'));
} else {
reject(new Error('Request to load project data failed.'));
}
};
xhr.onprogress = (e) => {
if (e.lengthComputable) {
setProgress(interpolate(0.1, 0.2, e.loaded / e.total));
}
};
xhr.responseType = 'arraybuffer';
xhr.open('GET', "./assets/project.json");
xhr.send();
});
})();
</script>
<script>
const run = async () => {
const projectData = await getProjectData();
await scaffolding.loadProject(projectData);
setProgress(1);
loadingScreen.hidden = true;
if (true) {
scaffolding.start();
} else {
launchScreen.hidden = false;
launchScreen.addEventListener('click', () => {
launchScreen.hidden = true;
scaffolding.start();
});
launchScreen.focus();
}
};
run().catch(handleError);
</script>
</body>
</html>