Skip to content

Instantly share code, notes, and snippets.

@towerofnix
Created November 12, 2018 04:35
Show Gist options
  • Save towerofnix/f63654428fb93ba7e4218cd153f18092 to your computer and use it in GitHub Desktop.
Save towerofnix/f63654428fb93ba7e4218cd153f18092 to your computer and use it in GitHub Desktop.
const ArgumentType = require('../../extension-support/argument-type');
const BlockType = require('../../extension-support/block-type');
const Cast = require('../../util/cast');
const Clone = require('../../util/clone');
const Color = require('../../util/color');
const formatMessage = require('format-message');
const MathUtil = require('../../util/math-util');
const RenderedTarget = require('../../sprites/rendered-target');
const log = require('../../util/log');
const StageLayering = require('../../engine/stage-layering');
/**
* Icon svg to be displayed at the left edge of each extension block, encoded as a data URI.
* @type {string}
*/
// eslint-disable-next-line max-len
const blockIconURI = 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI0MS40ODYwOSIgaGVpZ2h0PSI0Ni4yNDQ1NSIgdmlld0JveD0iMCwwLDQxLjQ4NjA5LDQ2LjI0NDU1Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjE4LjU1OTU3LC0xNTcuMjAwMjEpIj48ZyBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIGZvbnQtZmFtaWx5PSJub25lIiBmb250LXdlaWdodD0ibm9uZSIgZm9udC1zaXplPSJub25lIiB0ZXh0LWFuY2hvcj0ibm9uZSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiPjxnPjxnIGRhdGEtcGFwZXItZGF0YT0ieyZxdW90O29yaWdQb3MmcXVvdDs6bnVsbH0iIGlkPSJHcm91cCI+PHBhdGggZD0iTTI1OC42Nzg3NSwxODcuNzk5NWwtMC41Njk1MiwxLjMxNTE4bC0xLjQwNzIsMS4wOTY0NWgtMS4xNzI2bC0xLjEzOTIzLC0wLjQ2MjA5bC0yLjUxMjg3LC0yLjkxMjk4bC0wLjU2OTUyLC0xLjk5NDRjMCwwIDAuNzAzNCwtMC45NTkyNCAwLjczNjk3LC0xLjE4MDc3YzAuMDMzNTcsLTAuMjIxNTMgMC45MDQ2MywtMS4wNTU5OSAwLjkwNDYzLC0xLjA1NTk5YzAsMCAwLjc3MDc1LC0wLjEwMDE1IDAuODM3NjksMGMwLjA2Njk0LDAuMTAwMTUgMC4yNjc5NywwLjUwMDk1IDAuMjY3OTcsMC41MDA5NWwwLjEzNDA5LDAuOTY4MDVsLTAuMTAwNTEsMS4wMzQ5NWwwLjAzMzU3LDAuODIwNjNsLTAuMTM0MDksMC43NDgzMmwwLjQwMjA2LDAuNTk3N2MwLDAgMC42MDMyOSwwLjIwOTkyIDAuODM3NjksMC4yNTY3OWMwLjIzNDQsMC4wNDY4NyAxLjIwNjE4LC0wLjI1Njc5IDEuMjA2MTgsLTAuMjU2NzlsMC45MzgsLTEuMzQ2MDJoMC43MzcxN2wwLjU2OTUyLDAuNDU2NDljMCwtMC4wMDA0IDAuMTg3OTYsMC45Nzk2NyAwLDEuNDEzNTJ6IiBpZD0iU2hhcGUiIGZpbGw9IiNlZjQ2M2MiLz48cGF0aCBkPSJNMjU0LjAyMTUsMTg5LjY4MTkzbC0xLjQ0MDc4LDEuMjY5MTFsLTEuODQyODMsMS4wMzQ3NWMwLDAgLTEuODA5MjYsMC4wNjY5IC0xLjkwOTc4LDBjLTAuMTAwNTEsLTAuMDY2OSAtMi4xMTA4MSwtMC41MzQgLTIuMTEwODEsLTAuNTM0bC0xLjk0MzE1LC0xLjI0MDg2bC0xLjE3MjQsLTEuMjYyOWwtMC44OTksLTEuMTI3MDlsLTAuMjA3MDYsLTEuMzY1ODV2LTAuOTc4ODdsMC43NzA3NSwtMC4zNjcxNWwxLjAwNTE1LDAuNDY3M2wwLjMzNDkxLDEuMDM0OTVsMC41MzYxNCwxLjE4ODE4bDEuMjM5OTUsMC45ODE2N2wyLjIxMTEyLDEuMjAxNGwxLjY3NTE4LC0wLjMwMDQ1bDEuMjA2MTgsLTAuNjAwNWwxLjEwNTY2LC0xLjI4MjEzeiIgaWQ9IlNoYXBlIiBmaWxsPSIjYWZkN2YyIi8+PHBhdGggZD0iTTI0NC4xNDEzMiwxODYuODM0NjVjLTAuMDI4NTUsLTAuMDY5OTEgLTAuMDMyNzcsLTAuMTgxMjcgLTAuMDIwOTEsLTAuMjU2NzljMC4wMjY5NCwtMC4xNzIyNiAwLjI1ODcyLC0wLjE5NDA5IDAuNDAyODYsLTAuMTU3ODRjMC4yMDMyNCwwLjA1MTI4IDAuMzYzNDYsMC4yMDIzIDAuNDYwNzYsMC4zODI5OGMwLjA0OTA1LDAuMDkxNTQgMC4wNjM3MywwLjE4NjY4IDAuMDk5MTEsMC4yODE4MmMwLjAzMTE2LDAuMDg0MTMgMC4wOTQ2OCwwLjE1NzQ0IDAuMTQwMzIsMC4yMzU3NWMwLjM2Mzg2LDAuNjI2MzQgMC44NjgwNCwxLjAwMjMxIDEuNDIyNDgsMS40NDM3N2MwLjQwOTcsMC4zMjYwOSAxLjAyMDAyLDAuNjgzODMgMS41Mjc4MiwwLjgyMTgzYzAuNDM5MDUsMC4xMTkzOCAxLjAzMDQ4LDAuMTA4MzYgMS40Nzk3OCwwLjAzNDA1YzAuNjk4OTgsLTAuMTE1MzcgMS4yNDgxOSwtMC40MDA4IDEuNzcwMjYsLTAuODYwMDljMC4xNTAxNywtMC4xMzIyIDAuMjgyNDUsLTAuMjYzMiAwLjQxODM0LC0wLjQwODYxYzAuMTYxMDIsLTAuMTcyNjYgMC40NTE5MSwtMC4zNTY5NCAwLjM0MjM1LC0wLjU5MTQ5Yy0wLjExOTYxLC0wLjI1NTk4IC0wLjMxNDIxLC0wLjQ5MTk0IC0wLjQ1Nzk0LC0wLjczNjMxYy0wLjI4MDAzLC0wLjQ3NjkyIC0wLjUxNTI0LC0wLjk4NDg4IC0wLjU4MjE4LC0xLjUzODkxYy0wLjE0MTUyLC0xLjE3MTk2IDAuMjYyMzQsLTIuMTUwMjMgMS4wNzU1MSwtMi45NDQ4MmMwLjQ0NjA4LC0wLjQzNTg1IDEuMDc2OTEsLTAuNDYzNSAxLjY2NjMzLC0wLjMwODg2YzAuNTE4ODYsMC4xMzY0IDAuNjg5OTMsMC40NzE1MSAwLjYzNjg2LDEuMDEzMzJjLTAuMDg4ODUsMC45MTQzNyAtMC4xODA5MywxLjgyODk1IC0wLjI0Nzg3LDIuNzQ1MTJjLTAuMDM0OTgsMC40Nzk1MiAwLjM1ODIzLDAuOTg1NjggMC44MjEsMS4xMjUyOWMwLjQyMzc3LDAuMTI3NzkgMC45OTg1MSwtMC4xNjMwNCAxLjMxNDEzLC0wLjYzMDc1YzAuMjM2MDEsLTAuMzQ5NTMgMC40ODYyOSwtMC42OTM4NCAwLjc2NjczLC0xLjAwODExYzAuMzI5ODksLTAuMzcwMzYgMS4xMDI0NCwtMC4yNzU2MSAxLjQ2NDEsMC4xNzE0NmMwLjM3ODU0LDAuNDY3NyAwLjYwNjEsMC45ODM4OCAwLjUwMjU3LDEuNjE1NDNjLTAuMTU5ODIsMC45NzcyNyAtMC41MjQyOCwxLjg1Mjk4IC0xLjE4NzQ4LDIuNTk5NWMtMC43NTU4NywwLjg1MTI4IC0yLjU3NTE4LDEuMDc0ODEgLTMuNTAzOTQsMC40MjgyNGMtMC4wMjQ3MywtMC4wMTcyMyAtMC4xODc3NiwtMC4xNzE0NiAtMC4xOTk4MiwtMC4xNzIwNmMtMC4wOTY0OSwtMC4wMDU0MSAtMC4xOTk2MiwwLjIzNjk2IC0wLjI2MDEzLDAuMzExNjdjLTAuNjY3MjIsMC44MjY2NCAtMS44ODMwNCwxLjI4NzMzIC0yLjgyNzY4LDEuNjk5NzVjLTAuNzMxMTQsMC4zMTkwOCAtMS41MDMzLDAuMzAxMjUgLTIuMjg3MTEsMC4yMzY1NmMtMC40NTgzNSwtMC4wMzc4NiAtMC45MDUyMywtMC4xNTcwNCAtMS4zMzUwNCwtMC4zMTYyOGMtMC4yMDI4NCwtMC4wNzUxMSAtMC40MTIzMSwtMC4xNDUyMiAtMC42MTEzMywtMC4yMTg3M2MtMC4yMDcyNiwtMC4wNzY1MSAtMC4zNzc1MywtMC4yMjkzNCAtMC41ODUyLC0wLjMwODI2Yy0wLjI2NzM3LC0wLjEwMTM1IC0wLjUyMDQ2LC0wLjI1MjE4IC0wLjc2ODEzLC0wLjM5NjRjLTAuMzIxMjQsLTAuMTg2ODggLTAuNjQyMDksLTAuNDAxNiAtMC45MzMxOCwtMC42Mjk3NWMtMC4xNDI5MywtMC4xMTE5NyAtMC4yNTY5MiwtMC4yNjQ2IC0wLjQwMzQ3LC0wLjM2Mjc0Yy0wLjE3NTEsLTAuMTE3MTggLTAuMjkwODksLTAuMjk1MDQgLTAuNDU0NzMsLTAuNDI1NjRjLTAuMTEwNTcsLTAuMDg3OTMgLTAuMjIwMTMsLTAuMTY0NjUgLTAuMzIwODQsLTAuMjY4MmMtMC4xMDQ5NCwtMC4xMDc1NiAtMC4xOTkwMiwtMC4yMzQ3NSAtMC4yOTQxMSwtMC4zNTA3M2MtMC4yMTE4OCwtMC4yNTg1OSAtMC4zMjM4NiwtMC41MzQ2IC0wLjQ0ODA5LC0wLjg0MTQ2Yy0wLjA0OTY1LC0wLjEyMjE4IC0wLjAzNDk4LC0wLjI5NjY1IC0wLjAyMDUsLTAuNDI3NDRjMC4wMTM0NywtMC4xMjI3OCAwLjAwOTA1LC0wLjI1MTM4IDAuMTQyMTMsLTAuMjY3MmMwLjA4OTQ2LC0wLjAxMDQyIDAuMjE2OTEsMC4wMDE2IDAuMjkxNjksMC4wNTI4OGMwLjE3OTkyLDAuMTIzMTkgMC4yMTUzLDAuMzgzNzggMC4zMTY4MiwwLjU2MDA0YzAuMTQzOTQsMC4yNTAzOCAwLjMxMTgsMC40ODU1MyAwLjQ2NTM4LDAuNzMwMWMwLjEyNjI1LDAuMjAxMSAwLjI4Mjg1LDAuMzg2MTggMC40MTk1NSwwLjU3Mjg2YzAuMTcxMjgsLTAuMTk0NDkgMC4zMzc5MywtMC4zMzU5IDAuNDMzNDIsLTAuNTgwODdjMC4wNjY3NCwtMC4xNzE2NiAwLjI3MjYsLTAuNDA0MDEgMC4yNTk5MywtMC41OTMwOWMtMC4wMTIyNiwtMC4xODA4NyAtMC4yNjE5NCwtMC40Njg1IC0wLjM1MzQxLC0wLjYyNjk0Yy0wLjExNDU5LC0wLjE5ODUgLTAuMjMwMTgsLTAuMzk2NiAtMC4zNDc3OCwtMC41OTMyOWMtMC4wNTE2NiwtMC4wODY1MyAtMC4xNTExNywtMC4xNDYyMiAtMC4xODkzNywtMC4yNDA3NnpNMjUyLjM4ODk0LDE4Ni45NDI4MWMwLjIxMTQ4LDAuMjQ5MTcgMC40MjM3NywwLjQ5MDc0IDAuNjM4NDcsMC43Mzk1MWMwLjM4NTk4LDAuNDQ3MjcgMC43MzUzNiwwLjg4MDEyIDEuMTczNjEsMS4yNzk3MmMwLjAyMjMxLDAuMDIwMjMgMC4wNDQyMywwLjA0MTQ2IDAuMDY1NzQsMC4wNjI4OWMwLjIxMzQ5LDAuMjEzNTIgMC4zOTY2MywwLjQ3NjMyIDAuNjY4NDIsMC42MTUzMmMwLjgwMjUxLDAuNDEwNjIgMi4wMDk2OSwwLjE5MDQ5IDIuNTgzMjMsLTAuNTA2MTZjMC4yODE2NCwtMC4zNDIxMSAwLjUyOTkxLC0wLjc0MjUyIDAuNjczMjUsLTEuMTU3NzRjMC4xNjk4NywtMC40OTE5NCAwLjI5MDA5LC0xLjAyNTM0IC0wLjAxNTI4LC0xLjUzOTkxYy0wLjE4MDEyLC0wLjMwMzY2IC0wLjM4OTgsLTAuMzI4ODkgLTAuNjE1NzUsLTAuMDg3OTNjLTAuMjMyOTksMC4yNDgxNyAtMC40Mzg4NSwwLjUyMjU4IC0wLjY0NzMxLDAuNzkyNTljLTAuNTQyNTgsMC43MDI0NiAtMS4zNjg4MSwxLjA1NDM4IC0yLjEzMzMyLDAuNzg0MzhjLTAuNTg4NDEsLTAuMjA3OTEgLTEuMDkzOCwtMC41NDc2MiAtMS4yMTQyMiwtMS4yNzk1MmMtMC4xNzI4OSwtMS4wNTM1OCAtMC4wMjc1NCwtMi4wNzQ1MiAwLjE3MTI4LC0zLjA5OTQ2YzAuMDg0ODMsLTAuNDM2NDYgLTAuMDYyNzIsLTAuNjAzOTEgLTAuNDk1NTQsLTAuNTIyNThjLTAuMTcwMDcsMC4wMzIwNSAtMC4zNDU1NywwLjA5ODM1IC0wLjQ5MDExLDAuMTkyMjljLTAuODQ2MTMsMC41NTA0MyAtMS4wNjE2NCwxLjg0NTU3IC0wLjgzMzY3LDIuNzUwNTNjMC4wOTYyOSwwLjM4MTc3IDAuMjEyNjksMC42NzA2MSAwLjQ3MTIxLDAuOTc2MDd6TTI1MS41NjAxLDE4OS40OTcyNWMtMC4wMDY4MywwLjA4NzczIDAuMTA1OTQsMC4xMzQgMC4xNDQ1NCwwLjE5NDg5YzAuMDUxMjYsMC4wODAzMiAwLjA3OCwwLjE4NjQ4IDAuMTEyMTcsMC4yNzUyMWMwLjA2ODU1LDAuMTc4ODcgMC4xMjYyNSwwLjM2MjU0IDAuMTk3NDEsMC41NDA0MWMwLjAyNDMyLDAuMDYwNjkgMC4wMzQ1OCwwLjEwMDc1IDAuMDUyNDcsMC4xMjE1OGMwLjAyMDcxLDAuMDI0MjQgMC4wNTE2NiwwLjAyMjQzIDAuMTI3NjUsLTAuMDAyOGMwLjEyMDQyLC0wLjA0MDI2IDAuMzA1MTYsLTAuMTgxODcgMC40MTQ5MiwtMC4yNTQ3OGMwLjI1ODEyLC0wLjE3MjI2IDAuNjEzOTQsLTAuMzQ1MTIgMC44MTg3OSwtMC41NzU4N2MwLjI1MTY5LC0wLjI4MzYzIC0wLjAzNzM5LC0wLjY5MzA0IC0wLjI0NzI3LC0wLjkwOTc3Yy0wLjA4NDQzLC0wLjA4NzEzIC0wLjM1OTY0LC0wLjM5MTc5IC0wLjQ4MzY4LC0wLjM3MzM2Yy0wLjA3Njc5LDAuMDExNDIgLTAuMjA3MjYsMC4yMTIzMiAtMC4yNTQ5MSwwLjI2OGMtMC4xNjk4NywwLjE5ODMgLTAuNDAwMDUsMC4zMzIxIC0wLjYyMDU4LDAuNDg0MTNjLTAuMDU2MjksMC4wMzg2NiAtMC4yNTYxMSwwLjE2MTY0IC0wLjI2MTU0LDAuMjMyMzV6TTI0OC42MDEzNSwxOTEuNjM5NDdjMC4yNDk2OCwwLjE1NzI0IDAuNzUyMjUsMC4wOTk5NSAxLjAzMjg5LDAuMDg0NTNjMC4zNDM3NiwtMC4wMTkwMyAwLjY4NjUxLC0wLjA3MTExIDEuMDIxMDMsLTAuMTUxODNjMC4xODA3MywtMC4wNDM2NyAwLjMyMTg1LC0wLjA4NjEzIDAuNDg0NDgsLTAuMTkxMDljMC4wNzM3OCwtMC4wNDc0NyAwLjE4NDM0LC0wLjA5MjE0IDAuMjM4ODIsLTAuMTY0MDVjMC4wNjAxMSwtMC4wNzk1MiAwLjAzNjU5LC0wLjAxNDgyIDAuMDQyMjIsLTAuMTI3MTljMC4wMDE2MSwtMC4wMzQyNSAwLjAwMDgsLTAuMDcxMzEgLTAuMDAzMDIsLTAuMTEwMTdjLTAuMDI4MzUsLTAuMjk5MjUgLTAuMjA5NjcsLTAuNzE3NDggLTAuNDM2MjMsLTAuODY4NWMtMC4yNjY1NiwtMC4xNzgwNyAtMC42NjIzOSwwLjA2NzMgLTAuOTQ0NDQsMC4wOTIzNGMtMC4yMTM5LDAuMDE4ODMgLTAuNDI1NzgsMC4wNjM5IC0wLjY0MDI4LDAuMDc2MzFjLTAuMjE2NzEsMC4wMTI2MiAtMC40MzI0MSwwLjAxNDIyIC0wLjY0OTEyLDAuMDIyMDNjLTAuMDUwMjYsMC4wMDE2IC0wLjE5MTU4LDAuNjM4NzYgLTAuMjA3MDYsMC42OTc2NWMtMC4wNTUwOCwwLjIwNjcxIC0wLjE2MjgzLDAuNDk4OTUgMC4wNjA3MSwwLjYzOTk2ek0yNDUuMTU2MTEsMTkwLjA2ODExYzAuMTAxMTIsMC4yNjU2IDAuNTc3NzYsMC40NTI0OCAwLjgwNjkzLDAuNTc4MjdjMC4zMDU5NywwLjE2ODA1IDAuNjE5MzcsMC4zMTgwOCAwLjkzOTYxLDAuNDU2ODljMC4yMzgyMiwwLjEwMzM2IDAuNDc1MjMsMC4yNjY0IDAuNzQwOTksMC4yODMwM2MwLjA0MTYxLDAuMDAyNCAwLjA4NDIzLDAuMDAxNCAwLjEyNzQ1LC0wLjAwNDAxYzAuMTU5ODIsLTAuMzk0MTkgMC4zMDkxOCwtMC44NDQyNyAwLjMzNDcxLC0xLjI2MzljLTAuNTAyNTcsLTAuMDIxNjMgLTEuMDUwMTgsLTAuMzMzOSAtMS40NjcxMSwtMC41OTQwOWMtMC4yOTgzMywtMC4xODYwOCAtMC42MTczNiwtMC4zNTI5MyAtMC45MTUwOSwtMC41MzM2Yy0wLjEyNjg1LDAuMTc4MDcgLTAuMjM2NjEsMC4zODQxOCAtMC4zNDk5OSwwLjU3MzQ2Yy0wLjA2MzEyLDAuMTA1NTYgLTAuMjY4NzgsMC4zNjc3NSAtMC4yMTc1MSwwLjUwMzk2eiIgaWQ9IlNoYXBlIiBmaWxsPSIjMzA0MTlhIi8+PC9nPjxnIGRhdGEtcGFwZXItZGF0YT0ieyZxdW90O29yaWdQb3MmcXVvdDs6bnVsbH0iIGlkPSJHcm91cCI+PHBhdGggZD0iTTIyNS42MDk0NCwxODMuNDA2MWwwLjUzNTk0LDAuNDMzODVsMC41MzYxNCwxLjAwMTVsLTAuMTY3NDYsMS41NDQxMmwtMC40NjksMS4xNDY1MmwtMS40NDA3OCwxLjM0ODgzbC0wLjk4ODQ2LDAuODAxMmwtMS4yNzMxMiwtMC4yMDAzbC0xLjI5LC0wLjQzNDA1bC0wLjcwMzYsLTAuODM0NjVsLTAuMDY2OTQsLTAuNjgxMjJsLTAuMjAxMDMsLTAuOTU0NjNsMC40MDIwNiwtMC42NDgxN2MwLDAgMC4zNjg0OSwtMC4zMTk4OCAwLjYwMzA5LC0wLjM1MzMzYzAuMjM0NiwtMC4wMzM0NSAwLjUwMjU3LDAuMzUzMzMgMC41MDI1NywwLjM1MzMzbDAuOTA0NjMsMC42MTQ5MmwxLjEyMjM1LDAuNTM0MmgwLjU1MjgzbDAuNDM1NjMsLTAuNDY3M3YtMS4wNjgydi0xLjMwMTk2di0wLjgzNDY1YzAuNjAzMDksLTAuNDAwNiAxLjAwNTE1LDAgMS4wMDUxNSwweiIgaWQ9IlNoYXBlIiBmaWxsPSIjZWY0NjNjIi8+PHBhdGggZD0iTTIyNS42NDMwMSwxODguMTYwMDRsMC4zNjg0OSwwLjQwMjRsMS45MDk3OCwwLjkxOTc4aDEuNjI0NTJsMS4zOTA1MiwtMC40MzQwNWwxLjEzOTIzLC0wLjY2NzZsMC43MzcxNywtMC44NDg0N2wwLjYwMjg5LC0wLjY5NjI1bDAuMzM1MTIsLTAuNzI1MjlsMC40MzU2MywtMC43MzQ1YzAsMCAwLjIwMTAzLC0wLjYwMDkgMC4yMzQ2LC0wLjc2Nzc1YzAuMDMzNTcsLTAuMTY2ODUgMC42MDMwOSwwIDAuNjAzMDksMGwxLjAzODcyLDAuMjY3bDAuMjA1MDUsMC44NTgwOWwtMC43MDc0MiwxLjEwMjQ2bC0wLjcyMTI5LDIuNDEyNjJsLTAuOTU0MDgsMC43MzQxbC0xLjgwOTA2LDEuMTM1NTFsLTIuMDEwMjksMC42Njc2bC0yLjc1MTA4LC0wLjEzMzRsLTEuNzA1MzMsLTAuNzAxMDVsLTEuMTcyNiwtMS4yNjkxMXoiIGlkPSJTaGFwZSIgZmlsbD0iI2FmZDdmMiIvPjxwYXRoIGQ9Ik0yMzQuNDcwMiwxODkuMTc0NzZjMC4wNjg3NSwtMC4wMjk0NCAwLjE3NDksLTAuMDY5MyAwLjI1NDMsLTAuMDUyMDhjMC4xNTcsMC4wMzQwNSAwLjExNzgsMC4zNjExNCAwLjA3OTYxLDAuNDc1MzFjLTAuMDg5ODYsMC4yNjggLTAuMzAwNTQsMC41MTE5NyAtMC41NDYsMC42NTA1OGMtMC4xMjE2MiwwLjA2ODkgLTAuMjYwOTQsMC4xMTk3OCAtMC4zNzUxMiwwLjE5OTljLTAuMDk1NDksMC4wNjczIC0wLjE4MTEzLDAuMTUwNDMgLTAuMjc5ODMsMC4yMTY3M2MtMC4zMDQxNiwwLjIwNDMxIC0wLjYwNjcxLDAuNDEzNjIgLTAuOTMyNTcsMC41ODMwOGMtMC40NDA2NiwwLjIyODc0IC0wLjkwNTY0LDAuNDI4MDQgLTEuMzgxMjcsMC41NjkyNmMtMC44MTcxOCwwLjI0Mjc2IC0xLjY1NzA4LDAuNDQzNDcgLTIuNTE1ODgsMC4zNjU5NWMtMC43NDA5OSwtMC4wNjY5IC0xLjQ0MTk4LC0wLjA2ODUgLTIuMTQ3MTksLTAuMzQzMzJjLTAuNjc2NjYsLTAuMjYzNiAtMS4zMDQwOCwtMC42NzE0MSAtMS44MTc3MSwtMS4xODM1OGMtMC4xNjY2NSwtMC4xNjYyNSAtMC4zMTkyMywtMC4zNDc5MiAtMC40NDU0OCwtMC41NDY2MmMtMC4xNDQzNCwtMC4yMjY5NCAtMC4xODQ5NSwtMC4yMzM1NSAtMC40MzI4MiwtMC4xMTkzOGMtMC42MjkwMiwwLjI4OTY0IC0xLjQ0MTk4LDAuMTc1NDYgLTIuMDYyMzYsLTAuMDgyMTJjLTAuNzI5NTQsLTAuMzAzMDYgLTEuMzI0MzgsLTAuODgxOTIgLTEuNzA4NzUsLTEuNTYzOTVjLTAuNTAxMzcsLTAuODg5NzQgLTAuNDk4NzUsLTEuODY3ODEgMC4wNDk4NiwtMi43ODI1OGMwLjIzNTgxLC0wLjM5Mjc5IDEuMDQwNTMsLTAuNDg4NTMgMS40OTg4NywtMC4xNTUyM2MwLjI5NDUxLDAuMjE0MTIgMC41NjkzMSwwLjQ3MjExIDAuNzk4MjksMC43NTQ1M2MwLjMwMTM0LDAuMzcxNzYgMC42OTE5NCwwLjUzNjIxIDEuMTM2MjIsMC41Njc0NWMwLjYxNDM1LDAuMDQzMDYgMC44NTMzNywtMC4zNzI1NiAwLjczNTc3LC0xLjEzNjkxYy0wLjA5NjcsLTAuNjI4NzQgLTAuMTgxMTMsLTEuMjYyOSAtMC4yMDkyNywtMS44OTcyNWMtMC4wMjU5MywtMC41ODU4OCAwLjQ5ODM1LC0wLjg4MzEzIDEuMDc3NzIsLTAuODIzMDRjMC44ODczNCwwLjA5MTk0IDEuMjU5ODUsMC43MTM4NyAxLjU1NTE2LDEuMzgyODhjMC4xNjkyNywwLjM4MzE4IDAuMjE4NzIsMC44NTM2OCAwLjE5NDYsMS4yNzc3MmMtMC4wMzA3NiwwLjU0MDIxIC0wLjE1MDM3LDEuMDg1MjMgLTAuMzA5OTksMS42MDQyMWMtMC4wOTEwNywwLjI5NjQ1IC0wLjMzODEzLDAuNTQ1MjIgLTAuNTQxNTcsMC44NTU4OWMwLjQ4NTY5LDAuNTg3ODggMS4wNzIwOSwxLjA1NzE5IDEuODc0NiwxLjE2NzE1YzAuODA0NzIsMC4xMTAxNyAxLjQ4OTIyLC0wLjA2OTEgMi4yNTM1NCwtMC4yMzU1NWMwLjIwNDI1LC0wLjA0NDQ3IDAuMzk3NjQsLTAuMTQ1ODIgMC41ODQ1OSwtMC4yMzQ3NWMwLjQ3NzY1LC0wLjIyNzE0IDAuOTM4ODEsLTAuNTA0NTYgMS4zMzYwNCwtMC44NTU4OWMwLjIzNzQyLC0wLjIwOTcxIDAuNDU0OTMsLTAuNDMwMDUgMC42NDgzMiwtMC42Nzk2MmMwLjI1OTMzLC0wLjMzNDUgMC41NDAzNywtMC42MTkzMyAwLjY4NDUsLTEuMDIxMTNjMC4wNTgxLC0wLjE2MjQ0IDAuMDY3NzUsLTAuMzQ3OTIgMC4yNzMsLTAuMzgxOTdjMC4xMDg3NiwtMC4wMTgwMyAwLjI1NjUxLDAuMDA1NjEgMC4zMTU4MiwwLjEwNjU2YzAuMDYxMzEsMC4xMDQzNiAwLjA1MjI3LDAuMzIyNDggMC4wMTYwOCwwLjQzMzA1Yy0wLjAyMjkyLDAuMDcwMTEgLTAuMDc1OTksMC4xMDQ1NiAtMC4xMTE3NywwLjE2NjQ1Yy0wLjA0OTQ1LDAuMDg1OTMgLTAuMDc1MTgsMC4xODI2NyAtMC4xMzAwNywwLjI2NzRjLTAuMDg0NDMsMC4xMyAtMC4xNDgzNiwwLjI3NDAxIC0wLjIzMzgsMC40MDQ0MWMtMC4xNjcyNiwwLjI1NTE4IC0wLjM2MTA1LDAuNDkxNTQgLTAuNTU3NDUsMC43MjQ4OWMtMC4xNjU2NSwwLjE5NjcgLTAuMjM3MjEsMC4yNzAyMSAtMC4wNjQ1MywwLjQ5MzM0YzAuMTY3MDYsMC4yMTU5MiAwLjM1MjIsMC4zOTg0IDAuNTQ3MiwwLjU4NjQ4YzAuMTQ1NzUsMC4xNDA2MSAwLjI3ODYzLDAuMzA5NDYgMC40NTk1NSwwLjQwNzYxYzAuMDkxMjcsMC4wNDk0NyAwLjE0OTE2LDAuMDQ1MDcgMC4xOTc2MSwwLjAxNzIzYzAuMDcyNTcsLTAuMDQxNjYgMC4xMjM2MywtMC4xMzYyIDAuMjMyMTksLTAuMTgzMDh6TTIyNC45NjM3MywxODguMTIxMzhjMC4wNDQwMywtMC4wNDkyNyAwLjA4NjQ0LC0wLjA5Nzk1IDAuMTI2ODUsLTAuMTQ1ODJjMC4xOTQ4LC0wLjIzMDU1IDAuNDIxMzYsLTAuNDM0MDUgMC42MDQwOSwtMC42NzUwMWMwLjE4MTczLC0wLjIzOTU2IDAuMjU5MzMsLTAuNDk0NTQgMC4zNTI2MSwtMC43NzI5NmMwLjIzMTU5LC0wLjY5MTQ0IDAuMTE3OCwtMS4zNzk4NyAtMC4wNDUyMywtMi4wNzMzMWMtMC4wNjI5MiwtMC4yNjgyIC0wLjM2Njg4LC0wLjQ5NzE1IC0wLjU5OTQ3LC0wLjY5OTg1Yy0wLjA4MzAzLC0wLjA3MjUxIC0wLjI4NjQ3LC0wLjAzNzg2IC0wLjQyMDk2LC0wLjAwMTRjLTAuMDM0NTgsMC4wMDk0MSAtMC4wMzg0LDAuMjE0NzIgLTAuMDE5MywwLjMyMzY5YzAuMDc3NiwwLjQ0MDg2IDAuMTcyODksMC44Nzg5MiAwLjI1NTUxLDEuMzE5MThjMC4xNTM3OSwwLjgxOTgzIC0wLjI5ODUzLDEuODMyNTUgLTAuOTE0ODgsMi4wNTcyOWMtMC41NTAyMiwwLjIwMDcgLTEuMjQxMTUsMC4wMjgwNCAtMS43NTAzNiwtMC4yMTIzMmMtMC4yNTcxMiwtMC4xMjEzOCAtMC40OTczNSwtMC4yODUwMyAtMC42OTE1NCwtMC40OTIzNGMtMC4yMDkyNywtMC4yMjM1NCAtMC4yODI2NSwtMC41NzU0NiAtMC41NDQzOSwtMC43NTA5M2MtMC4yNDEyNCwtMC4xNjE4NCAtMC40ODk1MSwtMC4xNDE0MSAtMC42NDY3MSwwLjExMjE3Yy0wLjI3NTIxLDAuNDQzNjcgLTAuMTI5ODYsMS4wNjA3OSAwLjAzMzM3LDEuNTIzMjljMC4xMzkxMSwwLjM5Mzk5IDAuNDk1MTMsMC43OTA1OSAwLjgyNDQyLDEuMDM3NTZjMC4yNDg2NywwLjE4NjQ4IDAuNTM5MTYsMC4zMjA0OCAwLjgxODk5LDAuNDYxODljMC45ODQ4NCwwLjQ5NzU1IDEuOTg1OTcsLTAuMzA2ODYgMi42MTcsLTEuMDExMTJ6TTIyNy4zODY5NCwxODkuODA3MTFjLTAuMDI5OTUsLTAuMDQyNjYgLTAuMjQwODMsLTAuMDk5NTUgLTAuMjk4OTMsLTAuMTMzNmMtMC4yMjE5NCwtMC4xMzA0IC0wLjQyMjk3LC0wLjI5OTA1IC0wLjYzNjY2LC0wLjQ0MTA2Yy0wLjE1NjYsLTAuMTAzOTYgLTAuMzI3NjgsLTAuMTgzNjggLTAuNDg0NjgsLTAuMjg3MDNjLTAuMTExNzcsLTAuMDczNzEgLTAuMjQ0MjUsLTAuMjgyNDIgLTAuNDAwNjUsLTAuMjUzMzhjLTAuMjA1NjUsMC4wMzgyNiAtMC40NDg3LDAuNCAtMC42MTQ5NSwwLjUzYy0wLjE3ODExLDAuMTM5MjEgLTAuMTgyNzQsMC4yODM4MyAtMC4xMTQ5OSwwLjQyMzg0YzAuMDgxODIsMC4xNjg2NSAwLjI2ODc4LDAuMzMwMSAwLjM4NTE3LDAuNDY2M2MwLjEwNjU1LDAuMTI0NTkgMC4yNTQxLDAuMjMzNzUgMC4zODc5OSwwLjMyODg5YzAuMjI0MTUsMC4xNTkyNCAwLjQ0MDg2LDAuMzQzMTIgMC42OTU1NiwwLjQ1MzA4YzAuMTg2MTUsMC4wODAzMiAwLjUzMTcyLDAuMjU4MzkgMC43MDE5OSwwLjA5MTk0YzAuMTk3MDEsLTAuMTkyNjkgMC4yNDg2NywtMC42MjI3NCAwLjMyNjQ3LC0wLjg3NDMxYzAuMDIxOTEsLTAuMDcwNzEgMC4xMDc5NSwtMC4yMjY3NCAwLjA1MzY3LC0wLjMwNDY2ek0yMzAuODA2MjQsMTkxLjEzMDljLTAuMTExMTcsLTAuMjA1NTEgLTAuMjA1NDUsLTAuNDU2ODkgLTAuMzA0OTYsLTAuNjc3NDJjLTAuMTE0MzksLTAuMjUzNTggLTAuMjY3NTcsLTAuNTMxOCAtMC4zMzc1MywtMC44MDM2MWMtMC4yNDkwOCwwLjAzODI2IC0wLjQ5NDczLDAuMDk5MzUgLTAuNzM4MzgsMC4xNDU0MmMtMC40NDMwNywwLjA4MzkzIC0wLjkwNDAzLDAuMDU4MDkgLTEuMzUwMzEsMC4wMjIyM2MtMC4wMDg0NCwwLjM5NjIgLTAuMTY5ODcsMC43NTMxMyAtMC4yMzY2MSwxLjEzNzUxYy0wLjAxMTQ2LDAuMDY1NyAtMC4wNTI0NywwLjE3OTY3IC0wLjA3Mzc4LDAuMjc1MjFjLTAuMDEwNjUsMC4wNDc2NyAtMC4wMTY0OCwwLjA5MDU0IC0wLjAxMTQ2LDAuMTIwMzhjMC4wNjQ5MywwLjM4Njk4IDEuMzIyNzcsMC4yMDQxMSAxLjU5MzM2LDAuMjAxN2MwLjQ2NDc4LC0wLjAwNDIxIDEuMTM0NjEsLTAuMDEwODIgMS40NTk2NywtMC40MjE0M3pNMjMzLjM2NTM1LDE4OS45ODcxOWMwLjAyNzE0LC0wLjE2NDQ1IC0wLjMyMDg0LC0wLjM3NDk2IC0wLjQwNjI4LC0wLjUwNDc2Yy0wLjA5MzA4LC0wLjE0MTYxIC0wLjE3NzcxLC0wLjI2MjM5IC0wLjI5NzMyLC0wLjM4ODU4Yy0wLjExOTIxLC0wLjEyNTc5IC0wLjE4NjE1LC0wLjMxOTQ4IC0wLjMxOTAzLC0wLjQyMzg0Yy0wLjMzNzczLDAuMTgxNDcgLTAuNjM5NDcsMC40MTUyMiAtMC45ODI4MywwLjU5MDg5Yy0wLjE3NTUsMC4wODk3MyAtMC40MDc4OSwwLjI5ODA1IC0wLjYwNTMsMC4yNzMwMWMtMC4wMjQ5MywtMC4wMDMyIDAuMDI2MzMsMC4xMDIxNSAwLjA5MDY2LDAuMjE5MzNjMC4wNzQ3OCwwLjEzNjQgMC4xNjcwNiwwLjI4OTQzIDAuMTc2OTEsMC4zMDY2NmMwLjI2MjM0LDAuNDY0NyAwLjQ5MjUyLDEuMDM3NzYgMS4xMTY3MiwwLjc1MzczYzAuMjA2NDYsLTAuMDkzOTQgMC4zODc5OSwtMC4yMjg3NCAwLjU4MDU3LC0wLjM1MDUzYzAuMTQzNTMsLTAuMDkwNzQgMC42MTUxNSwtMC4yODcyMyAwLjY0NTkxLC0wLjQ3NTkxeiIgaWQ9IlNoYXBlIiBmaWxsPSIjMzA0MTlhIi8+PC9nPjxnIGRhdGEtcGFwZXItZGF0YT0ieyZxdW90O29yaWdQb3MmcXVvdDs6bnVsbH0iIGlkPSJHcm91cCI+PHBhdGggZD0iTTI0MS4yNTYxNSwyMDIuNTAxMzhsLTEuOTQ4NzgsMC40NjczaC0yLjg3NTkybC0xLjEwNTY2LC0wLjUzNDJsMS43NDIzMiwtNC4zMDY0N2gzLjI4MzQxeiIgaWQ9IlNoYXBlIiBmaWxsPSIjZWY0NjNjIi8+PHBhdGggZD0iTTIzNi42OTMxOCwxODQuMjA3M2gxLjc0ODU1aDEuNzM4OWwxLjM0MzQ4LDAuNTAwNzVsMC45NzE1NywxLjIyMDgzYzAsMCAwLjMwMTU0LDEuMDQ5MTggMC4xOTMzOSwxLjIxNjIzYy0wLjEwODE1LDAuMTY3MDUgMC4zNTgwMywyLjIzNjc2IDAuMzU4MDMsMi4yMzY3NnYzLjYzODg3bC0wLjcxODg4LDMuMTM4MTFsLTEuNjczMzcsMS40MzUzNmMwLDAgLTEuNzc3NywwLjUzNDIgLTEuOTc4NTMsMC41MzM2Yy0wLjIwMDgzLC0wLjAwMDYgLTEuNDQwNzgsLTAuMTMzIC0xLjQ0MDc4LC0wLjEzM2wtMS4zNDAyNiwtMC44Njc5bC0xLjM3MzYzLC0xLjgzNjE2bC0wLjI2Nzk3LC0xLjI2ODUxdi0xLjgyMjM0bDAuNDAyMDYsLTIuMzEzMjdsMC45MDQ2MywtMy41MDEwNnoiIGlkPSJTaGFwZSIgZmlsbD0iI2FmZDdmMiIvPjxwYXRoIGQ9Ik0yMzkuNzM4OTgsMTg4LjU2MjQ0bDAuNDQxNjYsMC43ODYxOHYxLjE2ODU2bC0wLjQ0MTY2LDEuMjY4NTFsLTAuODQ1MTMsMC40MTQ0MmwtMS4wMjAyMiwtMC40MTQ0MmwtMC44MDU1MiwtMS40MDIxMXYtMS4xMzUxMWwwLjc3MDU0LC0wLjY4NjAzbDAuODQwNSwtMC40MDI2eiIgaWQ9IlNoYXBlIiBmaWxsPSIjZjdlYzFlIi8+PHBhdGggZD0iTTIzNi42OTY2LDE5MC4yMDQ1MWMwLjA0OTI1LC0wLjc4NjM4IDAuMjM3NjIsLTEuNTMyMyAwLjg3MTA2LC0yLjA5Mjc0YzAuNDIwNzUsLTAuMzcyMzYgMC43NTE0NSwtMC4zNzA5NiAxLjMwOTcxLC0wLjIwNzUxYzAuNDI4NTksMC4xMjU1OSAwLjgxNDM3LDAuMjI1OTQgMS4xMTcxMiwwLjU4NjY4YzAuNDY3MzksMC41NTcwNCAwLjU3MjczLDEuMjE2MjMgMC42NjAxOCwxLjk1MzczYy0wLjA1ODEsMC4zNjYzNSAtMC4wOTQ0OCwwLjc5MDc5IC0wLjE5NzQxLDEuMTk4NmMtMC4xMzMwOCwwLjUyODE5IC0xLjA1OTYzLDEuMDc0ODEgLTEuNjQxNiwwLjk2NTI1Yy0xLjExMTI5LC0wLjIwOTUxIC0yLjE5MjgzLC0xLjIyNzA0IC0yLjExOTA1LC0yLjQwNDAxek0yMzcuNTAyNTMsMTkwLjM2Njc2YzAuMDc3NiwwLjE4NzI4IDAuMTU1NCwwLjQ0NjQ3IDAuMjg2MjcsMC42NzU4MmMwLjI1NzUyLDAuNDUxMDggMS4wNTEzOCwwLjczNTkxIDEuNDA1OCwwLjUyOTRjMC41NTY0NSwtMC4zMjQyOSAwLjg0NTczLC0xLjQwNDMxIDAuNTgwMzcsLTEuOTk1MmMtMC4xOTc4MSwtMC40NDA0NiAtMC41NjMwOCwtMC42MzE1NSAtMC45NjAzMiwtMC44MTg0M2MtMC4yNjA3MywtMC4xMjIzOCAtMC40Njg2LC0wLjA1NjY5IC0wLjY3NjA2LDAuMTA4MTZjLTAuNDYwNzYsMC4zNjU5NSAtMC41MjIwNywwLjg5OTk1IC0wLjYzNjA2LDEuNTAwMjV6IiBpZD0iU2hhcGUiIGZpbGw9IiMzMDQxOWEiLz48cGF0aCBkPSJNMjQzLjE5MTY2LDE4Ny43MDk1NmMwLjA0NDAzLDAuMTg0NDggMC4wOTE2NywwLjM2MTU0IDAuMTE3OCwwLjU1MDYzYzAuMDMzNTcsMC4yNDI3NiAwLjA5NTI5LDAuNDg5NTQgMC4xMDA1MSwwLjczNDNjMC4wMDYwMywwLjI3ODYyIDAuMDQwODEsMC41NjEwNCAwLjA1NjY5LDAuODQwNDZjMC4wMTEyNiwwLjIwMTcgMC4wMzc3OSwwLjM4OTU5IDAuMDU3MDksMC41ODk2OWMwLjA0NDgzLDAuNDY1MSAwLjA5MjQ3LDAuOTMxMiAwLjA3NTE4LDEuMzk5MWMtMC4wMjg5NSwwLjc5MTc5IC0wLjE0MDkyLDEuNTc5MTcgLTAuMjk3NTIsMi4zNTUzNGMtMC4xMDM5MywwLjUxNTM3IC0wLjI5NjUyLDEuMDEzMTIgLTAuNDAxMDUsMS41Mjg1Yy0wLjE2NDA0LDAuODExMDIgLTAuNzEzNjUsMS4zMjIxOSAtMS4zMjAxNiwxLjgwMDdjLTAuMTI4NjYsMC4xMDEzNSAtMC4yNTIyOSwwLjIxODMzIC0wLjM5Nzg0LDAuMjg3NDNjLTAuMzkyNjEsMC4xODY4OCAtMC4zODY1OCwwLjUxNjE4IC0wLjMyMzQ2LDAuODU3MDljMC4xOTg2MiwxLjA3MTAxIDAuNDA2NjgsMi4xNDA0MiAwLjYxNTU1LDMuMjA5NjJjMC4xNDc3NiwwLjc1NjM0IDAuMDk4NzEsMC45ODY4OCAtMC40MzcyNCwxLjIyMDQzYy0wLjM0Njc4LDAuMTUxMjMgLTAuNzQ5MjQsMC4xNzI2NiAtMS4xMjQ3NiwwLjI2MTE5Yy0xLjA4Mjc0LDAuMjU0OTggLTIuMTY1MDgsLTAuMDYwODkgLTMuMjUxMjUsLTAuMDA5NjFjLTAuNDUzNTIsMC4wMjE0MyAtMC45MzQ1OCwtMC4xNjU4NSAtMS4zNzQwMywtMC4zMzM5Yy0wLjM2MzY2LC0wLjEzODgxIC0wLjM5ODQ0LC0wLjUxMTk3IC0wLjMwMTk1LC0wLjg0MDQ2YzAuMDg1MjQsLTAuMjkwNjQgMC4yNjI1NCwtMC41NTMyMyAwLjM4NTU3LC0wLjgzNDI1YzAuMjUwNjgsLTAuNTcyNDYgMC40OTg3NSwtMS4xNDY1MiAwLjczNTc3LC0xLjcyNDk5YzAuMTg0OTUsLTAuNDUxNjggMC4zNTE2LC0wLjkxMDc3IDAuNTMzNTMsLTEuMzg0NjhjLTAuOTkwODcsLTAuNjMyNTUgLTEuODAwODIsLTEuNDM3MzYgLTIuMzE3NjcsLTIuNDczOTJjLTAuMjQ3NjcsLTAuNDk2OTUgLTAuMzYxMjUsLTEuMDczMDEgLTAuNDY0MTgsLTEuNjI2NDRjLTAuMTA0NzQsLTAuNTYzODUgLTAuMTI2MjUsLTEuMTM5OTEgLTAuMDkxMDcsLTEuNzExNTdjMC4wMzAzNiwtMC40OTM3NCAwLjExNjYsLTAuOTcyODYgMC4yMzAzOCwtMS40NTUxOWMwLjA2MzkzLC0wLjI3MDYxIDAuMTEwMTYsLTAuNTQ1NDIgMC4xODUxNSwtMC44MTM2MmMwLjA5NjksLTAuMzQ2NTIgMC4xODQxNCwtMC42OTg2NSAwLjMxNDgxLC0xLjAzNTE1YzAuMDc3NiwtMC4xOTk5IDAuMTQ0MzQsLTAuNDA3MjEgMC4yMDk0NywtMC42MTE1MmMwLjA2NDUzLC0wLjIwMTkgMC4xMjA0MiwtMC40MDUwMSAwLjE4ODk3LC0wLjYwNTMxYzAuMDczOTgsLTAuMjE1OTIgMC4xMDE5MiwtMC40NDQ0NyAwLjE3NzcxLC0wLjY1OTc5YzAuMDU5NSwtMC4xNjkwNSAwLjExMjE3LC0wLjMzNzUxIDAuMTYxMDIsLTAuNTA4NzZjMC4wNTAyNiwtMC4xNzYwNiAwLjA0MzgyLC0wLjM3MTM2IDAuMTMxNjcsLTAuNTM2MDFjMC4wODI0MiwtMC4xNTQ0MyAwLjMwMzE1LC0wLjMwMjA1IDAuNDg2NjksLTAuMjMxMTVjMC4xNzU5LDAuMDY3OSAwLjE0MTkzLDAuMzY0NTUgMC4xMjcyNSwwLjUwNzU2Yy0wLjAxMzI3LDAuMTI5NTkgLTAuMDU1MDgsMC4yNDA3NiAtMC4wODY0NCwwLjM2NDM1Yy0wLjA0OTQ1LDAuMTk1MDkgLTAuMDgyNDIsMC4zOTE5OSAtMC4xNTcyLDAuNTgwMDdjLTAuMzU2NjMsMC44OTg1NSAtMC42NjU4MSwxLjgwOTEyIC0wLjgyMTQxLDIuNzY2MTZjLTAuMTE4LDAuNzI1MjkgLTAuMjU1OTEsMS40NDc5OCAtMC4zNTE2LDIuMTc2MDdjLTAuMDM3MTksMC4yODIwMiAwLjA1MDI2LDAuNTQ1MjIgMC4zMTAxOSwwLjc0NzcyYzAuNjM2NjYsMC40OTU1NCAxLjMzOTI2LDAuODcxOTEgMi4xMjE0NiwxLjAzMjU1YzAuNzI5MzMsMC4xNDk2MiAxLjQ4NTgxLDAuMTYzNDUgMi4yMjQzOSwwLjI3NjQyYzAuOTQ3ODUsMC4xNDUwMiAxLjgyNjM1LC0wLjA0OTQ3IDIuNjI3NDUsLTAuNTMxYzAuMjg5NDgsLTAuMTc0MjYgMC43MTMyNSwtMC4yODQwMyAwLjc2MTcsLTAuNzIzNDljMC4wNjk5NiwtMC42MzM5NSAwLjIxMjQ5LC0xLjI3NzkyIDAuMTU5NjIsLTEuOTAzNjZjLTAuMDM1OTgsLTAuNDI0ODQgLTAuMDU0NDgsLTAuODUwNjggLTAuMDgzNDMsLTEuMjc2MTJjLTAuMDQ5MDUsLTAuNzIyNDkgLTAuMDQ0ODMsLTEuNDUyMzggLTAuMTQ2NzUsLTIuMTY4ODZjLTAuMDIwNzEsLTAuMTQ1NjIgLTAuMDU2MDksLTAuMjg4MjMgLTAuMDkxMDcsLTAuNDMwODVjLTAuMDMxMTYsLTAuMTI3MzkgLTAuMDQ0NDMsLTAuMjc1NDEgLTAuMDkzODgsLTAuMzk1NTljLTAuMDgwNjEsLTAuMTk1ODkgLTAuMTEwMzcsLTAuMzcyMTYgLTAuMDgzNjMsLTAuNTg4MDhjMC4wMDc0NCwtMC4wNTk2OSAwLjAzMTc2LC0wLjEzIDAuMDkwMDYsLTAuMTYyODRjMC4wNTI2NywtMC4wMjk2NCAwLjIxMjQ5LC0wLjAzODI2IDAuMjY3MzcsLTAuMDE0ODJjMC4yMDA2MywwLjA4NTczIDAuMjAwMDIsMC4zNzc1NyAwLjI4Mjg1LDAuNTQ0MDJjMC4wNTYwOSwwLjExMjU3IDAuMDYyMTIsMC4yMjU5NCAwLjA5NzEsMC4zNDA3MWMwLjAxMzQ3LDAuMDQzODcgMC4wMzE3NiwwLjA4NTMzIDAuMDUxNjYsMC4xMjYxOWMwLjA3OCwwLjE2MTA0IDAuMDkyMDcsMC4zMjY2OSAwLjEzMjg4LDAuNDk1MzR6TTIzNy41OTcyMSwxOTkuODE0MzVjMC4wNzgyLC0wLjMyMDA4IDAuMTU2MiwtMC42Mzk5NiAwLjIzNDgsLTAuOTYwMjRjMC4wNCwtMC4xNjM0NSAwLjExMDc3LC0wLjI4MDYyIC0wLjEwMTcyLC0wLjMxOTI4Yy0wLjEwNjM0LC0wLjAxOTIzIC0wLjI4NzQ3LDAuMDExNjIgLTAuMzc1NTIsMC4wNzczMmMtMC4xMjE2MiwwLjA5MDc0IC0wLjE2MDgyLDAuMjgzNjMgLTAuMjIzNTQsMC40MTMwMmMtMC4wOTY3LDAuMTk5MyAtMC4yMTQ3LDAuMzg3NTggLTAuMzEwMzksMC41ODc0OGMtMC4xOTE3OCwwLjQwMDggLTAuMzMxMywwLjgyNDA0IC0wLjUyNjcsMS4yMjM2NGMtMC4wODcwNSwwLjE3ODI3IC0wLjE2NDA0LDAuMzYyMzQgLTAuMjM5MjIsMC41NDU4MmMtMC4wODEyMiwwLjE5NzkgLTAuMjU1OTEsMC40OTkxNSAtMC4yMzk4MywwLjcxODg4YzAuMDAxMjEsMC4wMTYyMiAwLjAwNDIyLDAuMDMyMjUgMC4wMDg0NCwwLjA0ODA3YzAuMDc1MTgsMC4yNzAyMSAwLjU5NjQ1LDAuNDY1MyAwLjgyNjIzLDAuNDY5MWMwLjE5MjM4LDAuMDAzMiAwLjI0Njg2LC0wLjA2OTEgMC4yOTYzMiwtMC4yNDE5NmMwLjA1NTY5LC0wLjE5NDA5IDAuMTIwODIsLTAuMzk5IDAuMTY4NjYsLTAuNTkzMjljMC4xNjE0MywtMC42NTU5OSAwLjMyMjA1LC0xLjMxMjM3IDAuNDgyNDcsLTEuOTY4NTZ6TTIzOS4wNTk1LDIwMS42NzMzNGMtMC4wMzQxNywtMC40Njg5IC0wLjA2ODU1LC0wLjkzODIxIC0wLjEwMjczLC0xLjQwNzMxYy0wLjAyNTczLC0wLjM1MjczIC0wLjA1MTQ2LC0wLjcwNTI2IC0wLjA3NzIsLTEuMDU3OTljLTAuMDA4MDQsLTAuMTEwNTcgMC4wMjYxMywtMC40NDQ2NyAtMC4wNDE4MSwtMC41MzE0Yy0wLjAzMjk3LC0wLjA0MDY2IC0wLjMyNjY3LC0wLjA0NzA3IC0wLjMyNjQ3LC0wLjA0NTg3YzAuMDEyNDYsMC4xNDQ0MiAtMC4wNzU3OSwwLjMxMjA3IC0wLjEwMTcyLDAuNDUzODhjLTAuMDI2MzMsMC4xNDQwMiAtMC4wNDkyNSwwLjI4NjIzIC0wLjA4NTI0LDAuNDI4MjRjLTAuMDk5MzEsMC4zOTM3OSAtMC4yMjMzNCwwLjgxMzAyIC0wLjI4NDI2LDEuMjI0MDRjLTAuMDc0MzgsMC41MDE1NSAtMC4zMDQxNiwwLjk2NTQ1IC0wLjM2MTI1LDEuNDczODFjLTAuMDcxNTcsMC42Mzc1NiAxLjAxNzIxLDAuNjgzODMgMS4zNDgzLDAuMzQxMzFjMC4yMDEwMywtMC4yMDc5MSAwLjA1MDQ2LC0wLjYyODU0IDAuMDMyMzcsLTAuODc4NzJ6TTI0MC42NzAzNSwyMDAuODU0OTFjLTAuMTMyMDgsLTAuNDkwNzQgLTAuMzIyNjUsLTAuOTc5NDcgLTAuNDE1NzMsLTEuNDc4ODJjLTAuMDM5MiwtMC4yMTAxMiAtMC4wNDYwNCwtMC42ODgyMyAtMC4xOTcwMSwtMC44NDg4OGMtMC4wOTczLC0wLjEwMzE1IC0wLjQwNDg3LC0wLjA4ODEzIC0wLjUyMzQ4LC0wLjAxMjYyYy0wLjAyNjEzLDAuMTk5MSAwLjAxNDQ3LDAuNDQ2NjcgMC4wMjg5NSwwLjY0ODM3YzAuMDI0MTIsMC4zMzE1IDAuMDg2NDQsMC42Njg4IDAuMDg1NjQsMS4wMDEzYy0wLjAwMTQxLDAuNTQ0NDIgLTAuMDIxNzEsMS4wOTUyNSAtMC4wMDA4LDEuNjM5NDZjMC4wMTE2NiwwLjMxODA4IC0wLjAzMzM3LDAuNjUzOTggMC4zMzQzMSwwLjc3Mjc2YzAuMjU3MzIsMC4wODI5MiAwLjUzMzUzLDAuMDE5MjMgMC43MjA4OSwtMC4xMzUyYzAuMTc3MzEsLTAuMTQ1ODIgMC4yNzUyMSwtMC4zNzI1NiAwLjIwMjQ0LC0wLjYzMjE1Yy0wLjA4NzI1LC0wLjMxMDg3IC0wLjE0OTM2LC0wLjYzNjc2IC0wLjIzNTIsLTAuOTU0MjN6TTI0Mi4yNDc4MiwxOTQuNzA0MDdjLTEuMjYyNDYsMC43MzE3IC0yLjU2OTc2LDAuNTg1MjggLTMuODY4LDAuNDMzODVjLTEuMjk1MjMsLTAuMTUxMDMgLTIuNTU0MjgsLTAuNDM3NjYgLTMuNjUxNywtMS4xODA1N2MtMC4xNjA0MiwxLjYwMDQgMS41Mjk0MywzLjI5OTU2IDMuNDY5MzYsMy42MjY0NWMxLjk4NTc3LDAuMzM0NSAzLjgyMjU3LC0xLjQzOTM2IDQuMDUwMzQsLTIuODc5NzN6IiBpZD0iU2hhcGUiIGZpbGw9IiMzMDQxOWEiLz48L2c+PGcgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7b3JpZ1BvcyZxdW90OzpudWxsfSIgaWQ9Ikdyb3VwIj48cGF0aCBkPSJNMjQ5LjIzMDM3LDE2Ny44ODI3OHYxNy4zNTk0OGwtMC42NzAwMywxLjAwMTVoLTExLjg2NzE2bC04Ljc3MTkxLC0wLjgwMTJsMC4yMDEwMywtNC4xMDYxN2wtMC4yMDEwMywtMTQuMDg3NzZsMC4xMzQwOSwtMS4wMzQ5NWwyMC41MDQ5OCwxLjAzNDk1eiIgaWQ9IlNoYXBlIiBmaWxsPSIjYWZkN2YyIi8+PHBhdGggZD0iTTI0NS45MTMzOSwxNzIuNzEwMjNsLTAuMTY3NDYsMS41ODIxOGwtMi4yNzgyNiwwLjgwMTJsLTIuMDQzODYsLTAuMzEwNjdsLTEuMDM4NzIsLTAuODI0MjRjMCwwIC0wLjE2NzQ2LC0wLjg2ODEgLTAuMjAxMDMsLTEuMDIwMzNjLTAuMDMzNTcsLTAuMTUyMjMgMC4yMDEwMywtMC45MTk5OCAwLjIwMTAzLC0wLjkxOTk4YzAsMCAwLjYzNjY2LC0wLjgzMDY1IDAuNzM3MTcsLTEuMDMwOTVjMC4xMDA1MSwtMC4yMDAzIDEuMjczMTIsLTAuMTMzNCAxLjQwNzIsLTAuMTY2ODVjMC4xMzQwOSwtMC4wMzM0NSAyLjM0NTQxLDAuMTY2ODUgMi4zNDU0MSwwLjE2Njg1eiIgaWQ9IlNoYXBlIiBmaWxsPSIjZmZmZmZmIi8+PHBhdGggZD0iTTIzNS41NjAzOCwxNzMuNzI1MTZjMCwwIC0yLjI0NDg5LDEuMTM1MTEgLTIuMzc4NzgsMS4wNTc5OWMtMC4xMzM4OSwtMC4wNzcxMiAtMS40NzQxNSwwLjAxMDIyIC0xLjQ1OTQ3LDBjMC4wMTQ2OCwtMC4wMTAyMiAtMS4yODc5OSwtMC42NTczOSAtMS4yODc5OSwtMC42NTczOWMwLDAgLTAuMzY4NDksLTEuMDM0OTUgLTAuMzY4NDksLTEuMTcwMzZjMCwtMC4xMzU0IDAuMjM0NiwtMS4xOTk4IDAuMjM0NiwtMS4xOTk4YzAsMCAwLjUwMjU3LC0wLjUzNDIgMC42MDMwOSwtMC42MzQzNWMwLjEwMDUxLC0wLjEwMDE1IDEuODA5MjYsLTAuNjM0MzUgMS44MDkyNiwtMC42MzQzNWwyLjY4MDMyLDAuMTY2ODV6IiBpZD0iU2hhcGUiIGZpbGw9IiNmZmZmZmYiLz48cGF0aCBkPSJNMjQ2LjM4MjU5LDE3Ny44OTc4M2wtMC4yNjgxNyw1LjIwNzgybC0xMy43NzA1LC0wLjI0MTc2bC0wLjI2Nzk3LC01LjYzMzY2aDE0LjAzODQ3eiIgaWQ9IlNoYXBlIiBmaWxsPSIjZjlmNWI1Ii8+PHBhdGggZD0iTTIyNy43NTM4MiwxNzEuMzU0OGwwLjMwMTU0LDcuNjQ0NjhsLTguNTQzOTQsLTMuMTM0MTFsLTAuMzM0OTEsLTAuNzcxNzZsOC4xMzgwNywtMy45MDU4N3oiIGlkPSJTaGFwZSIgZmlsbD0iI2Y3ZWMxZSIvPjxwYXRoIGQ9Ik0yMzguMDA2MzEsMTU5LjUwMzZsMS4yMjI4NiwtMS44MDI3MWwwLjUwOTgxLDAuMjAwM2wyLjQyMiw1LjE0MTEybDEuNTcxODUsMy45NjI3NWwtOS4wNzcwNywtMC42MjQ1NHoiIGlkPSJTaGFwZSIgZmlsbD0iI2Y3ZWMxZSIvPjxwYXRoIGQ9Ik0yNTkuMzE1NDEsMTczLjg5MTgxbDAuMjM0NiwwLjYzNDM1bC03LjY3MjY4LDMuNTcxOTdsLTIuNTc5ODEsMS4wMzQ5NWwtMC4wNjcxNCwtOC42NDYzOXoiIGlkPSJTaGFwZSIgZmlsbD0iI2Y3ZWMxZSIvPjxnIGlkPSJTaGFwZSIgZmlsbD0iIzMwNDE5YSI+PHBhdGggZD0iTTI0OS43ODY4MiwxNzkuMjY5NDljLTAuMTAwOTIsMC4xMTQxNyAtMC4wNDk0NSwwLjUyNjE5IC0wLjA1NDQ4LDAuNjk3MjVjLTAuMDIyMTEsMC43MzgxMSAtMC4wMTUwOCwxLjQ3MDIxIC0wLjA0NjQ0LDIuMjA2OTJjLTAuMDI1MzMsMC41OTY3IC0wLjAxMjg3LDEuMTk0MzkgLTAuMDI4MzUsMS43OTEyOWMtMC4wMTQ0NywwLjU1NjA0IC0wLjA5MTA3LDEuMTA1NDYgLTAuMTE1NzksMS42NjA0OWMtMC4wMjIzMSwwLjUwMDU1IC0wLjgzNDA3LDEuMTgwMzcgLTEuMzM5NjYsMS4xNzg3N2MtMC42MzY4NiwtMC4wMDIgLTEuMjczNzIsMC4wMDUyMSAtMS45MTAzOCwwLjAxNDQyYy0wLjIyMjc0LDAuMDAzNDEgLTAuNDUzNTIsLTAuMDI3NDQgLTAuNjc0MjUsLTAuMDAwOGMtMC4xODcxNiwwLjAyMjYzIC0wLjM1OTY0LC0wLjAxNjAyIC0wLjU0NjYsLTAuMDE1MjJjLTAuMTMwMDcsMC4wMDA2IC0wLjI2MDUzLC0wLjAwMzIgLTAuMzkwNCwwLjAwMThjLTAuNDMyNDEsMC4wMTY2MiAtMC44Njk2NSwwLjAxNTIyIC0xLjMwMjA3LDAuMDE0ODJjLTAuMzgyMzYsLTAuMDAwNCAtMC43NjQ5MiwwLjAwNzQxIC0xLjE0NzI3LDAuMDE0NDJjLTAuMzc3NzMsMC4wMDY4MSAtMC43NTI2NSwtMC4wMDc2MSAtMS4xMjc3NywtMC4wMDk4MWMtMC40OTM3MywtMC4wMDI4IC0wLjk4NzQ2LC0wLjAwOTQxIC0xLjQ4MDc4LC0wLjAyNTg0Yy0wLjU2OTUyLC0wLjAxOTAzIC0xLjEzODgzLC0wLjA0MjA2IC0xLjcwNzk0LC0wLjA2NjdjLTAuMzg5MzksLTAuMDE2ODMgLTAuNzc1NzcsLTAuMDMxNjUgLTEuMTY0NTYsLTAuMDcxNzFjLTAuNjI3MDEsLTAuMDY0NyAtMS4yNTU2MywtMC4xMTEzNyAtMS44ODUwNSwtMC4xNTk4NGMtMC4yMjgxNywtMC4wMTc2MyAtMC40NTYzNCwtMC4wMjk0NCAtMC42ODQzLC0wLjA0NzY3Yy0wLjI5ODEzLC0wLjAyMzg0IC0wLjU5MTYzLC0wLjA5MjE0IC0wLjg5MDc2LC0wLjEwNjU2Yy0wLjI4NDY2LC0wLjAxMzYyIC0wLjU3MjczLC0wLjAxMDIyIC0wLjg1Njk5LC0wLjAzNTg1Yy0wLjIyMDMzLC0wLjAxOTgzIC0wLjQ0MDQ2LC0wLjAzOTQ2IC0wLjY2MDk4LC0wLjA1NzA5Yy0wLjg0MjMxLC0wLjA2NzMgLTEuNjg1NjMsLTAuMTIzOTkgLTIuNTI3NTQsLTAuMTk1NDljLTAuMzQ5MzksLTAuMDI5NjQgLTAuNzAwMzksLTAuMDY2MSAtMS4wNDM1NCwtMC4xMzVjLTAuNDE5OTUsLTAuMDg0MzMgLTAuNDc5MDUsLTAuNDQwNjYgLTAuNDg2MjksLTAuNzgwNzdjLTAuMDE0NjgsLTAuNjgxMDIgMC4wNTM4OCwtMS4zNjcwNSAtMC4wMDYwMywtMi4wNDI2N2MtMC4wOTczLC0xLjA5NTg1IDAuMDQ2MDQsLTIuMTc5ODcgMC4wNzY1OSwtMy4yNjg5MWMwLjAxMDQ1LC0wLjM2OTM1IC0wLjEyNjg1LC0wLjUxMjk3IC0wLjQ2Mzc3LC0wLjYzMjc1Yy0xLjI2ODI5LC0wLjQ1MDY4IC0yLjUxODcsLTAuOTUxMjMgLTMuNzg0NTgsLTEuNDA4OTJjLTAuNzQ1NDIsLTAuMjY5NjEgLTEuNTEyNzQsLTAuNDc5MzIgLTIuMjYwNzcsLTAuNzQyNzJjLTAuNTc0MTQsLTAuMjAxOSAtMS4xNTI1LC0wLjQwOTAxIC0xLjY5MjY3LC0wLjY4NDgzYy0wLjM0MTc1LC0wLjE3NDQ2IC0wLjY2NTgxLC0wLjQ0MDY2IC0wLjkwMzAyLC0wLjc0MDExYy0wLjE0NTM0LC0wLjE4MzY4IC0wLjIxMzksLTAuNTMxNCAwLjExNDc5LC0wLjcxOTI4YzAuNzA2MDEsLTAuNDAzMDEgMS40MDYyLC0wLjgxNzgzIDIuMTI2NDksLTEuMTk0MTljMC45ODI4MywtMC41MTM1NyAxLjkyMDAzLC0xLjExMjA3IDMuMDAwOTYsLTEuNDQxNzdjMC42NDY5MSwtMC4xOTczIDEuMjQ1MTgsLTAuNTUxMDMgMS44NjgxNiwtMC44Mjg0NGMwLjE3Mjg5LC0wLjA3NjkyIDAuMzYzNjYsLTAuMTE1NzcgMC41MzE1MiwtMC4yMDA5YzAuMzQxNTUsLTAuMTczMDYgMC43MDA1OSwtMC4zMzE3IDAuOTk1MywtMC41NjcwNWMwLjExODIxLC0wLjA5NDc0IDAuMTE3MiwtMC4zNzU1NiAwLjExNzgsLTAuNTcxNjZjMC4wMDMyMiwtMC44ODI3MyAtMC4wMjg5NSwtMS43NjU4NSAtMC4wMTQ2OCwtMi42NDgxOGMwLjAwNzY0LC0wLjQ3NDkxIDAuMDY0MTMsLTAuOTUyMjMgMC4xNDM5NCwtMS40MjA3M2MwLjAxNzA5LC0wLjA5OTk1IDAuMjMxNzksLTAuMjM4NzYgMC4zNTQwMSwtMC4yMzczNmMxLjA4ODE3LDAuMDEzMjIgMi4xNzU3NCwwLjA2MTI5IDMuMjYzOTEsMC4wODQ1M2MwLjY0MDY4LDAuMDEzNjIgMS4yODE3NiwwLjAxNzIzIDEuOTIyNjQsMC4wMjUwNGMwLjI2OTk4LDAuMDAzNDEgMC41MjA4NywwLjAyMzQ0IDAuNzg0MjEsMC4wNTgyOWMwLjE5NDE5LDAuMDI1NjQgMC41MjMwOCwwLjAxNjIyIDAuNjgyNDksLTAuMTEzMTdjMC4wOTc3LC0wLjA3OTEyIDAuMTE4ODEsLTAuMjQ2NTcgMC4xNzQ2OSwtMC4zNTA1M2MwLjEyOTA2LC0wLjIzOTk2IDAuMjQ4NDcsLTAuNDgzMzMgMC4zNzM3MSwtMC43MjYwOWMwLjUxNTI0LC0wLjk5ODkgMS4wNDQ1NSwtMS45OTA1OSAxLjUxMzU1LC0zLjAxOTU0YzAuMzg4OTksLTAuODUzNDggMC43NDE4LC0xLjcyMzM5IDEuMTI1NzYsLTIuNTc5MjdjMC4yNjA1MywtMC41ODAyNyAwLjUzNTU0LC0xLjE1NDczIDAuODI2MjMsLTEuNzIwNThjMC4yMDgwNywtMC40MDQ4MSAxLjE1NTUyLC0wLjI5NzQ1IDEuNDAzMzksMC4xODMyOGMwLjUwODQsMC45ODYwOCAwLjk3NjIsMS45OTI3OSAxLjQ2NjUxLDIuOTg3ODljMC4wOTYwOSwwLjE5NDg5IDAuMjQ4NjcsMC4zNjUxNSAwLjMyNjA3LDAuNTY1NDVjMC4zNjM4NiwwLjk0MjQyIDAuNzA1NjEsMS44OTMyNCAxLjA2NTI1LDIuODM3MjZjMC4yNzM0LDAuNzE4NDggMC41NDk2MSwxLjQzNjU2IDAuODU0MzcsMi4xNDE4MmMwLjA2NDEzLDAuMTQ4ODIgMC4yNDU2NiwwLjMyMjA4IDAuMzk0NjIsMC4zNDUzMmMwLjQ1NjM0LDAuMDcwOTEgMC45MjI3MiwwLjA3NzMyIDEuMzg1NjksMC4xMDMzNmMwLjg4OTk2LDAuMDUwMjggMS43ODE1MiwwLjA4MDkyIDIuNjY5ODcsMC4xNTIwM2MwLjM3NzMzLDAuMDMwMjUgMS4wMDAzMiwwLjAyMzQ0IDEuMjY4OSwwLjM0MDExYzAuMTY4MjYsMC4xOTgxIDAuMDk1ODksMC41OTE4OSAwLjEyMzQzLDAuODQ0ODdjMC4wNDg0NSwwLjQ0NjQ3IDAuMDkxMjcsMC44OTM3NCAwLjA5OTExLDEuMzQzMDJjMC4wMDg4NSwwLjUwOTc3IDAuMTEzNzgsMC44NTE2OCAwLjYzNDA1LDEuMDMwMzVjMC43MjAwOSwwLjI0NzM3IDEuNDA0MTksMC42NDA1NiAyLjE0MDc2LDAuNzg3OThjMS4xMTk3MywwLjIyNDM0IDIuMTMxMTEsMC43MTk2OCAzLjE5ODk4LDEuMDY4NGMwLjc5MTI1LDAuMjU4MTkgMS41NzE0NSwwLjU1MjIzIDIuMzUxODQsMC44NDMwN2MwLjU1NjA1LDAuMjA3MzEgMS4xMTgxMiwwLjQwNjgxIDEuNjUxODYsMC42NjI4YzAuNDkxNzIsMC4yMzU1NSAwLjU3MTMzLDAuOTM1MiAwLjE2MjgzLDEuMzE5OThjLTAuMjAzMDQsMC4xOTE0OSAtMC40NjA3NiwwLjMzMTEgLTAuNzA3ODIsMC40Njk1MWMtMC40NjM5OCwwLjI2MDM5IC0wLjkyMjUyLDAuNTM5MDEgLTEuNDEwODIsMC43NDU5MmMtMS4yODQzOCwwLjU0NDQyIC0yLjU3NDc4LDEuMDc2NDIgLTMuODc4ODYsMS41NzE3NmMtMC43MDY2MiwwLjI2ODYgLTEuNDIwNDcsMC41MTgzOCAtMi4xMzQ3MywwLjc2NjU1Yy0wLjM2Mzg2LDAuMTI2MTkgLTAuNzI3NTIsMC4yNTIxOCAtMS4wOTA5OSwwLjM3OTc3Yy0wLjIxMjQ5LDAuMDc0NzEgLTAuNjE0NTUsMC4xNTEwMyAtMC43NzMzNiwwLjMyOTQ5ek0yMjcuNjM5MDMsMTc4LjQyNjIyYy0wLjA1MDQ2LC0wLjAxODAzIC0wLjAyOTk1LC0wLjgxNzgzIC0wLjAzMzM3LC0wLjkwODk3Yy0wLjAxMTI2LC0wLjMxMTY3IC0wLjAyMjcyLC0wLjYyMzM0IC0wLjAzNDE3LC0wLjkzNDhjLTAuMDIyMzEsLTAuNjA4OTEgLTAuMDQ0NjMsLTEuMjE3ODMgLTAuMDY2OTQsLTEuODI2OTRjLTAuMDIxNzEsLTAuNTkzMDkgLTAuMDQzNDIsLTEuMTg2MzggLTAuMDY1MTMsLTEuNzc5NDdjLTAuMDEwODYsLTAuMjkxNjQgLTAuMDIxNTEsLTAuNTgzNDggLTAuMDMyMTYsLTAuODc1MzFjLTAuMDEyMDYsLTAuMzMyMyAtMC4xMjY4NSwtMC4yOTIwNCAtMC40MjQ1NywtMC4yMTIzMmMtMC40ODU4OSwwLjEzMDIgLTAuOTE5OTEsMC4zMzQxIC0xLjM5Njk1LDAuNTAxOTVjLTAuNTEwMDEsMC4xNzk2NyAtMS4wMTUyLDAuMzczOTYgLTEuNTEzNTUsMC41ODM0OGMtMC45NzM1OCwwLjQwOTQxIC0xLjkyMTg0LDAuODc4MTIgLTIuODM0NTEsMS40MDg5MmMtMC40OTE5MiwwLjI4NjIzIC0wLjk2MzUzLDAuNjA3MTEgLTEuNTYzNCwwLjk4NzQ4YzAuMzI5NDksMC4yMzQxNSAwLjU0ODAxLDAuNDIyMDMgMC43OTYyOCwwLjU1NTIzYzAuMTk3NDEsMC4xMDU3NiAwLjQzMjQxLDAuMTQxMjEgMC42NDg1MiwwLjIxNDEyYzAuODU1MTgsMC4yODg4MyAxLjcxMTk2LDAuNTcyODYgMi41NjMxMiwwLjg3MjUxYzEuMjg4MiwwLjQ1MzI4IDIuNTcyMzcsMC45MTgzOCAzLjk1Njg2LDEuNDE0MTJ6TTIzNS42MDM2MSwxNjUuOTMzNDVjMi40NjYwMywwLjE0NjAyIDQuODE4MDcsMC4yODUyMyA3LjI2MTU4LDAuNDI5ODVjLTAuMjQ0ODUsLTAuNzQyNzIgLTAuNDMzODIsLTEuNDA3MzEgLTAuNjgyNywtMi4wNDg4OGMtMC40OTQxMywtMS4yNzM5MSAtMS4wMTA1NywtMi41MzkyMSAtMS41Mzk4OCwtMy43OTkxMWMtMC4yNTM5LC0wLjYwNDUxIC0wLjUzNzk1LC0xLjE5ODggLTAuODQ5MzUsLTEuNzc1NjdjLTAuMTA4OTYsLTAuMjAxOSAtMC4zNDA5NSwtMC4zMzc1MSAtMC41MDc2LC0wLjQ5NDc0Yy0wLjkzMzc4LDEuMjAyODEgLTEuNTUyMTUsMi40Njc5MSAtMi4wOTUzMywzLjc3Mzg3Yy0wLjUzODM2LDEuMjk0MTQgLTEuMTgxNjUsMi41NDgyMyAtMS41ODY3MiwzLjkxNDY4ek0yNDguODk1NDYsMTgyLjU3Mjg1Yy0wLjAxNTI4LC0xLjE4Nzc4IC0wLjA2NjE0LC0yLjM3NTE3IC0wLjA3MTc3LC0zLjU2Mjk1Yy0wLjAwNTQzLC0xLjEwOTQ3IDAuMDM1MzgsLTIuMjE5MTMgMC4wNDUwMywtMy4zMjg4YzAuMDEyMjYsLTEuNDM3MzYgMC4wMzU1OCwtMi44NzUxMiAwLjAxMzA3LC00LjMxMjA4Yy0wLjAxMTY2LC0wLjc1MzczIC0wLjA0MzQyLC0xLjUwNzg2IC0wLjEyMzYzLC0yLjI1Nzc5Yy0wLjAzMjc3LC0wLjMwNjg2IC0wLjA1MjA3LC0wLjYwNDkxIC0wLjA2Nzc1LC0wLjkxMTM3Yy0wLjAxNzY5LC0wLjM0NTcyIC0wLjA4NDQzLC0wLjQyMDQzIC0wLjQwOTMsLTAuNDQ5MjdjLTAuMzc2MzMsLTAuMDMzMjUgLTAuNzU0NjYsLTAuMDMyNjUgLTEuMTMxMzksLTAuMDYwODljLTAuMzA3MzcsLTAuMDIzMDMgLTAuNjI2MjEsLTAuMTI5MTkgLTAuOTMxMTcsLTAuMTE3NThjLTAuOTMzNzgsMC4wMzU2NSAtMS44ODA2MywtMC4xNDgyMiAtMi44MTIyLC0wLjIzNjM2Yy0xLjc2NDAzLC0wLjE2NzI1IC0zLjUyNzA2LC0wLjQxMTIyIC01LjI5NDcxLC0wLjQ1NTY4Yy0xLjY3MjE2LC0wLjA0MjI2IC0zLjMzOTcsLTAuMjE1NzIgLTUuMDA5MjUsLTAuMjE1NzJjLTAuMzA1NTYsMCAtMC41OTk4NywtMC4wMzM0NSAtMC45MDQ0MywtMC4wMzM0NWMtMC4zMzk3NCwwIC0wLjY3Njg3LC0wLjAxNjYyIC0xLjAxNzQxLC0wLjAxNjYyYy0wLjIxNTUsMCAtMC40MjYxOCwtMC4wMDcyMSAtMC42NDEwOCwtMC4wMjA4M2MtMC40NTMzMiwtMC4wMjg2NCAtMC45MTM2OCwtMC4wMTM4MiAtMS4zNjY0LC0wLjAzNTQ1Yy0wLjMwNTM2LC0wLjAxNDgyIC0wLjYyNTIsMC4wMjgwNCAtMC45MTI4NywwLjEyMjE4Yy0wLjA1MDI2LDAuMDE2NDIgMC4wMjc1NCwwLjQxOTAzIDAuMDQ0MjMsMC42NDM1N2MwLjAwNDAyLDAuMDU0MjggMC4wMDIyMSwwLjEwOTE2IDAuMDAxMDEsMC4xNjM4NWMtMC4wMjY3NCwxLjE5NDc5IC0wLjA4NDIzLDIuMzg5NzkgLTAuMDcyNzcsMy41ODQxOGMwLjAxNDY4LDEuNTI1NjkgMC4xMzczLDMuMDUxNTggMC4xMTUxOSw0LjU3NjA3Yy0wLjAxOTUsMS4zNDc4MiAwLjMxNTYyLDIuNjY1MiAwLjIxMTI4LDQuMDIxNDRjLTAuMDkzODgsMS4yMTk2MyAtMC4wNTMwNywyLjQ1MDg4IC0wLjA0MTIxLDMuNjc2NzJjMC4wMDYwMywwLjYyNzk0IDAuMDc4MiwxLjI1NTA5IDAuMTIzMjMsMS45MjE2OWMxLjE4NjA3LDAuMDc5MzIgMi4yNTcxNiwwLjE2MDQ0IDMuMzI5NDUsMC4yMTk5M2MwLjkxNDA4LDAuMDUwODggMS44MzA5NywwLjA1NzY5IDIuNzQ0MjUsMC4xMTgzOGMxLjIxMTIsMC4wODA1MiAyLjQxODM4LDAuMjI2NTQgMy42MzAxOSwwLjI4NTYzYzEuNTE1MzYsMC4wNzM5MSAzLjAzMzczLDAuMTIxMzggNC41NTA3LDAuMTE5NThjMS43MDMxMiwtMC4wMDE4IDMuNDA1ODQsLTAuMDY5NSA1LjEwODc2LC0wLjExMjc3YzAuMzAxOTUsLTAuMDA3NjEgMC43MDY0MiwtMC4zOTM1OSAwLjcyNjEyLC0wLjcwMDg1YzAuMDM2OTksLTAuNTc2MDcgMC4wNTI2NywtMS4xNTM1MyAwLjA4NjY0LC0xLjcyOThjMC4wMTcyOSwtMC4yOTkwNSAwLjA4MjIyLC0wLjU5NzEgMC4wNzgyLC0wLjg5NDk0ek0yNDkuNzI0MywxNzguMjU4NTdjMC4xMzUyOSwwIDAuMjA5NjcsMC4wMTg2MyAwLjI2OTU4LC0wLjAwMjZjMS4zNDYwOSwtMC40Nzg3MiAyLjY5NzIxLC0wLjk0MzQyIDQuMDMyODUsLTEuNDQ5MThjMS4yMjEwNSwtMC40NjI0OSAyLjQzMjY1LC0wLjk1MjAzIDMuNjMyOCwtMS40NjY0YzAuNDg2ODksLTAuMjA4NzEgMC45MzE3NywtMC41MTQzNyAxLjM5NTk1LC0wLjc3NjE3Yy0wLjAwNzA0LC0wLjA2MDY5IC0wLjAxNDA3LC0wLjEyMTU4IC0wLjAyMDkxLC0wLjE4MjI3Yy0wLjE3MjQ4LC0wLjA5NjU1IC0wLjMzNjcyLC0wLjIxMzkyIC0wLjUxOTI2LC0wLjI4NDYzYy0wLjI5MTY5LC0wLjExMjk3IC0wLjYwMjY5LC0wLjE3NzY3IC0wLjg5MzE3LC0wLjI5MzY0Yy0wLjYzMjI0LC0wLjI1MjM4IC0xLjI1MjAxLC0wLjUzNTYgLTEuODg1MjUsLTAuNzg0NThjLTAuNjE5MTcsLTAuMjQzMzcgLTEuMjQ2NzgsLTAuNDY1NSAtMS44NzQ0LC0wLjY4NjIzYy0wLjcxNDQ2LC0wLjI1MTM4IC0xLjQzMzc0LC0wLjQ5MDE0IC0yLjE1MDQxLC0wLjczNTVjLTAuMjQxNDQsLTAuMDgyNTIgLTAuNDc1ODQsLTAuMTk0ODkgLTAuNzIzMSwtMC4yNDY5N2MtMC40MjA3NSwtMC4wODg1MyAtMC44MjcyNCwtMC4zOTIxOSAtMS4yNjQ0NywtMC4xNDkyMmMwLDIuMzcxOTYgMCw0LjcxMjA4IC0wLjAwMDIsNy4wNTc0eiIvPjxwYXRoIGQ9Ik0yNDYuODg2OTcsMTgxLjUxNDI2YzAuMDEwNDUsMC4zODUxOCAwLjAzMjk3LDEuNDEzNTIgLTAuMjE4NTIsMS43MjA1OGMtMC4wNjEzMSwwLjA3NDkxIC0wLjEzNjksMC4xMjk3OSAtMC4yMjE5NCwwLjE2OTg2Yy0wLjM2NTg3LDAuMTcyMDYgLTAuOTA4NDUsMC4wNjYzIC0xLjI2NTI4LDAuMDcwOTFjLTAuNjYyMzksMC4wMDg0MSAtMS4zNDA4NiwwLjAyMTgzIC0yLjAwNjA3LDAuMDUxNjhjLTAuNDgxMjYsMC4wMjE2MyAtMC45NTkxMSwwLjEwODM2IC0xLjQ0MDU4LDAuMTMxNmMtMC4yODMyNSwwLjAxMzgyIC0wLjU2OTkyLC0wLjA1Njg5IC0wLjg1NTE4LC0wLjA1ODg5Yy0wLjMyNTI3LC0wLjAwMiAtMC42NTExMywwLjA1MTI4IC0wLjk3NTU5LDAuMDQxODZjLTAuMzUxMiwtMC4wMTAwMiAtMC43MDAzOSwtMC4wODQ1MyAtMS4wNTE3OCwtMC4wOTczNWMtMS43OTkwMSwtMC4wNjY1IC0zLjU5ODIyLC0wLjEyNDc5IC01LjM5NzYzLC0wLjE3ODA3Yy0wLjI1ODUyLC0wLjAwNzYxIC0wLjUyMDg3LDAuMDExMjIgLTAuNzc3MTgsMC4wNDc0N2MtMC42ODgzMiwwLjA5Njc1IC0wLjkxMTI3LC0wLjEzMzYgLTAuODczNDcsLTAuODE3MDNjMC4wMjU5MywtMC40NjY3IC0wLjA2MzUzLC0wLjkzODQxIC0wLjA2NDEzLC0xLjQwNzkxYy0wLjAwMTAxLC0wLjY3NDgxIDAuMDQyNjIsLTEuMzQ5NjMgMC4wNDY0NCwtMi4wMjQ2NGMwLjAwMjAxLC0wLjM2NTM1IC0wLjA0OTg2LC0wLjczMDMgLTAuMDU4MywtMS4wOTYwNWMtMC4wMDgyNCwtMC4zNTE3MyAtMC4wMTIyNiwtMC43MDYyNiAwLjAyMTExLC0xLjA1NTc5YzAuMDIzMzIsLTAuMjQyMzYgMC4xNzQ2OSwtMC4zNTAxMyAwLjQ1MjMyLC0wLjMzNDFjMC42NjMyLDAuMDM4NDYgMS4zMjg2LDAuMDMxNjUgMS45OTI4LDAuMDUzMDhjMC41Njk3MiwwLjAxODQzIDEuMTM5MDMsMC4wNjMzIDEuNzA4NzUsMC4wNzI3MWMwLjY1MDUzLDAuMDEwODIgMS4zMDE2NiwtMC4wMTE2MiAxLjk1MjQsLTAuMDA2MjFjMC41MTI0MiwwLjAwNDIxIDEuMDI1MDUsMC4wMjgyNCAxLjUzNzY3LDAuMDQ0MDdjMC40NTI1MiwwLjAxNDAyIDAuOTA1NDQsMC4wNDgwNyAxLjM1NzM1LDAuMDM4ODZjMC42MzkwNywtMC4wMTMwMiAxLjI3Nzk0LC0wLjA4NjEzIDEuOTE2NDEsLTAuMDgwNzJjMC41OTYyNSwwLjAwNTAxIDEuMTkxMywwLjA5OTk1IDEuNzg3NzUsMC4xMTY1OGMwLjUwMzk4LDAuMDE0MDIgMS4wMTE3OCwtMC4wMDQwMSAxLjUxMzM1LC0wLjA1NDA4YzAuMjUyMjksLTAuMDI1MDQgMC4zOTc4NCwwLjAzNzA2IDAuNDc1MjMsMC4yNjE5OWMwLjA4MzIzLDAuMjQxNzYgMC4yMDIyNCwwLjQ4NDEzIDAuMjIxNTMsMC43MzI1YzAuMDk0MDgsMS4yMTc4MyAwLjE4OTc3LDIuNDM3MDYgMC4yMjI1NCwzLjY1NzA5ek0yMzQuMjkwNjgsMTc4LjA4NDcxYy0wLjA1MzY3LC0wLjUyNTU5IC0wLjEyMjAyLC0wLjU3MTI2IC0wLjY3NDg2LC0wLjUwMTc1Yy0wLjIxNDMsMC4wMjY4NCAtMC40MzQwMiwwLjAyODQ0IC0wLjY1MDEzLDAuMDE4MDNjLTAuNDcwODEsLTAuMDIyNjMgLTAuNTc1OTUsMC4wODgxMyAtMC41NTk0NiwwLjU0NzIyYzAuMDQyNjIsMS4xOTIxOSAwLjA4NzA1LDIuMzg0NTggMC4wOTk3MSwzLjU3NzE3YzAuMDA4ODUsMC44MTk0MyAtMC4wMTQyNywwLjgxOTYzIDAuODE3NzksMC44MzEwNWMwLjA1NDY4LDAuMDAwOCAwLjEwOTE2LDAuMDA0NjEgMC4xODE5MywwLjAwNzgxYzAuNjg3OTIsLTAuMDIxMjMgMC42ODczMiwtMC4wMjEyMyAwLjY5MTc0LC0wLjc1MzkzYzAuMDAzNDIsLTAuNTcxNDYgLTAuMDg0MDMsLTEuMTYzMTUgMC4wMzYzOSwtMS43MDkxN2MwLjE1MDU3LC0wLjY4MzAzIDAuMTI2MjUsLTEuMzQyMDIgMC4wNTY4OSwtMi4wMTY0M3pNMjM2LjYwMjUyLDE3Ny42NjIyN2MtMC41MjA4NywtMC4wMjYyNCAtMC45Mjg1NSwtMC4wNTgwOSAtMS4zMzYwNCwtMC4wNTcyOWMtMC4wNzg4LDAuMDAwMiAtMC4yMTY1MSwwLjEyMTE4IC0wLjIyNTc2LDAuMTk4NWMtMC4wNDY4NCwwLjM5MDU5IC0wLjA0ODg1LDAuNzg2MzggLTAuMDg3MjUsMS4xNzgzN2MtMC4wNTk3MSwwLjYwNzUxIC0wLjA3MDc2LDEuMjE5MjMgLTAuMDQ0MjMsMS44Mjg5NWMwLjAyMDMsMC40NjU1IC0wLjAyNzM0LDEuMTIzMDkgMC4xNTc0MSwxLjU1ODc0YzAuMTUwOTcsMC4zNTYzNCAwLjcxMjA1LDAuMzAxNDUgMS4wNDAxMywwLjI0MDc2YzAuMzMzNTEsLTAuMDYxODkgMC4zNjk4OSwtMC4yNjg0IDAuMzc0NzIsLTAuNTgzNDhjMC4wMDk0NSwtMC41OTUwOSAwLjA5ODkxLC0xLjE4ODc5IDAuMTE1MTksLTEuNzg0NDhjMC4wMjMxMiwtMC44NTI0OCAwLjAwNTYzLC0xLjcwNjM2IDAuMDA1ODMsLTIuNTgwMDh6TTIzOC44OTM2NSwxNzcuNjUwODVjLTAuNTEwODIsMCAtMC45MTU4OSwwLjAwNjIxIC0xLjMyMDc2LC0wLjAwMjRjLTAuMjQxNjQsLTAuMDA1NDEgLTAuMzU5NjQsMC4wMjc2NCAtMC4zNTI0LDAuMzM2MzFjMC4wMzA5NiwxLjMyOTYgMC4wMzk0LDIuNjYwMiAwLjAyMjkyLDMuOTg5OTljLTAuMDA4NDQsMC42ODM0MyAwLjA3NjM5LDAuNjY0IDAuNzMzMzUsMC43MjY4OWMwLjYxMDczLDAuMDU4MjkgMC42NTY1NiwtMC4wMjA2MyAwLjY1Njc2LC0wLjYzMzc1YzAsLTAuNzQ5NzMgMC4wNDE4MSwtMS41MDAyNSAwLjA4NjY0LC0yLjI0OTE4YzAuMDQxODEsLTAuNzAwMjUgMC4xMTA5NywtMS4zOTkxIDAuMTczNDksLTIuMTY3ODZ6TTI0MS4wNjE3NSwxNzcuNjk0MTJjLTAuNDg2NDksMCAtMC45MzY4LDAgLTEuMzk2OTUsMGMtMC4wNDc0NCwwLjIyMzE0IC0wLjEyMDIyLDAuNDMyODUgLTAuMTMyNjgsMC42NDYxN2MtMC4wNTIwNywwLjg5OTc1IC0wLjA5MzA4LDEuODAwMyAtMC4xMjM0MywyLjcwMTA2Yy0wLjAxNjQ4LDAuNDg2NzMgLTAuMDIwNSwwLjk3NTI2IDAuMDA5NDUsMS40NjA1OWMwLjAwNjIzLDAuMTAyMzUgMC4xODU5NSwwLjI3NjAxIDAuMjg2NDcsMC4yNzY0MmMwLjQ1NTczLDAuMDAyMiAwLjkxMTI3LC0wLjA0NTg3IDEuMzU3MzUsLTAuMDc1MzFjMCwtMS42Nzg1MiAwLC0zLjMyMTM5IC0wLjAwMDIsLTUuMDA4OTJ6TTI0My43NDg1MSwxNzcuNzYyNDJjLTAuMDA5ODUsLTAuMDEwMDIgLTAuMDIzOTIsLTAuMDE5MDMgLTAuMDQxODEsLTAuMDI2NjRjLTAuMTUyOTgsLTAuMDY1OSAtMC41Njg1MSwtMC4wNDM4NyAtMC43MDMsLTAuMDQ2NjdjLTAuMjI4NzcsLTAuMDA0NjEgLTEuMTgzNjYsLTAuMTUxNDMgLTEuMjExMiwwLjE3MTY2Yy0wLjEzMDI3LDEuNTM1NzEgLTAuMDk3NywzLjA3MDIxIDAuMTAzNTMsNC41OTg1MWMwLjAxNDA3LDAuMTA1NzYgMC4xNjAwMiwwLjI2MTc5IDAuMjYxMzQsMC4yNzYwMWMwLjI2NTM2LDAuMDM2ODYgMC41NDEzNywwLjAyNDA0IDAuODEwNzUsMC4wMDI0YzAuNzE2ODcsLTAuMDU3NjkgMC43MTU2NiwtMC4wNjM3IDAuNzAwNTksLTAuNzk0MTljLTAuMDAxMDEsLTAuMDUyNjggMC4wMjM1MiwtMC4xMDU1NiAwLjAyNTUzLC0wLjE1ODY0YzAuMDIzNzIsLTAuNjc5MDIgMC4wNTQyOCwtMS4zNTgwNCAwLjA2NTU0LC0yLjAzNzQ2YzAuMDA2MDMsLTAuMzcwNTYgMC4wMDYwMywtMC43NDEzMSAwLjAwNTAzLC0xLjExMjA3Yy0wLjAwMDQsLTAuMTgyNjcgMC4xMjY4NSwtMC43MjQ0OSAtMC4wMTYyOCwtMC44NzI5MXpNMjQ2LjE1NjY0LDE4MS4yMjc4M2MtMC4wMDU0MywtMC41OTY5IC0wLjAzMzU3LC0xLjE5MzM5IC0wLjA2NzE0LC0xLjc4OTQ5Yy0wLjAxNzA5LC0wLjMwODI2IC0wLjAzMTM2LC0wLjYxNzMzIC0wLjA1NDY4LC0wLjkyNTE5Yy0wLjAxNDI3LC0wLjE5MDQ5IDAuMDE2NDgsLTAuNTAzMTYgLTAuMDcxMTYsLTAuNjczODFjLTAuMDgwNjEsLTAuMTU2NjQgLTAuMTc3MzEsLTAuMTI1MzkgLTAuMzc1NTIsLTAuMTI1MTljLTAuMzIxMDQsMC4wMDA0IC0wLjkxNjA5LC0wLjEyMTE4IC0xLjA5NTgxLDAuMTNjLTAuMTkxNTgsMC4yNjggLTAuMDgwMjEsMC43ODk3OSAtMC4wNzksMS4xMDE4NmMwLjAwMzgyLDAuOTE3MzggMC4wMDg4NSwxLjgzNDc2IDAuMDI2NTQsMi43NTIxM2MwLjAxNTI4LDAuNzk5IDAuMDMwMTUsMC43OTg2IDAuNzkzMjYsMC44NjQ1YzAuMTYyODMsMC4wMTA4MiAwLjMyNjQ3LDAuMDM2NjYgMC40ODc5LDAuMDI2MDRjMC4wNzcyLC0wLjAwNTIxIDAuMjAzNDQsLTAuMDY3OSAwLjIxNTkxLC0wLjEyNDU5YzAuMDkwNjYsLTAuNDA5MjEgMC4yMjM1NCwtMC44MjQyNCAwLjIxOTcyLC0xLjIzNjI2eiIvPjxwYXRoIGQ9Ik0yMzAuNTE5NTgsMTc0Ljc1NDFjLTAuNjA2OTEsLTAuMzk4OCAtMC45NTM2OCwtMS4wODU2MyAtMC45NzI3OCwtMi4wODQ3M2MtMC4wMTAyNSwtMC41Mjg5OSAwLjA5ODkxLC0wLjg5NzE1IDAuNDQyMDYsLTEuMzE3MThjMC4zMzExLC0wLjQwNTAxIDAuNzc2MzcsLTAuODIwNDMgMS4yNzA3MSwtMS4wMTk5M2MwLjQ4NTg5LC0wLjE5NTg5IDEuMDIwNDIsLTAuMjQxMzYgMS41Mzc0NywtMC4yODcyM2MwLjkyNDczLC0wLjA4MjMyIDEuODU1MSwwLjAyNjI0IDIuNzYyMzQsMC4yMDU5MWMwLjk3NTE5LDAuMTkzMjkgMS42MDQwMSwwLjc0MjMyIDEuOTk4NjMsMS42MDUyMWMwLjA2Njk0LDAuMTQ2MjIgMC4wODE4MiwwLjM0MzcyIDAuMDQ4NjUsMC41MDI1NWMtMC4xMTI3OCwwLjU0MDIxIC0wLjIxMjY5LDEuMDkwMDQgLTAuNDAxODYsMS42MDU2MWMtMC4xMjUyNCwwLjM0MTExIC0wLjQwMTY2LDAuNjAwNyAtMC43MTYwNywwLjc3MjM2Yy0wLjI2MzE1LDAuMTQzODIgLTAuNjA5OTIsMC4yMDgzMSAtMC44OTMzNywwLjMyMDQ4Yy0wLjUwNDU4LDAuMTk5NSAtMC45OTY3LDAuMjQ0MzcgLTEuNTMxMjQsMC4yOTM0NGMtMS4yMjg2OSwwLjExMjM3IC0yLjQ4MjUxLDAuMTAxMzUgLTMuNTQ0NTUsLTAuNTk2NXpNMjMyLjk2MTg4LDE3NC41MjM5NmMtMC43MDg0MywtMS4xODgzOSAtMS4xMzkwMywtMi4zNjI3NSAtMC4zMzU5MiwtMy42Njk3MWMtMS42MDAxOSwwLjQ0MTY2IC0yLjMwMjM5LDEuMDA5MzIgLTIuMTc3MTUsMS43ODcyOGMwLjIyMjE0LDEuMzgxMjcgMC43NzEzNSwxLjgyODU1IDIuNTEzMDcsMS44ODI0M3oiLz48cGF0aCBkPSJNMjQ3LjcyNjI3LDE3Mi45NzYyM2MwLjAxNzQ5LDEuMDU2NTkgLTAuMzkyNDEsMS45MTIyNyAtMS4zNTE1MiwyLjM2MjM1Yy0wLjQ0ODcsMC4yMTAzMiAtMS4wMjMyNCwwLjE1ODY0IC0xLjU0MjEsMC4yMTMzMmMtMC4yODIyNSwwLjAyOTg0IC0wLjU2NzEsMC4wMzQyNSAtMC45MDMwMiwwLjA1MzA4Yy0wLjc5NTQ3LC0wLjExODE4IC0xLjY1NjI4LDAuMDI2ODQgLTIuNDk1MTcsLTAuMjgwODJjLTEuNDM4MTYsLTAuNTI3NzkgLTIuMjUyNzMsLTIuMTg2MjggLTEuMjUzODIsLTMuNzM3MjFjMC41MzMzMywtMC44MjgwNCAxLjMwOTcxLC0xLjA5NTg1IDIuMjAzNjgsLTEuMjE2MjNjMS4yMjk5LC0wLjE2NTg1IDIuNDU1MTcsLTAuMTQzODIgMy42NDM2NSwwLjIyMjEzYzEuMDc2NTEsMC4zMzE3IDEuNjczOTcsMC45MTk5OCAxLjY5ODI5LDIuMzgzMzh6TTI0My4yODM3MywxNzQuNzc3MTRjLTAuODU2MzgsLTEuMTY4MTUgLTEuMTg3MjgsLTIuMzM3MzEgLTAuMzg2OTgsLTMuNjAzNjFjLTAuMzAwMTQsLTAuMTA5MTYgLTAuODg1OTQsLTAuMDA2MjEgLTEuMzYzOTgsMC4yMTAxMmMtMC45OTk1MiwwLjQ1MjI4IC0xLjI0NDk3LDIuMDQzMDcgLTAuNTQ4MDEsMi42Nzc0MmMwLjYyNjAxLDAuNTY5NDYgMS40MTAyMiwwLjY3OTYyIDIuMjk4OTcsMC43MTYwOHoiLz48cGF0aCBkPSJNMjM4LjIyNDYzLDE3NS4wNTQzNWMwLjAzMDE1LC0wLjA0ODQ3IDAuMDcwOTYsLTAuMDk2MTQgMC4xMjM2MywtMC4xNDIyMWMwLjMwNDc2LC0wLjI2NjQgMC41MzExMiwtMC4wODIzMiAwLjcxMzY1LDAuMjA1NzFjMC4wOTI4OCwwLjE0NjYyIDAuMTA1OTQsMC4zOTA5OSAwLjA1NTY5LDAuNTYxNDRjLTAuMDI4MzUsMC4wOTY5NSAtMC4yNzU4MSwwLjIwOTExIC0wLjM5NDAyLDAuMTgxODdjLTAuNDAyMjYsLTAuMDkyNTQgLTAuNzEwNDQsLTAuNDY3NyAtMC40OTg5NSwtMC44MDY4MXoiLz48L2c+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPg==';
/**
* Host for the Control Fun blocks in Scratch 3.0
* @param {Runtime} runtime - the runtime instantiating this block package.
* @constructor
*/
class Scratch3ControlFunBlocks {
constructor (runtime) {
/**
* The runtime instantiating this block package.
* @type {Runtime}
*/
this.runtime = runtime;
this._initialized = false;
this._oldCreatePenSkin = () => { throw new Error('Not initialized yet!'); };
this._newPenSkinId = -1;
this._stagePenSkinId = -1;
}
static get DEFAULT_DRAW_STATE () {
return {
penSkinId: -1
};
}
static get STATE_KEY () {
return 'towerofnix.drawOnCostume';
}
_getDrawState (target) {
let drawState = target.getCustomState(Scratch3ControlFunBlocks.STATE_KEY);
if (!drawState) {
drawState = Clone.simple(Scratch3ControlFunBlocks.DEFAULT_DRAW_STATE);
target.setCustomState(Scratch3ControlFunBlocks.STATE_KEY, drawState);
}
return drawState;
}
/**
* @returns {object} metadata for this extension and its blocks.
*/
getInfo () {
return {
id: 'controlFun',
name: formatMessage({
id: 'controlFun.categoryName',
default: 'Control Fun',
description: 'Label for the control fun extension category'
}),
blockIconURI: blockIconURI,
blocks: [
{
opcode: 'setPenTarget',
blockType: BlockType.COMMAND,
text: formatMessage({
id: 'controlFun.setPenTarget',
default: 'draw on [TARGET] with pen',
description: 'change what the pen will draw on'
}),
arguments: {
TARGET: {
type: ArgumentType.STRING,
menu: 'PEN_TARGET',
defaultValue: 'my costume'
}
}
},
{
opcode: 'useAsCostume',
blockType: BlockType.COMMAND,
text: formatMessage({
id: 'controlFun.useAsCostume',
default: 'use my canvas as costume',
description: 'use the sprite\'s pen canvas as its costume'
})
}
],
menus: {
PEN_TARGET: [
{text: 'my costume', value: 'my costume'},
{text: 'stage', value: 'stage'}
]
}
};
}
setPenTarget (args, util) {
const { target } = util.thread;
this._initialize(target.renderer);
if (args.TARGET === 'my costume') {
const drawState = this._getDrawState(target);
this._newPenSkinId = this._getStateSkin(drawState);
} else if (args.TARGET === 'stage') {
this._newPenSkinId = this._stagePenSkinId;
}
}
useAsCostume (args, util) {
const { target } = util.thread;
const { renderer } = target;
this._initialize(renderer);
const skinId = this._getStateSkin(this._getDrawState(target));
renderer.updateDrawableProperties(target.drawableID, {
skinId: skinId
});
}
_getStateSkin(drawState) {
if (drawState.penSkinId < 0) {
drawState.penSkinId = this._oldCreatePenSkin();
}
return drawState.penSkinId;
}
_initialize(renderer) {
if (!this._initialized) {
this._oldCreatePenSkin = renderer.createPenSkin.bind(renderer);
this._determineStagePenSkinID(renderer);
this._initialized = true;
}
}
_determineStagePenSkinID(renderer) {
// The stage pen skin may already exist, i.e. if we the pen was set down before this was called.
this._stagePenSkinId = renderer._allSkins.findIndex(skin => 'drawLine' in skin);
// If it does exist, immediately override the _allSkins renderer property.
if (this._stagePenSkinId >= 0) {
// Pass false because it's not the first time it will have been called; i.e. the internal Scratch code
// will already have run, and we can right away start returning the pen skin ID set by this extension.
this._overridePenSkin(renderer, false)
}
// If it does not yet exist, prepare for it to be created. Once it is, _allSkins will be overridden.
if (this._stagePenSkinId < 0) {
this._prepareForStagePenSkinID(renderer);
}
}
_prepareForStagePenSkinID(renderer) {
renderer.createPenSkin = () => {
this._stagePenSkinId = this._oldCreatePenSkin();
if (this._newPenSkinId < 0) {
this._newPenSkinId = this._stagePenSkinId;
}
// First time we get from _allSkins after createPenSkin should still return actual stage pen skin, because
// the get is from internal Scratch code. After that it should return the set (overridden) pen skin ID.
firstTime = true;
this._overridePenSkin(renderer, firstTime);
return this._stagePenSkinId;
};
}
_overridePenSkin(renderer, firstTime) {
renderer._allSkins = new Proxy(renderer._allSkins, {
get: (target, key) => {
if (firstTime) {
firstTime = false;
return target[key];
}
if (key === this._stagePenSkinId.toString()) {
return this._getPenSkin(target);
} else {
return target[key];
}
}
});
}
_getPenSkin(allSkins) {
return allSkins[this._newPenSkinId];
}
}
module.exports = Scratch3ControlFunBlocks;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment