diff options
| -rw-r--r-- | .gitignore | 4 | ||||
| -rw-r--r-- | .pylint.rc | 480 | ||||
| -rw-r--r-- | .style.yapf | 413 | ||||
| -rw-r--r-- | Makefile | 24 | ||||
| -rw-r--r-- | Pipfile | 15 | ||||
| -rw-r--r-- | Pipfile.lock | 343 | ||||
| -rw-r--r-- | README.md | 27 | ||||
| -rwxr-xr-x | generate-gallery.py | 154 | ||||
| -rw-r--r-- | projects/test/test/Scratch Project.html | 433 | ||||
| -rw-r--r-- | projects/test/test/meta.toml | 3 | ||||
| -rw-r--r-- | templates/index.css | 144 | ||||
| -rw-r--r-- | templates/index.html | 81 | ||||
| -rw-r--r-- | templates/index.js | 33 | ||||
| -rwxr-xr-x | tools/check-pylint | 22 | ||||
| -rw-r--r-- | turbowarp-packager-settings.json | 1 |
15 files changed, 2177 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c5e1380 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +__pycache__ +build/ +projects/ +!projects/test diff --git a/.pylint.rc b/.pylint.rc new file mode 100644 index 0000000..81e83c6 --- /dev/null +++ b/.pylint.rc @@ -0,0 +1,480 @@ +[MASTER] + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code. +extension-pkg-whitelist= + +# Add files or directories to the blacklist. They should be base names, not +# paths. +ignore=CVS + +# Add files or directories matching the regex patterns to the blacklist. The +# regex matches against base names, not paths. +ignore-patterns= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the +# number of processors available to use. +jobs=1 + +# Control the amount of potential inferred values when inferring a single +# object. This can help the performance when dealing with large functions or +# complex, nested conditions. +limit-inference-results=100 + +# List of plugins (as comma separated values of python module names) to load, +# usually to register additional checkers. +load-plugins= + +# Pickle collected data for later comparisons. +persistent=yes + +# Specify a configuration file. +#rcfile= + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. +confidence= + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +enable=c-extension-no-member + + +[REPORTS] + +# Python expression which should return a score less than or equal to 10. You +# have access to the variables 'error', 'warning', 'refactor', and 'convention' +# which contain the number of messages in each category, as well as 'statement' +# which is the total number of statements analyzed. This score is used by the +# global evaluation report (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details. +#msg-template= + +# Set the output format. Available formats are text, parseable, colorized, json +# and msvs (visual studio). You can also give a reporter class, e.g. +# mypackage.mymodule.MyReporterClass. +output-format=text + +# Tells whether to display a full report or only the messages. +reports=no + +# Activate the evaluation score. +score=yes + + +[REFACTORING] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + +# Complete name of functions that never returns. When checking for +# inconsistent-return-statements if a never returning function is called then +# it will be considered as an explicit return statement and no message will be +# printed. +never-returning-functions=sys.exit + + +[FORMAT] + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )?<?https?://\S+>?$ + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + +# Maximum number of characters on a single line. +max-line-length=100 + +# Maximum number of lines in a module. +max-module-lines=1000 + +# Allow the body of a class to be on the same line as the declaration if body +# contains single statement. +single-line-class-stmt=no + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + + +[BASIC] + +# Naming style matching correct argument names. +argument-naming-style=snake_case + +# Regular expression matching correct argument names. Overrides argument- +# naming-style. +#argument-rgx= + +# Naming style matching correct attribute names. +attr-naming-style=snake_case + +# Regular expression matching correct attribute names. Overrides attr-naming- +# style. +#attr-rgx= + +# Bad variable names which should always be refused, separated by a comma. +bad-names=foo, + bar, + baz, + toto, + tutu, + tata + +# Naming style matching correct class attribute names. +class-attribute-naming-style=any + +# Regular expression matching correct class attribute names. Overrides class- +# attribute-naming-style. +#class-attribute-rgx= + +# Naming style matching correct class names. +class-naming-style=PascalCase + +# Regular expression matching correct class names. Overrides class-naming- +# style. +#class-rgx= + +# Naming style matching correct constant names. +const-naming-style=UPPER_CASE + +# Regular expression matching correct constant names. Overrides const-naming- +# style. +#const-rgx= + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=-1 + +# Naming style matching correct function names. +function-naming-style=snake_case + +# Regular expression matching correct function names. Overrides function- +# naming-style. +#function-rgx= + +# Good variable names which should always be accepted, separated by a comma. +good-names=i, + j, + k, + ex, + Run, + _ + +# Include a hint for the correct naming format with invalid-name. +include-naming-hint=no + +# Naming style matching correct inline iteration names. +inlinevar-naming-style=any + +# Regular expression matching correct inline iteration names. Overrides +# inlinevar-naming-style. +#inlinevar-rgx= + +# Naming style matching correct method names. +method-naming-style=snake_case + +# Regular expression matching correct method names. Overrides method-naming- +# style. +#method-rgx= + +# Naming style matching correct module names. +module-naming-style=snake_case + +# Regular expression matching correct module names. Overrides module-naming- +# style. +#module-rgx= + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ + +# List of decorators that produce properties, such as abc.abstractproperty. Add +# to this list to register other decorators that produce valid properties. +# These decorators are taken in consideration only for invalid-name. +property-classes=abc.abstractproperty + +# Naming style matching correct variable names. +variable-naming-style=snake_case + +# Regular expression matching correct variable names. Overrides variable- +# naming-style. +#variable-rgx= + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME, + XXX, + + +[TYPECHECK] + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# Tells whether to warn about missing members when the owner of the attribute +# is inferred to be None. +ignore-none=yes + +# This flag controls whether pylint should warn about no-member and similar +# checks whenever an opaque object is returned when inferring. The inference +# can return multiple potential results while evaluating a Python object, but +# some branches might not be evaluated, which results in partial inference. In +# that case, it might be useful to still emit no-member and other checks for +# the rest of the inferred objects. +ignore-on-opaque-inference=yes + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis). It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= + +# Show a hint with possible names when a member name was not found. The aspect +# of finding the hint is based on edit distance. +missing-member-hint=yes + +# The minimum edit distance a name should have in order to be considered a +# similar match for a missing member name. +missing-member-hint-distance=1 + +# The total number of similar names that should be taken in consideration when +# showing a hint for a missing member. +missing-member-max-choices=1 + +# List of decorators that change the signature of a decorated function. +signature-mutators= + + +[SPELLING] + +# Limits count of emitted suggestions for spelling mistakes. +max-spelling-suggestions=4 + +# Spelling dictionary name. Available dictionaries: none. To make it work, +# install the python-enchant package. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains the private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to the private dictionary (see the +# --spelling-private-dict-file option) instead of raising a message. +spelling-store-unknown-words=no + + +[STRING] + +# This flag controls whether the implicit-str-concat-in-sequence should +# generate a warning on implicit string concatenation in sequences defined over +# several lines. +check-str-concat-over-line-jumps=no + + +[VARIABLES] + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid defining new builtins when possible. +additional-builtins= + +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_, + _cb + +# A regular expression matching the name of dummy variables (i.e. expected to +# not be used). +dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore. +ignored-argument-names=_.*|^ignored_|^unused_ + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io + + +[LOGGING] + +# Format style used to check logging format string. `old` means using % +# formatting, `new` is for `{}` formatting,and `fstr` is for f-strings. +logging-format-style=old + +# Logging modules to check that the string format arguments are in logging +# function parameter format. +logging-modules=logging + + +[SIMILARITIES] + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=no + +# Minimum lines number of a similarity. +min-similarity-lines=4 + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__, + __new__, + setUp, + __post_init__ + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict, + _fields, + _replace, + _source, + _make + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=cls + + +[DESIGN] + +# Maximum number of arguments for function / method. +max-args=5 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Maximum number of boolean expressions in an if statement (see R0916). +max-bool-expr=5 + +# Maximum number of branch for function / method body. +max-branches=12 + +# Maximum number of locals for function / method body. +max-locals=15 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of return / yield for function / method body. +max-returns=6 + +# Maximum number of statements in function / method body. +max-statements=50 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + + +[IMPORTS] + +# List of modules that can be imported at any level, not just the top level +# one. +allow-any-import-level= + +# Allow wildcard imports from modules that define __all__. +allow-wildcard-with-all=no + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + +# Deprecated modules which should not be used, separated by a comma. +deprecated-modules=optparse,tkinter.tix + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled). +ext-import-graph= + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled). +import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled). +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant + +# Couples of modules and preferred modules, separated by a comma. +preferred-modules= + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when being caught. Defaults to +# "BaseException, Exception". +overgeneral-exceptions=builtin.BaseException, + builtin.Exception diff --git a/.style.yapf b/.style.yapf new file mode 100644 index 0000000..8a49fd1 --- /dev/null +++ b/.style.yapf @@ -0,0 +1,413 @@ +[style] +# Align closing bracket with visual indentation. +align_closing_bracket_with_visual_indent=True + +# Allow dictionary keys to exist on multiple lines. For example: +# +# x = { +# ('this is the first element of a tuple', +# 'this is the second element of a tuple'): +# value, +# } +allow_multiline_dictionary_keys=False + +# Allow lambdas to be formatted on more than one line. +allow_multiline_lambdas=False + +# Allow splitting before a default / named assignment in an argument list. +allow_split_before_default_or_named_assigns=True + +# Allow splits before the dictionary value. +allow_split_before_dict_value=True + +# Let spacing indicate operator precedence. For example: +# +# a = 1 * 2 + 3 / 4 +# b = 1 / 2 - 3 * 4 +# c = (1 + 2) * (3 - 4) +# d = (1 - 2) / (3 + 4) +# e = 1 * 2 - 3 +# f = 1 + 2 + 3 + 4 +# +# will be formatted as follows to indicate precedence: +# +# a = 1*2 + 3/4 +# b = 1/2 - 3*4 +# c = (1+2) * (3-4) +# d = (1-2) / (3+4) +# e = 1*2 - 3 +# f = 1 + 2 + 3 + 4 +# +arithmetic_precedence_indication=False + +# Number of blank lines surrounding top-level function and class +# definitions. +blank_lines_around_top_level_definition=2 + +# Number of blank lines between top-level imports and variable +# definitions. +blank_lines_between_top_level_imports_and_variables=1 + +# Insert a blank line before a class-level docstring. +blank_line_before_class_docstring=False + +# Insert a blank line before a module docstring. +blank_line_before_module_docstring=False + +# Insert a blank line before a 'def' or 'class' immediately nested +# within another 'def' or 'class'. For example: +# +# class Foo: +# # <------ this blank line +# def method(): +# pass +blank_line_before_nested_class_or_def=True + +# Do not split consecutive brackets. Only relevant when +# dedent_closing_brackets is set. For example: +# +# call_func_that_takes_a_dict( +# { +# 'key1': 'value1', +# 'key2': 'value2', +# } +# ) +# +# would reformat to: +# +# call_func_that_takes_a_dict({ +# 'key1': 'value1', +# 'key2': 'value2', +# }) +coalesce_brackets=False + +# The column limit. +column_limit=99 + +# The style for continuation alignment. Possible values are: +# +# - SPACE: Use spaces for continuation alignment. This is default behavior. +# - FIXED: Use fixed number (CONTINUATION_INDENT_WIDTH) of columns +# (ie: CONTINUATION_INDENT_WIDTH/INDENT_WIDTH tabs or +# CONTINUATION_INDENT_WIDTH spaces) for continuation alignment. +# - VALIGN-RIGHT: Vertically align continuation lines to multiple of +# INDENT_WIDTH columns. Slightly right (one tab or a few spaces) if +# cannot vertically align continuation lines with indent characters. +continuation_align_style=SPACE + +# Indent width used for line continuations. +continuation_indent_width=4 + +# Put closing brackets on a separate line, dedented, if the bracketed +# expression can't fit in a single line. Applies to all kinds of brackets, +# including function definitions and calls. For example: +# +# config = { +# 'key1': 'value1', +# 'key2': 'value2', +# } # <--- this bracket is dedented and on a separate line +# +# time_series = self.remote_client.query_entity_counters( +# entity='dev3246.region1', +# key='dns.query_latency_tcp', +# transform=Transformation.AVERAGE(window=timedelta(seconds=60)), +# start_ts=now()-timedelta(days=3), +# end_ts=now(), +# ) # <--- this bracket is dedented and on a separate line +dedent_closing_brackets=False + +# Disable the heuristic which places each list element on a separate line +# if the list is comma-terminated. +# +# Note: The behavior of this flag changed in v0.40.3. Before, if this flag +# was true, we would split lists that contained a trailing comma or a +# comment. Now, we have a separate flag, `DISABLE_SPLIT_LIT_WITH_COMMENT`, +# that controls splitting when a list contains a comment. To get the old +# behavior, set both flags to true. More information in CHANGELOG.md. +disable_ending_comma_heuristic=False + +# +# Don't put every element on a new line within a list that contains +# interstitial comments. +disable_split_list_with_comment=False + +# Place each dictionary entry onto its own line. +each_dict_entry_on_separate_line=True + +# Require multiline dictionary even if it would normally fit on one line. +# For example: +# +# config = { +# 'key1': 'value1' +# } +force_multiline_dict=False + +# The regex for an i18n comment. The presence of this comment stops +# reformatting of that line, because the comments are required to be +# next to the string they translate. +i18n_comment= + +# The i18n function call names. The presence of this function stops +# reformattting on that line, because the string it has cannot be moved +# away from the i18n comment. +i18n_function_call= + +# Indent blank lines. +indent_blank_lines=False + +# Put closing brackets on a separate line, indented, if the bracketed +# expression can't fit in a single line. Applies to all kinds of brackets, +# including function definitions and calls. For example: +# +# config = { +# 'key1': 'value1', +# 'key2': 'value2', +# } # <--- this bracket is indented and on a separate line +# +# time_series = self.remote_client.query_entity_counters( +# entity='dev3246.region1', +# key='dns.query_latency_tcp', +# transform=Transformation.AVERAGE(window=timedelta(seconds=60)), +# start_ts=now()-timedelta(days=3), +# end_ts=now(), +# ) # <--- this bracket is indented and on a separate line +indent_closing_brackets=False + +# Indent the dictionary value if it cannot fit on the same line as the +# dictionary key. For example: +# +# config = { +# 'key1': +# 'value1', +# 'key2': value1 + +# value2, +# } +indent_dictionary_value=False + +# The number of columns to use for indentation. +indent_width=4 + +# Join short lines into one line. E.g., single line 'if' statements. +join_multiple_lines=True + +# Do not include spaces around selected binary operators. For example: +# +# 1 + 2 * 3 - 4 / 5 +# +# will be formatted as follows when configured with "*,/": +# +# 1 + 2*3 - 4/5 +no_spaces_around_selected_binary_operators= + +# Use spaces around default or named assigns. +spaces_around_default_or_named_assign=False + +# Adds a space after the opening '{' and before the ending '}' dict +# delimiters. +# +# {1: 2} +# +# will be formatted as: +# +# { 1: 2 } +spaces_around_dict_delimiters=False + +# Adds a space after the opening '[' and before the ending ']' list +# delimiters. +# +# [1, 2] +# +# will be formatted as: +# +# [ 1, 2 ] +spaces_around_list_delimiters=False + +# Use spaces around the power operator. +spaces_around_power_operator=False + +# Use spaces around the subscript / slice operator. For example: +# +# my_list[1 : 10 : 2] +spaces_around_subscript_colon=False + +# Adds a space after the opening '(' and before the ending ')' tuple +# delimiters. +# +# (1, 2, 3) +# +# will be formatted as: +# +# ( 1, 2, 3 ) +spaces_around_tuple_delimiters=False + +# The number of spaces required before a trailing comment. +# This can be a single value (representing the number of spaces +# before each trailing comment) or list of values (representing +# alignment column values; trailing comments within a block will +# be aligned to the first column value that is greater than the maximum +# line length within the block). For example: +# +# With spaces_before_comment=5: +# +# 1 + 1 # Adding values +# +# will be formatted as: +# +# 1 + 1 # Adding values <-- 5 spaces between the end of the +# # statement and comment +# +# With spaces_before_comment=15, 20: +# +# 1 + 1 # Adding values +# two + two # More adding +# +# longer_statement # This is a longer statement +# short # This is a shorter statement +# +# a_very_long_statement_that_extends_beyond_the_final_column # Comment +# short # This is a shorter statement +# +# will be formatted as: +# +# 1 + 1 # Adding values <-- end of line comments in block +# # aligned to col 15 +# two + two # More adding +# +# longer_statement # This is a longer statement <-- end of line +# # comments in block aligned to col 20 +# short # This is a shorter statement +# +# a_very_long_statement_that_extends_beyond_the_final_column # Comment <-- the end of line comments are aligned based on the line length +# short # This is a shorter statement +# +spaces_before_comment=2 + +# Insert a space between the ending comma and closing bracket of a list, +# etc. +space_between_ending_comma_and_closing_bracket=True + +# Use spaces inside brackets, braces, and parentheses. For example: +# +# method_call( 1 ) +# my_dict[ 3 ][ 1 ][ get_index( *args, **kwargs ) ] +# my_set = { 1, 2, 3 } +space_inside_brackets=False + +# Split before arguments. +split_all_comma_separated_values=False + +# Split before arguments, but do not split all subexpressions recursively +# (unless needed). +split_all_top_level_comma_separated_values=False + +# Split before arguments if the argument list is terminated by a +# comma. +split_arguments_when_comma_terminated=False + +# Set to True to prefer splitting before '+', '-', '*', '/', '//', or '@' +# rather than after. +split_before_arithmetic_operator=False + +# Set to True to prefer splitting before '&', '|' or '^' rather than +# after. +split_before_bitwise_operator=True + +# Split before the closing bracket if a list or dict literal doesn't fit on +# a single line. +split_before_closing_bracket=True + +# Split before a dictionary or set generator (comp_for). For example, note +# the split before the 'for': +# +# foo = { +# variable: 'Hello world, have a nice day!' +# for variable in bar if variable != 42 +# } +split_before_dict_set_generator=True + +# Split before the '.' if we need to split a longer expression: +# +# foo = ('This is a really long string: {}, {}, {}, {}'.format(a, b, c, d)) +# +# would reformat to something like: +# +# foo = ('This is a really long string: {}, {}, {}, {}' +# .format(a, b, c, d)) +split_before_dot=False + +# Split after the opening paren which surrounds an expression if it doesn't +# fit on a single line. +split_before_expression_after_opening_paren=False + +# If an argument / parameter list is going to be split, then split before +# the first argument. +split_before_first_argument=False + +# Set to True to prefer splitting before 'and' or 'or' rather than +# after. +split_before_logical_operator=True + +# Split named assignments onto individual lines. +split_before_named_assigns=True + +# Set to True to split list comprehensions and generators that have +# non-trivial expressions and multiple clauses before each of these +# clauses. For example: +# +# result = [ +# a_long_var + 100 for a_long_var in xrange(1000) +# if a_long_var % 10] +# +# would reformat to something like: +# +# result = [ +# a_long_var + 100 +# for a_long_var in xrange(1000) +# if a_long_var % 10] +split_complex_comprehension=False + +# The penalty for splitting right after the opening bracket. +split_penalty_after_opening_bracket=300 + +# The penalty for splitting the line after a unary operator. +split_penalty_after_unary_operator=10000 + +# The penalty of splitting the line around the '+', '-', '*', '/', '//', +# `%`, and '@' operators. +split_penalty_arithmetic_operator=300 + +# The penalty for splitting right before an if expression. +split_penalty_before_if_expr=0 + +# The penalty of splitting the line around the '&', '|', and '^' operators. +split_penalty_bitwise_operator=300 + +# The penalty for splitting a list comprehension or generator +# expression. +split_penalty_comprehension=80 + +# The penalty for characters over the column limit. +split_penalty_excess_character=7000 + +# The penalty incurred by adding a line split to the logical line. The +# more line splits added the higher the penalty. +split_penalty_for_added_line_split=30 + +# The penalty of splitting a list of "import as" names. For example: +# +# from a_very_long_or_indented_module_name_yada_yad import (long_argument_1, +# long_argument_2, +# long_argument_3) +# +# would reformat to something like: +# +# from a_very_long_or_indented_module_name_yada_yad import ( +# long_argument_1, long_argument_2, long_argument_3) +split_penalty_import_names=0 + +# The penalty of splitting the line around the 'and' and 'or' operators. +split_penalty_logical_operator=300 + +# Use the Tab character for indentation. +use_tabs=False + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8947803 --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ +SRC=$(wildcard *.py) + +.PHONY: all clean check check-pylint check-format check-mypy +all: build/index.html + +build/index.html: templates/$(wildcard index.*) generate-gallery.py turbowarp-packager-settings.json + ./generate-gallery.py + +clean: + rm -rf build/ + +check: check-pylint check-format check-mypy + +check-pylint: + pylint --rcfile=.pylint.rc -j 0 $(SRC) || ./tools/check-pylint $$? + +check-format: + yapf -d $(SRC) + +check-mypy: + mypy $(SRC) + +format: + yapf -i $(SRC) @@ -0,0 +1,15 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +jinja2 = "*" + +[dev-packages] +yapf = "*" +mypy = "*" +pylint = "*" + +[requires] +python_version = "3.14" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..1a6de2d --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,343 @@ +{ + "_meta": { + "hash": { + "sha256": "0195fb2f4520658accb5cdee80209381a19caed3b15c809017af884688112dcc" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.14" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "jinja2": { + "hashes": [ + "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", + "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67" + ], + "index": "pypi", + "markers": "python_version >= '3.7'", + "version": "==3.1.6" + }, + "markupsafe": { + "hashes": [ + "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", + "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", + "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", + "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", + "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", + "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c", + "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", + "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", + "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", + "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", + "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", + "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26", + "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", + "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", + "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", + "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", + "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", + "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", + "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", + "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", + "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", + "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", + "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", + "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", + "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", + "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758", + "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", + "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8", + "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", + "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", + "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", + "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", + "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", + "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", + "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", + "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", + "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2", + "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", + "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", + "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", + "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", + "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", + "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", + "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", + "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", + "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e", + "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", + "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", + "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", + "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", + "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", + "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", + "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b", + "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", + "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", + "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", + "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d", + "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", + "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", + "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", + "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", + "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", + "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", + "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", + "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", + "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", + "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", + "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", + "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", + "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", + "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", + "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", + "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", + "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7", + "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", + "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", + "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", + "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", + "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", + "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42", + "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", + "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", + "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", + "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", + "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", + "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", + "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc", + "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", + "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50" + ], + "markers": "python_version >= '3.9'", + "version": "==3.0.3" + } + }, + "develop": { + "astroid": { + "hashes": [ + "sha256:08d1de40d251cc3dc4a7a12726721d475ac189e4e583d596ece7422bc176bda3", + "sha256:864a0a34af1bd70e1049ba1e61cee843a7252c826d97825fcee9b2fcbd9e1b14" + ], + "markers": "python_full_version >= '3.10.0'", + "version": "==4.0.3" + }, + "dill": { + "hashes": [ + "sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d", + "sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa" + ], + "markers": "python_version >= '3.9'", + "version": "==0.4.1" + }, + "isort": { + "hashes": [ + "sha256:1bcabac8bc3c36c7fb7b98a76c8abb18e0f841a3ba81decac7691008592499c1", + "sha256:5513527951aadb3ac4292a41a16cbc50dd1642432f5e8c20057d414bdafb4187" + ], + "markers": "python_full_version >= '3.10.0'", + "version": "==7.0.0" + }, + "librt": { + "hashes": [ + "sha256:00105e7d541a8f2ee5be52caacea98a005e0478cfe78c8080fbb7b5d2b340c63", + "sha256:0241a6ed65e6666236ea78203a73d800dbed896cf12ae25d026d75dc1fcd1dac", + "sha256:03679b9856932b8c8f674e87aa3c55ea11c9274301f76ae8dc4d281bda55cf62", + "sha256:047164e5f68b7a8ebdf9fae91a3c2161d3192418aadd61ddd3a86a56cbe3dc85", + "sha256:171ca3a0a06c643bd0a2f62a8944e1902c94aa8e5da4db1ea9a8daf872685365", + "sha256:1a4ede613941d9c3470b0368be851df6bb78ab218635512d0370b27a277a0862", + "sha256:20e3946863d872f7cabf7f77c6c9d370b8b3d74333d3a32471c50d3a86c0a232", + "sha256:2991b6c3775383752b3ca0204842743256f3ad3deeb1d0adc227d56b78a9a850", + "sha256:31724b93baa91512bd0a376e7cf0b59d8b631ee17923b1218a65456fa9bda2e7", + "sha256:3469e1af9f1380e093ae06bedcbdd11e407ac0b303a56bbe9afb1d6824d4982d", + "sha256:389bd25a0db916e1d6bcb014f11aa9676cedaa485e9ec3752dfe19f196fd377b", + "sha256:3968762fec1b2ad34ce57458b6de25dbb4142713e9ca6279a0d352fa4e9f452b", + "sha256:39a4c76fee41007070f872b648cc2f711f9abf9a13d0c7162478043377b52c8e", + "sha256:3d1322800771bee4a91f3b4bd4e49abc7d35e65166821086e5afd1e6c0d9be44", + "sha256:41d7bb1e07916aeb12ae4a44e3025db3691c4149ab788d0315781b4d29b86afb", + "sha256:43d4e71b50763fcdcf64725ac680d8cfa1706c928b844794a7aa0fa9ac8e5f09", + "sha256:445b7304145e24c60288a2f172b5ce2ca35c0f81605f5299f3fa567e189d2e32", + "sha256:44e0c2cbc9bebd074cf2cdbe472ca185e824be4e74b1c63a8e934cea674bebf2", + "sha256:451e7ffcef8f785831fdb791bd69211f47e95dc4c6ddff68e589058806f044c6", + "sha256:46ef1f4b9b6cc364b11eea0ecc0897314447a66029ee1e55859acb3dd8757c93", + "sha256:4864045f49dc9c974dadb942ac56a74cd0479a2aafa51ce272c490a82322ea3c", + "sha256:4adc73614f0d3c97874f02f2c7fd2a27854e7e24ad532ea6b965459c5b757eca", + "sha256:4c3995abbbb60b3c129490fa985dfe6cac11d88fc3c36eeb4fb1449efbbb04fc", + "sha256:4d2f1e492cae964b3463a03dc77a7fe8742f7855d7258c7643f0ee32b6651dd3", + "sha256:535929b6eff670c593c34ff435d5440c3096f20fa72d63444608a5aef64dd581", + "sha256:5363427bc6a8c3b1719f8f3845ea53553d301382928a86e8fab7984426949bce", + "sha256:54feb7b4f2f6706bb82325e836a01be805770443e2400f706e824e91f6441dde", + "sha256:57175aa93f804d2c08d2edb7213e09276bd49097611aefc37e3fa38d1fb99ad0", + "sha256:5bcaaf624fd24e6a0cb14beac37677f90793a96864c67c064a91458611446e83", + "sha256:60c299e555f87e4c01b2eca085dfccda1dde87f5a604bb45c2906b8305819a93", + "sha256:631599598e2c76ded400c0a8722dec09217c89ff64dc54b060f598ed68e7d2a8", + "sha256:63937bd0f4d1cb56653dc7ae900d6c52c41f0015e25aaf9902481ee79943b33a", + "sha256:66daa6ac5de4288a5bbfbe55b4caa7bf0cd26b3269c7a476ffe8ce45f837f87d", + "sha256:6938cc2de153bc927ed8d71c7d2f2ae01b4e96359126c602721340eb7ce1a92d", + "sha256:6d772edc6a5f7835635c7562f6688e031f0b97e31d538412a852c49c9a6c92d5", + "sha256:6db5faf064b5bab9675c32a873436b31e01d66ca6984c6f7f92621656033a708", + "sha256:73fd300f501a052f2ba52ede721232212f3b06503fa12665408ecfc9d8fd149c", + "sha256:79feb4d00b2a4e0e05c9c56df707934f41fcb5fe53fd9efb7549068d0495b758", + "sha256:7aa7d5457b6c542ecaed79cec4ad98534373c9757383973e638ccced0f11f46d", + "sha256:7b0803e9008c62a7ef79058233db7ff6f37a9933b8f2573c05b07ddafa226611", + "sha256:7e03bea66af33c95ce3addf87a9bf1fcad8d33e757bc479957ddbc0e4f7207ac", + "sha256:864c4b7083eeee250ed55135d2127b260d7eb4b5e953a9e5df09c852e327961b", + "sha256:8766ece9de08527deabcd7cb1b4f1a967a385d26e33e536d6d8913db6ef74f06", + "sha256:87808a8d1e0bd62a01cafc41f0fd6818b5a5d0ca0d8a55326a81643cdda8f873", + "sha256:907ad09cfab21e3c86e8f1f87858f7049d1097f77196959c033612f532b4e592", + "sha256:95b67aa7eff150f075fda09d11f6bfb26edffd300f6ab1666759547581e8f666", + "sha256:978e8b5f13e52cf23a9e80f3286d7546baa70bc4ef35b51d97a709d0b28e537c", + "sha256:9b6943885b2d49c48d0cff23b16be830ba46b0152d98f62de49e735c6e655a63", + "sha256:9c1ba843ae20db09b9d5c80475376168feb2640ce91cd9906414f23cc267a1ff", + "sha256:a14229ac62adcf1b90a15992f1ab9c69ae8b99ffb23cb64a90878a6e8a2f5b81", + "sha256:a36515b1328dc5b3ffce79fe204985ca8572525452eacabee2166f44bb387b2c", + "sha256:ac9c8a458245c7de80bc1b9765b177055efff5803f08e548dd4bb9ab9a8d789b", + "sha256:ad64a14b1e56e702e19b24aae108f18ad1bf7777f3af5fcd39f87d0c5a814449", + "sha256:b09c52ed43a461994716082ee7d87618096851319bf695d57ec123f2ab708951", + "sha256:b45306a1fc5f53c9330fbee134d8b3227fe5da2ab09813b892790400aa49352d", + "sha256:b5b007bb22ea4b255d3ee39dfd06d12534de2fcc3438567d9f48cdaf67ae1ae3", + "sha256:b7e7f140c5169798f90b80d6e607ed2ba5059784968a004107c88ad61fb3641d", + "sha256:b9122094e3f24aa759c38f46bd8863433820654927370250f460ae75488b66ea", + "sha256:bb7a7807523a31f03061288cc4ffc065d684c39db7644c676b47d89553c0d714", + "sha256:be927c3c94c74b05128089a955fba86501c3b544d1d300282cc1b4bd370cb418", + "sha256:bfde8a130bd0f239e45503ab39fab239ace094d63ee1d6b67c25a63d741c0f71", + "sha256:c6f8947d3dfd7f91066c5b4385812c18be26c9d5a99ca56667547f2c39149d94", + "sha256:c7e8f88f79308d86d8f39c491773cbb533d6cb7fa6476f35d711076ee04fceb6", + "sha256:ca916919793a77e4a98d4a1701e345d337ce53be4a16620f063191f7322ac80f", + "sha256:cf243da9e42d914036fd362ac3fa77d80a41cadcd11ad789b1b5eec4daaf67ca", + "sha256:d6f254d096d84156a46a84861183c183d30734e52383602443292644d895047c", + "sha256:dbd79caaf77a3f590cbe32dc2447f718772d6eea59656a7dcb9311161b10fa75", + "sha256:ddb52499d0b3ed4aa88746aaf6f36a08314677d5c346234c3987ddc506404eac", + "sha256:e90a8e237753c83b8e484d478d9a996dc5e39fd5bd4c6ce32563bc8123f132be", + "sha256:e9c0afebbe6ce177ae8edba0c7c4d626f2a0fc12c33bb993d163817c41a7a05c", + "sha256:f11b300027ce19a34f6d24ebb0a25fd0e24a9d53353225a5c1e6cadbf2916b2e", + "sha256:f1ade7f31675db00b514b98f9ab9a7698c7282dad4be7492589109471852d398", + "sha256:f8f4a901a3fa28969d6e4519deceab56c55a09d691ea7b12ca830e2fa3461e34", + "sha256:fdec6e2368ae4f796fc72fad7fd4bd1753715187e6d870932b0904609e7c878e", + "sha256:ff3e9c11aa260c31493d4b3197d1e28dd07768594a4f92bec4506849d736248f", + "sha256:ff71447cb778a4f772ddc4ce360e6ba9c95527ed84a52096bd1bbf9fee2ec7c0" + ], + "markers": "python_version >= '3.9'", + "version": "==0.7.8" + }, + "mccabe": { + "hashes": [ + "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", + "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" + ], + "markers": "python_version >= '3.6'", + "version": "==0.7.0" + }, + "mypy": { + "hashes": [ + "sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd", + "sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b", + "sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1", + "sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", + "sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b", + "sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045", + "sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac", + "sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6", + "sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a", + "sha256:409088884802d511ee52ca067707b90c883426bd95514e8cfda8281dc2effe24", + "sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957", + "sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042", + "sha256:4f28f99c824ecebcdaa2e55d82953e38ff60ee5ec938476796636b86afa3956e", + "sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec", + "sha256:7bcfc336a03a1aaa26dfce9fff3e287a3ba99872a157561cbfcebe67c13308e3", + "sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718", + "sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f", + "sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331", + "sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1", + "sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1", + "sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13", + "sha256:b13cfdd6c87fc3efb69ea4ec18ef79c74c3f98b4e5498ca9b85ab3b2c2329a67", + "sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2", + "sha256:b7951a701c07ea584c4fe327834b92a30825514c868b1f69c30445093fdd9d5a", + "sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b", + "sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8", + "sha256:c608937067d2fc5a4dd1a5ce92fd9e1398691b8c5d012d66e1ddd430e9244376", + "sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef", + "sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288", + "sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75", + "sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74", + "sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250", + "sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab", + "sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6", + "sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", + "sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925", + "sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e", + "sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e" + ], + "index": "pypi", + "markers": "python_version >= '3.9'", + "version": "==1.19.1" + }, + "mypy-extensions": { + "hashes": [ + "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", + "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558" + ], + "markers": "python_version >= '3.8'", + "version": "==1.1.0" + }, + "pathspec": { + "hashes": [ + "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", + "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723" + ], + "markers": "python_version >= '3.9'", + "version": "==1.0.4" + }, + "platformdirs": { + "hashes": [ + "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", + "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31" + ], + "markers": "python_version >= '3.10'", + "version": "==4.5.1" + }, + "pylint": { + "hashes": [ + "sha256:63e06a37d5922555ee2c20963eb42559918c20bd2b21244e4ef426e7c43b92e0", + "sha256:d9b71674e19b1c36d79265b5887bf8e55278cbe236c9e95d22dc82cf044fdbd2" + ], + "index": "pypi", + "markers": "python_full_version >= '3.10.0'", + "version": "==4.0.4" + }, + "tomlkit": { + "hashes": [ + "sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680", + "sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064" + ], + "markers": "python_version >= '3.9'", + "version": "==0.14.0" + }, + "typing-extensions": { + "hashes": [ + "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", + "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548" + ], + "markers": "python_version >= '3.9'", + "version": "==4.15.0" + }, + "yapf": { + "hashes": [ + "sha256:00d3aa24bfedff9420b2e0d5d9f5ab6d9d4268e72afbf59bb3fa542781d5218e", + "sha256:224faffbc39c428cb095818cf6ef5511fdab6f7430a10783fdfb292ccf2852ca" + ], + "index": "pypi", + "markers": "python_version >= '3.7'", + "version": "==0.43.0" + } + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..7698619 --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# Scratch HTML Galerie + +Die *Scratch HTML Galerie* erlaubt es eine einfach HTML basierte Gallery +mehrerer Scratch Projekte zu erstellen. + +## Vorraussetzungen + +* Python >= 3.10 +* (npm) um Scratch Projekte lokal zu HTML zu konvertieren + +## Verzeichnisstruktur + +Das Spiel erwartet, dass das Spieleverzeichnis (`projects`) nach folgendem Muster angelegt ist: + +``` +projects +└── Jahrgang + └── Klasse + └── Project + ├── meta.toml -- Meta Informationen zum Project + ├── Scratch Project.html -- Zu HTML exportierte Scratch Project Datei + └── Scratch Project.s3b -- oder Scratch Project Datei + +3 directories, 2 files +``` + +## Benutzung diff --git a/generate-gallery.py b/generate-gallery.py new file mode 100755 index 0000000..454d093 --- /dev/null +++ b/generate-gallery.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python3 +"""Skript um eine HTML-Gallery fuer mehrere Scratch-Spiele zu erstellen""" +import argparse +import os +import pathlib +import tomllib +import shutil +import subprocess +import sys + +from jinja2 import Environment, FileSystemLoader, select_autoescape + + +def nested_get(data_dict, key_sequence): + """ + Retrieves a value from a nested dictionary using an iterative approach. + + Args: + data_dict (dict): The dictionary to traverse. + key_sequence (list): A list of keys representing the path. + + Returns: + Any: The value at the specified path. + """ + current_level = data_dict + for key in key_sequence: + if key not in current_level: + return None + current_level = current_level[key] + return current_level + + +def nested_set(data_dict, key_sequence, value): + """ + Sets a value in a nested dictionary, creating intermediate dictionaries if needed. + + Args: + data_dict (dict): The dictionary to modify. + key_sequence (list): A list of keys representing the path. + value (Any): The value to set. + """ + for key in key_sequence[:-1]: + data_dict = data_dict.setdefault(key, {}) + data_dict[key_sequence[-1]] = value + + +def load_projects(root: str) -> dict: + """Load all game meta data from the games directory""" + projects = {} + + for _parent, _, files in os.walk(root): + parent = pathlib.Path(_parent) + scope = nested_get(projects, parent.parts[1:]) + if scope is None: + scope = {} + nested_set(projects, parent.parts[1:], scope) + + if not 'meta.toml' in files: + continue + + with open(parent / 'meta.toml', 'rb') as meta_file: + game = tomllib.load(meta_file) + + if 'name' not in game: + game['name'] = 'Project' + + if 'authors' not in game: + game['authors'] = ['anonym'] + else: + game['authors'] = ', '.join(game['authors']) + + if 'path' not in game: + game['path'] = parent.relative_to(root) + + if 'license' not in game: + game['license'] = 'Alle Rechte vorbehalten' + + nested_set(projects, parent.parts[1:], game) + + return projects + + +def prepare_outputdir(_outdir: str, all_projects: dict): + """Prepare the output dir recreating the project structure""" + outdir = pathlib.Path(_outdir) + for section, subsections in all_projects.items(): + sectiondir = outdir / section + for subsection, projects in subsections.items(): + subsectiondir = sectiondir / subsection + for title in projects: + projectdir = subsectiondir / title + os.makedirs(projectdir, exist_ok=True) + + +def package_projects(_indir: str, _outdir: str, all_projects: dict): + """Package all scratch projects to html""" + + # Ensure that the local turbowarp-packer-cli is available through npm + subprocess.run('npm install'.split(), cwd='turbowarp-packager-cli', check=True) + _cmd = 'npx turbowarp-packager-cli -s ../turbowarp-packager-settings.json -i "{infile}" -o "{outdir}"' + + indir = pathlib.Path(_indir) + outdir = pathlib.Path(_outdir) + for section, subsections in all_projects.items(): + for subsection, projects in subsections.items(): + for title, project in projects.items(): + print(f'package {title}') + projectindir = indir / section / subsection / title + projectoutdir = outdir / section / subsection / title + infile = projectindir / project['entry'] + + print(projectindir / 'meta.toml', projectoutdir / 'meta.toml') + shutil.copyfile(projectindir / 'meta.toml', projectoutdir / 'meta.toml') + + # The project is not a scratch file + if not infile.suffix == '.sb3': + print(infile, projectoutdir / project['entry']) + shutil.copyfile(infile, projectoutdir / project['entry']) + continue + + cmd = _cmd.format(infile='..' / infile, outdir='..' / projectoutdir) + print(cmd) + subprocess.run(cmd, cwd='turbowarp-packager-cli', check=True, shell=True) + project['entry'] = 'demo_output.html' + + +def main(): + """Main entry point to generate a HTML Gallery""" + parser = argparse.ArgumentParser() + parser.add_argument('--author', default='Florian Fischer') + parser.add_argument('--title', default='Scratch Galerie') + parser.add_argument('--no-license', action='store_true') + parser.add_argument('--projects-dir', default='projects', help='location of the projects') + parser.add_argument('--output-dir', + default='build', + help='output location of the generated HTML code') + args = parser.parse_args() + + env = Environment(loader=FileSystemLoader("templates"), autoescape=select_autoescape()) + + projects = load_projects(args.projects_dir) + print(projects, file=sys.stderr) + + prepare_outputdir(args.output_dir, projects) + + package_projects(args.projects_dir, args.output_dir, projects) + + template = env.get_template("index.html") + with open(pathlib.Path(args.output_dir) / 'index.html', 'w', encoding='utf-8') as outfile: + print(template.render(projects=projects, **args.__dict__), file=outfile) + + +if __name__ == '__main__': + main() diff --git a/projects/test/test/Scratch Project.html b/projects/test/test/Scratch Project.html new file mode 100644 index 0000000..bd45d03 --- /dev/null +++ b/projects/test/test/Scratch Project.html @@ -0,0 +1,433 @@ +<!DOCTYPE html> +<!-- Created with https://packager.turbowarp.org/ --> +<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>Scratch Project</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-highlight:hover { + background: #ff4c4c26; + } + .control-button-highlight.active { + background: #ff4c4c59; + } + .fullscreen-button { + background: white; + } + .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:#4cbf56;stroke:#45993d;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> + + + <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>/*! +Parts of this script are from the TurboWarp Packager <https://packager.turbowarp.org/>, licensed as follows: +Copyright (C) 2021-2024 Thomas Weber + +The Source Code Form of this program is available under the terms of the +Mozilla Public License, v. 2.0. You can obtain a copy of the license at +https://www.mozilla.org/en-US/MPL/2.0/. + +Parts of this script are from Scratch <https://scratch.mit.edu/>, licensed as follows: +Copyright (c) 2016, Massachusetts Institute of Technology +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! For license information please see scaffolding-min.js.LICENSE.txt */ +!function(e){function t(t){for(var n,i,s=t[0],o=t[1],a=0,l=[];a<s.length;a++)i=s[a],Object.prototype.hasOwnProperty.call(r,i)&&r[i]&&l.push(r[i][0]),r[i]=0;for(n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n]);for(c&&c(t);l.length;)l.shift()()}var n={},r={0:0};function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[],n=r[e];if(0!==n)if(n)t.push(n[2]);else{var s=new Promise((function(t,i){n=r[e]=[t,i]}));t.push(n[2]=s);var o,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"scaffolding/"+({1:"vendors~iframe-extension-worker"}[e]||e)+".js"}(e);var c=new Error;o=function(t){a.onerror=a.onload=null,clearTimeout(l);var n=r[e];if(0!==n){if(n){var i=t&&("load"===t.type?"missing":t.type),s=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+i+": "+s+")",c.name="ChunkLoadError",c.type=i,c.request=s,n[1](c)}r[e]=void 0}};var l=setTimeout((function(){o({type:"timeout",target:a})}),12e4);a.onerror=a.onload=o,document.head.appendChild(a)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i.oe=function(e){throw console.error(e),e};var s=window.webpackJsonp=window.webpackJsonp||[],o=s.push.bind(s);s.push=t,s=s.slice();for(var a=0;a<s.length;a++)t(s[a]);var c=o;i(i.s=300)}([function(e,t,n){const r=n(29);r.enable(),e.exports=r("vm")},function(e,t,n){const r=n(23),i=e=>{if("string"!=typeof e)return!1;for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(48===n||9===n)return!1}return!0};class s{static toNumber(e){if("number"==typeof e)return Number.isNaN(e)?0:e;const t=Number(e);return Number.isNaN(t)?0:t}static toBoolean(e){return"boolean"==typeof e?e:"string"==typeof e?""!==e&&"0"!==e&&"false"!==e.toLowerCase():Boolean(e)}static toString(e){return String(e)}static toRgbColorList(e){const t=s.toRgbColorObject(e);return[t.r,t.g,t.b]}static toRgbColorObject(e){let t;return"string"==typeof e&&"#"===e.substring(0,1)?(t=r.hexToRgb(e),t||(t={r:0,g:0,b:0,a:255})):t=r.decimalToRgb(s.toNumber(e)),t}static isWhiteSpace(e){return null===e||"string"==typeof e&&0===e.trim().length}static compare(e,t){let n=Number(e),r=Number(t);if(0===n&&i(e)?n=NaN:0===r&&i(t)&&(r=NaN),isNaN(n)||isNaN(r)){const n=String(e).toLowerCase(),r=String(t).toLowerCase();return n<r?-1:n>r?1:0}return n===1/0&&r===1/0||n===-1/0&&r===-1/0?0:n-r}static isInt(e){return"number"==typeof e?!!isNaN(e)||e===Math.floor(e):"boolean"==typeof e||"string"==typeof e&&e.indexOf(".")<0}static get LIST_INVALID(){return"INVALID"}static get LIST_ALL(){return"ALL"}static toListIndex(e,t,n){if("number"!=typeof e){if("all"===e)return n?s.LIST_ALL:s.LIST_INVALID;if("last"===e)return t>0?t:s.LIST_INVALID;if("random"===e||"any"===e)return t>0?1+Math.floor(Math.random()*t):s.LIST_INVALID}return(e=Math.floor(s.toNumber(e)))<1||e>t?s.LIST_INVALID:e}}e.exports=s},function(e,t){e.exports={BOOLEAN:"Boolean",BUTTON:"button",LABEL:"label",COMMAND:"command",CONDITIONAL:"conditional",EVENT:"event",HAT:"hat",LOOP:"loop",REPORTER:"reporter",XML:"xml"}},function(e,t){e.exports={ANGLE:"angle",BOOLEAN:"Boolean",COLOR:"color",NUMBER:"number",STRING:"string",MATRIX:"matrix",NOTE:"note",IMAGE:"image",COSTUME:"costume",SOUND:"sound"}},function(e,t){e.exports=class{static degToRad(e){return e*Math.PI/180}static radToDeg(e){return 180*e/Math.PI}static clamp(e,t,n){return Math.min(Math.max(e,t),n)}static wrapClamp(e,t,n){const r=n-t+1;return e-Math.floor((e-t)/r)*r}static tan(e){switch(e%=360){case-270:case 90:return 1/0;case-90:case 270:return-1/0;default:return Math.round(1e10*Math.tan(Math.PI*e/180))/1e10}}static reducedSortOrdering(e){const t=e.slice(0).sort(((e,t)=>e-t));return e.map((e=>t.indexOf(e)))}static inclusiveRandIntWithout(e,t,n){const r=t-e,i=e+Math.floor(Math.random()*r);return i>=n?i+1:i}static scale(e,t,n,r,i){return(e-t)/(n-t)*(i-r)+r}}},function(e,t,n){"use strict";var r=n(107),i=n(108),s=n(59),o=n(58),a=n(57);function c(e,t){return Object.keys(t).forEach((function(n){e[n]=t[n]})),e}e.exports=function e(){var t=c({},a),n="en",l={},u=function(e){return e},h=null,d="warning",p={};function f(e,t,s){var o="string"==typeof e?e:e.default,a=b(o,"object"==typeof e&&e.id||u(o),s||n);return(a.format||(a.format=i(r(a.message),s||n,p)))(t)}f.rich=function(e,t,s){var o="string"==typeof e?e:e.default,a=b(o,"object"==typeof e&&e.id||u(o),s||n);return(a.toParts||(a.toParts=i.toParts(r(a.message,{tagsType:m}),s||n,p)))(t)};var m="<>";function g(e,t){var n=e[2];return function(e,t){var r="object"==typeof n?function(e,t){return Object.keys(e).reduce((function(n,r){return n[r]=e[r](t),n}),{})}(n,t):n;return"function"==typeof e?e(r):e}}function b(e,t,n){var r=o(n,l)||"en",i=l[r]||(l[r]={}),s=i[t];if("string"==typeof s&&(s=i[t]={message:s}),!s){var a='Translation for "'+t+'" in "'+r+'" is missing';if("warning"===d)"undefined"!=typeof console&&console.warn(a);else if("ignore"!==d)throw new Error(a);var c="function"==typeof h?h(e,t,r)||e:h||e;s=i[t]={message:c}}return s}function y(e,t,r,i,a){"object"==typeof r&&"object"!=typeof i&&(a=i,i=r,r=0);var c=o(a||n,s),l=c&&s[c][e]||E;return i["="+ +t]||i[l(t-r)]||i.other}function E(){return"other"}return p[m]=g,f.setup=function(e){return(e=e||{}).locale&&(n=e.locale),"translations"in e&&(l=e.translations||{}),e.generateId&&(u=e.generateId),"missingReplacement"in e&&(h=e.missingReplacement),e.missingTranslation&&(d=e.missingTranslation),e.formats&&(e.formats.number&&c(t.number,e.formats.number),e.formats.date&&c(t.date,e.formats.date),e.formats.time&&c(t.time,e.formats.time)),e.types&&((p=e.types)[m]=g),{locale:n,translations:l,generateId:u,missingReplacement:h,missingTranslation:d,formats:t,types:p}},f.number=function(e,r,i){var s=r&&t.number[r]||t.parseNumberPattern(r)||t.number.default;return new Intl.NumberFormat(i||n,s).format(e)},f.date=function(e,r,i){var s=r&&t.date[r]||t.parseDatePattern(r)||t.date.default;return new Intl.DateTimeFormat(i||n,s).format(e)},f.time=function(e,r,i){var s=r&&t.time[r]||t.parseDatePattern(r)||t.time.default;return new Intl.DateTimeFormat(i||n,s).format(e)},f.select=function(e,t){return t[e]||t.other},f.custom=function(e,t,n,r){return e[1]in p?p[e[1]](e,t)(n,r):n},f.plural=y.bind(null,"cardinal"),f.selectordinal=y.bind(null,"ordinal"),f.namespace=e,f}()},function(e,t,n){const r=n(0);class i{static withoutTrailingDigits(e){let t=e.length-1;for(;t>=0&&"0123456789".indexOf(e.charAt(t))>-1;)t--;return e.slice(0,t+1)}static unusedName(e,t){if(t.indexOf(e)<0)return e;e=i.withoutTrailingDigits(e);let n=2;for(;t.indexOf(e+n)>=0;)n++;return e+n}static caseInsensitiveUnusedName(e,t){const n=e=>t.some((t=>t.toLowerCase()===e.toLowerCase()));if(!n(e))return e;e=i.withoutTrailingDigits(e);let r=2;for(;n("".concat(e).concat(r));)r++;return"".concat(e).concat(r)}static splitFirst(e,t){const n=e.indexOf(t);return n>=0?[e.substring(0,n),e.substring(n+1)]:[e,null]}static stringify(e){return JSON.stringify(e,((e,t)=>"number"!=typeof t||t!==1/0&&t!==-1/0&&!isNaN(t)?t:0))}static replaceUnsafeChars(e){if("string"!=typeof e){if(!Array.isArray(e))return r.error("Unexpected input recieved in replaceUnsafeChars"),e;e=String(e)}return e.replace(/[<>&'"]/g,(e=>{switch(e){case"<":return"lt";case">":return"gt";case"&":return"amp";case"'":return"apos";case'"':return"quot"}}))}}e.exports=i},function(e,t){const n="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";e.exports=function(){const e=n.length,t=[];for(let r=0;r<20;r++)t[r]=n.charAt(Math.random()*e);return t.join("")}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){const r=n(7),i=n(31);class s{constructor(e,t,n,i){switch(this.id=e||r(),this.name=t,this.type=n,this.isCloud=i,this.type){case s.SCALAR_TYPE:this.value=0;break;case s.LIST_TYPE:this.value=[];break;case s.BROADCAST_MESSAGE_TYPE:this.value=this.name;break;default:throw new Error("Invalid variable type: ".concat(this.type))}}toXML(e){return e=!0===e,'<variable type="'.concat(this.type,'" id="').concat(this.id,'" islocal="').concat(e,'" iscloud="').concat(this.isCloud,'">').concat(i(this.name),"</variable>")}static get SCALAR_TYPE(){return""}static get LIST_TYPE(){return"list"}static get BROADCAST_MESSAGE_TYPE(){return"broadcast_msg"}}e.exports=s},function(e,t,n){const r=n(1),{InputOpcode:i,InputType:s}=n(15),o=n(0);class a{static getNumberInputType(e){if("number"!=typeof e)throw new Error("Expected a number.");return e===1/0?s.NUMBER_POS_INF:e===-1/0?s.NUMBER_NEG_INF:e<0?Number.isInteger(e)?s.NUMBER_NEG_INT:s.NUMBER_NEG_FRACT:e>0?Number.isInteger(e)?s.NUMBER_POS_INT:s.NUMBER_POS_FRACT:Number.isNaN(e)?s.NUMBER_NAN:Object.is(e,-0)?s.NUMBER_NEG_ZERO:s.NUMBER_ZERO}constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.opcode=e,this.type=t,this.inputs=n,this.yields=r}isConstant(e){if(this.opcode!==i.CONSTANT)return!1;let t=this.inputs.value===e;return t||"number"!=typeof e||(t=+this.inputs.value===e),t}isAlwaysType(e){return(this.type&e)===this.type}isSometimesType(e){return!!(this.type&e)}toType(e){let t;switch(e){case s.BOOLEAN:t=i.CAST_BOOLEAN;break;case s.NUMBER:t=i.CAST_NUMBER;break;case s.NUMBER_INDEX:t=i.CAST_NUMBER_INDEX;break;case s.NUMBER_OR_NAN:t=i.CAST_NUMBER_OR_NAN;break;case s.STRING:t=i.CAST_STRING;break;case s.COLOR:t=i.CAST_COLOR;break;default:throw o.warn("Cannot cast to type: ".concat(e),this),new Error("Cannot cast to type: ".concat(e))}if(this.isAlwaysType(e))return this;if(this.opcode===i.CONSTANT){switch(t){case i.CAST_BOOLEAN:this.inputs.value=r.toBoolean(this.inputs.value),this.type=s.BOOLEAN;break;case i.CAST_NUMBER:case i.CAST_NUMBER_INDEX:case i.CAST_NUMBER_OR_NAN:{this.isAlwaysType(s.BOOLEAN_INTERPRETABLE)&&(this.type=s.NUMBER,this.inputs.value=+r.toBoolean(this.inputs.value));const e=+this.inputs.value;e?this.inputs.value=e:Object.is(e,-0)?this.inputs.value=-0:this.inputs.value=0,t===i.CAST_NUMBER_INDEX&&(this.inputs.value|=0),this.type=a.getNumberInputType(this.inputs.value);break}case i.CAST_STRING:this.inputs.value+="",this.type=s.STRING;break;case i.CAST_COLOR:this.inputs.value=r.toRgbColorList(this.inputs.value),this.type=s.COLOR}return this}return new a(t,e,{target:this})}}e.exports={IntermediateStackBlock:class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.opcode=e,this.inputs=t,this.yields=n,this.ignoreState=!1,this.entryState=null,this.exitState=null}},IntermediateInput:a,IntermediateStack:class{constructor(e){this.blocks=null!=e?e:[]}},IntermediateScript:class{constructor(){this.topBlockId=null,this.stack=null,this.isProcedure=!1,this.procedureVariant="",this.procedureCode="",this.arguments=[],this.isWarp=!1,this.yields=!0,this.warpTimer=!1,this.dependedProcedures=[],this.cachedCompileResult=null,this.cachedAnalysisEndState=null,this.executableHat=!1}},IntermediateRepresentation:class{constructor(e,t){this.entry=e,this.procedures=t}getProcedure(e){return Object.values(this.procedures).find((t=>t.procedureCode===e))}},stringifyType:e=>{let t=[];for(const n in s){const r=s[n];if((r&e)===r){for(const e of t)s[e];t=t.filter((e=>(s[e]&r)!==s[e])),t.push(n)}}let n=null;for(const e of t)n=null===n?e:"".concat(n," | ").concat(e);return null===n?"INVALID":n}}},function(e,t,n){var r;"undefined"!=typeof self&&self,r=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=9)}([function(e,t,n){"use strict";t.__esModule=!0,t.copyExistingProperties=function(e,t){Object.keys(t).forEach((function(n){t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&(t[n]=e[n])}))},t.copyNamedProperties=function(e,t,n){e.forEach((function(e){var r=t[e];void 0!==r&&(n[e]=r)}))},t.isBuffer=function(e,t){return o||(o=e.createBuffer()),t instanceof o.constructor},t.isRenderbuffer=function(e,t){return a||(a=e.createRenderbuffer()),t instanceof a.constructor},t.isShader=function(e,t){return c||(c=e.createShader(e.VERTEX_SHADER)),t instanceof c.constructor},t.isTexture=function(e,t){return l||(l=e.createTexture()),t instanceof l.constructor},t.isSampler=function(e,t){if(!u){if(!e.createSampler)return!1;u=e.createSampler()}return t instanceof u.constructor},t.warn=t.error=void 0;var r,i=(r=n(2))&&r.__esModule?r:{default:r},s=i.default.console&&i.default.console.error&&"function"==typeof i.default.console.error?i.default.console.error.bind(i.default.console):function(){};t.error=s;var o,a,c,l,u,h=i.default.console&&i.default.console.warn&&"function"==typeof i.default.console.warn?i.default.console.warn.bind(i.default.console):function(){};t.warn=h},function(e,t,n){"use strict";t.__esModule=!0,t.getGLTypeForTypedArray=function(e){if(e instanceof Int8Array)return s;if(e instanceof Uint8Array)return o;if(e instanceof Uint8ClampedArray)return o;if(e instanceof Int16Array)return a;if(e instanceof Uint16Array)return c;if(e instanceof Int32Array)return l;if(e instanceof Uint32Array)return u;if(e instanceof Float32Array)return h;throw"unsupported typed array type"},t.getGLTypeForTypedArrayType=function(e){if(e===Int8Array)return s;if(e===Uint8Array)return o;if(e===Uint8ClampedArray)return o;if(e===Int16Array)return a;if(e===Uint16Array)return c;if(e===Int32Array)return l;if(e===Uint32Array)return u;if(e===Float32Array)return h;throw"unsupported typed array type"},t.getTypedArrayTypeForGLType=function(e){var t=d[e];if(!t)throw"unknown gl type";return t},t.isArrayBuffer=void 0;var r,i=(r=n(2))&&r.__esModule?r:{default:r},s=5120,o=5121,a=5122,c=5123,l=5124,u=5125,h=5126,d={},p=d;p[s]=Int8Array,p[o]=Uint8Array,p[a]=Int16Array,p[c]=Uint16Array,p[l]=Int32Array,p[u]=Uint32Array,p[h]=Float32Array,p[32819]=Uint16Array,p[32820]=Uint16Array,p[33635]=Uint16Array,p[5131]=Uint16Array,p[33640]=Uint32Array,p[35899]=Uint32Array,p[35902]=Uint32Array,p[36269]=Uint32Array,p[34042]=Uint32Array;var f=i.default.SharedArrayBuffer?function(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof i.default.SharedArrayBuffer)}:function(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};t.isArrayBuffer=f},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=void 0!==r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};t.default=r},function(e,t,n){"use strict";t.__esModule=!0,t.add=function(e,t,n){return(n=n||new r(3))[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n},t.copy=function(e,t){return(t=t||new r(3))[0]=e[0],t[1]=e[1],t[2]=e[2],t},t.create=function(e,t,n){var i=new r(3);return e&&(i[0]=e),t&&(i[1]=t),n&&(i[2]=n),i},t.cross=function(e,t,n){n=n||new r(3);var i=e[2]*t[0]-e[0]*t[2],s=e[0]*t[1]-e[1]*t[0];return n[0]=e[1]*t[2]-e[2]*t[1],n[1]=i,n[2]=s,n},t.distance=function(e,t){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(n*n+r*r+i*i)},t.distanceSq=function(e,t){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2];return n*n+r*r+i*i},t.divide=function(e,t,n){return(n=n||new r(3))[0]=e[0]/t[0],n[1]=e[1]/t[1],n[2]=e[2]/t[2],n},t.divScalar=function(e,t,n){return(n=n||new r(3))[0]=e[0]/t,n[1]=e[1]/t,n[2]=e[2]/t,n},t.dot=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},t.lerp=function(e,t,n,i){return(i=i||new r(3))[0]=(1-n)*e[0]+n*t[0],i[1]=(1-n)*e[1]+n*t[1],i[2]=(1-n)*e[2]+n*t[2],i},t.length=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2])},t.lengthSq=function(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]},t.mulScalar=function(e,t,n){return(n=n||new r(3))[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n},t.multiply=function(e,t,n){return(n=n||new r(3))[0]=e[0]*t[0],n[1]=e[1]*t[1],n[2]=e[2]*t[2],n},t.negate=function(e,t){return(t=t||new r(3))[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t},t.normalize=function(e,t){t=t||new r(3);var n=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=Math.sqrt(n);return i>1e-5?(t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i):(t[0]=0,t[1]=0,t[2]=0),t},t.setDefaultType=function(e){var t=r;return r=e,t},t.subtract=function(e,t,n){return(n=n||new r(3))[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n};var r=Float32Array},function(e,t,n){"use strict";t.__esModule=!0,t.isWebGL1=function(e){return!e.texStorage2D},t.isWebGL2=function(e){return!!e.texStorage2D},t.glEnumToString=void 0;var r,i,s=(r={},i={},function(e,t){return function(e){var t=e.constructor.name;if(!r[t]){for(var n in e)if("number"==typeof e[n]){var s=i[e[n]];i[e[n]]=s?"".concat(s," | ").concat(n):n}r[t]=!0}}(e),i[t]||"0x"+t.toString(16)});t.glEnumToString=s},function(e,t,n){"use strict";t.__esModule=!0,t.createAttributeSetters=W,t.createProgram=D,t.createProgramFromScripts=function(e,t,n,r,i){for(var s=M(n,r,i),o=[],a=0;a<t.length;++a){var c=B(e,t[a],e[C[a]],s.errorCallback);if(!c)return null;o.push(c)}return D(e,o,s)},t.createProgramFromSources=U,t.createProgramInfo=function(e,t,n,r,i){var s=M(n,r,i),o=!0;if(t=t.map((function(e){if(e.indexOf("\n")<0){var t=u(e);t?e=t.text:(s.errorCallback("no element with id: "+e),o=!1)}return e})),!o)return null;var a=U(e,t,s);return a?X(e,a):null},t.createProgramInfoFromProgram=X,t.createUniformSetters=j,t.createUniformBlockSpecFromProgram=V,t.createUniformBlockInfoFromProgram=_,t.createUniformBlockInfo=function(e,t,n){return _(e,t.program,t.uniformBlockSpec,n)},t.createTransformFeedback=function(e,t,n){var r=e.createTransformFeedback();return e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,r),e.useProgram(t.program),G(e,t,n),e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,null),function(e,t,n){for(var r in t.transformFeedbackInfo&&(t=t.transformFeedbackInfo),n.attribs&&(n=n.attribs),n){var i=t[r];i&&e.bindBufferBase(e.TRANSFORM_FEEDBACK_BUFFER,i.index,null)}}(e,t,n),r},t.createTransformFeedbackInfo=z,t.bindTransformFeedbackInfo=G,t.setAttributes=K,t.setBuffersAndAttributes=function(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(K(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n.indices))},t.setUniforms=function e(t,n){for(var r=t.uniformSetters||t,i=arguments.length,s=1;s<i;++s){var o=arguments[s];if(Array.isArray(o))for(var a=o.length,c=0;c<a;++c)e(r,o[c]);else for(var l in o){var u=r[l];u&&u(o[l])}}},t.setUniformBlock=function(e,t,n){H(e,t,n)&&e.bufferData(e.UNIFORM_BUFFER,n.array,e.DYNAMIC_DRAW)},t.setBlockUniforms=function(e,t){var n=e.uniforms;for(var r in t){var i=n[r];if(i){var s=t[r];s.length?i.set(s):i[0]=s}}},t.bindUniformBlock=H;var r,i=a(n(4)),s=a(n(0)),o=(r=n(2))&&r.__esModule?r:{default:r};function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}var c=s.error,l=s.warn,u=o.default&&o.default.document&&o.default.document.getElementById?o.default.document.getElementById.bind(o.default.document):function(){return null},h=3553,d=34067,p=32879,f=35866,m={};function g(e,t){return m[t].bindPoint}function b(e,t){return function(n){e.uniform1i(t,n)}}function y(e,t){return function(n){e.uniform1iv(t,n)}}function E(e,t){return function(n){e.uniform2iv(t,n)}}function T(e,t){return function(n){e.uniform3iv(t,n)}}function v(e,t){return function(n){e.uniform4iv(t,n)}}function A(e,t,n,r){var o=g(0,t);return i.isWebGL2(e)?function(t){var i,a;s.isTexture(e,t)?(i=t,a=null):(i=t.texture,a=t.sampler),e.uniform1i(r,n),e.activeTexture(e.TEXTURE0+n),e.bindTexture(o,i),e.bindSampler(n,a)}:function(t){e.uniform1i(r,n),e.activeTexture(e.TEXTURE0+n),e.bindTexture(o,t)}}function w(e,t,n,r,o){for(var a=g(0,t),c=new Int32Array(o),l=0;l<o;++l)c[l]=n+l;return i.isWebGL2(e)?function(t){e.uniform1iv(r,c),t.forEach((function(t,r){var i,o;e.activeTexture(e.TEXTURE0+c[r]),s.isTexture(e,t)?(i=t,o=null):(i=t.texture,o=t.sampler),e.bindSampler(n,o),e.bindTexture(a,i)}))}:function(t){e.uniform1iv(r,c),t.forEach((function(t,n){e.activeTexture(e.TEXTURE0+c[n]),e.bindTexture(a,t)}))}}function S(e,t){return function(n){e.bindBuffer(e.ARRAY_BUFFER,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||e.FLOAT,n.normalize||!1,n.stride||0,n.offset||0),void 0!==n.divisor&&e.vertexAttribDivisor(t,n.divisor)}}function k(e,t){return function(n){e.bindBuffer(e.ARRAY_BUFFER,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||e.INT,n.stride||0,n.offset||0),void 0!==n.divisor&&e.vertexAttribDivisor(t,n.divisor)}}function O(e,t,n){var r=n.size,i=n.count;return function(n){e.bindBuffer(e.ARRAY_BUFFER,n.buffer);for(var s=n.size||n.numComponents||r,o=s/i,a=n.type||e.FLOAT,c=m[a].size*s,l=n.normalize||!1,u=n.offset||0,h=c/i,d=0;d<i;++d)e.enableVertexAttribArray(t+d),e.vertexAttribPointer(t+d,o,a,l,c,u+h*d),void 0!==n.divisor&&e.vertexAttribDivisor(t+d,n.divisor)}}m[5126]={Type:Float32Array,size:4,setter:function(e,t){return function(n){e.uniform1f(t,n)}},arraySetter:function(e,t){return function(n){e.uniform1fv(t,n)}}},m[35664]={Type:Float32Array,size:8,setter:function(e,t){return function(n){e.uniform2fv(t,n)}}},m[35665]={Type:Float32Array,size:12,setter:function(e,t){return function(n){e.uniform3fv(t,n)}}},m[35666]={Type:Float32Array,size:16,setter:function(e,t){return function(n){e.uniform4fv(t,n)}}},m[5124]={Type:Int32Array,size:4,setter:b,arraySetter:y},m[35667]={Type:Int32Array,size:8,setter:E},m[35668]={Type:Int32Array,size:12,setter:T},m[35669]={Type:Int32Array,size:16,setter:v},m[5125]={Type:Uint32Array,size:4,setter:function(e,t){return function(n){e.uniform1ui(t,n)}},arraySetter:function(e,t){return function(n){e.uniform1uiv(t,n)}}},m[36294]={Type:Uint32Array,size:8,setter:function(e,t){return function(n){e.uniform2uiv(t,n)}}},m[36295]={Type:Uint32Array,size:12,setter:function(e,t){return function(n){e.uniform3uiv(t,n)}}},m[36296]={Type:Uint32Array,size:16,setter:function(e,t){return function(n){e.uniform4uiv(t,n)}}},m[35670]={Type:Uint32Array,size:4,setter:b,arraySetter:y},m[35671]={Type:Uint32Array,size:8,setter:E},m[35672]={Type:Uint32Array,size:12,setter:T},m[35673]={Type:Uint32Array,size:16,setter:v},m[35674]={Type:Float32Array,size:16,setter:function(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}},m[35675]={Type:Float32Array,size:36,setter:function(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}},m[35676]={Type:Float32Array,size:64,setter:function(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}},m[35685]={Type:Float32Array,size:24,setter:function(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}},m[35686]={Type:Float32Array,size:32,setter:function(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}},m[35687]={Type:Float32Array,size:24,setter:function(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}},m[35688]={Type:Float32Array,size:48,setter:function(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}},m[35689]={Type:Float32Array,size:32,setter:function(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}},m[35690]={Type:Float32Array,size:48,setter:function(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}},m[35678]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:h},m[35680]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:d},m[35679]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:p},m[35682]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:h},m[36289]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:f},m[36292]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:f},m[36293]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:d},m[36298]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:h},m[36299]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:p},m[36300]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:d},m[36303]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:f},m[36306]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:h},m[36307]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:p},m[36308]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:d},m[36311]={Type:null,size:0,setter:A,arraySetter:w,bindPoint:f};var I={};I[5126]={size:4,setter:S},I[35664]={size:8,setter:S},I[35665]={size:12,setter:S},I[35666]={size:16,setter:S},I[5124]={size:4,setter:k},I[35667]={size:8,setter:k},I[35668]={size:12,setter:k},I[35669]={size:16,setter:k},I[5125]={size:4,setter:k},I[36294]={size:8,setter:k},I[36295]={size:12,setter:k},I[36296]={size:16,setter:k},I[35670]={size:4,setter:k},I[35671]={size:8,setter:k},I[35672]={size:12,setter:k},I[35673]={size:16,setter:k},I[35674]={size:4,setter:O,count:2},I[35675]={size:9,setter:O,count:3},I[35676]={size:16,setter:O,count:4};var N=void 0,R=/^[ \t]*\n/;function x(e,t,n,r){var i=r||c,s=e.createShader(n),o=0;if(R.test(t)&&(o=1,t=t.replace(R,"")),e.shaderSource(s,t),e.compileShader(s),!e.getShaderParameter(s,e.COMPILE_STATUS)){var a=e.getShaderInfoLog(s);return i(function(e,t){return t=t||0,++t,e.split("\n").map((function(e,n){return n+t+": "+e})).join("\n")}(t,o)+"\n*** Error compiling shader: "+a),e.deleteShader(s),null}return s}function M(e,t,n){var r;if("function"==typeof t&&(n=t,t=void 0),"function"==typeof e)n=e,e=void 0;else if(e&&!Array.isArray(e)){if(e.errorCallback)return e;var i=e;n=i.errorCallback,e=i.attribLocations,r=i.transformFeedbackVaryings}var s={errorCallback:n||c,transformFeedbackVaryings:r};if(e){var o={};Array.isArray(e)?e.forEach((function(e,n){o[e]=t?t[n]:n})):o=e,s.attribLocations=o}return s}var C=["VERTEX_SHADER","FRAGMENT_SHADER"];function P(e){return e.indexOf("frag")>=0?N.FRAGMENT_SHADER:e.indexOf("vert")>=0?N.VERTEX_SHADER:void 0}function L(e,t){t.forEach((function(t){e.deleteShader(t)}))}function D(e,t,n,r,i){for(var o=M(n,r,i),a=[],c=[],l=0;l<t.length;++l){var h=t[l];if("string"==typeof h){var d=u(h),p=d?d.text:h,f=e[C[l]];d&&d.type&&(f=P(d.type)||f),h=x(e,p,f,o.errorCallback),c.push(h)}s.isShader(e,h)&&a.push(h)}if(a.length!==t.length)return o.errorCallback("not enough shaders for program"),L(e,c),null;var m=e.createProgram();a.forEach((function(t){e.attachShader(m,t)})),o.attribLocations&&Object.keys(o.attribLocations).forEach((function(t){e.bindAttribLocation(m,o.attribLocations[t],t)}));var g=o.transformFeedbackVaryings;if(g&&(g.attribs&&(g=g.attribs),Array.isArray(g)||(g=Object.keys(g)),e.transformFeedbackVaryings(m,g,o.transformFeedbackMode||e.SEPARATE_ATTRIBS)),e.linkProgram(m),!e.getProgramParameter(m,e.LINK_STATUS)){var b=e.getProgramInfoLog(m);return o.errorCallback("Error in program linking:"+b),e.deleteProgram(m),L(e,c),null}return m}function B(e,t,n,r){var i,s=u(t);if(!s)throw"*** Error: unknown script element"+t;i=s.text;var o=n||P(s.type);if(!o)throw"*** Error: unknown shader type";return x(e,i,o,r)}function U(e,t,n,r,i){for(var s=M(n,r,i),o=[],a=0;a<t.length;++a){var c=x(e,t[a],e[C[a]],s.errorCallback);if(!c)return null;o.push(c)}return D(e,o,s)}function F(e){var t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}function j(e,t){var n=0;function r(t,r){var i,s=e.getUniformLocation(t,r.name),o=r.size>1&&"[0]"===r.name.substr(-3),a=r.type,c=m[a];if(!c)throw"unknown type: 0x"+a.toString(16);if(c.bindPoint){var l=n;n+=r.size,i=o?c.arraySetter(e,a,l,s,r.size):c.setter(e,a,l,s,r.size)}else i=c.arraySetter&&o?c.arraySetter(e,s):c.setter(e,s);return i.location=s,i}for(var i={},s=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),o=0;o<s;++o){var a=e.getActiveUniform(t,o);if(!F(a)){var c=a.name;"[0]"===c.substr(-3)&&(c=c.substr(0,c.length-3));var l=r(t,a);i[c]=l}}return i}function z(e,t){for(var n={},r=e.getProgramParameter(t,e.TRANSFORM_FEEDBACK_VARYINGS),i=0;i<r;++i){var s=e.getTransformFeedbackVarying(t,i);n[s.name]={index:i,type:s.type,size:s.size}}return n}function G(e,t,n){for(var r in t.transformFeedbackInfo&&(t=t.transformFeedbackInfo),n.attribs&&(n=n.attribs),n){var i=t[r];if(i){var s=n[r];s.offset?e.bindBufferRange(e.TRANSFORM_FEEDBACK_BUFFER,i.index,s.buffer,s.offset,s.size):e.bindBufferBase(e.TRANSFORM_FEEDBACK_BUFFER,i.index,s.buffer)}}}function V(e,t){for(var n=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),r=[],i=[],s=0;s<n;++s){i.push(s),r.push({});var o=e.getActiveUniform(t,s);if(F(o))break;r[s].name=o.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach((function(n){var s=n[0],o=n[1];e.getActiveUniforms(t,i,e[s]).forEach((function(e,t){r[t][o]=e}))}));for(var a={},c=e.getProgramParameter(t,e.ACTIVE_UNIFORM_BLOCKS),l=0;l<c;++l){var u=e.getActiveUniformBlockName(t,l),h={index:l,usedByVertexShader:e.getActiveUniformBlockParameter(t,l,e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),usedByFragmentShader:e.getActiveUniformBlockParameter(t,l,e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),size:e.getActiveUniformBlockParameter(t,l,e.UNIFORM_BLOCK_DATA_SIZE),uniformIndices:e.getActiveUniformBlockParameter(t,l,e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES)};h.used=h.usedByVertexSahder||h.usedByFragmentShader,a[u]=h}return{blockSpecs:a,uniformData:r}}var Y=/\[\d+\]\.$/;function _(e,t,n,r){var i=n.blockSpecs,s=n.uniformData,o=i[r];if(!o)return l("no uniform block object named:",r),{name:r,uniforms:{}};var a=new ArrayBuffer(o.size),c=e.createBuffer(),u=o.index;e.bindBuffer(e.UNIFORM_BUFFER,c),e.uniformBlockBinding(t,o.index,u);var h=r+".";Y.test(h)&&(h=h.replace(Y,"."));var d={};return o.uniformIndices.forEach((function(e){var t=s[e],n=m[t.type],r=n.Type,i=t.size*n.size,o=t.name;o.substr(0,h.length)===h&&(o=o.substr(h.length)),d[o]=new r(a,t.offset,i/r.BYTES_PER_ELEMENT)})),{name:r,array:a,asFloat:new Float32Array(a),buffer:c,uniforms:d}}function H(e,t,n){var r=(t.uniformBlockSpec||t).blockSpecs[n.name];if(r){var i=r.index;return e.bindBufferRange(e.UNIFORM_BUFFER,i,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function W(e,t){for(var n={},r=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES),i=0;i<r;++i){var s=e.getActiveAttrib(t,i);if(!F(s)){var o=e.getAttribLocation(t,s.name),a=I[s.type],c=a.setter(e,o,a);c.location=o,n[s.name]=c}}return n}function K(e,t){for(var n in t){var r=e[n];r&&r(t[n])}}function X(e,t){var n={program:t,uniformSetters:j(e,t),attribSetters:W(e,t)};return i.isWebGL2(e)&&(n.uniformBlockSpec=V(e,t),n.transformFeedbackInfo=z(e,t)),n}},function(e,t,n){"use strict";t.__esModule=!0,t.axisRotate=function(e,t,n,r){r=r||new i(16);var s=t[0],o=t[1],a=t[2],c=Math.sqrt(s*s+o*o+a*a),l=(s/=c)*s,u=(o/=c)*o,h=(a/=c)*a,d=Math.cos(n),p=Math.sin(n),f=1-d,m=l+(1-l)*d,g=s*o*f+a*p,b=s*a*f-o*p,y=s*o*f-a*p,E=u+(1-u)*d,T=o*a*f+s*p,v=s*a*f+o*p,A=o*a*f-s*p,w=h+(1-h)*d,S=e[0],k=e[1],O=e[2],I=e[3],N=e[4],R=e[5],x=e[6],M=e[7],C=e[8],P=e[9],L=e[10],D=e[11];return r[0]=m*S+g*N+b*C,r[1]=m*k+g*R+b*P,r[2]=m*O+g*x+b*L,r[3]=m*I+g*M+b*D,r[4]=y*S+E*N+T*C,r[5]=y*k+E*R+T*P,r[6]=y*O+E*x+T*L,r[7]=y*I+E*M+T*D,r[8]=v*S+A*N+w*C,r[9]=v*k+A*R+w*P,r[10]=v*O+A*x+w*L,r[11]=v*I+A*M+w*D,e!==r&&(r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r},t.axisRotation=function(e,t,n){n=n||new i(16);var r=e[0],s=e[1],o=e[2],a=Math.sqrt(r*r+s*s+o*o),c=(r/=a)*r,l=(s/=a)*s,u=(o/=a)*o,h=Math.cos(t),d=Math.sin(t),p=1-h;return n[0]=c+(1-c)*h,n[1]=r*s*p+o*d,n[2]=r*o*p-s*d,n[3]=0,n[4]=r*s*p-o*d,n[5]=l+(1-l)*h,n[6]=s*o*p+r*d,n[7]=0,n[8]=r*o*p+s*d,n[9]=s*o*p-r*d,n[10]=u+(1-u)*h,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},t.copy=c,t.frustum=function(e,t,n,r,s,o,a){a=a||new i(16);var c=t-e,l=r-n,u=s-o;return a[0]=2*s/c,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2*s/l,a[6]=0,a[7]=0,a[8]=(e+t)/c,a[9]=(r+n)/l,a[10]=o/u,a[11]=-1,a[12]=0,a[13]=0,a[14]=s*o/u,a[15]=0,a},t.getAxis=function(e,t,n){n=n||r.create();var i=4*t;return n[0]=e[i+0],n[1]=e[i+1],n[2]=e[i+2],n},t.getTranslation=function(e,t){return(t=t||r.create())[0]=e[12],t[1]=e[13],t[2]=e[14],t},t.identity=l,t.inverse=u,t.lookAt=function(e,t,n,c){c=c||new i(16);var l=s,u=o,h=a;return r.normalize(r.subtract(e,t,h),h),r.normalize(r.cross(n,h,l),l),r.normalize(r.cross(h,l,u),u),c[0]=l[0],c[1]=l[1],c[2]=l[2],c[3]=0,c[4]=u[0],c[5]=u[1],c[6]=u[2],c[7]=0,c[8]=h[0],c[9]=h[1],c[10]=h[2],c[11]=0,c[12]=e[0],c[13]=e[1],c[14]=e[2],c[15]=1,c},t.multiply=function(e,t,n){n=n||new i(16);var r=e[0],s=e[1],o=e[2],a=e[3],c=e[4],l=e[5],u=e[6],h=e[7],d=e[8],p=e[9],f=e[10],m=e[11],g=e[12],b=e[13],y=e[14],E=e[15],T=t[0],v=t[1],A=t[2],w=t[3],S=t[4],k=t[5],O=t[6],I=t[7],N=t[8],R=t[9],x=t[10],M=t[11],C=t[12],P=t[13],L=t[14],D=t[15];return n[0]=r*T+c*v+d*A+g*w,n[1]=s*T+l*v+p*A+b*w,n[2]=o*T+u*v+f*A+y*w,n[3]=a*T+h*v+m*A+E*w,n[4]=r*S+c*k+d*O+g*I,n[5]=s*S+l*k+p*O+b*I,n[6]=o*S+u*k+f*O+y*I,n[7]=a*S+h*k+m*O+E*I,n[8]=r*N+c*R+d*x+g*M,n[9]=s*N+l*R+p*x+b*M,n[10]=o*N+u*R+f*x+y*M,n[11]=a*N+h*R+m*x+E*M,n[12]=r*C+c*P+d*L+g*D,n[13]=s*C+l*P+p*L+b*D,n[14]=o*C+u*P+f*L+y*D,n[15]=a*C+h*P+m*L+E*D,n},t.negate=function(e,t){return(t=t||new i(16))[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},t.ortho=function(e,t,n,r,s,o,a){return(a=a||new i(16))[0]=2/(t-e),a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2/(r-n),a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=2/(s-o),a[11]=0,a[12]=(t+e)/(e-t),a[13]=(r+n)/(n-r),a[14]=(o+s)/(s-o),a[15]=1,a},t.perspective=function(e,t,n,r,s){s=s||new i(16);var o=Math.tan(.5*Math.PI-.5*e),a=1/(n-r);return s[0]=o/t,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=o,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=(n+r)*a,s[11]=-1,s[12]=0,s[13]=0,s[14]=n*r*a*2,s[15]=0,s},t.rotateX=function(e,t,n){n=n||new i(16);var r=e[4],s=e[5],o=e[6],a=e[7],c=e[8],l=e[9],u=e[10],h=e[11],d=Math.cos(t),p=Math.sin(t);return n[4]=d*r+p*c,n[5]=d*s+p*l,n[6]=d*o+p*u,n[7]=d*a+p*h,n[8]=d*c-p*r,n[9]=d*l-p*s,n[10]=d*u-p*o,n[11]=d*h-p*a,e!==n&&(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n},t.rotateY=function(e,t,n){n=n||new i(16);var r=e[0],s=e[1],o=e[2],a=e[3],c=e[8],l=e[9],u=e[10],h=e[11],d=Math.cos(t),p=Math.sin(t);return n[0]=d*r-p*c,n[1]=d*s-p*l,n[2]=d*o-p*u,n[3]=d*a-p*h,n[8]=d*c+p*r,n[9]=d*l+p*s,n[10]=d*u+p*o,n[11]=d*h+p*a,e!==n&&(n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n},t.rotateZ=function(e,t,n){n=n||new i(16);var r=e[0],s=e[1],o=e[2],a=e[3],c=e[4],l=e[5],u=e[6],h=e[7],d=Math.cos(t),p=Math.sin(t);return n[0]=d*r+p*c,n[1]=d*s+p*l,n[2]=d*o+p*u,n[3]=d*a+p*h,n[4]=d*c-p*r,n[5]=d*l-p*s,n[6]=d*u-p*o,n[7]=d*h-p*a,e!==n&&(n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n},t.rotationX=function(e,t){t=t||new i(16);var n=Math.cos(e),r=Math.sin(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},t.rotationY=function(e,t){t=t||new i(16);var n=Math.cos(e),r=Math.sin(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},t.rotationZ=function(e,t){t=t||new i(16);var n=Math.cos(e),r=Math.sin(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},t.scale=function(e,t,n){n=n||new i(16);var r=t[0],s=t[1],o=t[2];return n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=r*e[3],n[4]=s*e[4],n[5]=s*e[5],n[6]=s*e[6],n[7]=s*e[7],n[8]=o*e[8],n[9]=o*e[9],n[10]=o*e[10],n[11]=o*e[11],e!==n&&(n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n},t.scaling=function(e,t){return(t=t||new i(16))[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},t.setAxis=function(e,t,n,r){r!==e&&(r=c(e,r));var i=4*n;return r[i+0]=t[0],r[i+1]=t[1],r[i+2]=t[2],r},t.setDefaultType=function(e){var t=i;return i=e,t},t.setTranslation=function(e,t,n){return n=n||l(),e!==n&&(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11]),n[12]=t[0],n[13]=t[1],n[14]=t[2],n[15]=1,n},t.transformDirection=function(e,t,n){n=n||r.create();var i=t[0],s=t[1],o=t[2];return n[0]=i*e[0]+s*e[4]+o*e[8],n[1]=i*e[1]+s*e[5]+o*e[9],n[2]=i*e[2]+s*e[6]+o*e[10],n},t.transformNormal=function(e,t,n){n=n||r.create();var i=u(e),s=t[0],o=t[1],a=t[2];return n[0]=s*i[0]+o*i[1]+a*i[2],n[1]=s*i[4]+o*i[5]+a*i[6],n[2]=s*i[8]+o*i[9]+a*i[10],n},t.transformPoint=function(e,t,n){n=n||r.create();var i=t[0],s=t[1],o=t[2],a=i*e[3]+s*e[7]+o*e[11]+e[15];return n[0]=(i*e[0]+s*e[4]+o*e[8]+e[12])/a,n[1]=(i*e[1]+s*e[5]+o*e[9]+e[13])/a,n[2]=(i*e[2]+s*e[6]+o*e[10]+e[14])/a,n},t.translate=function(e,t,n){n=n||new i(16);var r=t[0],s=t[1],o=t[2],a=e[0],c=e[1],l=e[2],u=e[3],h=e[4],d=e[5],p=e[6],f=e[7],m=e[8],g=e[9],b=e[10],y=e[11],E=e[12],T=e[13],v=e[14],A=e[15];return e!==n&&(n[0]=a,n[1]=c,n[2]=l,n[3]=u,n[4]=h,n[5]=d,n[6]=p,n[7]=f,n[8]=m,n[9]=g,n[10]=b,n[11]=y),n[12]=a*r+h*s+m*o+E,n[13]=c*r+d*s+g*o+T,n[14]=l*r+p*s+b*o+v,n[15]=u*r+f*s+y*o+A,n},t.translation=function(e,t){return(t=t||new i(16))[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},t.transpose=function(e,t){var n;if((t=t||new i(16))===e)return n=e[1],e[1]=e[4],e[4]=n,n=e[2],e[2]=e[8],e[8]=n,n=e[3],e[3]=e[12],e[12]=n,n=e[6],e[6]=e[9],e[9]=n,n=e[7],e[7]=e[13],e[13]=n,n=e[11],e[11]=e[14],e[14]=n,t;var r=e[0],s=e[1],o=e[2],a=e[3],c=e[4],l=e[5],u=e[6],h=e[7],d=e[8],p=e[9],f=e[10],m=e[11],g=e[12],b=e[13],y=e[14],E=e[15];return t[0]=r,t[1]=c,t[2]=d,t[3]=g,t[4]=s,t[5]=l,t[6]=p,t[7]=b,t[8]=o,t[9]=u,t[10]=f,t[11]=y,t[12]=a,t[13]=h,t[14]=m,t[15]=E,t};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(3)),i=Float32Array,s=r.create(),o=r.create(),a=r.create();function c(e,t){return(t=t||new i(16))[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function l(e){return(e=e||new i(16))[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function u(e,t){t=t||new i(16);var n=e[0],r=e[1],s=e[2],o=e[3],a=e[4],c=e[5],l=e[6],u=e[7],h=e[8],d=e[9],p=e[10],f=e[11],m=e[12],g=e[13],b=e[14],y=e[15],E=p*y,T=b*f,v=l*y,A=b*u,w=l*f,S=p*u,k=s*y,O=b*o,I=s*f,N=p*o,R=s*u,x=l*o,M=h*g,C=m*d,P=a*g,L=m*c,D=a*d,B=h*c,U=n*g,F=m*r,j=n*d,z=h*r,G=n*c,V=a*r,Y=E*c+A*d+w*g-(T*c+v*d+S*g),_=T*r+k*d+N*g-(E*r+O*d+I*g),H=v*r+O*c+R*g-(A*r+k*c+x*g),W=S*r+I*c+x*d-(w*r+N*c+R*d),K=1/(n*Y+a*_+h*H+m*W);return t[0]=K*Y,t[1]=K*_,t[2]=K*H,t[3]=K*W,t[4]=K*(T*a+v*h+S*m-(E*a+A*h+w*m)),t[5]=K*(E*n+O*h+I*m-(T*n+k*h+N*m)),t[6]=K*(A*n+k*a+x*m-(v*n+O*a+R*m)),t[7]=K*(w*n+N*a+R*h-(S*n+I*a+x*h)),t[8]=K*(M*u+L*f+D*y-(C*u+P*f+B*y)),t[9]=K*(C*o+U*f+z*y-(M*o+F*f+j*y)),t[10]=K*(P*o+F*u+G*y-(L*o+U*u+V*y)),t[11]=K*(B*o+j*u+V*f-(D*o+z*u+G*f)),t[12]=K*(P*p+B*b+C*l-(D*b+M*l+L*p)),t[13]=K*(j*b+M*s+F*p-(U*p+z*b+C*s)),t[14]=K*(U*l+V*b+L*s-(G*b+P*s+F*l)),t[15]=K*(G*p+D*s+z*l-(j*l+V*p+B*s)),t}},function(e,t,n){"use strict";t.__esModule=!0,t.createAttribsFromArrays=g,t.createBuffersFromArrays=function(e,t){var n={};return Object.keys(t).forEach((function(r){n[r]=y(e,t[r],r)})),t.indices?(n.numElements=t.indices.length,n.elementType=r.getGLTypeForTypedArray(m(t.indices),"indices")):n.numElements=function(e){for(var t,n=0;n<b.length&&!((t=b[n])in e);++n);ii===b.length&&(t=Object.keys(e)[0]);var r=e[t],i=u(r).length,s=f(r,t),o=i/s;if(i%s>0)throw"numComponents "+s+" not correct for length "+i;return o}(t),n},t.createBufferFromArray=y,t.createBufferFromTypedArray=c,t.createBufferInfoFromArrays=function(e,t){var n={attribs:g(e,t)},i=t.indices;if(i){var s=m(i,"indices");n.indices=c(e,s,e.ELEMENT_ARRAY_BUFFER),n.numElements=s.length,n.elementType=r.getGLTypeForTypedArray(s)}else n.numElements=function(e,t){var n,r;for(r=0;r<b.length&&!((n=b[r])in t)&&!((n=o.attribPrefix+n)in t);++r);r===b.length&&(n=Object.keys(t)[0]);var i=t[n];e.bindBuffer(e.ARRAY_BUFFER,i.buffer);var s=e.getBufferParameter(e.ARRAY_BUFFER,e.BUFFER_SIZE);e.bindBuffer(e.ARRAY_BUFFER,null);var a=function(e,t){return t===e.BYTE||t===e.UNSIGNED_BYTE?1:t===e.SHORT||t===e.UNSIGNED_SHORT?2:t===e.INT||t===e.UNSIGNED_INT||t===e.FLOAT?4:0}(e,i.type),c=s/a,l=i.numComponents||i.size,u=c/l;if(u%1!=0)throw"numComponents "+l+" not correct for length "+length;return u}(e,n.attribs);return n},t.setAttribInfoBufferFromArray=function(e,t,n,r){n=m(n),void 0!==r?(e.bindBuffer(e.ARRAY_BUFFER,t.buffer),e.bufferSubData(e.ARRAY_BUFFER,r,n)):a(e,e.ARRAY_BUFFER,t.buffer,n,t.drawType)},t.setAttributePrefix=function(e){o.attribPrefix=e},t.setAttributeDefaults_=function(e){i.copyExistingProperties(e,o)},t.getNumComponents_=f,t.getArray_=u;var r=s(n(1)),i=s(n(0));function s(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}var o={attribPrefix:""};function a(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||e.STATIC_DRAW)}function c(e,t,n,r){if(i.isBuffer(e,t))return t;n=n||e.ARRAY_BUFFER;var s=e.createBuffer();return a(e,n,s,t,r),s}function l(e){return"indices"===e}function u(e){return e.length?e:e.data}var h=/coord|texture/i,d=/color|colour/i;function p(e,t){var n;if(t%(n=h.test(e)?2:d.test(e)?4:3)>0)throw"Can not guess numComponents for attribute '"+e+"'. Tried "+n+" but "+t+" values is not evenly divisible by "+n+". You should specify it.";return n}function f(e,t){return e.numComponents||e.size||p(t,u(e).length)}function m(e,t){if(r.isArrayBuffer(e))return e;if(r.isArrayBuffer(e.data))return e.data;Array.isArray(e)&&(e={data:e});var n=e.type;return n||(n=l(t)?Uint16Array:Float32Array),new n(e.data)}function g(e,t){var n={};return Object.keys(t).forEach((function(i){if(!l(i)){var s,a,u,h,d,g=t[i],b=g.attrib||g.name||g.attribName||o.attribPrefix+i;if("number"==typeof g||"number"==typeof g.data){d=g.data||g;var y=g.type||Float32Array,E=d*y.BYTES_PER_ELEMENT;a=r.getGLTypeForTypedArrayType(y),u=void 0!==g.normalize?g.normalize:(v=y)===Int8Array||v===Uint8Array,h=g.numComponents||g.size||p(i,d),s=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,E,g.drawType||e.STATIC_DRAW)}else{var T=m(g,i);s=c(e,T,void 0,g.drawType),a=r.getGLTypeForTypedArray(T),u=void 0!==g.normalize?g.normalize:function(e){return e instanceof Int8Array||e instanceof Uint8Array}(T),h=f(g,i),d=T.length}n[b]={buffer:s,numComponents:h,type:a,normalize:u,stride:g.stride||0,offset:g.offset||0,divisor:void 0===g.divisor?void 0:g.divisor,drawType:g.drawType}}var v})),e.bindBuffer(e.ARRAY_BUFFER,null),n}var b=["position","positions","a_position"];function y(e,t,n){var r="indices"===n?e.ELEMENT_ARRAY_BUFFER:e.ARRAY_BUFFER;return c(e,m(t,n),r)}},function(e,t,n){"use strict";t.__esModule=!0,t.setTextureDefaults_=function(e){o.copyExistingProperties(e,l),e.textureColor&&_(e.textureColor)},t.createSampler=$,t.createSamplers=function(e,t){var n={};return Object.keys(t).forEach((function(r){n[r]=$(e,t[r])})),n},t.setSamplerParameters=J,t.createTexture=fe,t.setEmptyTexture=pe,t.setTextureFromArray=de,t.loadTextureFromUrl=le,t.setTextureFromElement=ie,t.setTextureFilteringForSize=ee,t.setTextureParameters=Q,t.setDefaultTextureColor=_,t.createTextures=function(e,t,n){n=n||se;var r=0,i=[],s={},o={};function a(){0===r&&setTimeout((function(){n(i.length?i:void 0,s,o)}),0)}return Object.keys(t).forEach((function(n){var c,l,u=t[n];("string"==typeof(l=u.src)||Array.isArray(l)&&"string"==typeof l[0])&&(c=function(e,t,s){o[n]=s,--r,e&&i.push(e),a()},++r),s[n]=fe(e,u,c)})),a(),s},t.resizeTexture=function(e,t,n,r,i){r=r||n.width,i=i||n.height;var s=n.target||e.TEXTURE_2D;e.bindTexture(s,t);var o,a=n.level||0,c=n.internalFormat||n.format||e.RGBA,l=z(c),h=n.format||l.format,d=n.src;if(o=d&&(u(d)||Array.isArray(d)&&"number"==typeof d[0])?n.type||V(e,d,l.type):n.type||l.type,s===e.TEXTURE_CUBE_MAP)for(var p=0;p<6;++p)e.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+p,a,c,r,i,0,h,o,null);else e.texImage2D(s,a,c,r,i,0,h,o,null)},t.getNumComponentsForFormat=function(e){var t=D[e];if(!t)throw"unknown format: "+e;return t.numColorComponents},t.getBytesPerElementForInternalFormat=j;var r,i=c(n(4)),s=c(n(1)),o=c(n(0)),a=(r=n(2))&&r.__esModule?r:{default:r};function c(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}var l={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},u=s.isArrayBuffer,h=a.default.document&&a.default.document.createElement?a.default.document.createElement("canvas").getContext("2d"):null,d=6406,p=6407,f=6408,m=6409,g=6410,b=6402,y=34041,E=5120,T=5121,v=5122,A=5123,w=5124,S=5125,k=5126,O=5131,I=36193,N=33640,R=33319,x=33320,M=6403,C=36244,P=36248,L=36249,D={},B=D;B[6406]={numColorComponents:1},B[6409]={numColorComponents:1},B[6410]={numColorComponents:2},B[p]={numColorComponents:3},B[f]={numColorComponents:4},B[M]={numColorComponents:1},B[36244]={numColorComponents:1},B[R]={numColorComponents:2},B[33320]={numColorComponents:2},B[p]={numColorComponents:3},B[36248]={numColorComponents:3},B[f]={numColorComponents:4},B[36249]={numColorComponents:4},B[6402]={numColorComponents:1},B[34041]={numColorComponents:2};var U={},F=U;function j(e,t){var n=U[e];if(!n)throw"unknown internal format";var r=n.bytesPerElementMap[t];if(void 0===r)throw"unknown internal format";return r}function z(e){var t=U[e];if(!t)throw"unknown internal format";return{format:t.textureFormat,type:Array.isArray(t.type)?t.type[0]:t.type}}function G(e){return!(e&e-1)}function V(e,t,n){return u(t)?s.getGLTypeForTypedArray(t):n||e.UNSIGNED_BYTE}function Y(e,t,n,r,i){if(i%1!=0)throw"can't guess dimensions";if(n||r){if(r){if(!n&&(n=i/r)%1)throw"can't guess dimensions"}else if((r=i/n)%1)throw"can't guess dimensions"}else{var s=Math.sqrt(i/(t===e.TEXTURE_CUBE_MAP?6:1));s%1==0?(n=s,r=s):(n=i,r=1)}return{width:n,height:r}}function _(e){l.textureColor=new Uint8Array([255*e[0],255*e[1],255*e[2],255*e[3]])}F[6406]={textureFormat:d,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[T,O,I,k]},F[6409]={textureFormat:m,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[T,O,I,k]},F[6410]={textureFormat:g,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[T,O,I,k]},F[p]={textureFormat:p,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[T,O,I,k,33635]},F[f]={textureFormat:f,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[T,O,I,k,32819,32820]},F[33321]={textureFormat:M,colorRenderable:!0,textureFilterable:!0,bytesPerElement:1,type:T},F[36756]={textureFormat:M,colorRenderable:!1,textureFilterable:!0,bytesPerElement:1,type:E},F[33325]={textureFormat:M,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[k,O]},F[33326]={textureFormat:M,colorRenderable:!1,textureFilterable:!1,bytesPerElement:4,type:k},F[33330]={textureFormat:C,colorRenderable:!0,textureFilterable:!1,bytesPerElement:1,type:T},F[33329]={textureFormat:C,colorRenderable:!0,textureFilterable:!1,bytesPerElement:1,type:E},F[33332]={textureFormat:C,colorRenderable:!0,textureFilterable:!1,bytesPerElement:2,type:A},F[33331]={textureFormat:C,colorRenderable:!0,textureFilterable:!1,bytesPerElement:2,type:v},F[33334]={textureFormat:C,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:S},F[33333]={textureFormat:C,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:w},F[33323]={textureFormat:R,colorRenderable:!0,textureFilterable:!0,bytesPerElement:2,type:T},F[36757]={textureFormat:R,colorRenderable:!1,textureFilterable:!0,bytesPerElement:2,type:E},F[33327]={textureFormat:R,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[k,O]},F[33328]={textureFormat:R,colorRenderable:!1,textureFilterable:!1,bytesPerElement:8,type:k},F[33336]={textureFormat:x,colorRenderable:!0,textureFilterable:!1,bytesPerElement:2,type:T},F[33335]={textureFormat:x,colorRenderable:!0,textureFilterable:!1,bytesPerElement:2,type:E},F[33338]={textureFormat:x,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:A},F[33337]={textureFormat:x,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:v},F[33340]={textureFormat:x,colorRenderable:!0,textureFilterable:!1,bytesPerElement:8,type:S},F[33339]={textureFormat:x,colorRenderable:!0,textureFilterable:!1,bytesPerElement:8,type:w},F[32849]={textureFormat:p,colorRenderable:!0,textureFilterable:!0,bytesPerElement:3,type:T},F[35905]={textureFormat:p,colorRenderable:!1,textureFilterable:!0,bytesPerElement:3,type:T},F[36194]={textureFormat:p,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[T,33635]},F[36758]={textureFormat:p,colorRenderable:!1,textureFilterable:!0,bytesPerElement:3,type:E},F[35898]={textureFormat:p,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[k,O,35899]},F[35901]={textureFormat:p,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[k,O,35902]},F[34843]={textureFormat:p,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[k,O]},F[34837]={textureFormat:p,colorRenderable:!1,textureFilterable:!1,bytesPerElement:12,type:k},F[36221]={textureFormat:P,colorRenderable:!1,textureFilterable:!1,bytesPerElement:3,type:T},F[36239]={textureFormat:P,colorRenderable:!1,textureFilterable:!1,bytesPerElement:3,type:E},F[36215]={textureFormat:P,colorRenderable:!1,textureFilterable:!1,bytesPerElement:6,type:A},F[36233]={textureFormat:P,colorRenderable:!1,textureFilterable:!1,bytesPerElement:6,type:v},F[36209]={textureFormat:P,colorRenderable:!1,textureFilterable:!1,bytesPerElement:12,type:S},F[36227]={textureFormat:P,colorRenderable:!1,textureFilterable:!1,bytesPerElement:12,type:w},F[32856]={textureFormat:f,colorRenderable:!0,textureFilterable:!0,bytesPerElement:4,type:T},F[35907]={textureFormat:f,colorRenderable:!0,textureFilterable:!0,bytesPerElement:4,type:T},F[36759]={textureFormat:f,colorRenderable:!1,textureFilterable:!0,bytesPerElement:4,type:E},F[32855]={textureFormat:f,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[T,32820,N]},F[32854]={textureFormat:f,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[T,32819]},F[32857]={textureFormat:f,colorRenderable:!0,textureFilterable:!0,bytesPerElement:4,type:N},F[34842]={textureFormat:f,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[k,O]},F[34836]={textureFormat:f,colorRenderable:!1,textureFilterable:!1,bytesPerElement:16,type:k},F[36220]={textureFormat:L,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:T},F[36238]={textureFormat:L,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:E},F[36975]={textureFormat:L,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:N},F[36214]={textureFormat:L,colorRenderable:!0,textureFilterable:!1,bytesPerElement:8,type:A},F[36232]={textureFormat:L,colorRenderable:!0,textureFilterable:!1,bytesPerElement:8,type:v},F[36226]={textureFormat:L,colorRenderable:!0,textureFilterable:!1,bytesPerElement:16,type:w},F[36208]={textureFormat:L,colorRenderable:!0,textureFilterable:!1,bytesPerElement:16,type:S},F[33189]={textureFormat:b,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[A,S]},F[33190]={textureFormat:b,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:S},F[36012]={textureFormat:b,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:k},F[35056]={textureFormat:y,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:34042},F[36013]={textureFormat:y,colorRenderable:!0,textureFilterable:!1,bytesPerElement:4,type:36269},Object.keys(F).forEach((function(e){var t=F[e];if(t.bytesPerElementMap={},Array.isArray(t.bytesPerElement))t.bytesPerElement.forEach((function(e,n){var r=t.type[n];t.bytesPerElementMap[r]=e}));else{var n=t.type;t.bytesPerElementMap[n]=t.bytesPerElement}}));var H={};function W(e,t){void 0!==t.colorspaceConversion&&(H.colorspaceConversion=e.getParameter(e.UNPACK_COLORSPACE_CONVERSION_WEBGL),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.colorspaceConversion)),void 0!==t.premultiplyAlpha&&(H.premultiplyAlpha=e.getParameter(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.premultiplyAlpha)),void 0!==t.flipY&&(H.flipY=e.getParameter(e.UNPACK_FLIP_Y_WEBGL),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t.flipY))}function K(e,t){void 0!==t.colorspaceConversion&&e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,H.colorspaceConversion),void 0!==t.premultiplyAlpha&&e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,H.premultiplyAlpha),void 0!==t.flipY&&e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,H.flipY)}function X(e){H.unpackAlignment=e.getParameter(e.UNPACK_ALIGNMENT),i.isWebGL2(e)&&(H.unpackRowLength=e.getParameter(e.UNPACK_ROW_LENGTH),H.unpackImageHeight=e.getParameter(e.UNPACK_IMAGE_HEIGHT),H.unpackSkipPixels=e.getParameter(e.UNPACK_SKIP_PIXELS),H.unpackSkipRows=e.getParameter(e.UNPACK_SKIP_ROWS),H.unpackSkipImages=e.getParameter(e.UNPACK_SKIP_IMAGES))}function Z(e){e.pixelStorei(e.UNPACK_ALIGNMENT,H.unpackAlignment),i.isWebGL2(e)&&(e.pixelStorei(e.UNPACK_ROW_LENGTH,H.unpackRowLength),e.pixelStorei(e.UNPACK_IMAGE_HEIGHT,H.unpackImageHeight),e.pixelStorei(e.UNPACK_SKIP_PIXELS,H.unpackSkipPixels),e.pixelStorei(e.UNPACK_SKIP_ROWS,H.unpackSkipRows),e.pixelStorei(e.UNPACK_SKIP_IMAGES,H.unpackSkipImages))}function q(e,t,n,r){r.minMag&&(n.call(e,t,e.TEXTURE_MIN_FILTER,r.minMag),n.call(e,t,e.TEXTURE_MAG_FILTER,r.minMag)),r.min&&n.call(e,t,e.TEXTURE_MIN_FILTER,r.min),r.mag&&n.call(e,t,e.TEXTURE_MAG_FILTER,r.mag),r.wrap&&(n.call(e,t,e.TEXTURE_WRAP_S,r.wrap),n.call(e,t,e.TEXTURE_WRAP_T,r.wrap),(t===e.TEXTURE_3D||o.isSampler(e,t))&&n.call(e,t,e.TEXTURE_WRAP_R,r.wrap)),r.wrapR&&n.call(e,t,e.TEXTURE_WRAP_R,r.wrapR),r.wrapS&&n.call(e,t,e.TEXTURE_WRAP_S,r.wrapS),r.wrapT&&n.call(e,t,e.TEXTURE_WRAP_T,r.wrapT),r.minLod&&n.call(e,t,e.TEXTURE_MIN_LOD,r.minLod),r.maxLod&&n.call(e,t,e.TEXTURE_MAX_LOD,r.maxLod),r.baseLevel&&n.call(e,t,e.TEXTURE_BASE_LEVEL,r.baseLevel),r.maxLevel&&n.call(e,t,e.TEXTURE_MAX_LEVEL,r.maxLevel)}function Q(e,t,n){var r=n.target||e.TEXTURE_2D;e.bindTexture(r,t),q(e,r,e.texParameteri,n)}function J(e,t,n){q(e,t,e.samplerParameteri,n)}function $(e,t){var n=e.createSampler();return J(e,n,t),n}function ee(e,t,n,r,s,o,a){n=n||l.textureOptions,o=o||e.RGBA,a=a||e.UNSIGNED_BYTE;var c=n.target||e.TEXTURE_2D;if(r=r||n.width,s=s||n.height,e.bindTexture(c,t),function(e,t,n,r){if(!i.isWebGL2(e))return G(t)&&G(n);var s=U[r];if(!s)throw"unknown internal format";return s.colorRenderable&&s.textureFilterable}(e,r,s,o))e.generateMipmap(c);else{var u=function(e){var t=U[e];if(!t)throw"unknown internal format";return t.textureFilterable}(o)?e.LINEAR:e.NEAREST;e.texParameteri(c,e.TEXTURE_MIN_FILTER,u),e.texParameteri(c,e.TEXTURE_MAG_FILTER,u),e.texParameteri(c,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(c,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}}function te(e){return!0===e.auto||void 0===e.auto&&void 0===e.level}function ne(e,t){return(t=t||{}).cubeFaceOrder||[e.TEXTURE_CUBE_MAP_POSITIVE_X,e.TEXTURE_CUBE_MAP_NEGATIVE_X,e.TEXTURE_CUBE_MAP_POSITIVE_Y,e.TEXTURE_CUBE_MAP_NEGATIVE_Y,e.TEXTURE_CUBE_MAP_POSITIVE_Z,e.TEXTURE_CUBE_MAP_NEGATIVE_Z]}function re(e,t){var n=ne(e,t).map((function(e,t){return{face:e,ndx:t}}));return n.sort((function(e,t){return e.face-t.face})),n}function ie(e,t,n,r){var i=(r=r||l.textureOptions).target||e.TEXTURE_2D,s=r.level||0,o=n.width,c=n.height,u=r.internalFormat||r.format||e.RGBA,d=z(u),p=r.format||d.format,f=r.type||d.type;if(W(e,r),e.bindTexture(i,t),i===e.TEXTURE_CUBE_MAP){var m,g,b=n.width,y=n.height;if(b/6===y)m=y,g=[0,0,1,0,2,0,3,0,4,0,5,0];else if(y/6===b)m=b,g=[0,0,0,1,0,2,0,3,0,4,0,5];else if(b/3==y/2)m=b/3,g=[0,0,1,0,2,0,0,1,1,1,2,1];else{if(b/2!=y/3)throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);m=b/2,g=[0,0,1,0,0,1,1,1,0,2,1,2]}h?(h.canvas.width=m,h.canvas.height=m,o=m,c=m,re(e,r).forEach((function(t){var r=g[2*t.ndx+0]*m,i=g[2*t.ndx+1]*m;h.drawImage(n,r,i,m,m,0,0,m,m),e.texImage2D(t.face,s,u,p,f,h.canvas)})),h.canvas.width=1,h.canvas.height=1):a.default.createImageBitmap&&(o=m,c=m,re(e,r).forEach((function(l){var h=g[2*l.ndx+0]*m,d=g[2*l.ndx+1]*m;e.texImage2D(l.face,s,u,m,m,0,p,f,null),a.default.createImageBitmap(n,h,d,m,m,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then((function(n){W(e,r),e.bindTexture(i,t),e.texImage2D(l.face,s,u,p,f,n),K(e,r),te(r)&&ee(e,t,r,o,c,u,f)}))})))}else if(i===e.TEXTURE_3D||i===e.TEXTURE_2D_ARRAY){var E=Math.min(n.width,n.height),T=Math.max(n.width,n.height),v=T/E;if(v%1!=0)throw"can not compute 3D dimensions of element";var A=n.width===T?1:0,w=n.height===T?1:0;X(e),e.pixelStorei(e.UNPACK_ALIGNMENT,1),e.pixelStorei(e.UNPACK_ROW_LENGTH,n.width),e.pixelStorei(e.UNPACK_IMAGE_HEIGHT,0),e.pixelStorei(e.UNPACK_SKIP_IMAGES,0),e.texImage3D(i,s,u,E,E,E,0,p,f,null);for(var S=0;S<v;++S){var k=S*E*A,O=S*E*w;e.pixelStorei(e.UNPACK_SKIP_PIXELS,k),e.pixelStorei(e.UNPACK_SKIP_ROWS,O),e.texSubImage3D(i,s,0,0,S,E,E,1,p,f,n)}Z(e)}else e.texImage2D(i,s,u,p,f,n);K(e,r),te(r)&&ee(e,t,r,o,c,u,f),Q(e,t,r)}function se(){}function oe(e){return a.default.ImageBitmap&&e instanceof a.default.ImageBitmap||a.default.ImageData&&e instanceof a.default.ImageData||a.default.HTMLElement&&e instanceof a.default.HTMLElement}function ae(e,t,n){return oe(e)?(setTimeout((function(){n(null,e)})),e):function(e,t,n){var r;if(n=n||se,a.default.Image){r=new a.default.Image,void 0!==(t=void 0!==t?t:l.crossOrigin)&&(r.crossOrigin=t);var i=function(){r.removeEventListener("error",s),r.removeEventListener("load",c),r=null},s=function(){var t="couldn't load image: "+e;o.error(t),n(t,r),i()},c=function(){n(null,r),i()};return r.addEventListener("error",s),r.addEventListener("load",c),r.src=e,r}if(a.default.ImageBitmap){var u,h,d=function(){n(u,h)},p={};t&&(p.mode="cors"),fetch(e,p).then((function(e){if(!e.ok)throw e;return e.blob()})).then((function(e){return a.default.createImageBitmap(e,{premultiplyAlpha:"none",colorSpaceConversion:"none"})})).then((function(e){h=e,setTimeout(d)})).catch((function(e){u=e,setTimeout(d)})),r=null}return r}(e,t,n)}function ce(e,t,n){var r=(n=n||l.textureOptions).target||e.TEXTURE_2D;if(e.bindTexture(r,t),!1!==n.color){var i=function(e){return e=e||l.textureColor,u(e)?e:new Uint8Array([255*e[0],255*e[1],255*e[2],255*e[3]])}(n.color);if(r===e.TEXTURE_CUBE_MAP)for(var s=0;s<6;++s)e.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+s,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,i);else r===e.TEXTURE_3D||r===e.TEXTURE_2D_ARRAY?e.texImage3D(r,0,e.RGBA,1,1,1,0,e.RGBA,e.UNSIGNED_BYTE,i):e.texImage2D(r,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,i)}}function le(e,t,n,r){return r=r||se,n=n||l.textureOptions,ce(e,t,n),ae((n=Object.assign({},n)).src,n.crossOrigin,(function(i,s){i?r(i,t,s):(ie(e,t,s,n),r(null,t,s))}))}function ue(e,t,n,r){r=r||se;var i=n.src;if(6!==i.length)throw"there must be 6 urls for a cubemap";var s=n.level||0,o=n.internalFormat||n.format||e.RGBA,a=z(o),c=n.format||a.format,l=n.type||e.UNSIGNED_BYTE,u=n.target||e.TEXTURE_2D;if(u!==e.TEXTURE_CUBE_MAP)throw"target must be TEXTURE_CUBE_MAP";ce(e,t,n),n=Object.assign({},n);var h,d=6,p=[],f=ne(e,n);h=i.map((function(i,a){return ae(i,n.crossOrigin,(m=f[a],function(i,a){--d,i?p.push(i):a.width!==a.height?p.push("cubemap face img is not a square: "+a.src):(W(e,n),e.bindTexture(u,t),5===d?ne(e).forEach((function(t){e.texImage2D(t,s,o,c,l,a)})):e.texImage2D(m,s,o,c,l,a),K(e,n),te(n)&&e.generateMipmap(u)),0===d&&r(p.length?p:void 0,t,h)}));var m}))}function he(e,t,n,r){r=r||se;var i=n.src,s=n.internalFormat||n.format||e.RGBA,o=z(s),a=n.format||o.format,c=n.type||e.UNSIGNED_BYTE,l=n.target||e.TEXTURE_2D_ARRAY;if(l!==e.TEXTURE_3D&&l!==e.TEXTURE_2D_ARRAY)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";ce(e,t,n),n=Object.assign({},n);var u,d=i.length,p=[],f=n.level||0,m=n.width,g=n.height,b=i.length,y=!0;u=i.map((function(i,o){return ae(i,n.crossOrigin,(E=o,function(i,o){if(--d,i)p.push(i);else{if(W(e,n),e.bindTexture(l,t),y){y=!1,m=n.width||o.width,g=n.height||o.height,e.texImage3D(l,f,s,m,g,b,0,a,c,null);for(var T=0;T<b;++T)e.texSubImage3D(l,f,0,0,T,m,g,1,a,c,o)}else{var v=o;o.width===m&&o.height===g||(v=h.canvas,h.canvas.width=m,h.canvas.height=g,h.drawImage(o,0,0,m,g)),e.texSubImage3D(l,f,0,0,E,m,g,1,a,c,v),v===h.canvas&&(h.canvas.width=0,h.canvas.height=0)}K(e,n),te(n)&&e.generateMipmap(l)}0===d&&r(p.length?p:void 0,t,u)}));var E}))}function de(e,t,n,r){var o=(r=r||l.textureOptions).target||e.TEXTURE_2D;e.bindTexture(o,t);var a=r.width,c=r.height,h=r.depth,d=r.level||0,p=r.internalFormat||r.format||e.RGBA,f=z(p),m=r.format||f.format,g=r.type||V(e,n,f.type);if(u(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{var b=s.getTypedArrayTypeForGLType(g);n=new b(n)}var y,E=j(p,g),T=n.byteLength/E;if(T%1)throw"length wrong size for format: "+i.glEnumToString(e,m);if(o===e.TEXTURE_3D)if(a||c||h)!a||c&&h?!c||a&&h?(y=Y(e,o,a,c,T/h),a=y.width,c=y.height):(y=Y(e,o,a,h,T/c),a=y.width,h=y.height):(y=Y(e,o,c,h,T/a),c=y.width,h=y.height);else{var v=Math.cbrt(T);if(v%1!=0)throw"can't guess cube size of array of numElements: "+T;a=v,c=v,h=v}else y=Y(e,o,a,c,T),a=y.width,c=y.height;if(X(e),e.pixelStorei(e.UNPACK_ALIGNMENT,r.unpackAlignment||1),W(e,r),o===e.TEXTURE_CUBE_MAP){var A=T/6*(E/n.BYTES_PER_ELEMENT);re(e,r).forEach((function(t){var r=A*t.ndx,i=n.subarray(r,r+A);e.texImage2D(t.face,d,p,a,c,0,m,g,i)}))}else o===e.TEXTURE_3D?e.texImage3D(o,d,p,a,c,h,0,m,g,n):e.texImage2D(o,d,p,a,c,0,m,g,n);return K(e,r),Z(e),{width:a,height:c,depth:h,type:g}}function pe(e,t,n){var r=n.target||e.TEXTURE_2D;e.bindTexture(r,t);var i=n.level||0,s=n.internalFormat||n.format||e.RGBA,o=z(s),a=n.format||o.format,c=n.type||o.type;if(W(e,n),r===e.TEXTURE_CUBE_MAP)for(var l=0;l<6;++l)e.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+l,i,s,n.width,n.height,0,a,c,null);else r===e.TEXTURE_3D?e.texImage3D(r,i,s,n.width,n.height,n.depth,0,a,c,null):e.texImage2D(r,i,s,n.width,n.height,0,a,c,null);K(e,n)}function fe(e,t,n){n=n||se,t=t||l.textureOptions;var r=e.createTexture(),i=t.target||e.TEXTURE_2D,s=t.width||1,o=t.height||1,a=t.internalFormat||e.RGBA,c=z(a),h=t.type||c.type;e.bindTexture(i,r),i===e.TEXTURE_CUBE_MAP&&(e.texParameteri(i,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(i,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE));var d=t.src;if(d)if("function"==typeof d&&(d=d(e,t)),"string"==typeof d)le(e,r,t,n);else if(u(d)||Array.isArray(d)&&("number"==typeof d[0]||Array.isArray(d[0])||u(d[0]))){var p=de(e,r,d,t);s=p.width,o=p.height,h=p.type}else if(Array.isArray(d)&&("string"==typeof d[0]||oe(d[0])))i===e.TEXTURE_CUBE_MAP?ue(e,r,t,n):he(e,r,t,n);else{if(!oe(d))throw"unsupported src type";ie(e,r,d,t),s=d.width,o=d.height}else pe(e,r,t);return te(t)&&ee(e,r,t,s,o,a,h),Q(e,r,t),r}},function(e,t,n){"use strict";t.__esModule=!0;var r={m4:!0,v3:!0,primitives:!0};t.primitives=t.v3=t.m4=void 0;var i=c(n(6));t.m4=i;var s=c(n(3));t.v3=s;var o=c(n(10));t.primitives=o;var a=n(11);function c(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||(t[e]=a[e]))}))},function(e,t,n){"use strict";t.__esModule=!0,t.create3DFVertices=I,t.createAugmentedTypedArray=d,t.createCubeVertices=S,t.createPlaneVertices=v,t.createSphereVertices=A,t.createTruncatedConeVertices=k,t.createXYQuadVertices=T,t.createCresentVertices=N,t.createCylinderVertices=R,t.createTorusVertices=x,t.createDiscVertices=M,t.deindexVertices=function(e){var t=e.indices,n={},r=t.length;return Object.keys(e).filter(p).forEach((function(i){for(var s=e[i],o=s.numComponents,a=d(o,r,s.constructor),c=0;c<r;++c)for(var l=t[c]*o,u=0;u<o;++u)a.push(s[l+u]);n[i]=a})),n},t.flattenNormals=function(e){if(e.indices)throw"can't flatten normals of indexed vertices. deindex them first";for(var t=e.normal,n=t.length,r=0;r<n;r+=9){var i=t[r+0],s=t[r+1],o=t[r+2],a=t[r+3],c=t[r+4],l=t[r+5],u=i+a+t[r+6],h=s+c+t[r+7],d=o+l+t[r+8],p=Math.sqrt(u*u+h*h+d*d);u/=p,h/=p,d/=p,t[r+0]=u,t[r+1]=h,t[r+2]=d,t[r+3]=u,t[r+4]=h,t[r+5]=d,t[r+6]=u,t[r+7]=h,t[r+8]=d}return e},t.makeRandomVertexColors=function(e,t){t=t||{};var n=e.position.numElements,r=d(4,n,Uint8Array),i=t.rand||function(e,t){return t<3?(n=256,Math.random()*n|0):255;var n};if(e.color=r,e.indices)for(var s=0;s<n;++s)r.push(i(s,0),i(s,1),i(s,2),i(s,3));else for(var o=t.vertsPerColor||3,a=n/o,c=0;c<a;++c)for(var l=[i(c,0),i(c,1),i(c,2),i(c,3)],u=0;u<o;++u)r.push(l);return e},t.reorientDirections=g,t.reorientNormals=b,t.reorientPositions=y,t.reorientVertices=E,t.concatVertices=function(e){for(var t,n={},r=function(r){var i=e[r];Object.keys(i).forEach((function(e){n[e]||(n[e]=[]),t||"indices"===e||(t=e);var r=i[e],s=u(r,e),o=l(r).length/s;n[e].push(o)}))},i=0;i<e.length;++i)r(i);var s=n[t],o={};return Object.keys(n).forEach((function(t){var n=function(t){for(var n,r=0,i=0;i<e.length;++i){var s=e[i][t];r+=l(s).length,n&&!s.data||(n=s)}return{length:r,spec:n}}(t),r=B(n.spec,n.length);!function(t,n,r){for(var i=0,s=0,o=0;o<e.length;++o){var a=e[o][t],c=l(a);"indices"===t?(D(c,r,s,i),i+=n[o]):D(c,r,s),s+=c.length}}(t,s,l(r)),o[t]=r})),o},t.duplicateVertices=function(e){var t={};return Object.keys(e).forEach((function(n){var r=e[n],i=l(r),s=B(r,i.length);D(i,l(s),0),t[n]=s})),t},t.createDiscBuffers=t.createDiscBufferInfo=t.createTorusBuffers=t.createTorusBufferInfo=t.createCylinderBuffers=t.createCylinderBufferInfo=t.createCresentBuffers=t.createCresentBufferInfo=t.createXYQuadBuffers=t.createXYQuadBufferInfo=t.createTruncatedConeBuffers=t.createTruncatedConeBufferInfo=t.createSphereBuffers=t.createSphereBufferInfo=t.createPlaneBuffers=t.createPlaneBufferInfo=t.createCubeBuffers=t.createCubeBufferInfo=t.create3DFBuffers=t.create3DFBufferInfo=void 0;var r=c(n(7)),i=c(n(0)),s=c(n(1)),o=c(n(6)),a=c(n(3));function c(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}var l=r.getArray_,u=r.getNumComponents_;function h(e,t){var n=0;return e.push=function(){for(var t=0;t<arguments.length;++t){var r=arguments[t];if(r instanceof Array||s.isArrayBuffer(r))for(var i=0;i<r.length;++i)e[n++]=r[i];else e[n++]=r}},e.reset=function(e){n=e||0},e.numComponents=t,Object.defineProperty(e,"numElements",{get:function(){return this.length/this.numComponents|0}}),e}function d(e,t,n){return h(new(n||Float32Array)(e*t),e)}function p(e){return"indices"!==e}function f(e,t,n){for(var r=e.length,i=new Float32Array(3),s=0;s<r;s+=3)n(t,[e[s],e[s+1],e[s+2]],i),e[s]=i[0],e[s+1]=i[1],e[s+2]=i[2]}function m(e,t,n){n=n||a.create();var r=t[0],i=t[1],s=t[2];return n[0]=r*e[0]+i*e[1]+s*e[2],n[1]=r*e[4]+i*e[5]+s*e[6],n[2]=r*e[8]+i*e[9]+s*e[10],n}function g(e,t){return f(e,t,o.transformDirection),e}function b(e,t){return f(e,o.inverse(t),m),e}function y(e,t){return f(e,t,o.transformPoint),e}function E(e,t){return Object.keys(e).forEach((function(n){var r=e[n];n.indexOf("pos")>=0?y(r,t):n.indexOf("tan")>=0||n.indexOf("binorm")>=0?g(r,t):n.indexOf("norm")>=0&&b(r,t)})),e}function T(e,t,n){return e=e||2,{position:{numComponents:2,data:[(t=t||0)+-1*(e*=.5),(n=n||0)+-1*e,t+1*e,n+-1*e,t+-1*e,n+1*e,t+1*e,n+1*e]},normal:[0,0,1,0,0,1,0,0,1,0,0,1],texcoord:[0,0,1,0,0,1,1,1],indices:[0,1,2,2,1,3]}}function v(e,t,n,r,i){e=e||1,t=t||1,n=n||1,r=r||1,i=i||o.identity();for(var s=(n+1)*(r+1),a=d(3,s),c=d(3,s),l=d(2,s),u=0;u<=r;u++)for(var h=0;h<=n;h++){var p=h/n,f=u/r;a.push(e*p-.5*e,0,t*f-.5*t),c.push(0,1,0),l.push(p,f)}for(var m=n+1,g=d(3,n*r*2,Uint16Array),b=0;b<r;b++)for(var y=0;y<n;y++)g.push((b+0)*m+y,(b+1)*m+y,(b+0)*m+y+1),g.push((b+1)*m+y,(b+1)*m+y+1,(b+0)*m+y+1);return E({position:a,normal:c,texcoord:l,indices:g},i)}function A(e,t,n,r,i,s,o){if(t<=0||n<=0)throw Error("subdivisionAxis and subdivisionHeight must be > 0");r=r||0,s=s||0;for(var a=(i=i||Math.PI)-r,c=(o=o||2*Math.PI)-s,l=(t+1)*(n+1),u=d(3,l),h=d(3,l),p=d(2,l),f=0;f<=n;f++)for(var m=0;m<=t;m++){var g=m/t,b=f/n,y=c*g,E=a*b,T=Math.sin(y),v=Math.cos(y),A=Math.sin(E),w=v*A,S=Math.cos(E),k=T*A;u.push(e*w,e*S,e*k),h.push(w,S,k),p.push(1-g,b)}for(var O=t+1,I=d(3,t*n*2,Uint16Array),N=0;N<t;N++)for(var R=0;R<n;R++)I.push((R+0)*O+N,(R+0)*O+N+1,(R+1)*O+N),I.push((R+1)*O+N,(R+0)*O+N+1,(R+1)*O+N+1);return{position:u,normal:h,texcoord:p,indices:I}}var w=[[3,7,5,1],[6,2,0,4],[6,7,3,2],[0,1,5,4],[7,6,4,5],[2,3,1,0]];function S(e){for(var t=(e=e||1)/2,n=[[-t,-t,-t],[+t,-t,-t],[-t,+t,-t],[+t,+t,-t],[-t,-t,+t],[+t,-t,+t],[-t,+t,+t],[+t,+t,+t]],r=[[1,0,0],[-1,0,0],[0,1,0],[0,-1,0],[0,0,1],[0,0,-1]],i=[[1,0],[0,0],[0,1],[1,1]],s=d(3,24),o=d(3,24),a=d(2,24),c=d(3,12,Uint16Array),l=0;l<6;++l){for(var u=w[l],h=0;h<4;++h){var p=n[u[h]],f=r[l],m=i[h];s.push(p),o.push(f),a.push(m)}var g=4*l;c.push(g+0,g+1,g+2),c.push(g+0,g+2,g+3)}return{position:s,normal:o,texcoord:a,indices:c}}function k(e,t,n,r,i,s,o){if(r<3)throw Error("radialSubdivisions must be 3 or greater");if(i<1)throw Error("verticalSubdivisions must be 1 or greater");for(var a=void 0===s||s,c=void 0===o||o,l=(a?2:0)+(c?2:0),u=(r+1)*(i+1+l),h=d(3,u),p=d(3,u),f=d(2,u),m=d(3,r*(i+l)*2,Uint16Array),g=r+1,b=Math.atan2(e-t,n),y=Math.cos(b),E=Math.sin(b),T=i+(c?2:0),v=a?-2:0;v<=T;++v){var A=v/i,w=n*A,S=void 0;v<0?(w=0,A=1,S=e):v>i?(w=n,A=1,S=t):S=e+v/i*(t-e),-2!==v&&v!==i+2||(S=0,A=0),w-=n/2;for(var k=0;k<g;++k){var O=Math.sin(k*Math.PI*2/r),I=Math.cos(k*Math.PI*2/r);h.push(O*S,w,I*S),p.push(v<0||v>i?0:O*y,v<0?-1:v>i?1:E,v<0||v>i?0:I*y),f.push(k/r,1-A)}}for(var N=0;N<i+l;++N)for(var R=0;R<r;++R)m.push(g*(N+0)+0+R,g*(N+0)+1+R,g*(N+1)+1+R),m.push(g*(N+0)+0+R,g*(N+1)+1+R,g*(N+1)+0+R);return{position:h,normal:p,texcoord:f,indices:m}}function O(e,t){t=t||[];for(var n=[],r=0;r<e.length;r+=4){var i=e[r],s=e.slice(r+1,r+4);s.push.apply(s,t);for(var o=0;o<i;++o)n.push.apply(n,s)}return n}function I(){var e=[0,0,0,0,150,0,30,0,0,0,150,0,30,150,0,30,0,0,30,0,0,30,30,0,100,0,0,30,30,0,100,30,0,100,0,0,30,60,0,30,90,0,67,60,0,30,90,0,67,90,0,67,60,0,0,0,30,30,0,30,0,150,30,0,150,30,30,0,30,30,150,30,30,0,30,100,0,30,30,30,30,30,30,30,100,0,30,100,30,30,30,60,30,67,60,30,30,90,30,30,90,30,67,60,30,67,90,30,0,0,0,100,0,0,100,0,30,0,0,0,100,0,30,0,0,30,100,0,0,100,30,0,100,30,30,100,0,0,100,30,30,100,0,30,30,30,0,30,30,30,100,30,30,30,30,0,100,30,30,100,30,0,30,30,0,30,60,30,30,30,30,30,30,0,30,60,0,30,60,30,30,60,0,67,60,30,30,60,30,30,60,0,67,60,0,67,60,30,67,60,0,67,90,30,67,60,30,67,60,0,67,90,0,67,90,30,30,90,0,30,90,30,67,90,30,30,90,0,67,90,30,67,90,0,30,90,0,30,150,30,30,90,30,30,90,0,30,150,0,30,150,30,0,150,0,0,150,30,30,150,30,0,150,0,30,150,30,30,150,0,0,0,0,0,0,30,0,150,30,0,0,0,0,150,30,0,150,0],t=O([18,0,0,1,18,0,0,-1,6,0,1,0,6,1,0,0,6,0,-1,0,6,1,0,0,6,0,1,0,6,1,0,0,6,0,-1,0,6,1,0,0,6,0,-1,0,6,-1,0,0]),n=O([18,200,70,120,18,80,70,200,6,70,200,210,6,200,200,70,6,210,100,70,6,210,160,70,6,70,180,210,6,100,70,210,6,76,210,100,6,140,210,80,6,90,130,110,6,160,160,220],[255]),r=e.length/3,i={position:d(3,r),texcoord:d(2,r),normal:d(3,r),color:d(4,r,Uint8Array),indices:d(3,r/3,Uint16Array)};i.position.push(e),i.texcoord.push([.22,.19,.22,.79,.34,.19,.22,.79,.34,.79,.34,.19,.34,.19,.34,.31,.62,.19,.34,.31,.62,.31,.62,.19,.34,.43,.34,.55,.49,.43,.34,.55,.49,.55,.49,.43,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0]),i.normal.push(t),i.color.push(n);for(var s=0;s<r;++s)i.indices.push(s);return i}function N(e,t,n,r,i,s,o){if(i<=0)throw Error("subdivisionDown must be > 0");var c=(o=o||1)-(s=s||0),l=2*(i+1)*4,u=d(3,l),h=d(3,l),p=d(2,l);function f(e,t,n){return e+(t-e)*n}function m(t,n,o,l,d,m){for(var g=0;g<=i;g++){var b=n/1,y=g/i,E=2*(b-.5),T=(s+y*c)*Math.PI,v=Math.sin(T),A=Math.cos(T),w=f(e,t,v),S=E*r,k=A*e,O=v*w;u.push(S,k,O);var I=a.add(a.multiply([0,v,A],o),l);h.push(I),p.push(b*d+m,y)}}for(var g=0;g<2;g++){var b=2*(g/1-.5);m(t,g,[1,1,1],[0,0,0],1,0),m(t,g,[0,0,0],[b,0,0],0,0),m(n,g,[1,1,1],[0,0,0],1,0),m(n,g,[0,0,0],[b,0,0],0,1)}var y=d(3,2*i*4,Uint16Array);function E(e,t){for(var n=0;n<i;++n)y.push(e+n+0,e+n+1,t+n+0),y.push(e+n+1,t+n+1,t+n+0)}var T=i+1;return E(0*T,4*T),E(5*T,7*T),E(6*T,2*T),E(3*T,1*T),{position:u,normal:h,texcoord:p,indices:y}}function R(e,t,n,r,i,s){return k(e,e,t,n,r,i,s)}function x(e,t,n,r,i,s){if(n<3)throw Error("radialSubdivisions must be 3 or greater");if(r<3)throw Error("verticalSubdivisions must be 3 or greater");i=i||0;for(var o=(s=s||2*Math.PI)-i,a=n+1,c=r+1,l=a*c,u=d(3,l),h=d(3,l),p=d(2,l),f=d(3,n*r*2,Uint16Array),m=0;m<c;++m)for(var g=m/r,b=g*Math.PI*2,y=Math.sin(b),E=e+y*t,T=Math.cos(b),v=T*t,A=0;A<a;++A){var w=A/n,S=i+w*o,k=Math.sin(S),O=Math.cos(S),I=k*E,N=O*E,R=k*y,x=O*y;u.push(I,v,N),h.push(R,T,x),p.push(w,1-g)}for(var M=0;M<r;++M)for(var C=0;C<n;++C){var P=1+C,L=1+M;f.push(a*M+C,a*L+C,a*M+P),f.push(a*L+C,a*L+P,a*M+P)}return{position:u,normal:h,texcoord:p,indices:f}}function M(e,t,n,r,i){if(t<3)throw Error("divisions must be at least 3");i=i||1,r=r||0;for(var s=(t+1)*((n=n||1)+1),o=d(3,s),a=d(3,s),c=d(2,s),l=d(3,n*t*2,Uint16Array),u=0,h=e-r,p=t+1,f=0;f<=n;++f){for(var m=r+h*Math.pow(f/n,i),g=0;g<=t;++g){var b=2*Math.PI*g/t,y=m*Math.cos(b),E=m*Math.sin(b);if(o.push(y,0,E),a.push(0,1,0),c.push(1-g/t,f/n),f>0&&g!==t){var T=u+(g+1),v=u+g,A=u+g-p,w=u+(g+1)-p;l.push(T,v,A),l.push(T,A,w)}}u+=t+1}return{position:o,normal:a,texcoord:c,indices:l}}function C(e){return function(t){var n=e.apply(this,Array.prototype.slice.call(arguments,1));return r.createBuffersFromArrays(t,n)}}function P(e){return function(t){var n=e.apply(null,Array.prototype.slice.call(arguments,1));return r.createBufferInfoFromArrays(t,n)}}var L=["numComponents","size","type","normalize","stride","offset","attrib","name","attribName"];function D(e,t,n,r){r=r||0;for(var i=e.length,s=0;s<i;++s)t[n+s]=e[s]+r}function B(e,t){var n=l(e),r=new n.constructor(t),s=r;return n.numComponents&&n.numElements&&h(r,n.numComponents),e.data&&(s={data:r},i.copyNamedProperties(L,e,s)),s}var U=P(I);t.create3DFBufferInfo=U;var F=C(I);t.create3DFBuffers=F;var j=P(S);t.createCubeBufferInfo=j;var z=C(S);t.createCubeBuffers=z;var G=P(v);t.createPlaneBufferInfo=G;var V=C(v);t.createPlaneBuffers=V;var Y=P(A);t.createSphereBufferInfo=Y;var _=C(A);t.createSphereBuffers=_;var H=P(k);t.createTruncatedConeBufferInfo=H;var W=C(k);t.createTruncatedConeBuffers=W;var K=P(T);t.createXYQuadBufferInfo=K;var X=C(T);t.createXYQuadBuffers=X;var Z=P(N);t.createCresentBufferInfo=Z;var q=C(N);t.createCresentBuffers=q;var Q=P(R);t.createCylinderBufferInfo=Q;var J=C(R);t.createCylinderBuffers=J;var $=P(x);t.createTorusBufferInfo=$;var ee=C(x);t.createTorusBuffers=ee;var te=P(M);t.createDiscBufferInfo=te;var ne=C(M);t.createDiscBuffers=ne},function(e,t,n){"use strict";t.__esModule=!0;var r={addExtensionsToContext:!0,getContext:!0,getWebGLContext:!0,resizeCanvasToDisplaySize:!0,setDefaults:!0};t.addExtensionsToContext=y,t.getContext=function(e,t){var n=function(e,t){for(var n=["webgl2","webgl","experimental-webgl"],r=null,i=0;i<n.length;++i)if(r=e.getContext(n[i],t)){f.addExtensionsToContext&&y(r);break}return r}(e,t);return n},t.getWebGLContext=function(e,t){var n=function(e,t){for(var n=["webgl","experimental-webgl"],r=null,i=0;i<n.length;++i)if(r=e.getContext(n[i],t)){f.addExtensionsToContext&&y(r);break}return r}(e,t);return n},t.resizeCanvasToDisplaySize=function(e,t){t=t||1,t=Math.max(0,t);var n=e.clientWidth*t|0,r=e.clientHeight*t|0;return(e.width!==n||e.height!==r)&&(e.width=n,e.height=r,!0)},t.setDefaults=function(e){o.copyExistingProperties(e,f),i.setAttributeDefaults_(e),s.setTextureDefaults_(e)};var i=p(n(7));Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||(t[e]=i[e]))}));var s=p(n(8));Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||(t[e]=s[e]))}));var o=p(n(0)),a=p(n(4));Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||(t[e]=a[e]))}));var c=n(12);Object.keys(c).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||(t[e]=c[e]))}));var l=n(13);Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||(t[e]=l[e]))}));var u=n(5);Object.keys(u).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||(t[e]=u[e]))}));var h=n(1);Object.keys(h).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||(t[e]=h[e]))}));var d=n(14);function p(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}Object.keys(d).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||(t[e]=d[e]))}));var f={addExtensionsToContext:!0},m=/^(.*?)_/;function g(e,t){a.glEnumToString(e,0);var n=e.getExtension(t);if(n){var r={},i=m.exec(t)[1],s="_"+i;for(var c in n){var l=n[c],u="function"==typeof l,h=u?i:s,d=c;c.endsWith(h)&&(d=c.substring(0,c.length-h.length)),void 0!==e[d]?u||e[d]===l||o.warn(d,e[d],l,c):u?e[d]=function(e){return function(){return e.apply(n,arguments)}}(l):(e[d]=l,r[d]=l)}r.constructor={name:n.constructor.name},a.glEnumToString(r,0)}return n}var b=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function y(e){for(var t=0;t<b.length;++t)g(e,b[t])}},function(e,t,n){"use strict";t.__esModule=!0,t.drawBufferInfo=i,t.drawObjectList=function(e,t){var n=null,s=null;t.forEach((function(t){if(!1!==t.active){var o=t.programInfo,a=t.vertexArrayInfo||t.bufferInfo,c=!1,l=void 0===t.type?e.TRIANGLES:t.type;o!==n&&(n=o,e.useProgram(o.program),c=!0),(c||a!==s)&&(s&&s.vertexArrayObject&&!a.vertexArrayObject&&e.bindVertexArray(null),s=a,r.setBuffersAndAttributes(e,o,a)),r.setUniforms(o,t.uniforms),i(e,a,l,t.count,t.offset,t.instanceCount)}})),s.vertexArrayObject&&e.bindVertexArray(null)};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(5));function i(e,t,n,r,i,s){n=void 0===n?e.TRIANGLES:n;var o=t.indices,a=t.elementType,c=void 0===r?t.numElements:r;i=void 0===i?0:i,a||o?void 0!==s?e.drawElementsInstanced(n,c,void 0===a?e.UNSIGNED_SHORT:t.elementType,i,s):e.drawElements(n,c,void 0===a?e.UNSIGNED_SHORT:t.elementType,i):void 0!==s?e.drawArraysInstanced(n,i,c,s):e.drawArrays(n,i,c)}},function(e,t,n){"use strict";t.__esModule=!0,t.bindFramebufferInfo=function(e,t,n){n=n||e.FRAMEBUFFER,t?(e.bindFramebuffer(n,t.framebuffer),e.viewport(0,0,t.width,t.height)):(e.bindFramebuffer(n,null),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight))},t.createFramebufferInfo=function(e,t,n,s){var o=e.FRAMEBUFFER,h=e.createFramebuffer();e.bindFramebuffer(o,h),n=n||e.drawingBufferWidth,s=s||e.drawingBufferHeight;var d=0,p={framebuffer:h,attachments:[],width:n,height:s};return(t=t||c).forEach((function(t){var c=t.attachment,h=t.format,f=function(e){return l[e]}(h);if(f||(f=a+d++),!c)if(function(e){return u[e]}(h))c=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,c),e.renderbufferStorage(e.RENDERBUFFER,h,n,s);else{var m=Object.assign({},t);m.width=n,m.height=s,void 0===m.auto&&(m.auto=!1,m.min=m.min||m.minMag||e.LINEAR,m.mag=m.mag||m.minMag||e.LINEAR,m.wrapS=m.wrapS||m.wrap||e.CLAMP_TO_EDGE,m.wrapT=m.wrapT||m.wrap||e.CLAMP_TO_EDGE),c=r.createTexture(e,m)}if(i.isRenderbuffer(e,c))e.framebufferRenderbuffer(o,f,e.RENDERBUFFER,c);else{if(!i.isTexture(e,c))throw"unknown attachment type";e.framebufferTexture2D(o,f,t.texTarget||e.TEXTURE_2D,c,t.level||0)}p.attachments.push(c)})),p},t.resizeFramebufferInfo=function(e,t,n,s,o){s=s||e.drawingBufferWidth,o=o||e.drawingBufferHeight,t.width=s,t.height=o,(n=n||c).forEach((function(n,a){var c=t.attachments[a],l=n.format;if(i.isRenderbuffer(e,c))e.bindRenderbuffer(e.RENDERBUFFER,c),e.renderbufferStorage(e.RENDERBUFFER,l,s,o);else{if(!i.isTexture(e,c))throw"unknown attachment type";r.resizeTexture(e,c,n,s,o)}}))};var r=s(n(8)),i=s(n(0));function s(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}var o=34041,a=36064,c=[{format:6408,type:5121,min:9729,wrap:33071},{format:o}],l={34041:33306,6401:36128,36168:36128,6402:36096,33189:36096},u={32854:!0,32855:!0,36194:!0,34041:!0,33189:!0,6401:!0,36168:!0}},function(e,t,n){"use strict";t.__esModule=!0,t.createVertexArrayInfo=function(e,t,n){var i=e.createVertexArray();return e.bindVertexArray(i),t.length||(t=[t]),t.forEach((function(t){r.setBuffersAndAttributes(e,t,n)})),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:i}},t.createVAOAndSetAttributes=i,t.createVAOFromBufferInfo=function(e,t,n){return i(e,t.attribSetters||t,n.attribs,n.indices)};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(5));function i(e,t,n,i){var s=e.createVertexArray();return e.bindVertexArray(s),r.setAttributes(t,n),i&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,i),e.bindVertexArray(null),s}}])},e.exports=r()},function(e,t){e.exports=class{static simple(e){return JSON.parse(JSON.stringify(e))}}},function(e,t){class n{static get BACKGROUND_LAYER(){return"background"}static get VIDEO_LAYER(){return"video"}static get PEN_LAYER(){return"pen"}static get SPRITE_LAYER(){return"sprite"}static get LAYER_GROUPS(){return[n.BACKGROUND_LAYER,n.VIDEO_LAYER,n.PEN_LAYER,n.SPRITE_LAYER]}}e.exports=n},function(e,t,n){(function(t){class n{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.nowObj;this.startTime=0,this.nowObj=e}static get USE_PERFORMANCE(){return!1}static get legacyDateCode(){return{now:function(){return(new Date).getTime()}}}static get nowObj(){return n.USE_PERFORMANCE&&"undefined"!=typeof self&&self.performance&&"now"in self.performance?self.performance:Date.now?Date:n.legacyDateCode}time(){return this.nowObj.now()}start(){this.startTime=this.nowObj.now()}timeElapsed(){return this.nowObj.now()-this.startTime}setTimeout(e,n){return t.setTimeout(e,n)}clearTimeout(e){t.clearTimeout(e)}}e.exports=n}).call(this,n(8))},function(e,t){e.exports={StackOpcode:{NOP:"noop",ADDON_CALL:"addons.call",DEBUGGER:"tw.debugger",VISUAL_REPORT:"visualReport",COMPATIBILITY_LAYER:"compat",OLD_COMPILER_COMPATIBILITY_LAYER:"oldCompiler",HAT_EDGE:"hat.edge",HAT_PREDICATE:"hat.predicate",CONTROL_IF_ELSE:"control.if",CONTROL_CLONE_CREATE:"control.createClone",CONTROL_CLONE_DELETE:"control.deleteClone",CONTROL_WHILE:"control.while",CONTROL_FOR:"control.for",CONTROL_REPEAT:"control.repeat",CONTROL_STOP_ALL:"control.stopAll",CONTROL_STOP_OTHERS:"control.stopOthers",CONTROL_STOP_SCRIPT:"control.stopScript",CONTROL_WAIT:"control.wait",CONTROL_WAIT_UNTIL:"control.waitUntil",CONTROL_CLEAR_COUNTER:"control.counterClear",CONTORL_INCR_COUNTER:"control.counterIncr",LIST_ADD:"list.add",LIST_INSERT:"list.instert",LIST_REPLACE:"list.replace",LIST_DELETE_ALL:"list.deleteAll",LIST_DELETE:"list.delete",LIST_SHOW:"list.show",LIST_HIDE:"list.hide",VAR_SET:"var.set",VAR_SHOW:"var.show",VAR_HIDE:"var.hide",EVENT_BROADCAST:"event.broadcast",EVENT_BROADCAST_AND_WAIT:"event.broadcastAndWait",LOOKS_EFFECT_SET:"looks.setEffect",LOOKS_EFFECT_CHANGE:"looks.changeEffect",LOOKS_EFFECT_CLEAR:"looks.clearEffects",LOOKS_SIZE_CHANGE:"looks.changeSize",LOOKS_SIZE_SET:"looks.setSize",LOOKS_LAYER_FORWARD:"looks.forwardLayers",LOOKS_LAYER_BACKWARD:"looks.backwardLayers",LOOKS_LAYER_FRONT:"looks.goToFront",LOOKS_LAYER_BACK:"looks.goToBack",LOOKS_HIDE:"looks.hide",LOOKS_SHOW:"looks.show",LOOKS_BACKDROP_NEXT:"looks.nextBackdrop",LOOKS_BACKDROP_SET:"looks.switchBackdrop",LOOKS_COSTUME_NEXT:"looks.nextCostume",LOOKS_COSTUME_SET:"looks.switchCostume",LOOKS_SAY:"looks.say",LOOKS_THINK:"looks.think",MOTION_X_SET:"motion.setX",MOTION_X_CHANGE:"motion.changeX",MOTION_Y_SET:"motion.setY",MOTION_Y_CHANGE:"motion.changeY",MOTION_XY_SET:"motion.setXY",MOTION_IF_ON_EDGE_BOUNCE:"motion.ifOnEdgeBounce",MOTION_STEP:"motion.step",MOTION_ROTATION_STYLE_SET:"motion.setRotationStyle",MOTION_DIRECTION_SET:"motion.setDirection",PEN_UP:"pen.up",PEN_DOWN:"pen.down",PEN_CLEAR:"pen.clear",PEN_COLOR_PARAM_SET:"pen.setParam",PEN_COLOR_PARAM_CHANGE:"pen.changeParam",PEN_COLOR_HUE_CHANGE_LEGACY:"pen.legacyChangeHue",PEN_COLOR_HUE_SET_LEGACY:"pen_setPenHueToNumber",PEN_COLOR_SHADE_CHANGE_LEGACY:"pen.legacyChangeShade",PEN_COLOR_SHADE_SET_LEGACY:"pen.legacySetShade",PEN_COLOR_SET:"pen.setColor",PEN_SIZE_SET:"pen.setSize",PEN_SIZE_CHANGE:"pen.changeSize",PEN_STAMP:"pen.stamp",SENSING_TIMER_RESET:"timer.reset",PROCEDURE_RETURN:"procedures.return",PROCEDURE_CALL:"procedures.call"},InputOpcode:{NOP:"noop",ADDON_CALL:"addons.call",CONSTANT:"constant",CAST_NUMBER:"cast.toNumber",CAST_NUMBER_INDEX:"cast.toInteger",CAST_NUMBER_OR_NAN:"cast.toNumberOrNaN",CAST_STRING:"cast.toString",CAST_BOOLEAN:"cast.toBoolean",CAST_COLOR:"cast.toColor",COMPATIBILITY_LAYER:"compat",OLD_COMPILER_COMPATIBILITY_LAYER:"oldCompiler",LOOKS_BACKDROP_NUMBER:"looks.backdropNumber",LOOKS_BACKDROP_NAME:"looks.backdropName",LOOKS_COSTUME_NUMBER:"looks.costumeNumber",LOOKS_COSTUME_NAME:"looks.costumeName",LOOKS_SIZE_GET:"looks.size",VAR_GET:"var.get",LIST_GET:"list.get",LIST_LENGTH:"list.length",LIST_CONTAINS:"list.contains",LIST_INDEX_OF:"list.indexOf",LIST_CONTENTS:"list.contents",MOTION_X_GET:"motion.x",MOTION_Y_GET:"motion.y",MOTION_DIRECTION_GET:"motion.direction",OP_ADD:"op.add",OP_AND:"op.and",OP_CONTAINS:"op.contains",OP_DIVIDE:"op.divide",OP_EQUALS:"op.equals",OP_GREATER:"op.greater",OP_LESS:"op.less",OP_JOIN:"op.join",OP_LENGTH:"op.length",OP_LETTER_OF:"op.letterOf",OP_ABS:"op.abs",OP_FLOOR:"op.floor",OP_CEILING:"op.ceiling",OP_SQRT:"op.sqrt",OP_SIN:"op.sin",OP_COS:"op.cos",OP_TAN:"op.tan",OP_ASIN:"op.asin",OP_ACOS:"op.acos",OP_ATAN:"op.atan",OP_LOG_E:"op.ln",OP_LOG_10:"op.log",OP_POW_E:"op.e^",OP_POW_10:"op.10^",OP_MOD:"op.mod",OP_MULTIPLY:"op.multiply",OP_NOT:"op.not",OP_OR:"op.or",OP_RANDOM:"op.random",OP_ROUND:"op.round",OP_SUBTRACT:"op.subtract",SENSING_ANSWER:"sensing.answer",SENSING_COLOR_TOUCHING_COLOR:"sensing.colorTouchingColor",SENSING_TIME_YEAR:"sensing.year",SENSING_TIME_MONTH:"sensing.month",SENSING_TIME_DATE:"sensing.date",SENSING_TIME_WEEKDAY:"sensing.dayofweek",SENSING_TIME_HOUR:"sensing.hour",SENSING_TIME_MINUTE:"sensing.minute",SENSING_TIME_SECOND:"sensing.second",SENSING_TIME_DAYS_SINCE_2000:"sensing.daysSince2000",SENSING_DISTANCE:"sensing.distance",SENSING_KEY_DOWN:"keyboard.pressed",SENSING_MOUSE_DOWN:"mouse.down",SENSING_MOUSE_X:"mouse.x",SENSING_MOUSE_Y:"mouse.y",SENSING_OF:"sensing.of",SENSING_OF_BACKDROP_NAME:"sensing.of.backdropName",SENSING_OF_BACKDROP_NUMBER:"sensing.of.backdropNumber",SENSING_OF_COSTUME_NAME:"sensing.of.costumeName",SENSING_OF_COSTUME_NUMBER:"sensing.of.costumeNumber",SENSING_OF_VOLUME:"sensing.of.volume",SENSING_OF_POS_X:"sensing.of.x",SENSING_OF_POS_Y:"sensing.of.y",SENSING_OF_DIRECTION:"sensing.of.direction",SENSING_OF_SIZE:"sensing.of.size",SENSING_OF_VAR:"sensing.of.var",SENSING_TIMER_GET:"timer.get",SENSING_TOUCHING_COLOR:"sensing.touchingColor",SENSING_TOUCHING_OBJECT:"sensing.touching",SENSING_USERNAME:"sensing.username",PROCEDURE_CALL:"procedures.call",PROCEDURE_ARGUMENT:"procedures.argument",CONTROL_COUNTER:"control.counter",TW_KEY_LAST_PRESSED:"tw.lastKeyPressed"},InputType:{NUMBER_POS_INF:1,NUMBER_POS_INT:2,NUMBER_POS_FRACT:4,NUMBER_POS_REAL:6,NUMBER_ZERO:8,NUMBER_NEG_ZERO:16,NUMBER_NEG_INT:32,NUMBER_NEG_FRACT:64,NUMBER_NEG_REAL:96,NUMBER_NEG_INF:128,NUMBER_NAN:256,NUMBER_ANY_ZERO:24,NUMBER_INF:129,NUMBER_POS:7,NUMBER_NEG:224,NUMBER_WHOLE:10,NUMBER_INT:58,NUMBER_INDEX:443,NUMBER_FRACT:68,NUMBER_REAL:126,NUMBER:255,NUMBER_OR_NAN:511,NUMBER_INTERPRETABLE:4863,STRING_NUM:512,STRING_NAN:1024,STRING_BOOLEAN:2048,STRING:3584,BOOLEAN:4096,BOOLEAN_INTERPRETABLE:6144,ANY:8191,COLOR:8192}}},function(e,t,n){const r=n(113),i=n(115);class s{static base64ToUint8Array(e){const t=r(e),n=t.length,i=new Uint8Array(n);for(let e=0;e<n;e++)i[e]=t.charCodeAt(e);return i}static uint8ArrayToBase64(e){let t="";const n=e.length;for(let r=0;r<n;r++)t+=String.fromCharCode(e[r]);return i(t)}static arrayBufferToBase64(e){return s.uint8ArrayToBase64(new Uint8Array(e))}}e.exports=s},function(e,t,n){const r=n(183),i=n(63),s=n(31),o=n(24),a=n(12),c=n(65),l=n(66),u=n(0),h=n(9),d=n(43);class p{constructor(e,t){this.runtime=e,this._blocks={},this._scripts=[],Object.defineProperty(this,"_cache",{writable:!0,enumerable:!1}),this._cache={inputs:{},procedureParamNames:{},procedureDefinitions:{},_executeCached:{},_monitored:null,scripts:{},compiledScripts:{},compiledProcedures:{},proceduresPopulated:!1},this.forceNoGlow=t||!1}getCachedCompileResult(e){return Object.prototype.hasOwnProperty.call(this._cache.compiledScripts,e)?this._cache.compiledScripts[e]:null}cacheCompileResult(e,t){this._cache.compiledScripts[e]={success:!0,value:t}}cacheCompileError(e,t){this._cache.compiledScripts[e]={success:!1,value:t}}static get BRANCH_INPUT_PREFIX(){return"SUBSTACK"}getBlock(e){return this._blocks[e]}getScripts(){return this._scripts}getNextBlock(e){const t=this._blocks[e];return void 0===t?null:t.next}getBranch(e,t){const n=this._blocks[e];if(void 0===n)return null;t||(t=1);let r=p.BRANCH_INPUT_PREFIX;t>1&&(r+=t);const i=n.inputs[r];return void 0===i?null:i.block}getOpcode(e){return void 0===e?null:e.opcode}getFields(e){return void 0===e?null:e.fields}getInputs(e){if(void 0===e)return null;let t=this._cache.inputs[e.id];if(void 0!==t)return t;t={};for(const n in e.inputs)n.substring(0,p.BRANCH_INPUT_PREFIX.length)!==p.BRANCH_INPUT_PREFIX&&(t[n]=e.inputs[n]);return this._cache.inputs[e.id]=t,t}getMutation(e){return void 0===e?null:e.mutation}getTopLevelScript(e){let t=this._blocks[e];if(void 0===t)return null;for(;null!==t.parent;)t=this._blocks[t.parent];return t.id}getProcedureDefinition(e){const t=this._cache.procedureDefinitions[e];if(void 0!==t)return t;for(const t in this._blocks){if(!Object.prototype.hasOwnProperty.call(this._blocks,t))continue;const n=this._blocks[t];if("procedures_definition"===n.opcode){const r=this._getCustomBlockInternal(n);if(r&&r.mutation.proccode===e)return this._cache.procedureDefinitions[e]=t,t}}return this._cache.procedureDefinitions[e]=null,null}getProcedureParamNamesAndIds(e){return this.getProcedureParamNamesIdsAndDefaults(e).slice(0,2)}getProcedureParamNamesIdsAndDefaults(e){const t=this._cache.procedureParamNames[e];if(void 0!==t)return t;for(const t in this._blocks){if(!Object.prototype.hasOwnProperty.call(this._blocks,t))continue;const n=this._blocks[t];if("procedures_prototype"===n.opcode&&n.mutation.proccode===e){const t=JSON.parse(n.mutation.argumentnames),r=JSON.parse(n.mutation.argumentids),i=JSON.parse(n.mutation.argumentdefaults);return this._cache.procedureParamNames[e]=[t,r,i],this._cache.procedureParamNames[e]}}const n=this.runtime.getAddonBlock(e);return n?(this._cache.procedureParamNames[e]=n.namesIdsDefaults,n.namesIdsDefaults):(this._cache.procedureParamNames[e]=null,null)}populateProcedureCache(){if(!this._cache.proceduresPopulated){for(const e in this._blocks){if(!Object.prototype.hasOwnProperty.call(this._blocks,e))continue;const t=this._blocks[e];if("procedures_prototype"!==t.opcode){if("procedures_definition"===t.opcode){const n=this._getCustomBlockInternal(t);if(n){const t=n.mutation.proccode;this._cache.procedureDefinitions[t]||(this._cache.procedureDefinitions[t]=e);continue}}}else{const e=t.mutation.proccode;if(!this._cache.procedureParamNames[e]){const n=JSON.parse(t.mutation.argumentnames),r=JSON.parse(t.mutation.argumentids),i=JSON.parse(t.mutation.argumentdefaults);this._cache.procedureParamNames[e]=[n,r,i]}}}this._cache.proceduresPopulated=!0}}duplicate(){const e=new p(this.runtime,this.forceNoGlow);return e._blocks=a.simple(this._blocks),e._scripts=a.simple(this._scripts),e}blocklyListen(e){if("object"!=typeof e)return;if("string"!=typeof e.blockId&&"string"!=typeof e.varId&&"string"!=typeof e.commentId)return;const t=this.runtime.getTargetForStage(),n=this.runtime.getEditingTarget();if("stackclick"!==e.element)switch(e.type){case"create":{const t=r(e);for(let e=0;e<t.length;e++)this.createBlock(t[e]);break}case"change":this.changeBlock({id:e.blockId,element:e.element,name:e.name,value:e.newValue});break;case"move":this.moveBlock({id:e.blockId,oldParent:e.oldParentId,oldInput:e.oldInputName,newParent:e.newParentId,newInput:e.newInputName,newCoordinate:e.newCoordinate});break;case"dragOutside":this.runtime.emitBlockDragUpdate(e.isOutside);break;case"endDrag":if(this.runtime.emitBlockDragUpdate(!1),e.isOutside){const t=r(e);this.runtime.emitBlockEndDrag(t,e.blockId)}break;case"delete":if(!Object.prototype.hasOwnProperty.call(this._blocks,e.blockId)||this._blocks[e.blockId].shadow)return;this._blocks[e.blockId].topLevel&&this.runtime.quietGlow(e.blockId),this.deleteBlock(e.blockId);break;case"var_create":if(this.resetCache(),e.isLocal&&n&&!n.isStage&&!e.isCloud)n.lookupVariableById(e.varId)||(n.createVariable(e.varId,e.varName,e.varType),this.emitProjectChanged());else{if(t.lookupVariableById(e.varId))return;const n=this.runtime.targets.filter((e=>e.isOriginal));for(const t of n)if(t.lookupVariableByNameAndType(e.varName,e.varType,!0))return;t.createVariable(e.varId,e.varName,e.varType,e.isCloud),this.emitProjectChanged()}break;case"var_rename":if(n&&Object.prototype.hasOwnProperty.call(n.variables,e.varId))n.renameVariable(e.varId,e.newName),n.blocks.updateBlocksAfterVarRename(e.varId,e.newName);else{t.renameVariable(e.varId,e.newName);const n=this.runtime.targets;for(let t=0;t<n.length;t++){n[t].blocks.updateBlocksAfterVarRename(e.varId,e.newName)}}this.emitProjectChanged();break;case"var_delete":this.resetCache();(n&&Object.prototype.hasOwnProperty.call(n.variables,e.varId)?n:t).deleteVariable(e.varId),this.emitProjectChanged();break;case"comment_create":if(this.resetCache(),this.runtime.getEditingTarget()){const t=this.runtime.getEditingTarget();t.createComment(e.commentId,e.blockId,e.text,e.xy.x,e.xy.y,e.width,e.height,e.minimized),null===t.comments[e.commentId].x&&null===t.comments[e.commentId].y&&(t.comments[e.commentId].x=e.xy.x,t.comments[e.commentId].y=e.xy.y)}this.emitProjectChanged();break;case"comment_change":if(this.resetCache(),this.runtime.getEditingTarget()){const t=this.runtime.getEditingTarget();if(!Object.prototype.hasOwnProperty.call(t.comments,e.commentId))return void u.warn("Cannot change comment with id ".concat(e.commentId," because it does not exist."));const n=t.comments[e.commentId],r=e.newContents_;Object.prototype.hasOwnProperty.call(r,"minimized")&&(n.minimized=r.minimized),Object.prototype.hasOwnProperty.call(r,"width")&&Object.prototype.hasOwnProperty.call(r,"height")&&(n.width=r.width,n.height=r.height),Object.prototype.hasOwnProperty.call(r,"text")&&(n.text=r.text),this.emitProjectChanged()}break;case"comment_move":if(this.runtime.getEditingTarget()){const t=this.runtime.getEditingTarget();if(t&&!Object.prototype.hasOwnProperty.call(t.comments,e.commentId))return void u.warn("Cannot change comment with id ".concat(e.commentId," because it does not exist."));const n=t.comments[e.commentId],r=e.newCoordinate_;n.x=r.x,n.y=r.y,this.emitProjectChanged()}break;case"comment_delete":if(this.resetCache(),this.runtime.getEditingTarget()){const t=this.runtime.getEditingTarget();if(!Object.prototype.hasOwnProperty.call(t.comments,e.commentId))return;if(delete t.comments[e.commentId],e.blockId){const n=t.blocks.getBlock(e.blockId);if(!n)return void u.warn("Could not find block referenced by comment with id: ".concat(e.commentId));delete n.comment}this.emitProjectChanged()}}else this.runtime.toggleScript(e.blockId,{stackClick:!0})}resetCache(){this._cache.inputs={},this._cache.procedureParamNames={},this._cache.procedureDefinitions={},this._cache._executeCached={},this._cache._monitored=null,this._cache.scripts={},this._cache.compiledScripts={},this._cache.compiledProcedures={},this._cache.proceduresPopulated=!1}emitProjectChanged(){this.forceNoGlow||this.runtime.emitProjectChanged()}createBlock(e){Object.prototype.hasOwnProperty.call(this._blocks,e.id)||(this._blocks[e.id]=e,e.topLevel&&this._addScript(e.id),this.resetCache(),this.emitProjectChanged())}changeBlock(e){if(-1===["field","mutation","checkbox"].indexOf(e.element))return;let t=this._blocks[e.id];if(void 0!==t){switch(e.element){case"field":if(!t.fields[e.name])return;if("VARIABLE"===e.name||"LIST"===e.name||"BROADCAST_OPTION"===e.name){const n=this.runtime.getEditingTarget().lookupVariableById(e.value);n&&(t.fields[e.name].value=n.name,t.fields[e.name].id=e.value)}else{t.fields[e.name].value=e.value,"sensing_of_object_menu"===t.opcode&&("_stage_"===t.fields.OBJECT.value?this._blocks[t.parent].fields.PROPERTY.value="backdrop #":this._blocks[t.parent].fields.PROPERTY.value="x position",this.runtime.requestBlocksUpdate());const n=t.shadow&&t.parent?this._blocks[t.parent]:t;n.isMonitored&&this.runtime.requestUpdateMonitor({id:n.id,params:this._getBlockParams(n)})}break;case"mutation":t.mutation=i(e.value);break;case"checkbox":{if(t.fields&&Object.keys(t.fields).length>0&&"data_variable"!==t.opcode&&"data_listcontents"!==t.opcode){const e=d(t.id,t.fields);let n=this.runtime.monitorBlocks.getBlock(e);n||(n=JSON.parse(JSON.stringify(t)),n.id=e,this.runtime.monitorBlocks.createBlock(n)),t=n}const n=t.isMonitored;t.isMonitored=e.value;let r=!1;"data_variable"===t.opcode?r=!this.runtime.getTargetForStage().variables[t.fields.VARIABLE.id]:"data_listcontents"===t.opcode&&(r=!this.runtime.getTargetForStage().variables[t.fields.LIST.id]);const i=r||Object.prototype.hasOwnProperty.call(this.runtime.monitorBlockInfo,t.opcode)&&this.runtime.monitorBlockInfo[t.opcode].isSpriteSpecific;t.targetId=i?t.targetId||this.runtime.getEditingTarget().id:null,n&&!t.isMonitored?this.runtime.requestHideMonitor(t.id):!n&&t.isMonitored&&(this.runtime.requestShowMonitor(t.id)||this.runtime.requestAddMonitor(new o({id:t.id,targetId:t.targetId,spriteName:t.targetId?this.runtime.getTargetById(t.targetId).getName():null,opcode:t.opcode,params:this._getBlockParams(t),value:"",mode:"data_listcontents"===t.opcode?"list":"default"})));break}}this.emitProjectChanged(),this.resetCache()}}moveBlock(e){if(!Object.prototype.hasOwnProperty.call(this._blocks,e.id))return;const t=this._blocks[e.id];let n=!1;if(e.newCoordinate&&(n=t.x!==e.newCoordinate.x||t.y!==e.newCoordinate.y,t.x=e.newCoordinate.x,t.y=e.newCoordinate.y),void 0!==e.oldParent){const t=this._blocks[e.oldParent];void 0!==e.oldInput&&t.inputs[e.oldInput].block===e.id?t.inputs[e.oldInput].block=null:t.next===e.id&&(t.next=null),this._blocks[e.id].parent=null,n=!0}if(void 0===e.newParent)this._addScript(e.id);else{if(this._deleteScript(e.id),void 0===e.newInput)this._blocks[e.newParent].next=e.id;else{let t=null;Object.prototype.hasOwnProperty.call(this._blocks[e.newParent].inputs,e.newInput)&&(t=this._blocks[e.newParent].inputs[e.newInput].shadow),this._blocks[e.id].shadow&&(t=e.id),this._blocks[e.newParent].inputs[e.newInput]={name:e.newInput,block:e.id,shadow:t}}this._blocks[e.id].parent=e.newParent,n=!0}this.resetCache(),n&&this.emitProjectChanged()}runAllMonitored(e){null===this._cache._monitored&&(this._cache._monitored=Object.keys(this._blocks).filter((e=>this.getBlock(e).isMonitored)).map((t=>{const n=this.getBlock(t).targetId;return{blockId:t,target:n?e.getTargetById(n):null}})));const t=this._cache._monitored;for(let n=0;n<t.length;n++){const{blockId:r,target:i}=t[n];e.addMonitorScript(r,i)}}deleteBlock(e){const t=this._blocks[e];if(t){null!==t.next&&this.deleteBlock(t.next);for(const e in t.inputs)null!==t.inputs[e].block&&this.deleteBlock(t.inputs[e].block),null!==t.inputs[e].shadow&&t.inputs[e].shadow!==t.inputs[e].block&&this.deleteBlock(t.inputs[e].shadow);this._deleteScript(e),delete this._blocks[e],this.resetCache(),this.emitProjectChanged()}}deleteAllBlocks(){Object.keys(this._blocks).forEach((e=>this.deleteBlock(e)))}getAllVariableAndListReferences(e,t){const n=e||this._blocks,r=Object.create(null);for(const e in n){let i=null,s=null;if(n[e].fields.VARIABLE?(i=n[e].fields.VARIABLE,s=h.SCALAR_TYPE):n[e].fields.LIST?(i=n[e].fields.LIST,s=h.LIST_TYPE):t&&n[e].fields.BROADCAST_OPTION&&(i=n[e].fields.BROADCAST_OPTION,s=h.BROADCAST_MESSAGE_TYPE),i){const e=i.id;r[e]?r[e].push({referencingField:i,type:s}):r[e]=[{referencingField:i,type:s}]}}return r}updateBlocksAfterVarRename(e,t){const n=this._blocks;for(const r in n){let i=null;if(n[r].fields.VARIABLE?i=n[r].fields.VARIABLE:n[r].fields.LIST&&(i=n[r].fields.LIST),i){e===i.id&&(i.value=t)}}}updateTargetSpecificBlocks(e){const t=this._blocks;for(const n in t)e&&"event_whenthisspriteclicked"===t[n].opcode?t[n].opcode="event_whenstageclicked":e||"event_whenstageclicked"!==t[n].opcode||(t[n].opcode="event_whenthisspriteclicked")}updateAssetName(e,t,n){let r;if("costume"===n)r=this._getCostumeField.bind(this);else if("sound"===n)r=this._getSoundField.bind(this);else if("backdrop"===n)r=this._getBackdropField.bind(this);else{if("sprite"!==n)return;r=this._getSpriteField.bind(this)}const i=this._blocks;for(const n in i){const i=r(n);i&&i.value===e&&(i.value=t)}this.resetCache()}updateSensingOfReference(e,t,n){const r=this._blocks;let i=!1;for(const s in r){const o=r[s];if("sensing_of"===o.opcode&&o.fields.PROPERTY.value===e&&o.inputs.OBJECT.block===o.inputs.OBJECT.shadow){this.getBlock(o.inputs.OBJECT.block).fields.OBJECT.value===n&&(o.fields.PROPERTY.value=t,i=!0)}}return i&&this.resetCache(),i}_getCostumeField(e){const t=this.getBlock(e);return t&&Object.prototype.hasOwnProperty.call(t.fields,"COSTUME")?t.fields.COSTUME:null}_getSoundField(e){const t=this.getBlock(e);return t&&Object.prototype.hasOwnProperty.call(t.fields,"SOUND_MENU")?t.fields.SOUND_MENU:null}_getBackdropField(e){const t=this.getBlock(e);return t&&Object.prototype.hasOwnProperty.call(t.fields,"BACKDROP")?t.fields.BACKDROP:null}_getSpriteField(e){const t=this.getBlock(e);if(!t)return null;const n=["TOWARDS","TO","OBJECT","VIDEOONMENU2","DISTANCETOMENU","TOUCHINGOBJECTMENU","CLONE_OPTION"];for(let e=0;e<n.length;e++){const r=n[e];if(Object.prototype.hasOwnProperty.call(t.fields,r))return t.fields[r]}return null}toXML(e){return this._scripts.map((t=>this.blockToXML(t,e))).join()}blockToXML(e,t){const n=this._blocks[e];if(!n)return;const r=n.shadow?"shadow":"block";let i="<".concat(r,'\n id="').concat(s(n.id),'"\n type="').concat(s(n.opcode),'"\n ').concat(n.topLevel?'x="'.concat(n.x,'" y="').concat(n.y,'"'):"","\n >");const o=n.comment;o&&(t?Object.prototype.hasOwnProperty.call(t,o)?i+=t[o].toXML():u.warn("Could not find comment with id: ".concat(o," in provided comment descriptions.")):u.warn("Cannot serialize comment with id: ".concat(o,"; no comment descriptions provided."))),n.mutation&&(i+=this.mutationToXML(n.mutation));for(const e in n.inputs){if(!Object.prototype.hasOwnProperty.call(n.inputs,e))continue;const r=n.inputs[e];(r.block||r.shadow)&&(i+='<value name="'.concat(s(r.name),'">'),r.block&&(i+=this.blockToXML(r.block,t)),r.shadow&&r.shadow!==r.block&&(i+=this.blockToXML(r.shadow,t)),i+="</value>")}for(const e in n.fields){if(!Object.prototype.hasOwnProperty.call(n.fields,e))continue;const t=n.fields[e];i+='<field name="'.concat(s(t.name),'"');const r=t.id;r&&(i+=' id="'.concat(s(r),'"'));const o=t.variableType;"string"==typeof o&&(i+=' variabletype="'.concat(s(o),'"'));let a=t.value;"string"==typeof a&&(a=s(t.value)),i+=">".concat(a,"</field>")}return n.next&&(i+="<next>".concat(this.blockToXML(n.next,t),"</next>")),i+="</".concat(r,">"),i}mutationToXML(e){let t="<".concat(e.tagName);for(const n in e){if("children"===n||"tagName"===n)continue;let r="string"==typeof e[n]?s(e[n]):e[n];"blockInfo"===n&&(r=s(JSON.stringify(e[n]))),t+=" ".concat(n,'="').concat(r,'"')}t+=">";for(let n=0;n<e.children.length;n++)t+=this.mutationToXML(e.children[n]);return t+="</".concat(e.tagName,">"),t}_getBlockParams(e){const t={};for(const n in e.fields)t[n]=e.fields[n].value;for(const n in e.inputs){const r=this._blocks[e.inputs[n].block];for(const e in r.fields)t[e]=r.fields[e].value}return t}_getCustomBlockInternal(e){if(e.inputs&&e.inputs.custom_block)return this._blocks[e.inputs.custom_block.block]}_addScript(e){this._scripts.indexOf(e)>-1||(this._scripts.push(e),this._blocks[e].topLevel=!0)}_deleteScript(e){const t=this._scripts.indexOf(e);t>-1&&this._scripts.splice(t,1),this._blocks[e]&&(this._blocks[e].topLevel=!1)}}c.getCached=function(e,t,n){let r=e._cache._executeCached[t];if(void 0!==r)return r;const i=e.getBlock(t);return void 0===i?null:(r=void 0===n?{id:t,opcode:e.getOpcode(i),fields:e.getFields(i),inputs:e.getInputs(i),mutation:e.getMutation(i)}:new n(e,{id:t,opcode:e.getOpcode(i),fields:e.getFields(i),inputs:e.getInputs(i),mutation:e.getMutation(i)}),e._cache._executeCached[t]=r,r)};const f=l._RuntimeScriptCache;l.getScripts=function(e,t){let n=e._cache.scripts[t];if(!n){n=e._cache.scripts[t]=[];const r=e._scripts;for(let i=0;i<r.length;i++){const s=r[i];e.getBlock(s).opcode===t&&n.push(new f(e,s))}}return n},e.exports=p},function(e,t,n){"use strict";(function(e){var r=n(98),i=n(99),s=n(100);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return h(this,e)}return l(this,e,t,n)}function l(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=d(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|f(t,n);e=a(e,r);var i=e.write(t,n);i!==r&&(e=e.slice(0,i));return e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|p(t.length);return 0===(e=a(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?a(e,0):d(e,t);if("Buffer"===t.type&&s(t.data))return d(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function h(e,t){if(u(t),e=a(e,t<0?0:0|p(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function d(e,t){var n=t.length<0?0:0|p(t.length);e=a(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function p(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function f(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return G(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return V(e).length;default:if(r)return G(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return O(this,t,n);case"ascii":return N(this,t,n);case"latin1":case"binary":return R(this,t,n);case"base64":return k(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,i);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,i){var s,o=1,a=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,n/=2}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(s=n;s<a;s++)if(l(e,s)===l(t,-1===u?0:s-u)){if(-1===u&&(u=s),s-u+1===c)return u*o}else-1!==u&&(s-=s-u),u=-1}else for(n+c>a&&(n=a-c),s=n;s>=0;s--){for(var h=!0,d=0;d<c;d++)if(l(e,s+d)!==l(t,d)){h=!1;break}if(h)return s}return-1}function E(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var o=0;o<r;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[n+o]=a}return o}function T(e,t,n,r){return Y(G(t,e.length-n),e,n,r)}function v(e,t,n,r){return Y(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function A(e,t,n,r){return v(e,t,n,r)}function w(e,t,n,r){return Y(V(t),e,n,r)}function S(e,t,n,r){return Y(function(e,t){for(var n,r,i,s=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,i=n%256,s.push(i),s.push(r);return s}(t,e.length-n),e,n,r)}function k(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function O(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var s,o,a,c,l=e[i],u=null,h=l>239?4:l>223?3:l>191?2:1;if(i+h<=n)switch(h){case 1:l<128&&(u=l);break;case 2:128==(192&(s=e[i+1]))&&(c=(31&l)<<6|63&s)>127&&(u=c);break;case 3:s=e[i+1],o=e[i+2],128==(192&s)&&128==(192&o)&&(c=(15&l)<<12|(63&s)<<6|63&o)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:s=e[i+1],o=e[i+2],a=e[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(c=(15&l)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&c<1114112&&(u=c)}null===u?(u=65533,h=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=h}return function(e){var t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=I));return n}(r)}t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=o(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return l(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,r){return u(t),t<=0?a(e,t):void 0!==n?"string"==typeof r?a(e,t).fill(n,r):a(e,t).fill(n):a(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return h(null,e)},c.allocUnsafeSlow=function(e){return h(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,s=Math.min(n,r);i<s;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!s(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var o=e[n];if(!c.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},c.byteLength=f,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?O(this,0,e):m.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,r,i){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var s=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),a=Math.min(s,o),l=this.slice(r,i),u=e.slice(t,n),h=0;h<a;++h)if(l[h]!==u[h]){s=l[h],o=u[h];break}return s<o?-1:o<s?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return b(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return b(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return T(this,e,t,n);case"ascii":return v(this,e,t,n);case"latin1":case"binary":return A(this,e,t,n);case"base64":return w(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function N(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function R(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function x(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",s=t;s<n;++s)i+=z(e[s]);return i}function M(e,t,n){for(var r=e.slice(t,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}function C(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function P(e,t,n,r,i,s){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<s)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function L(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-n,2);i<s;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function D(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-n,4);i<s;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function B(e,t,n,r,i,s){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function U(e,t,n,r,s){return s||B(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function F(e,t,n,r,s){return s||B(e,0,n,8),i.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var i=t-e;n=new c(i,void 0);for(var s=0;s<i;++s)n[s]=this[s+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},c.prototype.readUInt8=function(e,t){return t||C(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||C(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||C(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||C(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||C(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=t,i=1,s=this[e+--r];r>0&&(i*=256);)s+=this[e+--r]*i;return s>=(i*=128)&&(s-=Math.pow(2,8*t)),s},c.prototype.readInt8=function(e,t){return t||C(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||C(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||C(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||C(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||C(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||C(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||C(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||C(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||C(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||P(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,s=0;for(this[t]=255&e;++s<n&&(i*=256);)this[t+s]=e/i&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||P(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);P(this,e,t,n,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s<n&&(o*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/o|0)-a&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);P(this,e,t,n,i-1,-i)}var s=n-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o|0)-a&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return U(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return U(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return F(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return F(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,s=r-n;if(this===e&&n<t&&t<r)for(i=s-1;i>=0;--i)e[i+t]=this[i+n];else if(s<1e3||!c.TYPED_ARRAY_SUPPORT)for(i=0;i<s;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var s;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(s=t;s<n;++s)this[s]=e;else{var o=c.isBuffer(e)?e:G(new c(e,r).toString()),a=o.length;for(s=0;s<n-t;++s)this[s+t]=o[s%a]}return this};var j=/[^+\/0-9A-Za-z-_]/g;function z(e){return e<16?"0"+e.toString(16):e.toString(16)}function G(e,t){var n;t=t||1/0;for(var r=e.length,i=null,s=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&s.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function V(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(j,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Y(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(8))},function(e,t,n){"use strict";var r,i="object"==typeof Reflect?Reflect:null,s=i&&"function"==typeof i.apply?i.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=i&&"function"==typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,s),r(n)}function s(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}b(e,t,s,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&b(e,"error",t,n)}(e,i,{once:!0})}))},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var c=10;function l(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function h(e,t,n,r){var i,s,o,a;if(l(n),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),o=s[t]),void 0===o)o=s[t]=n,++e._eventsCount;else if("function"==typeof o?o=s[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(i=u(e))>0&&o.length>i&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=o.length,a=c,console&&console.warn&&console.warn(a)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=d.bind(r);return i.listener=n,r.wrapFn=i,i}function f(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):g(i,i.length)}function m(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function g(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function b(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function i(s){r.once&&e.removeEventListener(t,i),n(s)}))}}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");c=e}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},a.prototype.getMaxListeners=function(){return u(this)},a.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,i=this._events;if(void 0!==i)r=r&&void 0===i.error;else if(!r)return!1;if(r){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)s(c,this,t);else{var l=c.length,u=g(c,l);for(n=0;n<l;++n)s(u[n],this,t)}return!0},a.prototype.addListener=function(e,t){return h(this,e,t,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(e,t){return h(this,e,t,!0)},a.prototype.once=function(e,t){return l(t),this.on(e,p(this,e,t)),this},a.prototype.prependOnceListener=function(e,t){return l(t),this.prependListener(e,p(this,e,t)),this},a.prototype.removeListener=function(e,t){var n,r,i,s,o;if(l(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,s=n.length-1;s>=0;s--)if(n[s]===t||n[s].listener===t){o=n[s].listener,i=s;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,s=Object.keys(n);for(r=0;r<s.length;++r)"removeListener"!==(i=s[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return f(this,e,!0)},a.prototype.rawListeners=function(e){return f(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},a.prototype.listenerCount=m,a.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){const r=n(0),i=[];class s{constructor(e){this.isLoop=!1,this.warpMode=e,this.justReported=null,this.reporting="",this.reported=null,this.waitingReporter=null,this.params=null,this.executionContext=null,this.op=null}reset(){return this.isLoop=!1,this.warpMode=!1,this.justReported=null,this.reported=null,this.waitingReporter=null,this.params=null,this.executionContext=null,this.op=null,this}reuse(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.warpMode;return this.reset(),this.warpMode=Boolean(e),this}static create(e){const t=i.pop();return void 0!==t?(t.warpMode=Boolean(e),t):new s(e)}static release(e){void 0!==e&&i.push(e.reset())}}class o{constructor(e){this.topBlock=e,this.stack=[],this.stackFrames=[],this.status=0,this.isKilled=!1,this.target=null,this.blockContainer=null,this.requestScriptGlowInFrame=!1,this.blockGlowInFrame=null,this.warpTimer=null,this.justReported=null,this.triedToCompile=!1,this.isCompiled=!1,this.timer=null,this.generator=null,this.procedures=null,this.executableHat=!1,this.compatibilityStackFrame=null}static get STATUS_RUNNING(){return 0}static get STATUS_PROMISE_WAIT(){return 1}static get STATUS_YIELD(){return 2}static get STATUS_YIELD_TICK(){return 3}static get STATUS_DONE(){return 4}static getIdFromTargetAndBlock(e,t){return"".concat(e.id,"&").concat(t)}getId(){return o.getIdFromTargetAndBlock(this.target,this.topBlock)}pushStack(e){if(this.stack.push(e),this.stack.length>this.stackFrames.length){const e=this.stackFrames[this.stackFrames.length-1];this.stackFrames.push(s.create(void 0!==e&&e.warpMode))}}reuseStackForNextBlock(e){this.stack[this.stack.length-1]=e,this.stackFrames[this.stackFrames.length-1].reuse()}popStack(){return s.release(this.stackFrames.pop()),this.stack.pop()}stopThisScript(){let e=this.peekStack();for(;null!==e;){const t=this.target.blocks.getBlock(e);if(this.peekStackFrame().waitingReporter)break;if(void 0!==t&&"procedures_call"===t.opcode){this.goToNextBlock();break}this.popStack(),e=this.peekStack()}0===this.stack.length&&(this.requestScriptGlowInFrame=!1,this.status=o.STATUS_DONE)}peekStack(){return this.stack.length>0?this.stack[this.stack.length-1]:null}peekStackFrame(){return this.stackFrames.length>0?this.stackFrames[this.stackFrames.length-1]:null}peekParentStackFrame(){return this.stackFrames.length>1?this.stackFrames[this.stackFrames.length-2]:null}pushReportedValue(e){this.justReported=void 0===e?null:e}initParams(){const e=this.peekStackFrame();null===e.params&&(e.params={})}pushParam(e,t){this.peekStackFrame().params[e]=t}getParam(e){for(let t=this.stackFrames.length-1;t>=0;t--){const n=this.stackFrames[t];if(null!==n.params)return Object.prototype.hasOwnProperty.call(n.params,e)?n.params[e]:null}return null}getAllparams(){return this.peekStackFrame().params}atStackTop(){return this.peekStack()===this.topBlock}goToNextBlock(){const e=this.target.blocks.getNextBlock(this.peekStack());this.reuseStackForNextBlock(e)}isRecursiveCall(e){let t=5;for(let n=this.stackFrames.length-1-1;n>=0;n--){const r=this.target.blocks.getBlock(this.stackFrames[n].op.id)||this.target.runtime.flyoutBlocks.getBlock(this.stackFrames[n].op.id);if("procedures_call"===r.opcode&&r.mutation.proccode===e)return!0;if(--t<0)return!1}return!1}tryCompile(){if(!this.blockContainer)return;const e=n(187);this.triedToCompile=!0;const t=!this.stackClick,i=this.topBlock,s=this.blockContainer.getBlock(i)?this.blockContainer:this.target.runtime.flyoutBlocks,o=t&&s.getCachedCompileResult(i);if(o&&!o.success)return;let a;if(o)a=o.value;else try{a=e(this),t&&s.cacheCompileResult(i,a)}catch(e){return r.error("cannot compile script",this.target.getName(),e),t&&s.cacheCompileError(i,e),void this.target.runtime.emitCompileError(this.target,e)}this.procedures={};for(const e of Object.keys(a.procedures))this.procedures[e]=a.procedures[e](this);this.generator=a.startingFunction(this)(),this.executableHat=a.executableHat,this.blockContainer.forceNoGlow||(this.blockGlowInFrame=this.topBlock,this.requestScriptGlowInFrame=!0),this.isCompiled=!0}}o._StackFrame=s,e.exports=o},function(e,t,n){n(104),e.exports={TextEncoder:TextEncoder,TextDecoder:TextDecoder}},function(e,t,n){(function(t,n,r,i){e.exports=function e(t,n,r){function i(o,a){if(!n[o]){if(!t[o]){if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[o]={exports:{}};t[o][0].call(l.exports,(function(e){return i(t[o][1][e]||e)}),l,l.exports,e,t,n,r)}return n[o].exports}for(var s=!1,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){"use strict";var r=e("./utils"),i=e("./support"),s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";n.encode=function(e){for(var t,n,i,o,a,c,l,u=[],h=0,d=e.length,p=d,f="string"!==r.getTypeOf(e);h<e.length;)p=d-h,i=f?(t=e[h++],n=h<d?e[h++]:0,h<d?e[h++]:0):(t=e.charCodeAt(h++),n=h<d?e.charCodeAt(h++):0,h<d?e.charCodeAt(h++):0),o=t>>2,a=(3&t)<<4|n>>4,c=1<p?(15&n)<<2|i>>6:64,l=2<p?63&i:64,u.push(s.charAt(o)+s.charAt(a)+s.charAt(c)+s.charAt(l));return u.join("")},n.decode=function(e){var t,n,r,o,a,c,l=0,u=0,h="data:";if(e.substr(0,h.length)===h)throw new Error("Invalid base64 input, it looks like a data url.");var d,p=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(e.charAt(e.length-1)===s.charAt(64)&&p--,e.charAt(e.length-2)===s.charAt(64)&&p--,p%1!=0)throw new Error("Invalid base64 input, bad content length.");for(d=i.uint8array?new Uint8Array(0|p):new Array(0|p);l<e.length;)t=s.indexOf(e.charAt(l++))<<2|(o=s.indexOf(e.charAt(l++)))>>4,n=(15&o)<<4|(a=s.indexOf(e.charAt(l++)))>>2,r=(3&a)<<6|(c=s.indexOf(e.charAt(l++))),d[u++]=t,64!==a&&(d[u++]=n),64!==c&&(d[u++]=r);return d}},{"./support":30,"./utils":32}],2:[function(e,t,n){"use strict";var r=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),o=e("./stream/DataLengthProbe");function a(e,t,n,r,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=n,this.compression=r,this.compressedContent=i}a.prototype={getContentWorker:function(){var e=new i(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new o("data_length")),t=this;return e.on("end",(function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),e},getCompressedWorker:function(){return new i(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},a.createWorkerFrom=function(e,t,n){return e.pipe(new s).pipe(new o("uncompressedSize")).pipe(t.compressWorker(n)).pipe(new o("compressedSize")).withStreamInfo("compression",t)},t.exports=a},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,n){"use strict";var r=e("./stream/GenericWorker");n.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},n.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,n){"use strict";var r=e("./utils"),i=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==r.getTypeOf(e)?function(e,t,n,r){var s=i,o=r+n;e^=-1;for(var a=r;a<o;a++)e=e>>>8^s[255&(e^t[a])];return~e}(0|t,e,e.length,0):function(e,t,n,r){var s=i,o=r+n;e^=-1;for(var a=r;a<o;a++)e=e>>>8^s[255&(e^t.charCodeAt(a))];return~e}(0|t,e,e.length,0):0}},{"./utils":32}],5:[function(e,t,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!0,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],6:[function(e,t,n){"use strict";var r=null;r="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:r}},{lie:37}],7:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("./utils"),s=e("./stream/GenericWorker"),o=r?"uint8array":"array";function a(e,t){s.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}n.magic="\b\0",i.inherits(a,s),a.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(i.transformTo(o,e.data),!1)},a.prototype.flush=function(){s.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},a.prototype.cleanUp=function(){s.prototype.cleanUp.call(this),this._pako=null},a.prototype._createPako=function(){var t=e("pako");this._pako=new t[this._pakoAction]({chunkSize:65536,raw:!0,level:this._pakoOptions.level||-1});var n=this;this._pako.onData=function(e){n.push({data:e,meta:n.meta})}},n.compressWorker=function(e){return new a("Deflate",e)},n.uncompressWorker=function(){return new a("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,n){"use strict";function r(e,t){var n,r="";for(n=0;n<t;n++)r+=String.fromCharCode(255&e),e>>>=8;return r}function i(e,t,n,i,o,u){var h,d,p=e.file,f=e.compression,m=u!==a.utf8encode,g=s.transformTo("string",u(p.name)),b=s.transformTo("string",a.utf8encode(p.name)),y=p.comment,E=s.transformTo("string",u(y)),T=s.transformTo("string",a.utf8encode(y)),v=b.length!==p.name.length,A=T.length!==y.length,w="",S="",k="",O=p.dir,I=p.date,N={crc32:0,compressedSize:0,uncompressedSize:0};t&&!n||(N.crc32=e.crc32,N.compressedSize=e.compressedSize,N.uncompressedSize=e.uncompressedSize);var R=0;t&&(R|=8),m||!v&&!A||(R|=2048);var x=0,M=0;O&&(x|=16),"UNIX"===o?(M=798,x|=function(e,t){var n=e;return e||(n=t?16893:33204),(65535&n)<<16}(p.unixPermissions,O)):(M=20,x|=function(e){return 63&(e||0)}(p.dosPermissions)),h=I.getUTCHours(),h<<=6,h|=I.getUTCMinutes(),h<<=5,h|=I.getUTCSeconds()/2,d=I.getUTCFullYear()-1980,d<<=4,d|=I.getUTCMonth()+1,d<<=5,d|=I.getUTCDate(),v&&(S=r(1,1)+r(c(g),4)+b,w+="up"+r(S.length,2)+S),A&&(k=r(1,1)+r(c(E),4)+T,w+="uc"+r(k.length,2)+k);var C="";return C+="\n\0",C+=r(R,2),C+=f.magic,C+=r(h,2),C+=r(d,2),C+=r(N.crc32,4),C+=r(N.compressedSize,4),C+=r(N.uncompressedSize,4),C+=r(g.length,2),C+=r(w.length,2),{fileRecord:l.LOCAL_FILE_HEADER+C+g+w,dirRecord:l.CENTRAL_FILE_HEADER+r(M,2)+C+r(E.length,2)+"\0\0\0\0"+r(x,4)+r(i,4)+g+w+E}}var s=e("../utils"),o=e("../stream/GenericWorker"),a=e("../utf8"),c=e("../crc32"),l=e("../signature");function u(e,t,n,r){o.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=n,this.encodeFileName=r,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(u,o),u.prototype.push=function(e){var t=e.meta.percent||0,n=this.entriesCount,r=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,o.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:n?(t+100*(n-r-1))/n:100}}))},u.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var n=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:n.fileRecord,meta:{percent:0}})}else this.accumulate=!0},u.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,n=i(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(n.dirRecord),t)this.push({data:function(e){return l.DATA_DESCRIPTOR+r(e.crc32,4)+r(e.compressedSize,4)+r(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:n.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},u.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var n=this.bytesWritten-e,i=function(e,t,n,i,o){var a=s.transformTo("string",o(i));return l.CENTRAL_DIRECTORY_END+"\0\0\0\0"+r(e,2)+r(e,2)+r(t,4)+r(n,4)+r(a.length,2)+a}(this.dirRecords.length,n,e,this.zipComment,this.encodeFileName);this.push({data:i,meta:{percent:100}})},u.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},u.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",(function(e){t.processChunk(e)})),e.on("end",(function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()})),e.on("error",(function(e){t.error(e)})),this},u.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},u.prototype.error=function(e){var t=this._sources;if(!o.prototype.error.call(this,e))return!1;for(var n=0;n<t.length;n++)try{t[n].error(e)}catch(e){}return!0},u.prototype.lock=function(){o.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=u},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(e,t,n){"use strict";var r=e("../compressions"),i=e("./ZipFileWorker");n.generateWorker=function(e,t,n){var s=new i(t.streamFiles,n,t.platform,t.encodeFileName),o=0;try{e.forEach((function(e,n){o++;var i=function(e,t){var n=e||t,i=r[n];if(!i)throw new Error(n+" is not a valid compression method !");return i}(n.options.compression,t.compression),a=n.options.compressionOptions||t.compressionOptions||{},c=n.dir,l=n.date;n._compressWorker(i,a).withStreamInfo("file",{name:e,dir:c,date:l,comment:n.comment||"",unixPermissions:n.unixPermissions,dosPermissions:n.dosPermissions}).pipe(s)})),s.entriesCount=o}catch(e){s.error(e)}return s}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(e,t,n){"use strict";function r(){if(!(this instanceof r))return new r;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var e=new r;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e}}(r.prototype=e("./object")).loadAsync=e("./load"),r.support=e("./support"),r.defaults=e("./defaults"),r.loadAsync=function(e,t){return(new r).loadAsync(e,t)},r.external=e("./external"),t.exports=r},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(e,t,n){"use strict";var r=e("./utils"),i=e("./external"),s=e("./utf8"),o=e("./zipEntries"),a=e("./stream/Crc32Probe"),c=e("./nodejsUtils");function l(e){return new i.Promise((function(t,n){var r=e.decompressed.getContentWorker().pipe(new a);r.on("error",(function(e){n(e)})).on("end",(function(){r.streamInfo.crc32!==e.decompressed.crc32?n(new Error("Corrupted zip : CRC32 mismatch")):t()})).resume()}))}t.exports=function(e,t){var n=this;return t=r.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:s.utf8decode}),c.isNode&&c.isStream(e)?i.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):r.prepareContent("the loaded zip file",e,!0,t.optimizedBinaryString,t.base64).then((function(e){var n=new o(t);return n.load(e),n})).then((function(e){var n=[i.Promise.resolve(e)],r=e.files;if(t.checkCRC32)for(var s=0;s<r.length;s++)n.push(l(r[s]));return i.Promise.all(n)})).then((function(e){for(var i=e.shift(),s=i.files,o=0;o<s.length;o++){var a=s[o],c=a.fileNameStr,l=r.resolve(a.fileNameStr);n.file(l,a.decompressed,{binary:!0,optimizedBinaryString:!0,date:a.date,dir:a.dir,comment:a.fileCommentStr.length?a.fileCommentStr:null,unixPermissions:a.unixPermissions,dosPermissions:a.dosPermissions,createFolders:t.createFolders}),a.dir||(n.file(l).unsafeOriginalName=c)}return i.zipComment.length&&(n.comment=i.zipComment),n}))}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(e,t,n){"use strict";var r=e("../utils"),i=e("../stream/GenericWorker");function s(e,t){i.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}r.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on("data",(function(e){t.push({data:e,meta:{percent:0}})})).on("error",(function(e){t.isPaused?this.generatedError=e:t.error(e)})).on("end",(function(){t.isPaused?t._upstreamEnded=!0:t.end()}))},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{"../stream/GenericWorker":28,"../utils":32}],13:[function(e,t,n){"use strict";var r=e("readable-stream").Readable;function i(e,t,n){r.call(this,t),this._helper=e;var i=this;e.on("data",(function(e,t){i.push(e)||i._helper.pause(),n&&n(t)})).on("error",(function(e){i.emit("error",e)})).on("end",(function(){i.push(null)}))}e("../utils").inherits(i,r),i.prototype._read=function(){this._helper.resume()},t.exports=i},{"../utils":32,"readable-stream":16}],14:[function(e,n,r){"use strict";n.exports={isNode:void 0!==t,newBufferFrom:function(e,n){if(t.from&&t.from!==Uint8Array.from)return t.from(e,n);if("number"==typeof e)throw new Error('The "data" argument must not be a number');return new t(e,n)},allocBuffer:function(e){if(t.alloc)return t.alloc(e);var n=new t(e);return n.fill(0),n},isBuffer:function(e){return t.isBuffer(e)},isStream:function(e){return e&&"function"==typeof e.on&&"function"==typeof e.pause&&"function"==typeof e.resume}}},{}],15:[function(e,t,n){"use strict";function r(e,t,n){var r,i=s.getTypeOf(t),a=s.extend(n||{},c);a.date=a.date||new Date(1716106843e3),null!==a.compression&&(a.compression=a.compression.toUpperCase()),"string"==typeof a.unixPermissions&&(a.unixPermissions=parseInt(a.unixPermissions,8)),a.unixPermissions&&16384&a.unixPermissions&&(a.dir=!0),a.dosPermissions&&16&a.dosPermissions&&(a.dir=!0),a.dir&&(e=m(e)),a.createFolders&&(r=f(e))&&g.call(this,r,!0);var h="string"===i&&!1===a.binary&&!1===a.base64;n&&void 0!==n.binary||(a.binary=!h),(t instanceof l&&0===t.uncompressedSize||a.dir||!t||0===t.length)&&(a.base64=!1,a.binary=!0,t="",a.compression="STORE",i="string");var b=null;b=t instanceof l||t instanceof o?t:d.isNode&&d.isStream(t)?new p(e,t):s.prepareContent(e,t,a.binary,a.optimizedBinaryString,a.base64);var y=new u(e,b,a);this.files[e]=y}var i=e("./utf8"),s=e("./utils"),o=e("./stream/GenericWorker"),a=e("./stream/StreamHelper"),c=e("./defaults"),l=e("./compressedObject"),u=e("./zipObject"),h=e("./generate"),d=e("./nodejsUtils"),p=e("./nodejs/NodejsStreamInputAdapter"),f=function(e){"/"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return 0<t?e.substring(0,t):""},m=function(e){return"/"!==e.slice(-1)&&(e+="/"),e},g=function(e,t){return t=void 0!==t?t:c.createFolders,e=m(e),this.files[e]||r.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function b(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var y={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,n,r;for(t in this.files)r=this.files[t],(n=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(n,r)},filter:function(e){var t=[];return this.forEach((function(n,r){e(n,r)&&t.push(r)})),t},file:function(e,t,n){if(1!==arguments.length)return e=this.root+e,r.call(this,e,t,n),this;if(b(e)){var i=e;return this.filter((function(e,t){return!t.dir&&i.test(e)}))}var s=this.files[this.root+e];return s&&!s.dir?s:null},folder:function(e){if(!e)return this;if(b(e))return this.filter((function(t,n){return n.dir&&e.test(t)}));var t=this.root+e,n=g.call(this,t),r=this.clone();return r.root=n.name,r},remove:function(e){e=this.root+e;var t=this.files[e];if(t||("/"!==e.slice(-1)&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var n=this.filter((function(t,n){return n.name.slice(0,e.length)===e})),r=0;r<n.length;r++)delete this.files[n[r].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,n={};try{if((n=s.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:i.utf8encode})).type=n.type.toLowerCase(),n.compression=n.compression.toUpperCase(),"binarystring"===n.type&&(n.type="string"),!n.type)throw new Error("No output type specified.");s.checkSupport(n.type),"darwin"!==n.platform&&"freebsd"!==n.platform&&"linux"!==n.platform&&"sunos"!==n.platform||(n.platform="UNIX"),"win32"===n.platform&&(n.platform="DOS");var r=n.comment||this.comment||"";t=h.generateWorker(this,n,r)}catch(e){(t=new o("error")).error(e)}return new a(t,n.type||"string",n.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=y},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(e,t,n){"use strict";t.exports=e("stream")},{stream:void 0}],17:[function(e,t,n){"use strict";var r=e("./DataReader");function i(e){r.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e("../utils").inherits(i,r),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),n=e.charCodeAt(1),r=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===n&&this.data[s+2]===r&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1),r=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&n===s[1]&&r===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],18:[function(e,t,n){"use strict";var r=e("../utils");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,n=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,n){"use strict";var r=e("./Uint8ArrayReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,n){"use strict";var r=e("./DataReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,n){"use strict";var r=e("./ArrayReader"),i=e("./DataReader");function s(e){i.call(this,e)}e("../utils").inherits(s,r),s.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=s},{"../utils":32,"./ArrayReader":17,"./DataReader":18}],22:[function(e,t,n){"use strict";var r=e("../utils"),i=e("../support"),s=e("./ArrayReader"),o=e("./StringReader"),a=e("./NodeBufferReader"),c=e("./Uint8ArrayReader");t.exports=function(e){var t=r.getTypeOf(e);return r.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new a(e):i.uint8array?new c(r.transformTo("uint8array",e)):new s(r.transformTo("array",e)):new o(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,n){"use strict";n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,n){"use strict";var r=e("./GenericWorker"),i=e("../utils");function s(e){r.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(s,r),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,n){"use strict";var r=e("./GenericWorker"),i=e("../crc32");function s(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(s,r),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,n){"use strict";var r=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}r.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,n){"use strict";var r=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then((function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=r.getTypeOf(e),t.isPaused||t._tickAndRepeat()}),(function(e){t.error(e)}))}r.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+65536);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":case"nodebuffer":e=this.data.subarray(this.index,t);break;case"array":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,n){"use strict";function r(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var n=0;n<this._listeners[e].length;n++)this._listeners[e][n].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",(function(e){t.processChunk(e)})),e.on("end",(function(){t.end()})),e.on("error",(function(e){t.error(e)})),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}},t.exports=r},{}],29:[function(e,n,r){"use strict";var i=e("../utils"),s=e("./ConvertWorker"),o=e("./GenericWorker"),a=e("../base64"),c=e("../support"),l=e("../external"),u=null;if(c.nodestream)try{u=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function h(e,n){return new l.Promise((function(r,s){var o=[],c=e._internalType,l=e._outputType,u=e._mimeType;e.on("data",(function(e,t){o.push(e),n&&n(t)})).on("error",(function(e){o=[],s(e)})).on("end",(function(){try{var e=function(e,t,n){switch(e){case"blob":return i.newBlob(i.transformTo("arraybuffer",t),n);case"base64":return a.encode(t);default:return i.transformTo(e,t)}}(l,function(e,n){var r,i=0,s=null,o=0;for(r=0;r<n.length;r++)o+=n[r].length;switch(e){case"string":return n.join("");case"array":return Array.prototype.concat.apply([],n);case"uint8array":for(s=new Uint8Array(o),r=0;r<n.length;r++)s.set(n[r],i),i+=n[r].length;return s;case"nodebuffer":return t.concat(n);default:throw new Error("concat : unsupported type '"+e+"'")}}(c,o),u);r(e)}catch(e){s(e)}o=[]})).resume()}))}function d(e,t,n){var r=t;switch(t){case"blob":case"arraybuffer":r="uint8array";break;case"base64":r="string"}try{this._internalType=r,this._outputType=t,this._mimeType=n,i.checkSupport(r),this._worker=e.pipe(new s(r)),e.lock()}catch(e){this._worker=new o("error"),this._worker.error(e)}}d.prototype={accumulate:function(e){return h(this,e)},on:function(e,t){var n=this;return"data"===e?this._worker.on(e,(function(e){t.call(n,e.data,e.meta)})):this._worker.on(e,(function(){i.delay(t,arguments,n)})),this},resume:function(){return i.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(i.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new u(this,{objectMode:"nodebuffer"!==this._outputType},e)}},n.exports=d},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(e,n,r){"use strict";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,r.nodebuffer=void 0!==t,r.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)r.blob=!1;else{var i=new ArrayBuffer(0);try{r.blob=0===new Blob([i],{type:"application/zip"}).size}catch(e){try{var s=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);s.append(i),r.blob=0===s.getBlob("application/zip").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e("readable-stream").Readable}catch(e){r.nodestream=!1}},{"readable-stream":16}],31:[function(e,t,n){"use strict";for(var r=e("./utils"),i=e("./support"),s=e("./nodejsUtils"),o=e("./stream/GenericWorker"),a=new Array(256),c=0;c<256;c++)a[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=c?2:1;function l(){o.call(this,"utf-8 decode"),this.leftOver=null}function u(){o.call(this,"utf-8 encode")}a[254]=a[254]=1,n.utf8encode=function(e){return i.nodebuffer?s.newBufferFrom(e,"utf-8"):function(e){var t,n,r,s,o,a=e.length,c=0;for(s=0;s<a;s++)55296==(64512&(n=e.charCodeAt(s)))&&s+1<a&&56320==(64512&(r=e.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(r-56320),s++),c+=n<128?1:n<2048?2:n<65536?3:4;for(t=i.uint8array?new Uint8Array(c):new Array(c),s=o=0;o<c;s++)55296==(64512&(n=e.charCodeAt(s)))&&s+1<a&&56320==(64512&(r=e.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(r-56320),s++),n<128?t[o++]=n:(n<2048?t[o++]=192|n>>>6:(n<65536?t[o++]=224|n>>>12:(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63),t[o++]=128|n>>>6&63),t[o++]=128|63&n);return t}(e)},n.utf8decode=function(e){return i.nodebuffer?r.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,n,i,s,o=e.length,c=new Array(2*o);for(t=n=0;t<o;)if((i=e[t++])<128)c[n++]=i;else if(4<(s=a[i]))c[n++]=65533,t+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&t<o;)i=i<<6|63&e[t++],s--;1<s?c[n++]=65533:i<65536?c[n++]=i:(i-=65536,c[n++]=55296|i>>10&1023,c[n++]=56320|1023&i)}return c.length!==n&&(c.subarray?c=c.subarray(0,n):c.length=n),r.applyFromCharCode(c)}(e=r.transformTo(i.uint8array?"uint8array":"array",e))},r.inherits(l,o),l.prototype.processChunk=function(e){var t=r.transformTo(i.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var s=t;(t=new Uint8Array(s.length+this.leftOver.length)).set(this.leftOver,0),t.set(s,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var o=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+a[e[n]]>t?n:t}(t),c=t;o!==t.length&&(i.uint8array?(c=t.subarray(0,o),this.leftOver=t.subarray(o,t.length)):(c=t.slice(0,o),this.leftOver=t.slice(o,t.length))),this.push({data:n.utf8decode(c),meta:e.meta})},l.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:n.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},n.Utf8DecodeWorker=l,r.inherits(u,o),u.prototype.processChunk=function(e){this.push({data:n.utf8encode(e.data),meta:e.meta})},n.Utf8EncodeWorker=u},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,r){"use strict";var i=e("./support"),s=e("./base64"),o=e("./nodejsUtils"),a=e("./external");function c(e){return e}function l(e,t){for(var n=0;n<e.length;++n)t[n]=255&e.charCodeAt(n);return t}e("setimmediate"),r.newBlob=function(e,t){r.checkSupport("blob");try{return new Blob([e],{type:t})}catch(r){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(e),n.getBlob(t)}catch(e){throw new Error("Bug : can't construct the Blob.")}}};var u={stringifyByChunk:function(e,t,n){var r=[],i=0,s=e.length;if(s<=n)return String.fromCharCode.apply(null,e);for(;i<s;)"array"===t||"nodebuffer"===t?r.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+n,s)))):r.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+n,s)))),i+=n;return r.join("")},stringifyByChar:function(e){for(var t="",n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},applyCanBeUsed:{uint8array:function(){try{return i.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return i.nodebuffer&&1===String.fromCharCode.apply(null,o.allocBuffer(1)).length}catch(e){return!1}}()}};function h(e){var t=65536,n=r.getTypeOf(e),i=!0;if("uint8array"===n?i=u.applyCanBeUsed.uint8array:"nodebuffer"===n&&(i=u.applyCanBeUsed.nodebuffer),i)for(;1<t;)try{return u.stringifyByChunk(e,n,t)}catch(e){t=Math.floor(t/2)}return u.stringifyByChar(e)}function d(e,t){for(var n=0;n<e.length;n++)t[n]=e[n];return t}r.applyFromCharCode=h;var p={};p.string={string:c,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return p.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,o.allocBuffer(e.length))}},p.array={string:h,array:c,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return o.newBufferFrom(e)}},p.arraybuffer={string:function(e){return h(new Uint8Array(e))},array:function(e){return d(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:c,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return o.newBufferFrom(new Uint8Array(e))}},p.uint8array={string:h,array:function(e){return d(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:c,nodebuffer:function(e){return o.newBufferFrom(e)}},p.nodebuffer={string:h,array:function(e){return d(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:function(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)},nodebuffer:c},r.transformTo=function(e,t){if(t=t||"",!e)return t;r.checkSupport(e);var n=r.getTypeOf(t);return p[n][e](t)},r.resolve=function(e){for(var t=e.split("/"),n=[],r=0;r<t.length;r++){var i=t[r];"."===i||""===i&&0!==r&&r!==t.length-1||(".."===i?n.pop():n.push(i))}return n.join("/")},r.getTypeOf=function(e){return"string"==typeof e?"string":"[object Array]"===Object.prototype.toString.call(e)?"array":i.nodebuffer&&o.isBuffer(e)?"nodebuffer":i.uint8array&&e instanceof Uint8Array?"uint8array":i.arraybuffer&&e instanceof ArrayBuffer?"arraybuffer":void 0},r.checkSupport=function(e){if(!i[e.toLowerCase()])throw new Error(e+" is not supported by this platform")},r.MAX_VALUE_16BITS=65535,r.MAX_VALUE_32BITS=-1,r.pretty=function(e){var t,n,r="";for(n=0;n<(e||"").length;n++)r+="\\x"+((t=e.charCodeAt(n))<16?"0":"")+t.toString(16).toUpperCase();return r},r.delay=function(e,t,r){n((function(){e.apply(r||null,t||[])}))},r.inherits=function(e,t){function n(){}n.prototype=t.prototype,e.prototype=new n},r.extend=function(){var e,t,n={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===n[t]&&(n[t]=arguments[e][t]);return n},r.prepareContent=function(e,t,n,o,c){return a.Promise.resolve(t).then((function(e){var t=i.blob&&(e instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(e)));return t&&"undefined"!=typeof FileReader?new a.Promise((function(t,n){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=function(e){n(e.target.error)},r.readAsArrayBuffer(e)})):t&&"function"==typeof e.arrayBuffer?e.arrayBuffer():e})).then((function(t){var u=r.getTypeOf(t);return u?("arraybuffer"===u?t=r.transformTo("uint8array",t):"string"===u&&(c?t=s.decode(t):n&&!0!==o&&(t=function(e){return l(e,i.uint8array?new Uint8Array(e.length):new Array(e.length))}(t))),t):a.Promise.reject(new Error("Can't read the data of '"+e+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))}))}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(e,t,n){"use strict";var r=e("./reader/readerFor"),i=e("./utils"),s=e("./signature"),o=e("./zipEntry"),a=e("./support");function c(e){this.files=[],this.loadOptions=e}c.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+i.pretty(t)+", expected "+i.pretty(e)+")")}},isSignature:function(e,t){var n=this.reader.index;this.reader.setIndex(e);var r=this.reader.readString(4)===t;return this.reader.setIndex(n),r},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=a.uint8array?"uint8array":"array",n=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(n)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,n,r=this.zip64EndOfCentralSize-44;0<r;)e=this.reader.readInt(2),t=this.reader.readInt(4),n=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:n}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new o({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Corrupted zip: can't find zip signature or end of central directory");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var n=this.centralDirOffset+this.centralDirSize;this.zip64&&(n+=20,n+=12+this.zip64EndOfCentralSize);var r=t-n;if(0<r)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=r);else if(r<0)throw new Error("Corrupted zip: missing "+Math.abs(r)+" bytes.")},prepareReader:function(e){this.reader=r(e)},tryRecoverCorruptedZip:function(){this.reader.setIndex(0),this.files=[],this.zipCommentLength=0,this.zipComment=[];for(var e=0,t=this.reader.length,n=0;n<t-4;n++)if(80===this.reader.byteAt(n)&&75===this.reader.byteAt(n+1)&&3===this.reader.byteAt(n+2)&&4===this.reader.byteAt(n+3)){e++;var r=this.tryRecoverFileEntry(n);r&&this.files.push(r)}if(0===this.files.length){if(0===e)throw new Error("Corrupted zip: no central directory or any file headers");throw new Error("Corrupted zip: no central directory, and "+e+" possible local headers could not be recovered")}},tryRecoverFileEntry:function(e){this.reader.setIndex(e);var t=new o({zip64:this.zip64},this.loadOptions);try{return t.readLocalPartFromCorruptedZip(this.reader),t.handleUTF8(),t.processAttributes(),t}catch(e){return this.loadOptions.onUnrecoverableFileEntry&&this.loadOptions.onUnrecoverableFileEntry(e),null}},load:function(e){this.prepareReader(e);try{this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}catch(e){if(!this.loadOptions.recoverCorrupted)throw e;this.loadOptions.onCorruptCentralDirectory&&this.loadOptions.onCorruptCentralDirectory(e),this.tryRecoverCorruptedZip()}}},t.exports=c},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,t,n){"use strict";function r(e){for(var t in l)if(Object.prototype.hasOwnProperty.call(l,t)&&l[t].magic===e)return l[t];return null}var i=e("./reader/readerFor"),s=e("./utils"),o=e("./compressedObject"),a=e("./crc32"),c=e("./utf8"),l=e("./compressions"),u=e("./support"),h=e("./signature");function d(e,t){this.options=e,this.loadOptions=t}d.prototype={isEncrypted:function(){return!(1&~this.bitFlag)},useUTF8:function(){return!(2048&~this.bitFlag)},readLocalPart:function(e){var t,n;if(e.skip(22),this.fileNameLength=e.readInt(2),n=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(n),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(t=r(this.compressionMethod)))throw new Error("Corrupted zip : compression "+s.pretty(this.compressionMethod)+" unknown (inner file : "+s.transformTo("string",this.fileName)+")");this.decompressed=new o(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},readLocalPartFromCorruptedZip:function(e){e.readAndCheckSignature(h.LOCAL_FILE_HEADER),this.versionMadeBy=e.readInt(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4),this.fileNameLength=e.readInt(2),this.extraFieldsLength=e.readInt(2),this.fileName=e.readData(this.fileNameLength),this.readExtraFields(e),this.parseZIP64ExtraField(e);var t=r(this.compressionMethod);if(null===t)throw new Error("Corrupted zip : compression "+s.pretty(this.compressionMethod)+" unknown (inner file : "+s.transformTo("string",this.fileName)+")");this.decompressed=new o(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,n,r,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),n=e.readInt(2),r=e.readData(n),this.extraFields[t]={id:t,length:n,value:r};e.setIndex(i)},handleUTF8:function(){var e=u.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=c.utf8decode(this.fileName),this.fileCommentStr=c.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var n=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(n)}var r=this.findExtraFieldUnicodeComment();if(null!==r)this.fileCommentStr=r;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=i(e.value);return 1!==t.readInt(1)||a(this.fileName)!==t.readInt(4)?null:c.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=i(e.value);return 1!==t.readInt(1)||a(this.fileComment)!==t.readInt(4)?null:c.utf8decode(t.readData(e.length-5))}return null}},t.exports=d},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32}],35:[function(e,t,n){"use strict";function r(e,t,n){this.name=e,this.dir=n.dir,this.date=n.date,this.comment=n.comment,this.unixPermissions=n.unixPermissions,this.dosPermissions=n.dosPermissions,this._data=t,this._dataBinary=n.binary,this.options={compression:n.compression,compressionOptions:n.compressionOptions}}var i=e("./stream/StreamHelper"),s=e("./stream/DataWorker"),o=e("./utf8"),a=e("./compressedObject"),c=e("./stream/GenericWorker");r.prototype={internalStream:function(e){var t=null,n="string";try{if(!e)throw new Error("No output type specified.");var r="string"===(n=e.toLowerCase())||"text"===n;"binarystring"!==n&&"text"!==n||(n="string"),t=this._decompressWorker();var s=!this._dataBinary;s&&!r&&(t=t.pipe(new o.Utf8EncodeWorker)),!s&&r&&(t=t.pipe(new o.Utf8DecodeWorker))}catch(e){(t=new c("error")).error(e)}return new i(t,n,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof a&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var n=this._decompressWorker();return this._dataBinary||(n=n.pipe(new o.Utf8EncodeWorker)),a.createWorkerFrom(n,e,t)},_decompressWorker:function(){return this._data instanceof a?this._data.getContentWorker():this._data instanceof c?this._data:new s(this._data)}};for(var l=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],u=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},h=0;h<l.length;h++)r.prototype[l[h]]=u;t.exports=r},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(e,t,n){(function(e){"use strict";var n,r,i=e.MutationObserver||e.WebKitMutationObserver;if(i){var s=0,o=new i(u),a=e.document.createTextNode("");o.observe(a,{characterData:!0}),n=function(){a.data=s=++s%2}}else if(e.setImmediate||void 0===e.MessageChannel)n="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var c=new e.MessageChannel;c.port1.onmessage=u,n=function(){c.port2.postMessage(0)}}var l=[];function u(){var e,t;r=!0;for(var n=l.length;n;){for(t=l,l=[],e=-1;++e<n;)t[e]();n=l.length}r=!1}t.exports=function(e){1!==l.push(e)||r||n()}}).call(this,void 0!==r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],37:[function(e,t,n){"use strict";var r=e("immediate");function i(){}var s={},o=["REJECTED"],a=["FULFILLED"],c=["PENDING"];function l(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=c,this.queue=[],this.outcome=void 0,e!==i&&p(this,e)}function u(e,t,n){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof n&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}function h(e,t,n){r((function(){var r;try{r=t(n)}catch(r){return s.reject(e,r)}r===e?s.reject(e,new TypeError("Cannot resolve promise with itself")):s.resolve(e,r)}))}function d(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function p(e,t){var n=!1;function r(t){n||(n=!0,s.reject(e,t))}function i(t){n||(n=!0,s.resolve(e,t))}var o=f((function(){t(i,r)}));"error"===o.status&&r(o.value)}function f(e,t){var n={};try{n.value=e(t),n.status="success"}catch(e){n.status="error",n.value=e}return n}(t.exports=l).prototype.finally=function(e){if("function"!=typeof e)return this;var t=this.constructor;return this.then((function(n){return t.resolve(e()).then((function(){return n}))}),(function(n){return t.resolve(e()).then((function(){throw n}))}))},l.prototype.catch=function(e){return this.then(null,e)},l.prototype.then=function(e,t){if("function"!=typeof e&&this.state===a||"function"!=typeof t&&this.state===o)return this;var n=new this.constructor(i);return this.state!==c?h(n,this.state===a?e:t,this.outcome):this.queue.push(new u(n,e,t)),n},u.prototype.callFulfilled=function(e){s.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){h(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){s.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){h(this.promise,this.onRejected,e)},s.resolve=function(e,t){var n=f(d,t);if("error"===n.status)return s.reject(e,n.value);var r=n.value;if(r)p(e,r);else{e.state=a,e.outcome=t;for(var i=-1,o=e.queue.length;++i<o;)e.queue[i].callFulfilled(t)}return e},s.reject=function(e,t){e.state=o,e.outcome=t;for(var n=-1,r=e.queue.length;++n<r;)e.queue[n].callRejected(t);return e},l.resolve=function(e){return e instanceof this?e:s.resolve(new this(i),e)},l.reject=function(e){var t=new this(i);return s.reject(t,e)},l.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var o=new Array(n),a=0,c=-1,l=new this(i);++c<n;)u(e[c],c);return l;function u(e,i){t.resolve(e).then((function(e){o[i]=e,++a!==n||r||(r=!0,s.resolve(l,o))}),(function(e){r||(r=!0,s.reject(l,e))}))}},l.race=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var o,a=-1,c=new this(i);++a<n;)o=e[a],t.resolve(o).then((function(e){r||(r=!0,s.resolve(c,e))}),(function(e){r||(r=!0,s.reject(c,e))}));return c}},{immediate:36}],38:[function(e,t,n){"use strict";var r={};(0,e("./lib/utils/common").assign)(r,e("./lib/deflate"),e("./lib/inflate"),e("./lib/zlib/constants")),t.exports=r},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(e,t,n){"use strict";var r=e("./zlib/deflate"),i=e("./utils/common"),s=e("./utils/strings"),o=e("./zlib/messages"),a=e("./zlib/zstream"),c=Object.prototype.toString,l=0,u=-1,h=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=i.assign({level:u,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:h,to:""},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new a,this.strm.avail_out=0;var n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==l)throw new Error(o[n]);if(t.header&&r.deflateSetHeader(this.strm,t.header),t.dictionary){var f;if(f="string"==typeof t.dictionary?s.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(n=r.deflateSetDictionary(this.strm,f))!==l)throw new Error(o[n]);this._dict_set=!0}}function f(e,t){var n=new p(t);if(n.push(e,!0),n.err)throw n.msg||o[n.err];return n.result}p.prototype.push=function(e,t){var n,o,a=this.strm,u=this.options.chunkSize;if(this.ended)return!1;o=t===~~t?t:!0===t?4:0,"string"==typeof e?a.input=s.string2buf(e):"[object ArrayBuffer]"===c.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;do{if(0===a.avail_out&&(a.output=new i.Buf8(u),a.next_out=0,a.avail_out=u),1!==(n=r.deflate(a,o))&&n!==l)return this.onEnd(n),!(this.ended=!0);0!==a.avail_out&&(0!==a.avail_in||4!==o&&2!==o)||("string"===this.options.to?this.onData(s.buf2binstring(i.shrinkBuf(a.output,a.next_out))):this.onData(i.shrinkBuf(a.output,a.next_out)))}while((0<a.avail_in||0===a.avail_out)&&1!==n);return 4===o?(n=r.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===l):2!==o||(this.onEnd(l),!(a.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===l&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Deflate=p,n.deflate=f,n.deflateRaw=function(e,t){return(t=t||{}).raw=!0,f(e,t)},n.gzip=function(e,t){return(t=t||{}).gzip=!0,f(e,t)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,t,n){"use strict";var r=e("./zlib/inflate"),i=e("./utils/common"),s=e("./utils/strings"),o=e("./zlib/constants"),a=e("./zlib/messages"),c=e("./zlib/zstream"),l=e("./zlib/gzheader"),u=Object.prototype.toString;function h(e){if(!(this instanceof h))return new h(e);this.options=i.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&!(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var n=r.inflateInit2(this.strm,t.windowBits);if(n!==o.Z_OK)throw new Error(a[n]);if(this.header=new l,r.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=s.string2buf(t.dictionary):"[object ArrayBuffer]"===u.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=r.inflateSetDictionary(this.strm,t.dictionary))!==o.Z_OK))throw new Error(a[n])}function d(e,t){var n=new h(t);if(n.push(e,!0),n.err)throw n.msg||a[n.err];return n.result}h.prototype.push=function(e,t){var n,a,c,l,h,d=this.strm,p=this.options.chunkSize,f=this.options.dictionary,m=!1;if(this.ended)return!1;a=t===~~t?t:!0===t?o.Z_FINISH:o.Z_NO_FLUSH,"string"==typeof e?d.input=s.binstring2buf(e):"[object ArrayBuffer]"===u.call(e)?d.input=new Uint8Array(e):d.input=e,d.next_in=0,d.avail_in=d.input.length;do{if(0===d.avail_out&&(d.output=new i.Buf8(p),d.next_out=0,d.avail_out=p),(n=r.inflate(d,o.Z_NO_FLUSH))===o.Z_NEED_DICT&&f&&(n=r.inflateSetDictionary(this.strm,f)),n===o.Z_BUF_ERROR&&!0===m&&(n=o.Z_OK,m=!1),n!==o.Z_STREAM_END&&n!==o.Z_OK)return this.onEnd(n),!(this.ended=!0);d.next_out&&(0!==d.avail_out&&n!==o.Z_STREAM_END&&(0!==d.avail_in||a!==o.Z_FINISH&&a!==o.Z_SYNC_FLUSH)||("string"===this.options.to?(c=s.utf8border(d.output,d.next_out),l=d.next_out-c,h=s.buf2string(d.output,c),d.next_out=l,d.avail_out=p-l,l&&i.arraySet(d.output,d.output,c,l,0),this.onData(h)):this.onData(i.shrinkBuf(d.output,d.next_out)))),0===d.avail_in&&0===d.avail_out&&(m=!0)}while((0<d.avail_in||0===d.avail_out)&&n!==o.Z_STREAM_END);return n===o.Z_STREAM_END&&(a=o.Z_FINISH),a===o.Z_FINISH?(n=r.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===o.Z_OK):a!==o.Z_SYNC_FLUSH||(this.onEnd(o.Z_OK),!(d.avail_out=0))},h.prototype.onData=function(e){this.chunks.push(e)},h.prototype.onEnd=function(e){e===o.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Inflate=h,n.inflate=d,n.inflateRaw=function(e,t){return(t=t||{}).raw=!0,d(e,t)},n.ungzip=d},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(e){for(var t,n,r=Array.prototype.slice.call(arguments,1);r.length;){var i=r.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(var s in i)t=i,n=s,Object.prototype.hasOwnProperty.call(t,n)&&(e[s]=i[s])}}return e},n.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,n,r,i){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),i);else for(var s=0;s<r;s++)e[i+s]=t[n+s]},flattenChunks:function(e){var t,n,r,i,s,o;for(t=r=0,n=e.length;t<n;t++)r+=e[t].length;for(o=new Uint8Array(r),t=i=0,n=e.length;t<n;t++)s=e[t],o.set(s,i),i+=s.length;return o}},s={arraySet:function(e,t,n,r,i){for(var s=0;s<r;s++)e[i+s]=t[n+s]},flattenChunks:function(e){return[].concat.apply([],e)}};n.setTyped=function(e){e?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,i)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,s))},n.setTyped(r)},{}],42:[function(e,t,n){"use strict";var r=e("./common"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var o=new r.Buf8(256),a=0;a<256;a++)o[a]=252<=a?6:248<=a?5:240<=a?4:224<=a?3:192<=a?2:1;function c(e,t){if(t<65534&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,r.shrinkBuf(e,t));for(var n="",o=0;o<t;o++)n+=String.fromCharCode(e[o]);return n}o[254]=o[254]=1,n.string2buf=function(e){var t,n,i,s,o,a=e.length,c=0;for(s=0;s<a;s++)55296==(64512&(n=e.charCodeAt(s)))&&s+1<a&&56320==(64512&(i=e.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(i-56320),s++),c+=n<128?1:n<2048?2:n<65536?3:4;for(t=new r.Buf8(c),s=o=0;o<c;s++)55296==(64512&(n=e.charCodeAt(s)))&&s+1<a&&56320==(64512&(i=e.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(i-56320),s++),n<128?t[o++]=n:(n<2048?t[o++]=192|n>>>6:(n<65536?t[o++]=224|n>>>12:(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63),t[o++]=128|n>>>6&63),t[o++]=128|63&n);return t},n.buf2binstring=function(e){return c(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,i=t.length;n<i;n++)t[n]=e.charCodeAt(n);return t},n.buf2string=function(e,t){var n,r,i,s,a=t||e.length,l=new Array(2*a);for(n=r=0;n<a;)if((i=e[n++])<128)l[r++]=i;else if(4<(s=o[i]))l[r++]=65533,n+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&n<a;)i=i<<6|63&e[n++],s--;1<s?l[r++]=65533:i<65536?l[r++]=i:(i-=65536,l[r++]=55296|i>>10&1023,l[r++]=56320|1023&i)}return c(l,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+o[e[n]]>t?n:t}},{"./common":41}],43:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){for(var i=65535&e,s=e>>>16&65535,o=0;0!==n;){for(n-=o=2e3<n?2e3:n;s=s+(i=i+t[r++]|0)|0,--o;);i%=65521,s%=65521}return i|s<<16}},{}],44:[function(e,t,n){"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,n){"use strict";var r=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,i){var s=r,o=i+n;e^=-1;for(var a=i;a<o;a++)e=e>>>8^s[255&(e^t[a])];return~e}},{}],46:[function(e,t,n){"use strict";var r,i=e("../utils/common"),s=e("./trees"),o=e("./adler32"),a=e("./crc32"),c=e("./messages"),l=0,u=4,h=0,d=-2,p=-1,f=4,m=2,g=8,b=9,y=286,E=30,T=19,v=2*y+1,A=15,w=3,S=258,k=S+w+1,O=42,I=113,N=1,R=2,x=3,M=4;function C(e,t){return e.msg=c[t],t}function P(e){return(e<<1)-(4<e?9:0)}function L(e){for(var t=e.length;0<=--t;)e[t]=0}function D(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(i.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function B(e,t){s._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,D(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function F(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function j(e,t){var n,r,i=e.max_chain_length,s=e.strstart,o=e.prev_length,a=e.nice_match,c=e.strstart>e.w_size-k?e.strstart-(e.w_size-k):0,l=e.window,u=e.w_mask,h=e.prev,d=e.strstart+S,p=l[s+o-1],f=l[s+o];e.prev_length>=e.good_match&&(i>>=2),a>e.lookahead&&(a=e.lookahead);do{if(l[(n=t)+o]===f&&l[n+o-1]===p&&l[n]===l[s]&&l[++n]===l[s+1]){s+=2,n++;do{}while(l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&s<d);if(r=S-(d-s),s=d-S,o<r){if(e.match_start=t,a<=(o=r))break;p=l[s+o-1],f=l[s+o]}}}while((t=h[t&u])>c&&0!=--i);return o<=e.lookahead?o:e.lookahead}function z(e){var t,n,r,s,c,l,u,h,d,p,f=e.w_size;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-k)){for(i.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=n=e.hash_size;r=e.head[--t],e.head[t]=f<=r?r-f:0,--n;);for(t=n=f;r=e.prev[--t],e.prev[t]=f<=r?r-f:0,--n;);s+=f}if(0===e.strm.avail_in)break;if(l=e.strm,u=e.window,h=e.strstart+e.lookahead,p=void 0,(d=s)<(p=l.avail_in)&&(p=d),n=0===p?0:(l.avail_in-=p,i.arraySet(u,l.input,l.next_in,p,h),1===l.state.wrap?l.adler=o(l.adler,u,p,h):2===l.state.wrap&&(l.adler=a(l.adler,u,p,h)),l.next_in+=p,l.total_in+=p,p),e.lookahead+=n,e.lookahead+e.insert>=w)for(c=e.strstart-e.insert,e.ins_h=e.window[c],e.ins_h=(e.ins_h<<e.hash_shift^e.window[c+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[c+w-1])&e.hash_mask,e.prev[c&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=c,c++,e.insert--,!(e.lookahead+e.insert<w)););}while(e.lookahead<k&&0!==e.strm.avail_in)}function G(e,t){for(var n,r;;){if(e.lookahead<k){if(z(e),e.lookahead<k&&t===l)return N;if(0===e.lookahead)break}if(n=0,e.lookahead>=w&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+w-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-k&&(e.match_length=j(e,n)),e.match_length>=w)if(r=s._tr_tally(e,e.strstart-e.match_start,e.match_length-w),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=w){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+w-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(B(e,!1),0===e.strm.avail_out))return N}return e.insert=e.strstart<w-1?e.strstart:w-1,t===u?(B(e,!0),0===e.strm.avail_out?x:M):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?N:R}function V(e,t){for(var n,r,i;;){if(e.lookahead<k){if(z(e),e.lookahead<k&&t===l)return N;if(0===e.lookahead)break}if(n=0,e.lookahead>=w&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+w-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=w-1,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-k&&(e.match_length=j(e,n),e.match_length<=5&&(1===e.strategy||e.match_length===w&&4096<e.strstart-e.match_start)&&(e.match_length=w-1)),e.prev_length>=w&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-w,r=s._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-w),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+w-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=w-1,e.strstart++,r&&(B(e,!1),0===e.strm.avail_out))return N}else if(e.match_available){if((r=s._tr_tally(e,0,e.window[e.strstart-1]))&&B(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return N}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=s._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<w-1?e.strstart:w-1,t===u?(B(e,!0),0===e.strm.avail_out?x:M):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?N:R}function Y(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}function _(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=g,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new i.Buf16(2*v),this.dyn_dtree=new i.Buf16(2*(2*E+1)),this.bl_tree=new i.Buf16(2*(2*T+1)),L(this.dyn_ltree),L(this.dyn_dtree),L(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new i.Buf16(A+1),this.heap=new i.Buf16(2*y+1),L(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new i.Buf16(2*y+1),L(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function H(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=m,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?O:I,e.adler=2===t.wrap?0:1,t.last_flush=l,s._tr_init(t),h):C(e,d)}function W(e){var t=H(e);return t===h&&function(e){e.window_size=2*e.w_size,L(e.head),e.max_lazy_match=r[e.level].max_lazy,e.good_match=r[e.level].good_length,e.nice_match=r[e.level].nice_length,e.max_chain_length=r[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=w-1,e.match_available=0,e.ins_h=0}(e.state),t}function K(e,t,n,r,s,o){if(!e)return d;var a=1;if(t===p&&(t=6),r<0?(a=0,r=-r):15<r&&(a=2,r-=16),s<1||b<s||n!==g||r<8||15<r||t<0||9<t||o<0||f<o)return C(e,d);8===r&&(r=9);var c=new _;return(e.state=c).strm=e,c.wrap=a,c.gzhead=null,c.w_bits=r,c.w_size=1<<c.w_bits,c.w_mask=c.w_size-1,c.hash_bits=s+7,c.hash_size=1<<c.hash_bits,c.hash_mask=c.hash_size-1,c.hash_shift=~~((c.hash_bits+w-1)/w),c.window=new i.Buf8(2*c.w_size),c.head=new i.Buf16(c.hash_size),c.prev=new i.Buf16(c.w_size),c.lit_bufsize=1<<s+6,c.pending_buf_size=4*c.lit_bufsize,c.pending_buf=new i.Buf8(c.pending_buf_size),c.d_buf=1*c.lit_bufsize,c.l_buf=3*c.lit_bufsize,c.level=t,c.strategy=o,c.method=n,W(e)}r=[new Y(0,0,0,0,(function(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(z(e),0===e.lookahead&&t===l)return N;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,B(e,!1),0===e.strm.avail_out))return N;if(e.strstart-e.block_start>=e.w_size-k&&(B(e,!1),0===e.strm.avail_out))return N}return e.insert=0,t===u?(B(e,!0),0===e.strm.avail_out?x:M):(e.strstart>e.block_start&&(B(e,!1),e.strm.avail_out),N)})),new Y(4,4,8,4,G),new Y(4,5,16,8,G),new Y(4,6,32,32,G),new Y(4,4,16,16,V),new Y(8,16,32,32,V),new Y(8,16,128,128,V),new Y(8,32,128,256,V),new Y(32,128,258,1024,V),new Y(32,258,258,4096,V)],n.deflateInit=function(e,t){return K(e,t,g,15,8,0)},n.deflateInit2=K,n.deflateReset=W,n.deflateResetKeep=H,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?d:(e.state.gzhead=t,h):d},n.deflate=function(e,t){var n,i,o,c;if(!e||!e.state||5<t||t<0)return e?C(e,d):d;if(i=e.state,!e.output||!e.input&&0!==e.avail_in||666===i.status&&t!==u)return C(e,0===e.avail_out?-5:d);if(i.strm=e,n=i.last_flush,i.last_flush=t,i.status===O)if(2===i.wrap)e.adler=0,U(i,31),U(i,139),U(i,8),i.gzhead?(U(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),U(i,255&i.gzhead.time),U(i,i.gzhead.time>>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=a(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=I);else{var p=g+(i.w_bits-8<<4)<<8;p|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(p|=32),p+=31-p%31,i.status=I,F(i,p),0!==i.strstart&&(F(i,e.adler>>>16),F(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(o=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),D(e),o=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){o=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),D(e),o=i.pending,i.pending===i.pending_buf_size)){c=1;break}c=i.gzindex<i.gzhead.name.length?255&i.gzhead.name.charCodeAt(i.gzindex++):0,U(i,c)}while(0!==c);i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),0===c&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){o=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),D(e),o=i.pending,i.pending===i.pending_buf_size)){c=1;break}c=i.gzindex<i.gzhead.comment.length?255&i.gzhead.comment.charCodeAt(i.gzindex++):0,U(i,c)}while(0!==c);i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),0===c&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&D(e),i.pending+2<=i.pending_buf_size&&(U(i,255&e.adler),U(i,e.adler>>8&255),e.adler=0,i.status=I)):i.status=I),0!==i.pending){if(D(e),0===e.avail_out)return i.last_flush=-1,h}else if(0===e.avail_in&&P(t)<=P(n)&&t!==u)return C(e,-5);if(666===i.status&&0!==e.avail_in)return C(e,-5);if(0!==e.avail_in||0!==i.lookahead||t!==l&&666!==i.status){var f=2===i.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(z(e),0===e.lookahead)){if(t===l)return N;break}if(e.match_length=0,n=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(B(e,!1),0===e.strm.avail_out))return N}return e.insert=0,t===u?(B(e,!0),0===e.strm.avail_out?x:M):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?N:R}(i,t):3===i.strategy?function(e,t){for(var n,r,i,o,a=e.window;;){if(e.lookahead<=S){if(z(e),e.lookahead<=S&&t===l)return N;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=w&&0<e.strstart&&(r=a[i=e.strstart-1])===a[++i]&&r===a[++i]&&r===a[++i]){o=e.strstart+S;do{}while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<o);e.match_length=S-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=w?(n=s._tr_tally(e,1,e.match_length-w),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(B(e,!1),0===e.strm.avail_out))return N}return e.insert=0,t===u?(B(e,!0),0===e.strm.avail_out?x:M):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?N:R}(i,t):r[i.level].func(i,t);if(f!==x&&f!==M||(i.status=666),f===N||f===x)return 0===e.avail_out&&(i.last_flush=-1),h;if(f===R&&(1===t?s._tr_align(i):5!==t&&(s._tr_stored_block(i,0,0,!1),3===t&&(L(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),D(e),0===e.avail_out))return i.last_flush=-1,h}return t!==u?h:i.wrap<=0?1:(2===i.wrap?(U(i,255&e.adler),U(i,e.adler>>8&255),U(i,e.adler>>16&255),U(i,e.adler>>24&255),U(i,255&e.total_in),U(i,e.total_in>>8&255),U(i,e.total_in>>16&255),U(i,e.total_in>>24&255)):(F(i,e.adler>>>16),F(i,65535&e.adler)),D(e),0<i.wrap&&(i.wrap=-i.wrap),0!==i.pending?h:1)},n.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==O&&69!==t&&73!==t&&91!==t&&103!==t&&t!==I&&666!==t?C(e,d):(e.state=null,t===I?C(e,-3):h):d},n.deflateSetDictionary=function(e,t){var n,r,s,a,c,l,u,p,f=t.length;if(!e||!e.state)return d;if(2===(a=(n=e.state).wrap)||1===a&&n.status!==O||n.lookahead)return d;for(1===a&&(e.adler=o(e.adler,t,f,0)),n.wrap=0,f>=n.w_size&&(0===a&&(L(n.head),n.strstart=0,n.block_start=0,n.insert=0),p=new i.Buf8(n.w_size),i.arraySet(p,t,f-n.w_size,n.w_size,0),t=p,f=n.w_size),c=e.avail_in,l=e.next_in,u=e.input,e.avail_in=f,e.next_in=0,e.input=t,z(n);n.lookahead>=w;){for(r=n.strstart,s=n.lookahead-(w-1);n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+w-1])&n.hash_mask,n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++,--s;);n.strstart=r,n.lookahead=w-1,z(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=w-1,n.match_available=0,e.next_in=l,e.input=u,e.avail_in=c,n.wrap=a,h},n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(e,t,n){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,n){"use strict";t.exports=function(e,t){var n,r,i,s,o,a,c,l,u,h,d,p,f,m,g,b,y,E,T,v,A,w,S,k,O;n=e.state,r=e.next_in,k=e.input,i=r+(e.avail_in-5),s=e.next_out,O=e.output,o=s-(t-e.avail_out),a=s+(e.avail_out-257),c=n.dmax,l=n.wsize,u=n.whave,h=n.wnext,d=n.window,p=n.hold,f=n.bits,m=n.lencode,g=n.distcode,b=(1<<n.lenbits)-1,y=(1<<n.distbits)-1;e:do{f<15&&(p+=k[r++]<<f,f+=8,p+=k[r++]<<f,f+=8),E=m[p&b];t:for(;;){if(p>>>=T=E>>>24,f-=T,0==(T=E>>>16&255))O[s++]=65535&E;else{if(!(16&T)){if(!(64&T)){E=m[(65535&E)+(p&(1<<T)-1)];continue t}if(32&T){n.mode=12;break e}e.msg="invalid literal/length code",n.mode=30;break e}v=65535&E,(T&=15)&&(f<T&&(p+=k[r++]<<f,f+=8),v+=p&(1<<T)-1,p>>>=T,f-=T),f<15&&(p+=k[r++]<<f,f+=8,p+=k[r++]<<f,f+=8),E=g[p&y];n:for(;;){if(p>>>=T=E>>>24,f-=T,!(16&(T=E>>>16&255))){if(!(64&T)){E=g[(65535&E)+(p&(1<<T)-1)];continue n}e.msg="invalid distance code",n.mode=30;break e}if(A=65535&E,f<(T&=15)&&(p+=k[r++]<<f,(f+=8)<T&&(p+=k[r++]<<f,f+=8)),c<(A+=p&(1<<T)-1)){e.msg="invalid distance too far back",n.mode=30;break e}if(p>>>=T,f-=T,(T=s-o)<A){if(u<(T=A-T)&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(S=d,(w=0)===h){if(w+=l-T,T<v){for(v-=T;O[s++]=d[w++],--T;);w=s-A,S=O}}else if(h<T){if(w+=l+h-T,(T-=h)<v){for(v-=T;O[s++]=d[w++],--T;);if(w=0,h<v){for(v-=T=h;O[s++]=d[w++],--T;);w=s-A,S=O}}}else if(w+=h-T,T<v){for(v-=T;O[s++]=d[w++],--T;);w=s-A,S=O}for(;2<v;)O[s++]=S[w++],O[s++]=S[w++],O[s++]=S[w++],v-=3;v&&(O[s++]=S[w++],1<v&&(O[s++]=S[w++]))}else{for(w=s-A;O[s++]=O[w++],O[s++]=O[w++],O[s++]=O[w++],2<(v-=3););v&&(O[s++]=O[w++],1<v&&(O[s++]=O[w++]))}break}}break}}while(r<i&&s<a);r-=v=f>>3,p&=(1<<(f-=v<<3))-1,e.next_in=r,e.next_out=s,e.avail_in=r<i?i-r+5:5-(r-i),e.avail_out=s<a?a-s+257:257-(s-a),n.hold=p,n.bits=f}},{}],49:[function(e,t,n){"use strict";var r=e("../utils/common"),i=e("./adler32"),s=e("./crc32"),o=e("./inffast"),a=e("./inftrees"),c=1,l=2,u=0,h=-2,d=1,p=852,f=592;function m(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function g(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function b(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=d,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(p),t.distcode=t.distdyn=new r.Buf32(f),t.sane=1,t.back=-1,u):h}function y(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,b(e)):h}function E(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?h:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,y(e))):h}function T(e,t){var n,r;return e?(r=new g,(e.state=r).window=null,(n=E(e,t))!==u&&(e.state=null),n):h}var v,A,w=!0;function S(e){if(w){var t;for(v=new r.Buf32(512),A=new r.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(a(c,e.lens,0,288,v,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;a(l,e.lens,0,32,A,0,e.work,{bits:5}),w=!1}e.lencode=v,e.lenbits=9,e.distcode=A,e.distbits=5}function k(e,t,n,i){var s,o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new r.Buf8(o.wsize)),i>=o.wsize?(r.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i<(s=o.wsize-o.wnext)&&(s=i),r.arraySet(o.window,t,n-i,s,o.wnext),(i-=s)?(r.arraySet(o.window,t,n-i,i,0),o.wnext=i,o.whave=o.wsize):(o.wnext+=s,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=s))),0}n.inflateReset=y,n.inflateReset2=E,n.inflateResetKeep=b,n.inflateInit=function(e){return T(e,15)},n.inflateInit2=T,n.inflate=function(e,t){var n,p,f,g,b,y,E,T,v,A,w,O,I,N,R,x,M,C,P,L,D,B,U,F,j=0,z=new r.Buf8(4),G=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return h;12===(n=e.state).mode&&(n.mode=13),b=e.next_out,f=e.output,E=e.avail_out,g=e.next_in,p=e.input,y=e.avail_in,T=n.hold,v=n.bits,A=y,w=E,B=u;e:for(;;)switch(n.mode){case d:if(0===n.wrap){n.mode=13;break}for(;v<16;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}if(2&n.wrap&&35615===T){z[n.check=0]=255&T,z[1]=T>>>8&255,n.check=s(n.check,z,2,0),v=T=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&T)<<8)+(T>>8))%31){e.msg="incorrect header check",n.mode=30;break}if(8!=(15&T)){e.msg="unknown compression method",n.mode=30;break}if(v-=4,D=8+(15&(T>>>=4)),0===n.wbits)n.wbits=D;else if(D>n.wbits){e.msg="invalid window size",n.mode=30;break}n.dmax=1<<D,e.adler=n.check=1,n.mode=512&T?10:12,v=T=0;break;case 2:for(;v<16;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}if(n.flags=T,8!=(255&n.flags)){e.msg="unknown compression method",n.mode=30;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=30;break}n.head&&(n.head.text=T>>8&1),512&n.flags&&(z[0]=255&T,z[1]=T>>>8&255,n.check=s(n.check,z,2,0)),v=T=0,n.mode=3;case 3:for(;v<32;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}n.head&&(n.head.time=T),512&n.flags&&(z[0]=255&T,z[1]=T>>>8&255,z[2]=T>>>16&255,z[3]=T>>>24&255,n.check=s(n.check,z,4,0)),v=T=0,n.mode=4;case 4:for(;v<16;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}n.head&&(n.head.xflags=255&T,n.head.os=T>>8),512&n.flags&&(z[0]=255&T,z[1]=T>>>8&255,n.check=s(n.check,z,2,0)),v=T=0,n.mode=5;case 5:if(1024&n.flags){for(;v<16;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}n.length=T,n.head&&(n.head.extra_len=T),512&n.flags&&(z[0]=255&T,z[1]=T>>>8&255,n.check=s(n.check,z,2,0)),v=T=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(y<(O=n.length)&&(O=y),O&&(n.head&&(D=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,p,g,O,D)),512&n.flags&&(n.check=s(n.check,p,O,g)),y-=O,g+=O,n.length-=O),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===y)break e;for(O=0;D=p[g+O++],n.head&&D&&n.length<65536&&(n.head.name+=String.fromCharCode(D)),D&&O<y;);if(512&n.flags&&(n.check=s(n.check,p,O,g)),y-=O,g+=O,D)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===y)break e;for(O=0;D=p[g+O++],n.head&&D&&n.length<65536&&(n.head.comment+=String.fromCharCode(D)),D&&O<y;);if(512&n.flags&&(n.check=s(n.check,p,O,g)),y-=O,g+=O,D)break e}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;v<16;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}if(T!==(65535&n.check)){e.msg="header crc mismatch",n.mode=30;break}v=T=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=12;break;case 10:for(;v<32;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}e.adler=n.check=m(T),v=T=0,n.mode=11;case 11:if(0===n.havedict)return e.next_out=b,e.avail_out=E,e.next_in=g,e.avail_in=y,n.hold=T,n.bits=v,2;e.adler=n.check=1,n.mode=12;case 12:if(5===t||6===t)break e;case 13:if(n.last){T>>>=7&v,v-=7&v,n.mode=27;break}for(;v<3;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}switch(n.last=1&T,v-=1,3&(T>>>=1)){case 0:n.mode=14;break;case 1:if(S(n),n.mode=20,6!==t)break;T>>>=2,v-=2;break e;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=30}T>>>=2,v-=2;break;case 14:for(T>>>=7&v,v-=7&v;v<32;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}if((65535&T)!=(T>>>16^65535)){e.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&T,v=T=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(O=n.length){if(y<O&&(O=y),E<O&&(O=E),0===O)break e;r.arraySet(f,p,g,O,b),y-=O,g+=O,E-=O,b+=O,n.length-=O;break}n.mode=12;break;case 17:for(;v<14;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}if(n.nlen=257+(31&T),T>>>=5,v-=5,n.ndist=1+(31&T),T>>>=5,v-=5,n.ncode=4+(15&T),T>>>=4,v-=4,286<n.nlen||30<n.ndist){e.msg="too many length or distance symbols",n.mode=30;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;v<3;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}n.lens[G[n.have++]]=7&T,T>>>=3,v-=3}for(;n.have<19;)n.lens[G[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,U={bits:n.lenbits},B=a(0,n.lens,0,19,n.lencode,0,n.work,U),n.lenbits=U.bits,B){e.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;x=(j=n.lencode[T&(1<<n.lenbits)-1])>>>16&255,M=65535&j,!((R=j>>>24)<=v);){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}if(M<16)T>>>=R,v-=R,n.lens[n.have++]=M;else{if(16===M){for(F=R+2;v<F;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}if(T>>>=R,v-=R,0===n.have){e.msg="invalid bit length repeat",n.mode=30;break}D=n.lens[n.have-1],O=3+(3&T),T>>>=2,v-=2}else if(17===M){for(F=R+3;v<F;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}v-=R,D=0,O=3+(7&(T>>>=R)),T>>>=3,v-=3}else{for(F=R+7;v<F;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}v-=R,D=0,O=11+(127&(T>>>=R)),T>>>=7,v-=7}if(n.have+O>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=30;break}for(;O--;)n.lens[n.have++]=D}}if(30===n.mode)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,U={bits:n.lenbits},B=a(c,n.lens,0,n.nlen,n.lencode,0,n.work,U),n.lenbits=U.bits,B){e.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,U={bits:n.distbits},B=a(l,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,U),n.distbits=U.bits,B){e.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(6<=y&&258<=E){e.next_out=b,e.avail_out=E,e.next_in=g,e.avail_in=y,n.hold=T,n.bits=v,o(e,w),b=e.next_out,f=e.output,E=e.avail_out,g=e.next_in,p=e.input,y=e.avail_in,T=n.hold,v=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;x=(j=n.lencode[T&(1<<n.lenbits)-1])>>>16&255,M=65535&j,!((R=j>>>24)<=v);){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}if(x&&!(240&x)){for(C=R,P=x,L=M;x=(j=n.lencode[L+((T&(1<<C+P)-1)>>C)])>>>16&255,M=65535&j,!(C+(R=j>>>24)<=v);){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}T>>>=C,v-=C,n.back+=C}if(T>>>=R,v-=R,n.back+=R,n.length=M,0===x){n.mode=26;break}if(32&x){n.back=-1,n.mode=12;break}if(64&x){e.msg="invalid literal/length code",n.mode=30;break}n.extra=15&x,n.mode=22;case 22:if(n.extra){for(F=n.extra;v<F;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}n.length+=T&(1<<n.extra)-1,T>>>=n.extra,v-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;x=(j=n.distcode[T&(1<<n.distbits)-1])>>>16&255,M=65535&j,!((R=j>>>24)<=v);){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}if(!(240&x)){for(C=R,P=x,L=M;x=(j=n.distcode[L+((T&(1<<C+P)-1)>>C)])>>>16&255,M=65535&j,!(C+(R=j>>>24)<=v);){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}T>>>=C,v-=C,n.back+=C}if(T>>>=R,v-=R,n.back+=R,64&x){e.msg="invalid distance code",n.mode=30;break}n.offset=M,n.extra=15&x,n.mode=24;case 24:if(n.extra){for(F=n.extra;v<F;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}n.offset+=T&(1<<n.extra)-1,T>>>=n.extra,v-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===E)break e;if(O=w-E,n.offset>O){if((O=n.offset-O)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=30;break}I=O>n.wnext?(O-=n.wnext,n.wsize-O):n.wnext-O,O>n.length&&(O=n.length),N=n.window}else N=f,I=b-n.offset,O=n.length;for(E<O&&(O=E),E-=O,n.length-=O;f[b++]=N[I++],--O;);0===n.length&&(n.mode=21);break;case 26:if(0===E)break e;f[b++]=n.length,E--,n.mode=21;break;case 27:if(n.wrap){for(;v<32;){if(0===y)break e;y--,T|=p[g++]<<v,v+=8}if(w-=E,e.total_out+=w,n.total+=w,w&&(e.adler=n.check=n.flags?s(n.check,f,w,b-w):i(n.check,f,w,b-w)),w=E,(n.flags?T:m(T))!==n.check){e.msg="incorrect data check",n.mode=30;break}v=T=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;v<32;){if(0===y)break e;y--,T+=p[g++]<<v,v+=8}if(T!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=30;break}v=T=0}n.mode=29;case 29:B=1;break e;case 30:B=-3;break e;case 31:return-4;default:return h}return e.next_out=b,e.avail_out=E,e.next_in=g,e.avail_in=y,n.hold=T,n.bits=v,(n.wsize||w!==e.avail_out&&n.mode<30&&(n.mode<27||4!==t))&&k(e,e.output,e.next_out,w-e.avail_out)?(n.mode=31,-4):(A-=e.avail_in,w-=e.avail_out,e.total_in+=A,e.total_out+=w,n.total+=w,n.wrap&&w&&(e.adler=n.check=n.flags?s(n.check,f,w,e.next_out-w):i(n.check,f,w,e.next_out-w)),e.data_type=n.bits+(n.last?64:0)+(12===n.mode?128:0)+(20===n.mode||15===n.mode?256:0),(0==A&&0===w||4===t)&&B===u&&(B=-5),B)},n.inflateEnd=function(e){if(!e||!e.state)return h;var t=e.state;return t.window&&(t.window=null),e.state=null,u},n.inflateGetHeader=function(e,t){var n;return e&&e.state&&2&(n=e.state).wrap?((n.head=t).done=!1,u):h},n.inflateSetDictionary=function(e,t){var n,r=t.length;return e&&e.state?0!==(n=e.state).wrap&&11!==n.mode?h:11===n.mode&&i(1,t,r,0)!==n.check?-3:k(e,t,r,r)?(n.mode=31,-4):(n.havedict=1,u):h},n.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(e,t,n){"use strict";var r=e("../utils/common"),i=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],s=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],o=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],a=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,n,c,l,u,h,d){var p,f,m,g,b,y,E,T,v,A=d.bits,w=0,S=0,k=0,O=0,I=0,N=0,R=0,x=0,M=0,C=0,P=null,L=0,D=new r.Buf16(16),B=new r.Buf16(16),U=null,F=0;for(w=0;w<=15;w++)D[w]=0;for(S=0;S<c;S++)D[t[n+S]]++;for(I=A,O=15;1<=O&&0===D[O];O--);if(O<I&&(I=O),0===O)return l[u++]=20971520,l[u++]=20971520,d.bits=1,0;for(k=1;k<O&&0===D[k];k++);for(I<k&&(I=k),w=x=1;w<=15;w++)if(x<<=1,(x-=D[w])<0)return-1;if(0<x&&(0===e||1!==O))return-1;for(B[1]=0,w=1;w<15;w++)B[w+1]=B[w]+D[w];for(S=0;S<c;S++)0!==t[n+S]&&(h[B[t[n+S]]++]=S);if(y=0===e?(P=U=h,19):1===e?(P=i,L-=257,U=s,F-=257,256):(P=o,U=a,-1),w=k,b=u,R=S=C=0,m=-1,g=(M=1<<(N=I))-1,1===e&&852<M||2===e&&592<M)return 1;for(;;){for(E=w-R,v=h[S]<y?(T=0,h[S]):h[S]>y?(T=U[F+h[S]],P[L+h[S]]):(T=96,0),p=1<<w-R,k=f=1<<N;l[b+(C>>R)+(f-=p)]=E<<24|T<<16|v,0!==f;);for(p=1<<w-1;C&p;)p>>=1;if(0!==p?(C&=p-1,C+=p):C=0,S++,0==--D[w]){if(w===O)break;w=t[n+h[S]]}if(I<w&&(C&g)!==m){for(0===R&&(R=I),b+=k,x=1<<(N=w-R);N+R<O&&!((x-=D[N+R])<=0);)N++,x<<=1;if(M+=1<<N,1===e&&852<M||2===e&&592<M)return 1;l[m=C&g]=I<<24|N<<16|b-u}}return 0!==C&&(l[b+C]=w-R<<24|64<<16),d.bits=I,0}},{"../utils/common":41}],51:[function(e,t,n){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(e,t,n){"use strict";var r=e("../utils/common"),i=0,s=1;function o(e){for(var t=e.length;0<=--t;)e[t]=0}var a=0,c=29,l=256,u=l+1+c,h=30,d=19,p=2*u+1,f=15,m=16,g=7,b=256,y=16,E=17,T=18,v=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],A=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],w=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],k=new Array(2*(u+2));o(k);var O=new Array(2*h);o(O);var I=new Array(512);o(I);var N=new Array(256);o(N);var R=new Array(c);o(R);var x,M,C,P=new Array(h);function L(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}function D(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function B(e){return e<256?I[e]:I[256+(e>>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function F(e,t,n){e.bi_valid>m-n?(e.bi_buf|=t<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>m-e.bi_valid,e.bi_valid+=n-m):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function j(e,t,n){F(e,n[2*t],n[2*t+1])}function z(e,t){for(var n=0;n|=1&e,e>>>=1,n<<=1,0<--t;);return n>>>1}function G(e,t,n){var r,i,s=new Array(f+1),o=0;for(r=1;r<=f;r++)s[r]=o=o+n[r-1]<<1;for(i=0;i<=t;i++){var a=e[2*i+1];0!==a&&(e[2*i]=z(s[a]++,a))}}function V(e){var t;for(t=0;t<u;t++)e.dyn_ltree[2*t]=0;for(t=0;t<h;t++)e.dyn_dtree[2*t]=0;for(t=0;t<d;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*b]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Y(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function _(e,t,n,r){var i=2*t,s=2*n;return e[i]<e[s]||e[i]===e[s]&&r[t]<=r[n]}function H(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&_(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!_(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function W(e,t,n){var r,i,s,o,a=0;if(0!==e.last_lit)for(;r=e.pending_buf[e.d_buf+2*a]<<8|e.pending_buf[e.d_buf+2*a+1],i=e.pending_buf[e.l_buf+a],a++,0===r?j(e,i,t):(j(e,(s=N[i])+l+1,t),0!==(o=v[s])&&F(e,i-=R[s],o),j(e,s=B(--r),n),0!==(o=A[s])&&F(e,r-=P[s],o)),a<e.last_lit;);j(e,b,t)}function K(e,t){var n,r,i,s=t.dyn_tree,o=t.stat_desc.static_tree,a=t.stat_desc.has_stree,c=t.stat_desc.elems,l=-1;for(e.heap_len=0,e.heap_max=p,n=0;n<c;n++)0!==s[2*n]?(e.heap[++e.heap_len]=l=n,e.depth[n]=0):s[2*n+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=l<2?++l:0)]=1,e.depth[i]=0,e.opt_len--,a&&(e.static_len-=o[2*i+1]);for(t.max_code=l,n=e.heap_len>>1;1<=n;n--)H(e,s,n);for(i=c;n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],H(e,s,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,s[2*i]=s[2*n]+s[2*r],e.depth[i]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,s[2*n+1]=s[2*r+1]=i,e.heap[1]=i++,H(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,i,s,o,a,c=t.dyn_tree,l=t.max_code,u=t.stat_desc.static_tree,h=t.stat_desc.has_stree,d=t.stat_desc.extra_bits,m=t.stat_desc.extra_base,g=t.stat_desc.max_length,b=0;for(s=0;s<=f;s++)e.bl_count[s]=0;for(c[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<p;n++)g<(s=c[2*c[2*(r=e.heap[n])+1]+1]+1)&&(s=g,b++),c[2*r+1]=s,l<r||(e.bl_count[s]++,o=0,m<=r&&(o=d[r-m]),a=c[2*r],e.opt_len+=a*(s+o),h&&(e.static_len+=a*(u[2*r+1]+o)));if(0!==b){do{for(s=g-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[g]--,b-=2}while(0<b);for(s=g;0!==s;s--)for(r=e.bl_count[s];0!==r;)l<(i=e.heap[--n])||(c[2*i+1]!==s&&(e.opt_len+=(s-c[2*i+1])*c[2*i],c[2*i+1]=s),r--)}}(e,t),G(s,l,e.bl_count)}function X(e,t,n){var r,i,s=-1,o=t[1],a=0,c=7,l=4;for(0===o&&(c=138,l=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)i=o,o=t[2*(r+1)+1],++a<c&&i===o||(a<l?e.bl_tree[2*i]+=a:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*y]++):a<=10?e.bl_tree[2*E]++:e.bl_tree[2*T]++,s=i,l=(a=0)===o?(c=138,3):i===o?(c=6,3):(c=7,4))}function Z(e,t,n){var r,i,s=-1,o=t[1],a=0,c=7,l=4;for(0===o&&(c=138,l=3),r=0;r<=n;r++)if(i=o,o=t[2*(r+1)+1],!(++a<c&&i===o)){if(a<l)for(;j(e,i,e.bl_tree),0!=--a;);else 0!==i?(i!==s&&(j(e,i,e.bl_tree),a--),j(e,y,e.bl_tree),F(e,a-3,2)):a<=10?(j(e,E,e.bl_tree),F(e,a-3,3)):(j(e,T,e.bl_tree),F(e,a-11,7));s=i,l=(a=0)===o?(c=138,3):i===o?(c=6,3):(c=7,4)}}o(P);var q=!1;function Q(e,t,n,i){F(e,(a<<1)+(i?1:0),3),function(e,t,n,i){Y(e),i&&(U(e,n),U(e,~n)),r.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}(e,t,n,!0)}n._tr_init=function(e){q||(function(){var e,t,n,r,i,s=new Array(f+1);for(r=n=0;r<c-1;r++)for(R[r]=n,e=0;e<1<<v[r];e++)N[n++]=r;for(N[n-1]=r,r=i=0;r<16;r++)for(P[r]=i,e=0;e<1<<A[r];e++)I[i++]=r;for(i>>=7;r<h;r++)for(P[r]=i<<7,e=0;e<1<<A[r]-7;e++)I[256+i++]=r;for(t=0;t<=f;t++)s[t]=0;for(e=0;e<=143;)k[2*e+1]=8,e++,s[8]++;for(;e<=255;)k[2*e+1]=9,e++,s[9]++;for(;e<=279;)k[2*e+1]=7,e++,s[7]++;for(;e<=287;)k[2*e+1]=8,e++,s[8]++;for(G(k,u+1,s),e=0;e<h;e++)O[2*e+1]=5,O[2*e]=z(e,5);x=new L(k,v,l+1,u,f),M=new L(O,A,0,h,f),C=new L(new Array(0),w,0,d,g)}(),q=!0),e.l_desc=new D(e.dyn_ltree,x),e.d_desc=new D(e.dyn_dtree,M),e.bl_desc=new D(e.bl_tree,C),e.bi_buf=0,e.bi_valid=0,V(e)},n._tr_stored_block=Q,n._tr_flush_block=function(e,t,n,r){var o,a,c=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return i;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return s;for(t=32;t<l;t++)if(0!==e.dyn_ltree[2*t])return s;return i}(e)),K(e,e.l_desc),K(e,e.d_desc),c=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),K(e,e.bl_desc),t=d-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),o=e.opt_len+3+7>>>3,(a=e.static_len+3+7>>>3)<=o&&(o=a)):o=a=n+5,n+4<=o&&-1!==t?Q(e,t,n,r):4===e.strategy||a===o?(F(e,2+(r?1:0),3),W(e,k,O)):(F(e,4+(r?1:0),3),function(e,t,n,r){var i;for(F(e,t-257,5),F(e,n-1,5),F(e,r-4,4),i=0;i<r;i++)F(e,e.bl_tree[2*S[i]+1],3);Z(e,e.dyn_ltree,t-1),Z(e,e.dyn_dtree,n-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,c+1),W(e,e.dyn_ltree,e.dyn_dtree)),V(e),r&&Y(e)},n._tr_tally=function(e,t,n){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(N[n]+l+1)]++,e.dyn_dtree[2*B(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){F(e,2,3),j(e,b,k),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":41}],53:[function(e,t,n){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,n){(function(e){!function(e,t){"use strict";if(!e.setImmediate){var n,r,s,o,a=1,c={},l=!1,u=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,n="[object process]"==={}.toString.call(e.process)?function(e){i.nextTick((function(){p(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?(o="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",f,!1):e.attachEvent("onmessage",f),function(t){e.postMessage(o+t,"*")}):e.MessageChannel?((s=new MessageChannel).port1.onmessage=function(e){p(e.data)},function(e){s.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(r=u.documentElement,function(e){var t=u.createElement("script");t.onreadystatechange=function(){p(e),t.onreadystatechange=null,r.removeChild(t),t=null},r.appendChild(t)}):function(e){setTimeout(p,0,e)},h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var i={callback:e,args:t};return c[a]=i,n(a),a++},h.clearImmediate=d}function d(e){delete c[e]}function p(e){if(l)setTimeout(p,0,e);else{var n=c[e];if(n){l=!0;try{!function(e){var n=e.callback,r=e.args;switch(r.length){case 0:n();break;case 1:n(r[0]);break;case 2:n(r[0],r[1]);break;case 3:n(r[0],r[1],r[2]);break;default:n.apply(t,r)}}(n)}finally{d(e),l=!1}}}}function f(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(o)&&p(+t.data.slice(o.length))}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,void 0!==r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[10])(10)}).call(this,n(18).Buffer,n(101).setImmediate,n(8),n(38))},function(e,t){class n{static get RGB_BLACK(){return{r:0,g:0,b:0}}static get RGB_WHITE(){return{r:255,g:255,b:255}}static decimalToHex(e){e<0&&(e+=16777216);let t=Number(e).toString(16);return t="#".concat("000000".substr(0,6-t.length)).concat(t),t}static decimalToRgb(e){const t=e>>24&255;return{r:e>>16&255,g:e>>8&255,b:255&e,a:t>0?t:255}}static hexToRgb(e){e.startsWith("#")&&(e=e.substring(1));const t=parseInt(e,16);if(isNaN(t))return null;if(6===e.length)return{r:t>>16&255,g:t>>8&255,b:255&t};if(3===e.length){const e=t>>8&15,n=t>>4&15,r=15&t;return{r:e<<4|e,g:n<<4|n,b:r<<4|r}}return null}static rgbToHex(e){return n.decimalToHex(n.rgbToDecimal(e))}static rgbToDecimal(e){return(e.r<<16)+(e.g<<8)+e.b}static hexToDecimal(e){return n.rgbToDecimal(n.hexToRgb(e))}static hsvToRgb(e){let t=e.h%360;t<0&&(t+=360);const n=Math.max(0,Math.min(e.s,1)),r=Math.max(0,Math.min(e.v,1)),i=Math.floor(t/60),s=t/60-i,o=r*(1-n),a=r*(1-n*s),c=r*(1-n*(1-s));let l,u,h;switch(i){default:case 0:l=r,u=c,h=o;break;case 1:l=a,u=r,h=o;break;case 2:l=o,u=r,h=c;break;case 3:l=o,u=a,h=r;break;case 4:l=c,u=o,h=r;break;case 5:l=r,u=o,h=a}return{r:Math.floor(255*l),g:Math.floor(255*u),b:Math.floor(255*h)}}static rgbToHsv(e){const t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(Math.min(t,n),r),s=Math.max(Math.max(t,n),r);let o=0,a=0;if(i!==s){o=60*((t===i?3:n===i?5:1)-(t===i?n-r:n===i?r-t:t-n)/(s-i))%360,a=(s-i)/s}return{h:o,s:a,v:s}}static mixRgb(e,t,n){if(n<=0)return e;if(n>=1)return t;const r=1-n;return{r:r*e.r+n*t.r,g:r*e.g+n*t.g,b:r*e.b+n*t.b}}}e.exports=n},function(e,t){const n=e=>null!=e;class r{constructor(e){var t,n,r,i,s,o,a,c,l,u,h,d,p,f,m;this.id=null!==(t=e.id)&&void 0!==t?t:null,this.spriteName=null!==(n=e.spriteName)&&void 0!==n?n:null,this.targetId=null!==(r=e.targetId)&&void 0!==r?r:null,this.opcode=null!==(i=e.opcode)&&void 0!==i?i:null,this.value=null!==(s=e.value)&&void 0!==s?s:null,this.params=null!==(o=e.params)&&void 0!==o?o:null,this.mode=null!==(a=e.mode)&&void 0!==a?a:"default",this.sliderMin=null!==(c=e.sliderMin)&&void 0!==c?c:0,this.sliderMax=null!==(l=e.sliderMax)&&void 0!==l?l:100,this.isDiscrete=null===(u=e.isDiscrete)||void 0===u||u,this.x=null!==(h=e.x)&&void 0!==h?h:null,this.y=null!==(d=e.y)&&void 0!==d?d:null,this.width=null!==(p=e.width)&&void 0!==p?p:0,this.height=null!==(f=e.height)&&void 0!==f?f:0,this.visible=null===(m=e.visible)||void 0===m||m}get(e){switch(e){case"id":return this.id;case"spriteName":return this.spriteName;case"targetId":return this.targetId;case"opcode":return this.opcode;case"value":return this.value;case"params":return this.params;case"mode":return this.mode;case"sliderMin":return this.sliderMin;case"sliderMax":return this.sliderMax;case"isDiscrete":return this.isDiscrete;case"x":return this.x;case"y":return this.y;case"width":return this.width;case"height":return this.height;case"visible":return this.visible}return null}merge(e){let t=!1;return n(e.id)&&!Object.is(this.id,e.id)&&(this.id=e.id,t=!0),n(e.spriteName)&&!Object.is(this.spriteName,e.spriteName)&&(this.spriteName=e.spriteName,t=!0),n(e.targetId)&&!Object.is(this.targetId,e.targetId)&&(this.targetId=e.targetId,t=!0),n(e.opcode)&&!Object.is(this.opcode,e.opcode)&&(this.opcode=e.opcode,t=!0),n(e.value)&&!Object.is(this.value,e.value)&&(this.value=e.value,t=!0),n(e.params)&&!Object.is(this.params,e.params)&&(this.params=e.params,t=!0),n(e.mode)&&!Object.is(this.mode,e.mode)&&(this.mode=e.mode,t=!0),n(e.sliderMin)&&!Object.is(this.sliderMin,e.sliderMin)&&(this.sliderMin=e.sliderMin,t=!0),n(e.sliderMax)&&!Object.is(this.sliderMax,e.sliderMax)&&(this.sliderMax=e.sliderMax,t=!0),n(e.isDiscrete)&&!Object.is(this.isDiscrete,e.isDiscrete)&&(this.isDiscrete=e.isDiscrete,t=!0),n(e.x)&&!Object.is(this.x,e.x)&&(this.x=e.x,t=!0),n(e.y)&&!Object.is(this.y,e.y)&&(this.y=e.y,t=!0),n(e.width)&&!Object.is(this.width,e.width)&&(this.width=e.width,t=!0),n(e.height)&&!Object.is(this.height,e.height)&&(this.height=e.height,t=!0),n(e.visible)&&!Object.is(this.visible,e.visible)&&(this.visible=e.visible,t=!0),t}}r.externalDeltaToJS=e=>"function"==typeof e.toJS?e.toJS():e,e.exports=r},function(e,t,n){const r=n(236),i=n(249),s=n(78),o=n(74),a=n(251),c=n(77),l=n(51),u=n(75),h=n(252),d=n(50);e.exports={BitmapAdapter:i,convertFonts:u,inlineSvgFonts:s,loadSvgString:o,sanitizeSvg:a,serializeSvgToString:c,SvgElement:l,SVGRenderer:r,fixForVanilla:h,DOMPurify:d}},function(e,t,n){const r=n(42),i=n(17),s=n(49),o=n(9),a=n(48),c=n(24),l=n(13),u=n(0),h=n(7),d=n(4),p=n(6),f=n(73),m=n(260),{loadCostume:g}=n(34),{loadSound:b}=n(33),{deserializeCostume:y,deserializeSound:E}=n(82),T=Object.prototype.hasOwnProperty,v=["argument","colour","control","data","event","looks","math","motion","operator","procedures","sensing","sound"],A=12,w=13,S={math_number:[4,"NUM"],math_positive_number:[5,"NUM"],math_whole_number:[6,"NUM"],math_integer:[7,"NUM"],math_angle:[8,"NUM"],colour_picker:[9,"COLOUR"],text:[10,"TEXT"],event_broadcast_menu:[11,"BROADCAST_OPTION"],data_variable:[A,"VARIABLE"],data_listcontents:[w,"LIST"]},k=8e3,O=function(e){const t=function(e){if(T.call(S,e.opcode)){const t=S[e.opcode],n=t[0],r=t[1],i=e.fields[r],s=[n,i.value];return"event_broadcast_menu"===e.opcode?s.push(i.id):"data_variable"!==e.opcode&&"data_listcontents"!==e.opcode||(s.push(i.id),e.topLevel&&(s.push(e.x?Math.round(e.x):0),s.push(e.y?Math.round(e.y):0))),s}return null}(e);if(t)return t;const n=Object.create(null);return n.opcode=e.opcode,n.next=e.next,n.parent=e.parent,n.inputs=function(e){const t=Object.create(null);for(const n in e)T.call(e,n)&&(e[n].block===e[n].shadow?t[n]=[1,e[n].block]:null===e[n].shadow?t[n]=[2,e[n].block]:t[n]=[3,e[n].block,e[n].shadow]);return t}(e.inputs),n.fields=function(e){const t=Object.create(null);for(const n in e)T.call(e,n)&&(t[n]=[e[n].value],Object.prototype.hasOwnProperty.call(e[n],"id")&&t[n].push(e[n].id));return t}(e.fields),n.shadow=e.shadow,e.topLevel?(n.topLevel=!0,n.x=e.x?Math.round(e.x):0,n.y=e.y?Math.round(e.y):0):n.topLevel=!1,e.mutation&&(n.mutation=e.mutation),e.comment&&(n.comment=e.comment),n},I=function(e,t){const n=e.inputs;for(const e in n){const r=n[e];for(let e=1;e<r.length;e++){if(!r[e])continue;const n=r[e],i=t[n];Array.isArray(i)&&(r[e]=i,delete t[n])}}return e},N=function(e){const t=e.indexOf("_"),n=e.substring(0,t).replace(/[^\w-]/g,"-");if(-1===v.indexOf(n)&&""!==n)return n},R=(e,t)=>{if(!t.extensionManager)return null;const n=t.extensionManager.getExtensionURLs(),r={};for(const t of e){const e=n[t];"string"==typeof e&&(r[t]=e)}return 0===Object.keys(r).length?null:r},x=function(e){const t=Object.create(null),n=new Set;for(const r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;t[r]=O(e[r]);const i=N(e[r].opcode);i&&n.add(i)}for(const e in t){const n=t[e];t[e]=I(n,t)}for(const e in t){const n=t[e];Array.isArray(n)&&[A,w].indexOf(n[0])<0&&(u.warn("Found an unexpected top level primitive with block ID: ".concat(e,"; deleting it from serialized blocks.")),delete t[e])}return[t,Array.from(n)]},M=function(e){const t=Object.create(null);t.name=e.name;const n=e.broken||e;return t.bitmapResolution=n.bitmapResolution,t.dataFormat=n.dataFormat.toLowerCase(),t.assetId=n.assetId,t.md5ext=n.md5,t.rotationCenterX=n.rotationCenterX,t.rotationCenterY=n.rotationCenterY,t},C=function(e){const t=Object.create(null);t.name=e.name;const n=e.broken||e;return t.assetId=n.assetId,t.dataFormat=n.dataFormat.toLowerCase(),t.format=n.format,t.rate=n.rate,t.sampleCount=n.sampleCount,t.md5ext=n.md5,t},P=e=>"number"==typeof e||"string"==typeof e||"boolean"==typeof e,L=e=>{if(Array.isArray(e)){let t=null;for(let n=0;n<e.length;n++)P(e[n])||(t||(t=e.slice()),t[n]="".concat(t[n]));return t||e}return P(e)?e:"".concat(e)},D=function(e,t){const n=Object.create(null);let r=[];n.isStage=e.isStage,n.name=n.isStage?"Stage":e.name;const i=function(e){const t=Object.create(null);t.variables=Object.create(null),t.lists=Object.create(null),t.broadcasts=Object.create(null);for(const n in e){const r=e[n];r.type!==o.BROADCAST_MESSAGE_TYPE?r.type!==o.LIST_TYPE?(t.variables[n]=[r.name,L(r.value)],r.isCloud&&t.variables[n].push(!0)):t.lists[n]=[r.name,L(r.value)]:t.broadcasts[n]=r.value}return t}(e.variables);return n.variables=i.variables,n.lists=i.lists,n.broadcasts=i.broadcasts,[n.blocks,r]=x(e.blocks),n.comments=function(e){const t=Object.create(null);for(const n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;const r=e[n],i=Object.create(null);i.blockId=r.blockId,i.x=r.x,i.y=r.y,i.width=r.width,i.height=r.height,i.minimized=r.minimized,r.text.length>k?(i.text=r.text.substring(0,k),i.extraText=r.text.substring(k)):i.text=r.text,t[n]=i}return t}(e.comments),(e.currentCostume<0||e.currentCostume>=e.costumes.length)&&(u.warn("currentCostume property for target ".concat(e.name," is out of range")),e.currentCostume=d.clamp(e.currentCostume,0,e.costumes.length-1)),n.currentCostume=e.currentCostume,n.costumes=e.costumes.map(M),n.sounds=e.sounds.map(C),Object.prototype.hasOwnProperty.call(e,"volume")&&(n.volume=e.volume),Object.prototype.hasOwnProperty.call(e,"layerOrder")&&(n.layerOrder=e.layerOrder),n.isStage?(Object.prototype.hasOwnProperty.call(e,"tempo")&&(n.tempo=e.tempo),Object.prototype.hasOwnProperty.call(e,"videoTransparency")&&(n.videoTransparency=e.videoTransparency),Object.prototype.hasOwnProperty.call(e,"videoState")&&(n.videoState=e.videoState),Object.prototype.hasOwnProperty.call(e,"textToSpeechLanguage")&&(n.textToSpeechLanguage=e.textToSpeechLanguage)):(n.visible=e.visible,n.x=e.x,n.y=e.y,n.size=e.size,n.direction=e.direction,n.draggable=e.draggable,n.rotationStyle=e.rotationStyle),r.forEach((e=>{t.add(e)})),n},B=(e,t)=>{const n={};let r=!0;for(const[i,s]of Object.entries(e))t.has(i)&&null!=s&&(r=!1,n[i]=e[i]);return r?null:n},U=function(e,t,n,r){if(!Array.isArray(e))return e;const i=Object.create(null),s=h();switch(i.id=s,i.next=null,i.parent=t,i.shadow=n,i.inputs=Object.create(null),e[0]){case 4:i.opcode="math_number",i.fields={NUM:{name:"NUM",value:e[1]}},i.topLevel=!1;break;case 5:i.opcode="math_positive_number",i.fields={NUM:{name:"NUM",value:e[1]}},i.topLevel=!1;break;case 6:i.opcode="math_whole_number",i.fields={NUM:{name:"NUM",value:e[1]}},i.topLevel=!1;break;case 7:i.opcode="math_integer",i.fields={NUM:{name:"NUM",value:e[1]}},i.topLevel=!1;break;case 8:i.opcode="math_angle",i.fields={NUM:{name:"NUM",value:e[1]}},i.topLevel=!1;break;case 9:i.opcode="colour_picker",i.fields={COLOUR:{name:"COLOUR",value:e[1]}},i.topLevel=!1;break;case 10:i.opcode="text",i.fields={TEXT:{name:"TEXT",value:e[1]}},i.topLevel=!1;break;case 11:i.opcode="event_broadcast_menu",i.fields={BROADCAST_OPTION:{name:"BROADCAST_OPTION",value:e[1],id:e[2],variableType:o.BROADCAST_MESSAGE_TYPE}},i.topLevel=!1;break;case A:i.opcode="data_variable",i.fields={VARIABLE:{name:"VARIABLE",value:e[1],id:e[2],variableType:o.SCALAR_TYPE}},e.length>3&&(i.topLevel=!0,i.x=e[3],i.y=e[4]);break;case w:i.opcode="data_listcontents",i.fields={LIST:{name:"LIST",value:e[1],id:e[2],variableType:o.LIST_TYPE}},e.length>3&&(i.topLevel=!0,i.x=e[3],i.y=e[4]);break;default:return u.error("Found unknown primitive type during deserialization: ".concat(JSON.stringify(e))),null}return r[s]=i,s},F=function(e,t,n){const r={};for(const i in e){if(!T.call(e,i))continue;const s=e[i];if(!Array.isArray(s))continue;let o=null,a=null;const c=s[0];1===c?o=a=U(s[1],t,!0,n):2===c?o=U(s[1],t,!1,n):(o=U(s[1],t,!1,n),a=U(s[2],t,!0,n)),r[i]={name:i,block:o,shadow:a}}return r},j=function(e){const t={};for(const n in e){if(!T.call(e,n))continue;const r=e[n];Array.isArray(r)&&(t[n]={name:n,value:r[0]},r.length>1&&(t[n].id=r[1]),"BROADCAST_OPTION"===n?t[n].variableType=o.BROADCAST_MESSAGE_TYPE:"VARIABLE"===n?t[n].variableType=o.SCALAR_TYPE:"LIST"===n&&(t[n].variableType=o.LIST_TYPE))}return t},z=function(e){for(const t in e){if(!Object.prototype.hasOwnProperty.call(e,t))continue;const n=e[t];Array.isArray(n)?(delete e[t],U(n,null,!1,e)):(n.id=t,n.inputs=F(n.inputs,t,e),n.fields=j(n.fields))}return e};e.exports={serialize:function(e,t){let{allowOptimization:n=!0}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=Object.create(null),i=new Set,s=t?[e.getTargetById(t)]:e.targets.filter((e=>e.isOriginal)),o=function(e){const t=e.map((e=>e.getLayerOrder()));return d.reducedSortOrdering(t)}(s),a=s.map((e=>e.toJSON()));e.renderer&&!t&&a.forEach(((e,t)=>{e.layerOrder=o[t]}));const c=a.map((e=>D(e,i))).map(((e,t)=>{const n=s[t],r=B(n.extensionStorage,i);return r&&(e.extensionStorage=r),e})),l=e.fontManager.serializeJSON();if(t){const t=c[0];i.size&&(t.extensions=Array.from(i));const n=R(i,e);return n&&(t.extensionURLs=n),l&&(t.customFonts=l),c[0]}const u=B(e.extensionStorage,i);u&&(r.extensionStorage=u),r.targets=c,r.monitors=function(e,t,n){const r=(t.stageWidth-480)/2,i=(t.stageHeight-360)/2;return e.valueSeq().filter((e=>{const t=N(e.opcode);return!t||!!e.visible&&(n.add(t),!0)})).map((e=>{const t={id:e.id,mode:e.mode,opcode:e.opcode,params:e.params,spriteName:e.spriteName,value:Array.isArray(e.value)?[]:0,width:e.width,height:e.height,x:e.x-r,y:e.y-i,visible:e.visible};return"list"!==e.mode&&(t.sliderMin=e.sliderMin,t.sliderMax=e.sliderMax,t.isDiscrete=e.isDiscrete),t}))}(e.getMonitorState(),e,i),r.extensions=Array.from(i);const h=R(i,e);h&&(r.extensionURLs=h),l&&(r.customFonts=l);const p=Object.create(null);return p.semver="3.0.0",p.vm="0.2.0",e.origin&&(p.origin=e.origin),p.agent="",p.platform=Object.assign({},e.platform),r.meta=p,n&&m(r),r},deserialize:async function(e,t,n,h){await((e,t)=>{if(!e.meta||!e.meta.platform)return;if(e.meta.platform.name===t.platform.name)return;let n=t.listenerCount(r.PLATFORM_MISMATCH);return 0!==n?new Promise((i=>{t.emit(r.PLATFORM_MISMATCH,e.meta.platform,(()=>{n--,0===n&&i()}))})):void 0})(e,t);const m={extensionIDs:new Set,extensionURLs:new Map};if(e.meta&&e.meta.origin?t.origin=e.meta.origin:t.origin=null,e.extensionURLs)for(const[t,n]of Object.entries(e.extensionURLs))m.extensionURLs.set(t,n);let T;T=e.customFonts?t.fontManager.deserialize(e.customFonts,n,h):Promise.resolve();const v=((h?[e]:e.targets)||[]).map(((e,t)=>Object.assign(e,{targetPaneOrder:t}))).sort(((e,t)=>e.layerOrder-t.layerOrder)),A=e.monitors||[];return T.then((()=>v.map((e=>function(e,t,n){if(!Object.prototype.hasOwnProperty.call(e,"name"))return Promise.resolve(null);const r={costumePromises:null,soundPromises:null,soundBank:t.audioEngine&&t.audioEngine.createBank()};return r.costumePromises=(e.costumes||[]).map((e=>{const r={asset:e.asset,assetId:e.assetId,skinId:null,name:e.name,bitmapResolution:e.bitmapResolution,rotationCenterX:e.rotationCenterX,rotationCenterY:e.rotationCenterY},i=e.dataFormat||e.assetType&&e.assetType.runtimeFormat||"png",s=Object.prototype.hasOwnProperty.call(e,"md5ext")?e.md5ext:"".concat(e.assetId,".").concat(i);return r.md5=s,r.dataFormat=i,t.wrapAssetRequest((()=>y(r,t,n).then((()=>g(s,r,t)))))})),r.soundPromises=(e.sounds||[]).map((e=>{const i={assetId:e.assetId,format:e.format,rate:e.rate,sampleCount:e.sampleCount,name:e.name,md5:e.md5ext,dataFormat:e.dataFormat,data:null};return t.wrapAssetRequest((()=>E(i,t,n).then((()=>b(i,t,r.soundBank)))))})),r}(e,t,n))))).then((e=>Promise.resolve(e))).then((e=>Promise.all(v.map(((n,r)=>function(e,t,n,r,c){if(!Object.prototype.hasOwnProperty.call(e,"name"))return Promise.resolve(null);const u=new i(t),h=new s(u,t);if(Object.prototype.hasOwnProperty.call(e,"name")&&(h.name=e.name),Object.prototype.hasOwnProperty.call(e,"blocks")){z(e.blocks);for(const t in e.blocks){if(!Object.prototype.hasOwnProperty.call(e.blocks,t))continue;const r=e.blocks[t];u.createBlock(r);const i=N(r.opcode);i&&n.extensionIDs.add(i)}}const{costumePromises:p}=c,{soundBank:f,soundPromises:m}=c,g=h.createClone(e.isStage?l.BACKGROUND_LAYER:l.SPRITE_LAYER);if(Object.prototype.hasOwnProperty.call(e,"tempo")&&(g.tempo=e.tempo),Object.prototype.hasOwnProperty.call(e,"volume")&&(g.volume=e.volume),Object.prototype.hasOwnProperty.call(e,"videoTransparency")&&(g.videoTransparency=e.videoTransparency),Object.prototype.hasOwnProperty.call(e,"videoState")&&(g.videoState=e.videoState),Object.prototype.hasOwnProperty.call(e,"textToSpeechLanguage")&&(g.textToSpeechLanguage=e.textToSpeechLanguage),Object.prototype.hasOwnProperty.call(e,"variables"))for(const n in e.variables){const r=e.variables[n],i=3===r.length&&r[2]&&e.isStage&&t.canAddCloudVariable(),s=new o(n,r[0],o.SCALAR_TYPE,i);i&&t.addCloudVariable(),s.value=r[1],g.variables[s.id]=s}if(Object.prototype.hasOwnProperty.call(e,"lists"))for(const t in e.lists){const n=e.lists[t],r=new o(t,n[0],o.LIST_TYPE,!1);r.value=n[1],g.variables[r.id]=r}if(Object.prototype.hasOwnProperty.call(e,"broadcasts"))for(const t in e.broadcasts){const n=e.broadcasts[t],r=new o(t,n,o.BROADCAST_MESSAGE_TYPE,!1);g.variables[r.id]=r}if(Object.prototype.hasOwnProperty.call(e,"comments"))for(const t in e.comments){const n=e.comments[t],r=new a(t,n.text+("string"==typeof n.extraText?n.extraText:""),n.x,n.y,n.width,n.height,n.minimized);n.blockId&&(r.blockId=n.blockId),g.comments[r.id]=r}return Object.prototype.hasOwnProperty.call(e,"x")&&(g.x=e.x),Object.prototype.hasOwnProperty.call(e,"y")&&(g.y=e.y),Object.prototype.hasOwnProperty.call(e,"direction")&&(g.direction=d.wrapClamp(e.direction,-179,180)),Object.prototype.hasOwnProperty.call(e,"size")&&(g.size=e.size),Object.prototype.hasOwnProperty.call(e,"visible")&&(g.visible=e.visible),Object.prototype.hasOwnProperty.call(e,"currentCostume")&&(g.currentCostume=d.clamp(e.currentCostume,0,e.costumes.length-1)),Object.prototype.hasOwnProperty.call(e,"rotationStyle")&&(g.rotationStyle=e.rotationStyle),Object.prototype.hasOwnProperty.call(e,"isStage")&&(g.isStage=e.isStage),Object.prototype.hasOwnProperty.call(e,"targetPaneOrder")&&(g.targetPaneOrder=e.targetPaneOrder),Object.prototype.hasOwnProperty.call(e,"draggable")&&(g.draggable=e.draggable),Object.prototype.hasOwnProperty.call(e,"extensionStorage")&&(g.extensionStorage=e.extensionStorage),Promise.all(p).then((e=>{h.costumes=e})),Promise.all(m).then((e=>{h.sounds=e,h.soundBank=f||null})),Promise.all(p.concat(m)).then((()=>g))}(n,t,m,0,e[r])))))).then((e=>e.map(((e,t)=>(e.layerOrder=t,e))).sort(((e,t)=>e.targetPaneOrder-t.targetPaneOrder)).map((e=>(delete e.targetPaneOrder,e))))).then((e=>function(e){const t=f.getAllVarRefsForTargets(e,!0);e.forEach((e=>{Object.keys(e.variables).forEach((t=>{const n=p.replaceUnsafeChars(t);n!==t&&(e.variables[t].id=n,e.variables[n]=e.variables[t],delete e.variables[t])}))}));for(const e in t){const n=p.replaceUnsafeChars(e);e!==n&&f.updateVariableIdentifiers(t[e],n)}return e}(e))).then((n=>(A.map((e=>function(e,t,n,r){const i=(t.stageWidth-480)/2,s=(t.stageHeight-360)/2;if(e.x+=i,e.y+=s,e.x=d.clamp(e.x,0,t.stageWidth),e.y=d.clamp(e.y,0,t.stageHeight),e.spriteName){const t=n.filter((t=>t.sprite.name===e.spriteName));t&&t.length>0?e.targetId=t[0].id:u.warn("Tried to deserialize sprite specific monitor ".concat(e.opcode," but could not find sprite ").concat(e.spriteName,"."))}const a=t.monitorBlockInfo[e.opcode];if("data_listcontents"===e.opcode){const t=e.targetId?n.find((t=>t.id===e.targetId)):n.find((e=>e.isStage));t&&Object.prototype.hasOwnProperty.call(t.variables,e.id)&&(e.params.LIST=t.variables[e.id].name)}const l={};for(const t in e.params){const n={name:t,value:e.params[t]};l[t]=n}"data_variable"!==e.opcode&&"data_listcontents"!==e.opcode&&a&&a.isSpriteSpecific?e.id=a.getId(e.targetId,l):e.id=p.replaceUnsafeChars(e.id);const h=t.monitorBlocks._blocks[e.id];if(h)h.isMonitored=e.visible,h.targetId=e.targetId;else{const n={id:e.id,opcode:e.opcode,inputs:{},fields:l,topLevel:!0,next:null,parent:null,shadow:!1,x:0,y:0,isMonitored:e.visible,targetId:e.targetId};if("data_variable"===e.opcode){const t=n.fields.VARIABLE;t.id=e.id,t.variableType=o.SCALAR_TYPE}else if("data_listcontents"===e.opcode){const t=n.fields.LIST;t.id=e.id,t.variableType=o.LIST_TYPE}t.monitorBlocks.createBlock(n);const i=N(n.opcode);i&&r.extensionIDs.add(i)}t.requestAddMonitor(new c(e))}(e,t,n,m))),Object.prototype.hasOwnProperty.call(e,"extensionStorage")&&(t.extensionStorage=e.extensionStorage),n))).then((e=>({targets:e,extensions:m})))},deserializeBlocks:z,serializeBlocks:x,deserializeStandaloneBlocks:e=>{if((e=JSON.parse(JSON.stringify(e))).extensionURLs){const t=new Map;for(const[n,r]of Object.entries(e.extensionURLs))t.set(n,r);return{blocks:e.blocks,extensionURLs:t}}return{blocks:e,extensionURLs:new Map}},serializeStandaloneBlocks:(e,t)=>{const n=new Set;for(const t of e){const e=N(t.opcode);e&&n.add(e)}const r=R(n,t);return r?{blocks:e,extensionURLs:r}:e},getExtensionIdForOpcode:N}},function(e,t,n){const r=n(11),i=n(35),s=n(269);e.exports=class{constructor(e,t){this._renderer=t,this._id=e,this._rotationCenter=r.v3.create(0,0),this._texture=null,this._uniforms={u_skinSize:[0,0],u_skin:null},this._silhouette=new s,this.private=!1}dispose(){this._id=i.ID_NONE}get id(){return this._id}get rotationCenter(){return this._rotationCenter}get size(){return[0,0]}useNearest(e,t){return!0}calculateRotationCenter(){return[this.size[0]/2,this.size[1]/2]}getTexture(e){return this._emptyImageTexture}isMetricsReady(){return!!this.getTexture([100,100])}getFenceBounds(e,t){return e.getAABB(t)}getUniforms(e){return this._uniforms.u_skin=this.getTexture(e),this._uniforms.u_skinSize=this.size,this._uniforms}emitWasAltered(){this._renderer.skinWasAltered(this)}updateSilhouette(){this._silhouette.unlazy()}_setTexture(e){const t=this._renderer.gl;t.bindTexture(t.TEXTURE_2D,this._texture),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),this._silhouette.update(e)}setEmptyImageData(){if(this._texture=null,!this._emptyImageData){this._emptyImageData=new ImageData(1,1);const e=this._renderer.gl,t={auto:!0,wrap:e.CLAMP_TO_EDGE,src:this._emptyImageData};this._emptyImageTexture=r.createTexture(e,t)}this._rotationCenter[0]=0,this._rotationCenter[1]=0,this._silhouette.update(this._emptyImageData),this.emitWasAltered()}isTouchingNearest(e){return this._silhouette.isTouchingNearest(e)}isTouchingLinear(e){return this._silhouette.isTouchingLinear(e)}}},function(e,t,n){const r=n(11);class i{constructor(e){this._gl=e,this._shaderCache={};for(const e in i.DRAW_MODE)Object.prototype.hasOwnProperty.call(i.DRAW_MODE,e)&&(this._shaderCache[e]=[])}getShader(e,t){const n=this._shaderCache[e];e===i.DRAW_MODE.silhouette&&(t&=~(i.EFFECT_INFO.color.mask|i.EFFECT_INFO.brightness.mask));let r=n[t];return r||(r=n[t]=this._buildShader(e,t)),r}_buildShader(e,t){const s=i.EFFECTS.length,o=["#define DRAW_MODE_".concat(e)];for(let e=0;e<s;++e)t&1<<e&&o.push("#define ENABLE_".concat(i.EFFECTS[e]));const a="".concat(o.join("\n"),"\n"),c=a+n(272),l=a+n(273);let u=null;const h=r.createProgramInfo(this._gl,[c,l],null,null,(e=>{console.error(e);const t=e.match(/\*\*\* Error compiling shader: ([\s\S]+)/);u=t?t[1].trim():e}));if(!h)throw new Error("Failed to compile shader (mode ".concat(e,", effects ").concat(t,"): ").concat(u));return h}}i.EFFECT_INFO={color:{uniformName:"u_color",mask:1,converter:e=>e/200%1,shapeChanges:!1},fisheye:{uniformName:"u_fisheye",mask:2,converter:e=>Math.max(0,(e+100)/100),shapeChanges:!0},whirl:{uniformName:"u_whirl",mask:4,converter:e=>-e*Math.PI/180,shapeChanges:!0},pixelate:{uniformName:"u_pixelate",mask:8,converter:e=>Math.abs(e)/10,shapeChanges:!0},mosaic:{uniformName:"u_mosaic",mask:16,converter:e=>(e=Math.round((Math.abs(e)+10)/10),Math.max(1,Math.min(e,512))),shapeChanges:!0},brightness:{uniformName:"u_brightness",mask:32,converter:e=>Math.max(-100,Math.min(e,100))/100,shapeChanges:!1},ghost:{uniformName:"u_ghost",mask:64,converter:e=>1-Math.max(0,Math.min(e,100))/100,shapeChanges:!1}},i.EFFECTS=Object.keys(i.EFFECT_INFO),i.DRAW_MODE={default:"default",straightAlpha:"straightAlpha",silhouette:"silhouette",colorMask:"colorMask",line:"line",background:"background"},e.exports=i},function(e,t){const n="undefined"==typeof document,r=n?"[0m":"",i=n?"[90m":"",s=`${n?"[34m":""}debug${r}`,o=`${n?"[36m":""}info${r}`,a=`${n?"[33m":""}warn${r}`,c=`${n?"[31m":""}error${r}`,l=(e="")=>{const t=t=>l(e?`${e} ${t}`:t),n=e?[`${i}${e}${r}`]:[];return t.debug=t.log=console.debug.bind(console,...n,s),t.info=console.log.bind(console,...n,o),t.warn=t.warning=console.warn.bind(console,...n,a),t.error=console.error.bind(console,...n,c),t};l.enable=l.disable=()=>{},e.exports=l},function(e,t,n){const r=n(60);e.exports=class extends r{constructor(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;super(),this._socket=e.getScratchLinkSocket("BLE"),this._socket.setOnOpen(this.requestPeripheral.bind(this)),this._socket.setOnClose(this.handleDisconnectError.bind(this)),this._socket.setOnError(this._handleRequestError.bind(this)),this._socket.setHandleMessage(this._handleMessage.bind(this)),this._sendMessage=this._socket.sendMessage.bind(this._socket),this._availablePeripherals={},this._connectCallback=r,this._connected=!1,this._characteristicDidChangeCallback=null,this._resetCallback=i,this._discoverTimeoutID=null,this._extensionId=t,this._peripheralOptions=n,this._runtime=e,this._socket.open()}requestPeripheral(){this._availablePeripherals={},this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID),this._discoverTimeoutID=window.setTimeout(this._handleDiscoverTimeout.bind(this),15e3),this.sendRemoteRequest("discover",this._peripheralOptions).catch((e=>{this._handleRequestError(e)}))}connectPeripheral(e){this.sendRemoteRequest("connect",{peripheralId:e}).then((()=>{this._connected=!0,this._runtime.emit(this._runtime.constructor.PERIPHERAL_CONNECTED),this._connectCallback()})).catch((e=>{this._handleRequestError(e)}))}disconnect(){this._connected&&(this._connected=!1),this._socket.isOpen()&&this._socket.close(),this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID),this._runtime.emit(this._runtime.constructor.PERIPHERAL_DISCONNECTED)}isConnected(){return this._connected}startNotifications(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const r={serviceId:e,characteristicId:t};return this._characteristicDidChangeCallback=n,this.sendRemoteRequest("startNotifications",r).catch((e=>{this.handleDisconnectError(e)}))}read(e,t){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;const r={serviceId:e,characteristicId:t};return arguments.length>2&&void 0!==arguments[2]&&arguments[2]&&(r.startNotifications=!0),n&&(this._characteristicDidChangeCallback=n),this.sendRemoteRequest("read",r).catch((e=>{this.handleDisconnectError(e)}))}write(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;const s={serviceId:e,characteristicId:t,message:n};return r&&(s.encoding=r),null!==i&&(s.withResponse=i),this.sendRemoteRequest("write",s).catch((e=>{this.handleDisconnectError(e)}))}didReceiveCall(e,t){switch(e){case"didDiscoverPeripheral":this._availablePeripherals[t.peripheralId]=t,this._runtime.emit(this._runtime.constructor.PERIPHERAL_LIST_UPDATE,this._availablePeripherals),this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID);break;case"userDidPickPeripheral":this._availablePeripherals[t.peripheralId]=t,this._runtime.emit(this._runtime.constructor.USER_PICKED_PERIPHERAL,this._availablePeripherals),this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID);break;case"userDidNotPickPeripheral":this._runtime.emit(this._runtime.constructor.PERIPHERAL_SCAN_TIMEOUT),this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID);break;case"characteristicDidChange":this._characteristicDidChangeCallback&&this._characteristicDidChangeCallback(t.message);break;case"ping":return 42}}handleDisconnectError(){this._connected&&(this.disconnect(),this._resetCallback&&this._resetCallback(),this._runtime.emit(this._runtime.constructor.PERIPHERAL_CONNECTION_LOST_ERROR,{message:"Scratch lost connection to",extensionId:this._extensionId}))}_handleRequestError(){this._runtime.emit(this._runtime.constructor.PERIPHERAL_REQUEST_ERROR,{message:"Scratch lost connection to",extensionId:this._extensionId})}_handleDiscoverTimeout(){this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID),this._runtime.emit(this._runtime.constructor.PERIPHERAL_SCAN_TIMEOUT)}}},function(e,t,n){const r=n(0);e.exports=function(e){if("string"!=typeof e){if(!Array.isArray(e))return r.error("Unexpected input recieved in replaceUnsafeChars"),e;e=String(e)}return e.replace(/[<>&'"]/g,(e=>{switch(e){case"<":return"<";case">":return">";case"&":return"&";case"'":return"'";case'"':return"""}}))}},function(e,t,n){const r=n(68),i=n(65),s=n(0),o=n(20),a=n(1),c=new r;let l=-1;const u=function(e,t,n,r,i){const s=r.id,c=r.opcode,l=r._isHat,u=r._isConditional,h=r._isLoop;if(n.pushReportedValue(e),l)if(n.stackClick)n.status=o.STATUS_RUNNING;else if(t.runtime.getIsEdgeActivatedHat(c)){const r=n.target.hasEdgeActivatedValue(s),i=n.target.updateEdgeActivatedValue(s,e);(r?!i&&e:e)?n.status=o.STATUS_RUNNING:t.retireThread(n)}else e?n.status=o.STATUS_RUNNING:t.retireThread(n);else if((u||h)&&void 0!==e)t.stepToBranch(n,a.toNumber(e),h);else{if(i&&void 0!==e&&n.atStackTop()&&(n.stackClick&&t.runtime.visualReport(n.target,s,e),n.updateMonitor)){const n=t.runtime.monitorBlocks.getBlock(s).targetId;if(n&&!t.runtime.getTargetById(n))return;t.runtime.requestUpdateMonitor({id:s,spriteName:n?t.runtime.getTargetById(n).getName():null,value:e})}n.status=o.STATUS_RUNNING}},h=(e,t,n,r,i)=>{if(u(e,t,n,r,i),i&&(!r._isHat||n.stackClick)){let e,t;do{const r=n.popStack();if(null===r)return;if(t=n.target.blocks.getNextBlock(r),null!==t)break;e=n.peekStackFrame()}while(null!==e&&!e.isLoop);n.pushStack(t)}},d=(e,t,n,r,i)=>{n.status===o.STATUS_RUNNING&&(n.status=o.STATUS_PROMISE_WAIT),e.then((e=>{h(e,t,n,r,i)}),(e=>{s.warn("Primitive rejected promise: ",e),h("".concat(e),t,n,r,i)}))};class p{constructor(e,t){this.id=t.id,this.opcode=t.opcode,this.fields=t.fields,this.inputs=t.inputs,this.mutation=t.mutation,this._profiler=null,this._profilerFrame=null,this._isHat=!1,this._blockFunction=null,this._definedBlockFunction=!1,this._isShadowBlock=!1,this._shadowValue=null,this._fields=Object.assign({},this.fields),this._inputs=Object.assign({},this.inputs),this._argValues={mutation:this.mutation},this._parentKey=null,this._parentValues=null,this._ops=[];const{runtime:n}=c.sequencer,{opcode:r,fields:s,inputs:o}=this;this._isHat=n.getIsHat(r),this._blockFunction=n.getOpcodeFunction(r),this._definedBlockFunction=void 0!==this._blockFunction;const a=n._flowing[r];this._isConditional=!(!a||!a.conditional),this._isLoop=!(!a||!a.loop);const l=Object.keys(s);this._isShadowBlock=!this._definedBlockFunction&&1===l.length&&0===Object.keys(o).length,this._shadowValue=this._isShadowBlock&&s[l[0]].value;for(const e in s)this._argValues[e]="VARIABLE"===e||"LIST"===e||"BROADCAST_OPTION"===e?{id:s[e].id,name:s[e].value}:s[e].value;if(delete this._inputs.custom_block,"BROADCAST_INPUT"in this._inputs){this._argValues.BROADCAST_OPTION={id:null,name:null};const t=this._inputs.BROADCAST_INPUT;if(t.block===t.shadow){const n=e.getBlock(t.shadow).fields.BROADCAST_OPTION;this._argValues.BROADCAST_OPTION.id=n.id,this._argValues.BROADCAST_OPTION.name=n.value,delete this._inputs.BROADCAST_INPUT}}for(const t in this._inputs){const n=this._inputs[t];if(n.block){const r=i.getCached(e,n.block,p);if(r._isHat)continue;this._ops.push(...r._ops),r._parentKey=t,r._parentValues=this._argValues,r._isShadowBlock&&(this._argValues[t]=r._shadowValue)}}this._definedBlockFunction&&this._ops.push(this)}}e.exports=function(e,t){const n=e.runtime;c.sequencer=e,c.thread=t;const r=t.peekStack(),s=t.peekStackFrame();let h=t.blockContainer,f=i.getCached(h,r,p);if(null===f&&(h=n.flyoutBlocks,f=i.getCached(h,r,p),null===f))return void e.retireThread(t);const m=f._ops,g=m.length;let b=0;if(null!==s.reported){const e=s.reported;for(;b<e.length;b++){const{opCached:t,inputValue:n}=e[b],r=m.find((e=>e.id===t));if(r){const e=r._parentKey,t=r._parentValues;"BROADCAST_INPUT"===e?(t.BROADCAST_OPTION.id=null,t.BROADCAST_OPTION.name=a.toString(n)):t[e]=n}}if(e.length>0){const t=e.reverse().find((e=>m.find((t=>t.id===e.opCached))));b=t?m.findIndex((e=>e.id===t.opCached))+1:0}if(null!==t.justReported&&m[b]&&m[b].id===s.reporting){const e=m[b],n=t.justReported;t.justReported=null;const r=e._parentKey,i=e._parentValues;"BROADCAST_INPUT"===r?(i.BROADCAST_OPTION.id=null,i.BROADCAST_OPTION.name=a.toString(n)):i[r]=n,b+=1}s.reporting=null,s.reported=null,s.waitingReporter=!1}const y=b;for(;b<g;b++){const n=b===g-1,r=m[b];s.op=r;const i=r._blockFunction,l=r._argValues;h.forceNoGlow||(t.requestScriptGlowInFrame=!0);const p=i(l,c),f=null!==(E=p)&&"object"==typeof E&&"function"==typeof E.then;if(f||s.waitingReporter){f&&d(p,e,t,r,n),t.justReported=null,s.reporting=m[b].id,s.reported=m.slice(0,b).map((e=>{const t=e._parentKey,n=e._parentValues;return"BROADCAST_INPUT"===t?{opCached:e.id,inputValue:n[t].BROADCAST_OPTION.name}:{opCached:e.id,inputValue:n[t]}}));break}if(t.status===o.STATUS_RUNNING)if(n)u(p,e,t,r,n);else{const e=r._parentKey,t=r._parentValues;"BROADCAST_INPUT"===e?(t.BROADCAST_OPTION.id=null,t.BROADCAST_OPTION.name=a.toString(p)):t[e]=p}else if(t.status===o.STATUS_DONE)break}var E;if(null!==n.profiler){f._profiler!==n.profiler&&function(e,t){t._profiler=e,-1===l&&(l=e.idByName("blockFunction"));const n=t._ops;for(let t=0;t<n.length;t++)n[t]._profilerFrame=e.frame(l,n[t].opcode)}(n.profiler,f);const e=Math.min(b+1,g);for(let t=y;t<e;t++)m[t]._profilerFrame.count+=1}}},function(e,t,n){const r=n(6),i=n(0),s=function(e,t,n,r){return e.assetId=t.assetId,n.audioEngine?n.audioEngine.decodeSoundPlayer(Object.assign({},e,{data:t.data})).then((t=>{e.soundId=t.id;const i=t.buffer;return e.rate=i.sampleRate,e.sampleCount=i.length,null!==r&&r.addSoundPlayer(t),n.isPackaged&&(e.asset=null),e})):(i.warn("No audio engine present; cannot load sound asset: ",e.md5),Promise.resolve(e))},o=function(e,t,n){const r=e.asset,i=e.assetId,o=e.sampleCount,a=e.rate,c=e.format,l=e.dataFormat;return e.assetId=t.storage.defaultAssetId.Sound,e.asset=t.storage.get(e.assetId),e.md5="".concat(e.assetId,".").concat(e.asset.dataFormat),s(e,e.asset,t,n).then((e=>(e.broken={},e.broken.assetId=i,e.broken.md5="".concat(i,".").concat(l),e.broken.asset=r,e.broken.sampleCount=o,e.broken.rate=a,e.broken.format=c,e.broken.dataFormat=l,e)))};e.exports={loadSound:function(e,t,n){if(!t.storage)return i.warn("No storage module present; cannot load sound asset: ",e.md5),Promise.resolve(e);const a=r.splitFirst(e.md5,"."),c=a[0],l=a[1].toLowerCase();return e.dataFormat=l,(e.asset&&Promise.resolve(e.asset)||t.storage.load(t.storage.AssetType.Sound,c,l)).then((r=>(e.asset=r,r?s(e,r,t,n):(i.warn("Failed to find sound data: ",e.md5),o(e,t,n))))).catch((r=>(i.warn("Failed to load sound: ".concat(e.md5," with error: ").concat(r)),o(e,t,n))))},loadSoundFromAsset:s}},function(e,t,n){const r=n(6),i=n(0),s=n(72),{loadSvgString:o,serializeSvgToString:a}=n(25),{parseVectorMetadata:c}=n(79),l=function(e,t,n,r){return new Promise((i=>{let s=e.asset.decodeText();if(void 0===n){const t=c(s);t&&(n=t,e.rotationCenterX=n[0],e.rotationCenterY=n[1])}if(r&&2===r){const n=a(o(s,!0));if(s!==n){s=n;const r=t.storage;e.asset.encodeTextData(n,r.DataFormat.SVG,!0),e.assetId=e.asset.assetId,e.md5="".concat(e.assetId,".").concat(e.dataFormat)}}e.skinId=t.renderer.createSVGSkin(s,n),e.size=t.renderer.getSkinSize(e.skinId),n||(n=t.renderer.getSkinRotationCenter(e.skinId),e.rotationCenterX=n[0],e.rotationCenterY=n[1],e.bitmapResolution=1),t.isPackaged&&(e.asset=null),i(e)}))},u=new class{constructor(){this.pool=[],this.clearSoon=null}clear(){this.clearSoon||(this.clearSoon=new Promise((e=>setTimeout(e,1e3))).then((()=>{this.pool.length=0,this.clearSoon=null})))}create(){return this.pool.pop()||document.createElement("canvas")}release(e){this.clear(),this.pool.push(e)}},h=e=>new Promise(((t,n)=>{const r=new Image;r.onload=function(){t(r),r.onload=null,r.onerror=null},r.onerror=function(){n(new Error("Costume load failed. Asset could not be read.")),r.onload=null,r.onerror=null},r.src=e})),d=new s((async e=>{let t;for(let n=0;n<3;n++)try{if("function"==typeof createImageBitmap){const t=await createImageBitmap(new Blob([e.data.buffer],{type:e.assetType.contentType}));if(!t)throw new Error("createImageBitmap resolved with ".concat(t));return t}return await h(e.encodeDataURI())}catch(e){t||(t=e),i.warn(e),await new Promise((e=>setTimeout(e,2e3*Math.random())))}throw t}),25),p=function(e,t,n){return function(e,t,n){return e&&e.asset?t.v2BitmapAdapter?Promise.all([e.asset,e.textLayerAsset].map((e=>e?d.do(e):null))).then((r=>{let[i,s]=r;if(!i)throw new Error("Loading bitmap costume base failed.");const o=1===e.bitmapResolution?2:1;let a,c;if(s){c=u.create(),c.width=i.width,c.height=i.height;const e=c.getContext("2d");e.drawImage(i,0,0),e.drawImage(s,0,0),a=c}else a=i;return 1!==o&&(a=t.v2BitmapAdapter.resize(a,a.width*o,a.height*o),c&&u.release(c)),a.reusable=!1,n&&(n[0]=n[0]*o,n[1]=n[1]*o,e.rotationCenterX=n[0],e.rotationCenterY=n[1]),e.bitmapResolution=2,delete e.textLayerMD5,delete e.textLayerAsset,{image:a,rotationCenter:n,assetMatchesBase:1===o&&!s}})).finally((()=>{delete e.textLayerMD5,delete e.textLayerAsset})):Promise.reject("No V2 Bitmap adapter present."):Promise.reject("Costume load failed. Assets were missing.")}(e,t,n).then((n=>(n.assetMatchesBase||function(n){if(!t.v2BitmapAdapter)return Promise.reject("No V2 Bitmap adapter present.");const r=t.storage;e.asset=r.createAsset(r.AssetType.ImageBitmap,r.DataFormat.PNG,t.v2BitmapAdapter.convertDataURIToBinary(n),null,!0),e.dataFormat=r.DataFormat.PNG,e.assetId=e.asset.assetId,e.md5="".concat(e.assetId,".").concat(e.dataFormat)}((e=>{if(e instanceof HTMLCanvasElement)return e.toDataURL();const t=u.create();t.width=e.width,t.height=e.height,t.getContext("2d").drawImage(e,0,0);const n=t.toDataURL();return u.release(t),n})(n.image)),n))).then((n=>{let r,{image:i,rotationCenter:s}=n;s&&(r=[s[0]/2,s[1]/2]),e.skinId=t.renderer.createBitmapSkin(i,e.bitmapResolution,r);const o=t.renderer.getSkinSize(e.skinId);return e.size=[2*o[0],2*o[1]],s||(s=t.renderer.getSkinRotationCenter(e.skinId),e.rotationCenterX=2*s[0],e.rotationCenterY=2*s[1],e.bitmapResolution=2),t.isPackaged&&(e.asset=null),e}))},f=function(e,t){const n=e.asset,r=e.assetId,i=e.rotationCenterX,s=e.rotationCenterY,o=e.bitmapResolution,a=e.dataFormat,c=t.storage.AssetType,u=e.dataFormat===c.ImageVector.runtimeFormat;e.assetId=u?t.storage.defaultAssetId.ImageVector:t.storage.defaultAssetId.ImageBitmap,e.asset=t.storage.get(e.assetId),e.md5="".concat(e.assetId,".").concat(e.asset.dataFormat);return(u?l(e,t):p(e,t)).then((e=>(e.broken={},e.broken.assetId=r,e.broken.md5="".concat(r,".").concat(a),e.broken.asset=n,e.broken.dataFormat=a,e.broken.rotationCenterX=i,e.broken.rotationCenterY=s,e.broken.bitmapResolution=o,e)))},m=function(e,t,n){e.assetId=e.asset.assetId;if(!t.renderer)return i.warn("No rendering module present; cannot load costume: ",e.name),Promise.resolve(e);const r=t.storage.AssetType;let s;return"number"!=typeof e.rotationCenterX||isNaN(e.rotationCenterX)||"number"!=typeof e.rotationCenterY||isNaN(e.rotationCenterY)||(s=[e.rotationCenterX,e.rotationCenterY]),e.asset.assetType.runtimeFormat===r.ImageVector.runtimeFormat?l(e,t,s,n).catch((n=>(i.warn("Error loading vector image: ".concat(n)),f(e,t)))):p(e,t,s).catch((n=>(i.warn("Error loading bitmap image: ".concat(n)),f(e,t))))};e.exports={loadCostume:function(e,t,n,s){const o=r.splitFirst(e,"."),a=o[0],c=o[1].toLowerCase();if(t.dataFormat=c,t.asset)return m(t,n,s);if(!n.storage)return i.warn("No storage module present; cannot load costume asset: ",e),Promise.resolve(t);if(!n.storage.defaultAssetId)return i.warn("No default assets found"),Promise.resolve(t);const l=n.storage.AssetType,u="svg"===c?l.ImageVector:l.ImageBitmap,h=n.storage.load(u,a,c);let d;return d=t.textLayerMD5?n.storage.load(l.ImageBitmap,t.textLayerMD5,"png"):Promise.resolve(null),Promise.all([h,d]).then((e=>e[0]?(t.asset=e[0],e[1]&&(t.textLayerAsset=e[1]),m(t,n,s)):f(t,n))).catch((e=>(i.warn("Error loading costume: ",e),f(t,n))))},loadCostumeFromAsset:m}},function(e,t){e.exports={ID_NONE:-1,Events:{UseHighQualityRenderChanged:"UseHighQualityRenderChanged",AllowPrivateSkinAccessChanged:"AllowPrivateSkinAccessChanged",NativeSizeChanged:"NativeSizeChanged"}}},function(e,t,n){const r=n(29);r.enable(),e.exports=r("scratch-audioengine")},function(module,exports,__webpack_require__){(function(process,global){var __WEBPACK_AMD_DEFINE_RESULT__;(function(){"use strict";var ERROR="input is invalid type",WINDOW="object"==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&"object"==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&"object"==typeof module&&module.exports,AMD=__webpack_require__(259),ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,HEX_CHARS="0123456789abcdef".split(""),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=["hex","array","digest","buffer","arrayBuffer","base64"],BASE64_ENCODE_CHAR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}!root.JS_MD5_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!ARRAY_BUFFER||!root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e){return function(t){return new Md5(!0).update(t)[e]()}},createMethod=function(){var e=createOutputMethod("hex");NODE_JS&&(e=nodeWrap(e)),e.create=function(){return new Md5},e.update=function(t){return e.create().update(t)};for(var t=0;t<OUTPUT_TYPES.length;++t){var n=OUTPUT_TYPES[t];e[n]=createOutputMethod(n)}return e},nodeWrap=function(method){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),nodeMethod=function(e){if("string"==typeof e)return crypto.createHash("md5").update(e,"utf8").digest("hex");if(null==e)throw ERROR;return e.constructor===ArrayBuffer&&(e=new Uint8Array(e)),Array.isArray(e)||ArrayBuffer.isView(e)||e.constructor===Buffer?crypto.createHash("md5").update(new Buffer(e)).digest("hex"):method(e)};return nodeMethod};function Md5(e){if(e)blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks,this.buffer8=buffer8;else if(ARRAY_BUFFER){var t=new ArrayBuffer(68);this.buffer8=new Uint8Array(t),this.blocks=new Uint32Array(t)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}Md5.prototype.update=function(e){if(!this.finalized){var t,n=typeof e;if("string"!==n){if("object"!==n)throw ERROR;if(null===e)throw ERROR;if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||ARRAY_BUFFER&&ArrayBuffer.isView(e)))throw ERROR;t=!0}for(var r,i,s=0,o=e.length,a=this.blocks,c=this.buffer8;s<o;){if(this.hashed&&(this.hashed=!1,a[0]=a[16],a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),t)if(ARRAY_BUFFER)for(i=this.start;s<o&&i<64;++s)c[i++]=e[s];else for(i=this.start;s<o&&i<64;++s)a[i>>2]|=e[s]<<SHIFT[3&i++];else if(ARRAY_BUFFER)for(i=this.start;s<o&&i<64;++s)(r=e.charCodeAt(s))<128?c[i++]=r:r<2048?(c[i++]=192|r>>6,c[i++]=128|63&r):r<55296||r>=57344?(c[i++]=224|r>>12,c[i++]=128|r>>6&63,c[i++]=128|63&r):(r=65536+((1023&r)<<10|1023&e.charCodeAt(++s)),c[i++]=240|r>>18,c[i++]=128|r>>12&63,c[i++]=128|r>>6&63,c[i++]=128|63&r);else for(i=this.start;s<o&&i<64;++s)(r=e.charCodeAt(s))<128?a[i>>2]|=r<<SHIFT[3&i++]:r<2048?(a[i>>2]|=(192|r>>6)<<SHIFT[3&i++],a[i>>2]|=(128|63&r)<<SHIFT[3&i++]):r<55296||r>=57344?(a[i>>2]|=(224|r>>12)<<SHIFT[3&i++],a[i>>2]|=(128|r>>6&63)<<SHIFT[3&i++],a[i>>2]|=(128|63&r)<<SHIFT[3&i++]):(r=65536+((1023&r)<<10|1023&e.charCodeAt(++s)),a[i>>2]|=(240|r>>18)<<SHIFT[3&i++],a[i>>2]|=(128|r>>12&63)<<SHIFT[3&i++],a[i>>2]|=(128|r>>6&63)<<SHIFT[3&i++],a[i>>2]|=(128|63&r)<<SHIFT[3&i++]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296|0,this.bytes=this.bytes%4294967296),this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[t>>2]|=EXTRA[3&t],t>=56&&(this.hashed||this.hash(),e[0]=e[16],e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.bytes<<3,e[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},Md5.prototype.hash=function(){var e,t,n,r,i,s,o=this.blocks;this.first?t=((t=((e=((e=o[0]-680876937)<<7|e>>>25)-271733879|0)^(n=((n=(-271733879^(r=((r=(-1732584194^2004318071&e)+o[1]-117830708)<<12|r>>>20)+e|0)&(-271733879^e))+o[2]-1126478375)<<17|n>>>15)+r|0)&(r^e))+o[3]-1316259209)<<22|t>>>10)+n|0:(e=this.h0,t=this.h1,n=this.h2,t=((t+=((e=((e+=((r=this.h3)^t&(n^r))+o[0]-680876936)<<7|e>>>25)+t|0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+o[1]-389564586)<<12|r>>>20)+e|0)&(e^t))+o[2]+606105819)<<17|n>>>15)+r|0)&(r^e))+o[3]-1044525330)<<22|t>>>10)+n|0),t=((t+=((e=((e+=(r^t&(n^r))+o[4]-176418897)<<7|e>>>25)+t|0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+o[5]+1200080426)<<12|r>>>20)+e|0)&(e^t))+o[6]-1473231341)<<17|n>>>15)+r|0)&(r^e))+o[7]-45705983)<<22|t>>>10)+n|0,t=((t+=((e=((e+=(r^t&(n^r))+o[8]+1770035416)<<7|e>>>25)+t|0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+o[9]-1958414417)<<12|r>>>20)+e|0)&(e^t))+o[10]-42063)<<17|n>>>15)+r|0)&(r^e))+o[11]-1990404162)<<22|t>>>10)+n|0,t=((t+=((e=((e+=(r^t&(n^r))+o[12]+1804603682)<<7|e>>>25)+t|0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+o[13]-40341101)<<12|r>>>20)+e|0)&(e^t))+o[14]-1502002290)<<17|n>>>15)+r|0)&(r^e))+o[15]+1236535329)<<22|t>>>10)+n|0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+o[1]-165796510)<<5|e>>>27)+t|0)^t))+o[6]-1069501632)<<9|r>>>23)+e|0)^e&((n=((n+=(e^t&(r^e))+o[11]+643717713)<<14|n>>>18)+r|0)^r))+o[0]-373897302)<<20|t>>>12)+n|0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+o[5]-701558691)<<5|e>>>27)+t|0)^t))+o[10]+38016083)<<9|r>>>23)+e|0)^e&((n=((n+=(e^t&(r^e))+o[15]-660478335)<<14|n>>>18)+r|0)^r))+o[4]-405537848)<<20|t>>>12)+n|0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+o[9]+568446438)<<5|e>>>27)+t|0)^t))+o[14]-1019803690)<<9|r>>>23)+e|0)^e&((n=((n+=(e^t&(r^e))+o[3]-187363961)<<14|n>>>18)+r|0)^r))+o[8]+1163531501)<<20|t>>>12)+n|0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+o[13]-1444681467)<<5|e>>>27)+t|0)^t))+o[2]-51403784)<<9|r>>>23)+e|0)^e&((n=((n+=(e^t&(r^e))+o[7]+1735328473)<<14|n>>>18)+r|0)^r))+o[12]-1926607734)<<20|t>>>12)+n|0,t=((t+=((s=(r=((r+=((i=t^n)^(e=((e+=(i^r)+o[5]-378558)<<4|e>>>28)+t|0))+o[8]-2022574463)<<11|r>>>21)+e|0)^e)^(n=((n+=(s^t)+o[11]+1839030562)<<16|n>>>16)+r|0))+o[14]-35309556)<<23|t>>>9)+n|0,t=((t+=((s=(r=((r+=((i=t^n)^(e=((e+=(i^r)+o[1]-1530992060)<<4|e>>>28)+t|0))+o[4]+1272893353)<<11|r>>>21)+e|0)^e)^(n=((n+=(s^t)+o[7]-155497632)<<16|n>>>16)+r|0))+o[10]-1094730640)<<23|t>>>9)+n|0,t=((t+=((s=(r=((r+=((i=t^n)^(e=((e+=(i^r)+o[13]+681279174)<<4|e>>>28)+t|0))+o[0]-358537222)<<11|r>>>21)+e|0)^e)^(n=((n+=(s^t)+o[3]-722521979)<<16|n>>>16)+r|0))+o[6]+76029189)<<23|t>>>9)+n|0,t=((t+=((s=(r=((r+=((i=t^n)^(e=((e+=(i^r)+o[9]-640364487)<<4|e>>>28)+t|0))+o[12]-421815835)<<11|r>>>21)+e|0)^e)^(n=((n+=(s^t)+o[15]+530742520)<<16|n>>>16)+r|0))+o[2]-995338651)<<23|t>>>9)+n|0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+o[0]-198630844)<<6|e>>>26)+t|0)|~n))+o[7]+1126891415)<<10|r>>>22)+e|0)^((n=((n+=(e^(r|~t))+o[14]-1416354905)<<15|n>>>17)+r|0)|~e))+o[5]-57434055)<<21|t>>>11)+n|0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+o[12]+1700485571)<<6|e>>>26)+t|0)|~n))+o[3]-1894986606)<<10|r>>>22)+e|0)^((n=((n+=(e^(r|~t))+o[10]-1051523)<<15|n>>>17)+r|0)|~e))+o[1]-2054922799)<<21|t>>>11)+n|0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+o[8]+1873313359)<<6|e>>>26)+t|0)|~n))+o[15]-30611744)<<10|r>>>22)+e|0)^((n=((n+=(e^(r|~t))+o[6]-1560198380)<<15|n>>>17)+r|0)|~e))+o[13]+1309151649)<<21|t>>>11)+n|0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+o[4]-145523070)<<6|e>>>26)+t|0)|~n))+o[11]-1120210379)<<10|r>>>22)+e|0)^((n=((n+=(e^(r|~t))+o[2]+718787259)<<15|n>>>17)+r|0)|~e))+o[9]-343485551)<<21|t>>>11)+n|0,this.first?(this.h0=e+1732584193|0,this.h1=t-271733879|0,this.h2=n-1732584194|0,this.h3=r+271733878|0,this.first=!1):(this.h0=this.h0+e|0,this.h1=this.h1+t|0,this.h2=this.h2+n|0,this.h3=this.h3+r|0)},Md5.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3;return HEX_CHARS[e>>4&15]+HEX_CHARS[15&e]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[15&t]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[15&n]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[15&r]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3;return[255&e,e>>8&255,e>>16&255,e>>24&255,255&t,t>>8&255,t>>16&255,t>>24&255,255&n,n>>8&255,n>>16&255,n>>24&255,255&r,r>>8&255,r>>16&255,r>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(16),t=new Uint32Array(e);return t[0]=this.h0,t[1]=this.h1,t[2]=this.h2,t[3]=this.h3,e},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var e,t,n,r="",i=this.array(),s=0;s<15;)e=i[s++],t=i[s++],n=i[s++],r+=BASE64_ENCODE_CHAR[e>>>2]+BASE64_ENCODE_CHAR[63&(e<<4|t>>>4)]+BASE64_ENCODE_CHAR[63&(t<<2|n>>>6)]+BASE64_ENCODE_CHAR[63&n];return e=i[s],r+=BASE64_ENCODE_CHAR[e>>>2]+BASE64_ENCODE_CHAR[e<<4&63]+"=="};var exports=createMethod();COMMON_JS?module.exports=exports:(root.md5=exports,AMD&&(__WEBPACK_AMD_DEFINE_RESULT__=function(){return exports}.call(exports,__webpack_require__,exports,module),void 0===__WEBPACK_AMD_DEFINE_RESULT__||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)))})()}).call(this,__webpack_require__(38),__webpack_require__(8))},function(e,t){var n,r,i=e.exports={};function s(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===s||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:s}catch(e){n=s}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var c,l=[],u=!1,h=-1;function d(){u&&c&&(u=!1,c.length?l=c.concat(l):h=-1,l.length&&p())}function p(){if(!u){var e=a(d);u=!0;for(var t=l.length;t;){for(c=l,l=[];++h<t;)c&&c[h].run();h=-1,t=l.length}c=null,u=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{return r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function m(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new f(e,t)),1!==l.length||u||a(p)},f.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=m,i.addListener=m,i.once=m,i.off=m,i.removeListener=m,i.removeAllListeners=m,i.emit=m,i.prependListener=m,i.prependOnceListener=m,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(e,t){e.exports={SPRITE:"sprite",STAGE:"stage"}},function(e,t,n){const r=n(14);e.exports=class{constructor(e){this._maxTokens=e,this._refillInterval=1e3/e,this._count=this._maxTokens,this._timer=new r,this._timer.start(),this._lastUpdateTime=this._timer.timeElapsed()}okayToSend(){const e=this._timer.timeElapsed(),t=e-this._lastUpdateTime,n=Math.floor(t/this._refillInterval);return n>0&&(this._lastUpdateTime=e),this._count=Math.min(this._maxTokens,this._count+n),this._count>0&&(this._count--,!0)}}},function(e,t,n){(function(t){let n=t.fetch;e.exports={fetchWithTimeout:(e,t,r)=>{let i=null;const s=window.AbortController?new window.AbortController:null,o=s?s.signal:null;return Promise.race([n(e,Object.assign({signal:o},t)).then((e=>(clearTimeout(i),e)),(e=>{throw clearTimeout(i),e})),new Promise(((e,t)=>{i=setTimeout((()=>{s&&s.abort(),t(new Error("Fetch timed out after ".concat(r," ms")))}),r)}))])},setFetch:e=>{n=e}}}).call(this,n(8))},function(e,t,n){function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const s=n(19),o=n(62),a=n(301),c=n(3),l=n(17),u=n(66),h=n(2),d=n(185),p=n(186),f=n(32),m=n(46),g=n(69),b=n(39),y=n(20),E=n(0),T=n(56),v=n(13),A=n(9),w=n(31),S=n(193),k=n(194),O=n(41),I=n(196),N=n(197),R=n(198),x=n(199),M=n(200),C=n(201),P=n(202),L=n(203),D=n(204),B=n(70),U=n(6),F=n(7),j={scratch3_control:n(205),scratch3_event:n(206),scratch3_looks:n(207),scratch3_motion:n(208),scratch3_operators:n(209),scratch3_sound:n(210),scratch3_sensing:n(211),scratch3_data:n(212),scratch3_procedures:n(213)},z=n(214),G=n(215),V=n(24),Y=["#0FBD8C","#0DA57A","#0B8E69"],_=" // _twconfig_",H=(()=>{const e={};return e[c.ANGLE]={shadow:{type:"math_angle",fieldName:"NUM"}},e[c.COLOR]={shadow:{type:"colour_picker",fieldName:"COLOUR"}},e[c.NUMBER]={shadow:{type:"math_number",fieldName:"NUM"}},e[c.STRING]={shadow:{type:"text",fieldName:"TEXT"}},e[c.BOOLEAN]={check:"Boolean"},e[c.MATRIX]={shadow:{type:"matrix",fieldName:"MATRIX"}},e[c.NOTE]={shadow:{type:"note",fieldName:"NOTE"}},e[c.IMAGE]={fieldType:"field_image"},e[c.COSTUME]={shadow:{type:"looks_costume",fieldName:"COSTUME"}},e[c.SOUND]={shadow:{type:"sound_sounds_menu",fieldName:"SOUND_MENU"}},e})(),W=e=>{let t=0;return{canAddCloudVariable:()=>t<e.limit,addCloudVariable:()=>{t++},removeCloudVariable:()=>{t--},hasCloudVariables:()=>t>0,getNumberOfCloudVariables:()=>t}};let K=-1,X=-1,Z=-1;class q extends s{constructor(){super(),this.targets=[],this.executableTargets=[],this.threads=[],this.threadMap=new Map,this.sequencer=new p(this),this.flyoutBlocks=new l(this,!0),this.monitorBlocks=new l(this,!0),this._editingTarget=null,this._primitives={},this._blockInfo=[],this._hats={},this._flowing={},this._scriptGlowsPreviousFrame=[],this._nonMonitorThreadCount=0,this._lastStepDoneThreads=null,this._cloneCounter=0,this._refreshTargets=!1,this.monitorBlockInfo={},this._monitorState=new R,this.turboMode=!1,this.frameLoop=new G(this),this.currentStepTime=1e3/30,this.updateCurrentMSecs(),this.redrawRequested=!1,this._registerBlockPackages(),this.ioDevices={clock:new x(this),cloud:new M(this),keyboard:new C(this),mouse:new P(this),mouseWheel:new L(this),userData:new D,video:new B(this)},this.peripheralExtensions={},this.profiler=null,this.cloudOptions={limit:10};const e=W(this.cloudOptions);this.hasCloudData=e.hasCloudVariables,this.canAddCloudVariable=e.canAddCloudVariable,this.getNumberOfCloudVariables=e.getNumberOfCloudVariables,this.addCloudVariable=this._initializeAddCloudVariable(e),this.removeCloudVariable=this._initializeRemoveCloudVariable(e),this.origin=null,this.platform=Object.assign({},I),this._initScratchLink(),this.resetRunId(),this._stageTarget=null,this.addonBlocks={},this.stageWidth=q.STAGE_WIDTH,this.stageHeight=q.STAGE_HEIGHT,this.runtimeOptions={maxClones:q.MAX_CLONES,miscLimits:!0,fencing:!0},this.compilerOptions={enabled:!0,warpTimer:!1},this.debug=!1,this._lastStepTime=Date.now(),this.interpolationEnabled=!1,this._defaultStoredSettings=this._generateAllProjectOptions(),this.isPackaged=!1,this.externalCommunicationMethods={cloudVariables:!1,customExtensions:!1},this.on(q.HAS_CLOUD_DATA_UPDATE,(e=>{this.setExternalCommunicationMethod("cloudVariables",e)})),this.enforcePrivacy=!0,this.extensionButtons=new Map,this.fontManager=new k(this),this.extensionStorage={},this.totalAssetRequests=0,this.finishedAssetRequests=0}static get STAGE_WIDTH(){return 480}static get STAGE_HEIGHT(){return 360}static get SCRIPT_GLOW_ON(){return"SCRIPT_GLOW_ON"}static get SCRIPT_GLOW_OFF(){return"SCRIPT_GLOW_OFF"}static get BLOCK_GLOW_ON(){return"BLOCK_GLOW_ON"}static get BLOCK_GLOW_OFF(){return"BLOCK_GLOW_OFF"}static get HAS_CLOUD_DATA_UPDATE(){return"HAS_CLOUD_DATA_UPDATE"}static get TURBO_MODE_ON(){return"TURBO_MODE_ON"}static get TURBO_MODE_OFF(){return"TURBO_MODE_OFF"}static get RUNTIME_OPTIONS_CHANGED(){return"RUNTIME_OPTIONS_CHANGED"}static get COMPILER_OPTIONS_CHANGED(){return"COMPILER_OPTIONS_CHANGED"}static get FRAMERATE_CHANGED(){return"FRAMERATE_CHANGED"}static get INTERPOLATION_CHANGED(){return"INTERPOLATION_CHANGED"}static get STAGE_SIZE_CHANGED(){return"STAGE_SIZE_CHANGED"}static get COMPILE_ERROR(){return"COMPILE_ERROR"}static get BEFORE_EXECUTE(){return"BEFORE_EXECUTE"}static get AFTER_EXECUTE(){return"AFTER_EXECUTE"}static get ASSET_PROGRESS(){return"ASSET_PROGRESS"}static get PROJECT_START(){return"PROJECT_START"}static get PROJECT_RUN_START(){return"PROJECT_RUN_START"}static get PROJECT_RUN_STOP(){return"PROJECT_RUN_STOP"}static get PROJECT_STOP_ALL(){return"PROJECT_STOP_ALL"}static get STOP_FOR_TARGET(){return"STOP_FOR_TARGET"}static get VISUAL_REPORT(){return"VISUAL_REPORT"}static get PROJECT_LOADED(){return"PROJECT_LOADED"}static get PROJECT_CHANGED(){return"PROJECT_CHANGED"}static get TOOLBOX_EXTENSIONS_NEED_UPDATE(){return"TOOLBOX_EXTENSIONS_NEED_UPDATE"}static get TARGETS_UPDATE(){return"TARGETS_UPDATE"}static get MONITORS_UPDATE(){return"MONITORS_UPDATE"}static get BLOCK_DRAG_UPDATE(){return"BLOCK_DRAG_UPDATE"}static get BLOCK_DRAG_END(){return"BLOCK_DRAG_END"}static get EXTENSION_ADDED(){return"EXTENSION_ADDED"}static get EXTENSION_FIELD_ADDED(){return"EXTENSION_FIELD_ADDED"}static get PERIPHERAL_LIST_UPDATE(){return"PERIPHERAL_LIST_UPDATE"}static get USER_PICKED_PERIPHERAL(){return"USER_PICKED_PERIPHERAL"}static get PERIPHERAL_CONNECTED(){return"PERIPHERAL_CONNECTED"}static get PERIPHERAL_DISCONNECTED(){return"PERIPHERAL_DISCONNECTED"}static get PERIPHERAL_REQUEST_ERROR(){return"PERIPHERAL_REQUEST_ERROR"}static get PERIPHERAL_CONNECTION_LOST_ERROR(){return"PERIPHERAL_CONNECTION_LOST_ERROR"}static get PERIPHERAL_SCAN_TIMEOUT(){return"PERIPHERAL_SCAN_TIMEOUT"}static get MIC_LISTENING(){return"MIC_LISTENING"}static get BLOCKSINFO_UPDATE(){return"BLOCKSINFO_UPDATE"}static get RUNTIME_STARTED(){return"RUNTIME_STARTED"}static get RUNTIME_STOPPED(){return"RUNTIME_STOPPED"}static get RUNTIME_DISPOSED(){return"RUNTIME_DISPOSED"}static get BLOCKS_NEED_UPDATE(){return"BLOCKS_NEED_UPDATE"}static get PLATFORM_MISMATCH(){return"PLATFORM_MISMATCH"}static get THREAD_STEP_INTERVAL(){return 1e3/60}static get THREAD_STEP_INTERVAL_COMPATIBILITY(){return 1e3/30}static get MAX_CLONES(){return 300}_initializeAddCloudVariable(e){return()=>{const t=this.hasCloudData();e.addCloudVariable(),!t&&this.hasCloudData()&&this.emit(q.HAS_CLOUD_DATA_UPDATE,!0)}}_initializeRemoveCloudVariable(e){return()=>{const t=this.hasCloudData();e.removeCloudVariable(),t&&!this.hasCloudData()&&this.emit(q.HAS_CLOUD_DATA_UPDATE,!1)}}_registerBlockPackages(){for(const e in j)if(Object.prototype.hasOwnProperty.call(j,e)){const t=new j[e](this);if(t.getPrimitives){const e=t.getPrimitives();for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(this._primitives[n]=e[n].bind(t))}if(t.getHats){const e=t.getHats();for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(this._hats[t]=e[t])}t.getMonitored&&(this.monitorBlockInfo=Object.assign({},this.monitorBlockInfo,t.getMonitored())),this.compilerRegisterExtension(e,t)}}compilerRegisterExtension(e,t){this["ext_".concat(e)]=t}getMonitorState(){return this._monitorState}_makeExtensionMenuId(e,t){return"".concat(t,"_menu_").concat(e)}makeMessageContextForTarget(e){const t={};(e=e||this.getEditingTarget()||this.getTargetForStage())&&(t.targetType=e.isStage?b.STAGE:b.SPRITE)}_registerExtensionPrimitives(e){const t={id:e.id,name:T(e.name),showStatusButton:e.showStatusButton,blockIconURI:e.blockIconURI,menuIconURI:e.menuIconURI};e.color1?(t.color1=e.color1,t.color2=e.color2,t.color3=e.color3):(t.color1=Y[0],t.color2=Y[1],t.color3=Y[2]),this._blockInfo.push(t),this._fillExtensionCategory(t,e);for(const n in t.customFieldTypes)if(Object.prototype.hasOwnProperty.call(e.customFieldTypes,n)){const e=t.customFieldTypes[n];this.emit(q.EXTENSION_FIELD_ADDED,{name:"field_".concat(e.extendedName),implementation:e.fieldImplementation})}this.emit(q.EXTENSION_ADDED,t)}_refreshExtensionPrimitives(e){const t=this._blockInfo.find((t=>t.id===e.id));t&&(t.name=T(e.name),this._fillExtensionCategory(t,e),this.emit(q.BLOCKSINFO_UPDATE,t))}_fillExtensionCategory(e,t){e.blocks=[],e.customFieldTypes={},e.menus=[],e.menuInfo={};for(const n in t.menus)if(Object.prototype.hasOwnProperty.call(t.menus,n)){const r=t.menus[n],i=this._buildMenuForScratchBlocks(n,r,e);e.menus.push(i),e.menuInfo[n]=r}for(const n in t.customFieldTypes)if(Object.prototype.hasOwnProperty.call(t.customFieldTypes,n)){const r=t.customFieldTypes[n],i=this._buildCustomFieldInfo(n,r,t.id,e);e.customFieldTypes[n]=i}if(t.docsURI){const n={info:{},xml:"<button "+'text="'.concat(w(T({id:"tw.blocks.openDocs",default:"Open Documentation",description:"Button that opens site with more documentation about an extension"})),'" ')+'callbackKey="OPEN_EXTENSION_DOCS" '+'callbackData="'.concat(w(t.docsURI),'"></button>')};e.blocks.push(n)}for(const n of t.blocks)try{const t=this._convertForScratchBlocks(n,e);if(e.blocks.push(t),t.json){const e=t.json.type;n.blockType!==h.EVENT&&(this._primitives[e]=t.info.func),n.blockType===h.EVENT||n.blockType===h.HAT?this._hats[e]={edgeActivated:n.isEdgeActivated,restartExistingThreads:n.shouldRestartExistingThreads}:n.blockType===h.CONDITIONAL?this._flowing[e]={conditional:!0,loop:!1}:n.blockType===h.LOOP&&(this._flowing[e]={conditional:!1,loop:!0})}}catch(e){E.error("Error parsing block: ",{block:n,error:e})}}_convertMenuItems(e){if("function"!=typeof e){const t=this.makeMessageContextForTarget();return e.map((e=>{const n=T(e,t);switch(typeof n){case"string":return[n,n];case"object":return[T(e.text,t),e.value];default:throw new Error("Can't interpret menu item: ".concat(JSON.stringify(e)))}}))}return e}_buildMenuForScratchBlocks(e,t,n){const r=this._makeExtensionMenuId(e,n.id),i=this._convertMenuItems(t.items);return{json:{message0:"%1",type:r,inputsInline:!0,output:"String",colour:n.color1,colourSecondary:n.color2,colourTertiary:n.color3,outputShape:t.acceptReporters?g.OUTPUT_SHAPE_ROUND:g.OUTPUT_SHAPE_SQUARE,args0:[{type:"field_dropdown",name:e,options:i}]}}}_buildCustomFieldInfo(e,t,n,r){const i="".concat(n,"_").concat(e);return{fieldName:e,extendedName:i,argumentTypeInfo:{shadow:{type:i,fieldName:"field_".concat(i)}},scratchBlocksDefinition:this._buildCustomFieldTypeForScratchBlocks(i,t.output,t.outputShape,r),fieldImplementation:t.implementation}}_buildCustomFieldTypeForScratchBlocks(e,t,n,r){return{json:{type:e,message0:"%1",inputsInline:!0,output:t,colour:r.color1,colourSecondary:r.color2,colourTertiary:r.color3,outputShape:n,args0:[{name:"field_".concat(e),type:"field_".concat(e)}]}}}_convertForScratchBlocks(e,t){return"---"===e?this._convertSeparatorForScratchBlocks(e):e.blockType===h.LABEL?this._convertLabelForScratchBlocks(e):e.blockType===h.BUTTON?this._convertButtonForScratchBlocks(e,t):e.blockType===h.XML?this._convertXmlForScratchBlocks(e):this._convertBlockForScratchBlocks(e,t)}_convertBlockForScratchBlocks(e,t){var n,r,i;const s="".concat(t.id,"_").concat(e.opcode),o={type:s,inputsInline:!0,category:t.name,extensions:[],colour:null!==(n=e.color1)&&void 0!==n?n:t.color1,colourSecondary:null!==(r=e.color2)&&void 0!==r?r:t.color2,colourTertiary:null!==(i=e.color3)&&void 0!==i?i:t.color3},a={argsMap:{},blockJSON:o,categoryInfo:t,blockInfo:e,inputList:[]},c=e.blockIconURI||t.blockIconURI;if(o.extensions.push("from_extension"),o.colour===Y[0]&&o.colourSecondary===Y[1]&&o.colourTertiary===Y[2]&&o.extensions.push("default_extension_colors"),c){o.extensions.push("scratch_extension"),o.message0="%1 %2";const e={type:"field_image",src:c,width:40,height:40},t={type:"field_vertical_separator"};o.args0=[e,t]}switch(e.blockType){case h.COMMAND:o.outputShape=g.OUTPUT_SHAPE_SQUARE,o.previousStatement=null,e.isTerminal||(o.nextStatement=null);break;case h.REPORTER:o.output=e.allowDropAnywhere?null:"String",o.outputShape=g.OUTPUT_SHAPE_ROUND;break;case h.BOOLEAN:o.output="Boolean",o.outputShape=g.OUTPUT_SHAPE_HEXAGONAL;break;case h.HAT:case h.EVENT:Object.prototype.hasOwnProperty.call(e,"isEdgeActivated")||(e.isEdgeActivated=!0),o.outputShape=g.OUTPUT_SHAPE_SQUARE,o.nextStatement=null;break;case h.CONDITIONAL:case h.LOOP:e.branchCount=e.branchCount||1,o.outputShape=g.OUTPUT_SHAPE_SQUARE,o.previousStatement=null,e.isTerminal||(o.nextStatement=null)}e.blockShape&&(o.outputShape=e.blockShape);const l=Array.isArray(e.text)?e.text:[e.text];let u=0,d=0,p=0;const f=this._convertPlaceholders.bind(this,a),m=this.makeMessageContextForTarget();for(;u<l.length||d<e.branchCount;){if(u<l.length){a.outLineNum=p;const e=T(l[u],m).replace(/\[(.+?)]/g,f);o["message".concat(p)]?o["message".concat(p)]+=e:o["message".concat(p)]=e,++u,++p}d<e.branchCount&&(o["message".concat(p)]="%1",o["args".concat(p)]=[{type:"input_statement",name:"SUBSTACK".concat(d>0?d+1:"")}],++d,++p)}if(e.blockType===h.REPORTER||e.blockType===h.BOOLEAN)e.disableMonitor||0!==a.inputList.length||(o.checkboxInFlyout=!0);else if(e.branchIconURI||e.blockType===h.LOOP&&!Object.prototype.hasOwnProperty.call(e,"branchIconURI")){var b;o["lastDummyAlign".concat(p)]="RIGHT",o["message".concat(p)]="%1",o["args".concat(p)]=[{type:"field_image",src:null!==(b=e.branchIconURI)&&void 0!==b?b:"media://repeat.svg",width:24,height:24,alt:"*",flip_rtl:!0}],++p}const y=e.isDynamic?'<mutation blockInfo="'.concat(w(JSON.stringify(e)),'"/>'):"",E=a.inputList.join(""),v='<block type="'.concat(w(s),'">').concat(y).concat(E,"</block>");if(e.extensions)for(const t of e.extensions)o.extensions.includes(t)||o.extensions.push(t);return{info:a.blockInfo,json:a.blockJSON,xml:v}}_convertSeparatorForScratchBlocks(e){return{info:e,xml:'<sep gap="36"/>'}}_convertLabelForScratchBlocks(e){return{info:e,xml:'<label text="'.concat(w(e.text),'"></label>')}}_convertButtonForScratchBlocks(e,t){const n=this.makeMessageContextForTarget(),r=T(e.text,n);if(["MAKE_A_LIST","MAKE_A_PROCEDURE","MAKE_A_VARIABLE"].includes(e.func))return{info:e,xml:'<button text="'.concat(w(r),'" callbackKey="').concat(w(e.func),'"></button>')};const i="".concat(t.id,"_").concat(e.func);return this.extensionButtons.set(i,e.callFunc),{info:e,xml:'<button text="'.concat(w(r),'"')+' callbackKey="EXTENSION_CALLBACK"'+' callbackData="'.concat(w(i),'"></button>')}}_convertXmlForScratchBlocks(e){return{info:e,xml:e.xml}}handleExtensionButtonPress(e){this.extensionButtons.get(e)()}_constructInlineImageJson(e){return e.dataURI||E.warn("Missing data URI in extension block with argument type IMAGE"),{type:"field_image",src:e.dataURI||"",width:24,height:24,flip_rtl:e.flipRTL||!1}}_convertPlaceholders(e,t,n){const r=e.blockInfo.arguments[n]||{};let i,s=H[r.type]||{};if(!H[r.type]&&e.categoryInfo.customFieldTypes[r.type]&&(s=e.categoryInfo.customFieldTypes[r.type].argumentTypeInfo),"field_image"===s.fieldType)i=this._constructInlineImageJson(r);else{i={type:"input_value",name:n};const t=void 0===r.defaultValue?null:T(r.defaultValue,this.makeMessageContextForTarget()).toString();let o,a,c;if(s.check&&(i.check=s.check),r.menu){const t=e.categoryInfo.menuInfo[r.menu];t.acceptReporters?(o=n,a=this._makeExtensionMenuId(r.menu,e.categoryInfo.id),c=r.menu):(i.type="field_dropdown",i.options=this._convertMenuItems(t.items),o=null,a=null,c=n)}else o=n,a=s.shadow&&s.shadow.type||null,c=s.shadow&&s.shadow.fieldName||null;o&&e.inputList.push('<value name="'.concat(w(n),'">')),a&&e.inputList.push('<shadow type="'.concat(w(a),'">')),null!==t&&c&&e.inputList.push('<field name="'.concat(w(c),'">').concat(w(t),"</field>")),a&&e.inputList.push("</shadow>"),o&&e.inputList.push("</value>")}const o="args".concat(e.outLineNum),a=e.blockJSON[o]=e.blockJSON[o]||[];i&&a.push(i);const c=a.length;return e.argsMap[n]=c,"%".concat(c)}getBlocksXML(e){return this._blockInfo.map((t=>{const{name:n,color1:r,color2:i}=t,s=t.blocks.filter((t=>{let n=!0;return e&&t.info.filter&&(n=t.info.filter.includes(e.isStage?b.STAGE:b.SPRITE)),n&&!t.info.hideFromPalette})),o='colour="'.concat(w(r),'" secondaryColour="').concat(w(i),'"');let a="";t.menuIconURI?a=t.menuIconURI:t.blockIconURI&&(a=t.blockIconURI);const c=a?'iconURI="'.concat(w(a),'"'):"";let l="";t.showStatusButton&&(l='showStatusButton="true"');let u='<category name="'.concat(w(n),'"');return u+=' id="'.concat(w(t.id),'"'),u+=" ".concat(l),u+=" ".concat(o),u+=" ".concat(c,">"),u+=s.map((e=>e.xml)).join(""),u+="</category>",{id:t.id,xml:u}}))}getBlocksJSON(){return this._blockInfo.reduce(((e,t)=>e.concat(t.blocks.map((e=>e.json)))),[])}_initScratchLink(){if("undefined"!=typeof self&&"undefined"!=typeof document&&document.getElementById&&self.origin&&"null"!==self.origin&&self.navigator&&self.navigator.userAgent&&!self.navigator.userAgent.includes("Node.js")&&!self.navigator.userAgent.includes("jsdom")){if(!document.getElementById("scratch-link-extension-script")){const e=document.createElement("script");e.id="scratch-link-extension-script",document.body.appendChild(e),self.postMessage("inject-scratch-link-script",self.origin)}}}getScratchLinkSocket(e){return(this._linkSocketFactory||this._defaultScratchLinkSocketFactory)(e)}configureScratchLinkSocketFactory(e){this._linkSocketFactory=e}_defaultScratchLinkSocketFactory(e){const t=self.Scratch,n=t&&t.ScratchLinkSafariSocket;return n&&n.isSafariHelperCompatible()?new n(e):new S(e)}registerPeripheralExtension(e,t){this.peripheralExtensions[e]=t}scanForPeripheral(e){this.peripheralExtensions[e]&&this.peripheralExtensions[e].scan()}connectPeripheral(e,t){this.peripheralExtensions[e]&&this.peripheralExtensions[e].connect(t)}disconnectPeripheral(e){this.peripheralExtensions[e]&&this.peripheralExtensions[e].disconnect()}getPeripheralIsConnected(e){let t=!1;return this.peripheralExtensions[e]&&(t=this.peripheralExtensions[e].isConnected()),t}emitMicListening(e){this.emit(q.MIC_LISTENING,e)}getOpcodeFunction(e){return this._primitives[e]}getIsHat(e){return Object.prototype.hasOwnProperty.call(this._hats,e)}getIsEdgeActivatedHat(e){return Object.prototype.hasOwnProperty.call(this._hats,e)&&this._hats[e].edgeActivated}attachAudioEngine(e){this.audioEngine=e}attachRenderer(e){this.renderer=e,this.renderer.setLayerGroupOrdering(v.LAYER_GROUPS),this.renderer.offscreenTouching=!this.runtimeOptions.fencing,this.updatePrivacy()}attachV2BitmapAdapter(e){this.v2BitmapAdapter=e}attachStorage(e){if(this.storage=e,this.isPackaged){const t=e.createAsset;let n=0;e.createAsset=function(e,r,i,s,o){return s||(s=(++n).toString()),t.call(this,e,r,i,s,!1)}}O.setFetch(e.scratchFetch.scratchFetch),this.resetRunId()}_pushThread(e,t,n){const r=new y(e);return r.target=t,r.stackClick=Boolean(n&&n.stackClick),r.updateMonitor=Boolean(n&&n.updateMonitor),r.blockContainer=r.updateMonitor?this.monitorBlocks:t.blocks,r.pushStack(e),this.threads.push(r),r.stackClick||r.updateMonitor||this.threadMap.set(r.getId(),r),n&&n.updateMonitor||!this.compilerOptions.enabled||r.tryCompile(),r}_stopThread(e){e.isKilled=!0,this.sequencer.retireThread(e)}_restartThread(e){const t=new y(e.topBlock);t.target=e.target,t.stackClick=e.stackClick,t.updateMonitor=e.updateMonitor,t.blockContainer=e.blockContainer,t.pushStack(e.topBlock),e.triedToCompile&&this.compilerOptions.enabled&&t.tryCompile(),t.stackClick||t.updateMonitor||this.threadMap.set(t.getId(),t);const n=this.threads.indexOf(e);return n>-1?(this.threads[n]=t,t):(this.threads.push(e),e)}emitCompileError(e,t){this.emit(q.COMPILE_ERROR,e,t)}isActiveThread(e){return e.stack.length>0&&e.status!==y.STATUS_DONE&&this.threads.indexOf(e)>-1}isWaitingThread(e){return e.status===y.STATUS_PROMISE_WAIT||e.status===y.STATUS_YIELD_TICK||!this.isActiveThread(e)}toggleScript(e,t){t=Object.assign({target:this._editingTarget,stackClick:!1},t);for(let n=0;n<this.threads.length;n++)if(this.threads[n].topBlock===e&&this.threads[n].status!==y.STATUS_DONE){const r=t.target.blocks,i=r.getOpcode(r.getBlock(e));if(this.getIsEdgeActivatedHat(i)&&this.threads[n].stackClick!==t.stackClick)continue;return void this._stopThread(this.threads[n])}this._pushThread(e,t.target,t)}addMonitorScript(e,t){t||(t=this._editingTarget);for(let t=0;t<this.threads.length;t++)if(this.threads[t].topBlock===e&&this.threads[t].status!==y.STATUS_DONE&&this.threads[t].updateMonitor)return;this._pushThread(e,t,{updateMonitor:!0})}allScriptsDo(e,t){let n=this.executableTargets;t&&(n=[t]);for(let t=n.length-1;t>=0;t--){const r=n[t],i=r.blocks.getScripts();for(let t=0;t<i.length;t++){e(i[t],r)}}}allScriptsByOpcodeDo(e,t,n){let r=this.executableTargets;n&&(r=[n]);for(let n=r.length-1;n>=0;n--){const i=r[n],s=u.getScripts(i.blocks,e);for(let e=0;e<s.length;e++)t(s[e],i)}}startHats(e,t,n){if(!Object.prototype.hasOwnProperty.call(this._hats,e))return;const r=[],i=this._hats[e];for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e]=t[e].toUpperCase());const s=this.threads.length;return this.allScriptsByOpcodeDo(e,((e,n)=>{const{blockId:o,fieldsOfInputs:a}=e;for(const e in t)if(a[e].value!==t[e])return;if(i.restartExistingThreads){const e=this.threadMap.get(y.getIdFromTargetAndBlock(n,o));if(e)return void r.push(this._restartThread(e))}else for(let e=0;e<s;e++)if(this.threads[e].target===n&&this.threads[e].topBlock===o&&!this.threads[e].stackClick&&this.threads[e].status!==y.STATUS_DONE)return;r.push(this._pushThread(o,n))}),n),r.forEach((e=>{e.isCompiled?e.executableHat&&(m.saveGlobalState(),m(e),m.restoreGlobalState()):(f(this.sequencer,e),e.goToNextBlock())})),r}dispose(){this.stopAll(),this.targets.forEach((e=>{e.isOriginal&&e.deleteMonitors()})),this.targets.map(this.disposeTarget,this),this.extensionStorage={},this._monitorState.empty()||(this._monitorState=new R,this.emit(q.MONITORS_UPDATE,this._monitorState.shallowClone())),this.emit(q.RUNTIME_DISPOSED),this.ioDevices.clock.resetProjectTimer(),this.fontManager.clear(),this.hasCloudData()&&this.emit(q.HAS_CLOUD_DATA_UPDATE,!1),this.ioDevices.cloud.clear();const e=W(this.cloudOptions);this.hasCloudData=e.hasCloudVariables,this.canAddCloudVariable=e.canAddCloudVariable,this.getNumberOfCloudVariables=e.getNumberOfCloudVariables,this.addCloudVariable=this._initializeAddCloudVariable(e),this.removeCloudVariable=this._initializeRemoveCloudVariable(e),this.resetProgress()}addTarget(e){this.targets.push(e),this.executableTargets.push(e),e.isStage&&!this._stageTarget&&(this._stageTarget=e)}moveExecutable(e,t){const n=this.executableTargets.indexOf(e);this.executableTargets.splice(n,1);let r=n+t;return r>this.executableTargets.length&&(r=this.executableTargets.length),r<=0&&(r=this.executableTargets.length>0&&this.executableTargets[0].isStage?1:0),this.executableTargets.splice(r,0,e),r}setExecutablePosition(e,t){const n=this.executableTargets.indexOf(e);return this.moveExecutable(e,t-n)}removeExecutable(e){const t=this.executableTargets.indexOf(e);t>-1&&this.executableTargets.splice(t,1)}disposeTarget(e){this.targets=this.targets.filter((t=>e!==t||(t.dispose(),!1))),this._stageTarget===e&&(this._stageTarget=null)}stopForTarget(e,t){this.emit(q.STOP_FOR_TARGET,e,t);for(let n=0;n<this.threads.length;n++)this.threads[n]!==t&&this.threads[n].target===e&&this._stopThread(this.threads[n])}resetRunId(){if(!this.storage)return;const e=a.v1();this.storage.scratchFetch.setMetadata(this.storage.scratchFetch.RequestMetadata.RunId,e)}greenFlag(){this.stopAll(),this.emit(q.PROJECT_START),this.updateCurrentMSecs(),this.ioDevices.clock.resetProjectTimer(),this.targets.forEach((e=>e.clearEdgeActivatedValues()));for(let e=0;e<this.targets.length;e++)this.targets[e].onGreenFlag();this.startHats("event_whenflagclicked")}stopAll(){this.emit(q.PROJECT_STOP_ALL);const e=[];for(let t=0;t<this.targets.length;t++)this.targets[t].onStopAll(),Object.prototype.hasOwnProperty.call(this.targets[t],"isOriginal")&&!this.targets[t].isOriginal?this.targets[t].dispose():e.push(this.targets[t]);this.targets=e,null!==this.sequencer.activeThread&&this._stopThread(this.sequencer.activeThread),this.threads=[],this.threadMap.clear(),this.resetRunId()}_renderInterpolatedPositions(){const e=this._lastStepTime,t=Date.now()-e,n=Math.min(1,Math.max(0,t/this.currentStepTime));z.interpolate(this,n),this.renderer&&this.renderer.draw()}updateThreadMap(){this.threadMap.clear();for(const e of this.threads)e.stackClick||e.updateMonitor||this.threadMap.set(e.getId(),e)}_step(){this.interpolationEnabled&&z.setupInitialState(this),null!==this.profiler&&(-1===K&&(K=this.profiler.idByName("Runtime._step")),this.profiler.start(K)),this.threads=this.threads.filter((e=>!e.isKilled)),this.updateThreadMap();for(const e in this._hats){if(!Object.prototype.hasOwnProperty.call(this._hats,e))continue;this._hats[e].edgeActivated&&this.startHats(e)}this.redrawRequested=!1,this._pushMonitors(),null!==this.profiler&&(-1===X&&(X=this.profiler.idByName("Sequencer.stepThreads")),this.profiler.start(X)),this.emit(q.BEFORE_EXECUTE);const e=this.sequencer.stepThreads();null!==this.profiler&&this.profiler.stop(),this.emit(q.AFTER_EXECUTE),this._updateGlows(e),this._emitProjectRunStatus(this.threads.length+e.length-this._getMonitorThreadCount([...this.threads,...e])),this._lastStepDoneThreads=e,this.renderer&&(null!==this.profiler&&(-1===Z&&(Z=this.profiler.idByName("RenderWebGL.draw")),this.profiler.start(Z)),document.hidden||this.frameLoop._interpolationAnimation||this.renderer.draw(),null!==this.profiler&&this.profiler.stop()),this._refreshTargets&&(this.emit(q.TARGETS_UPDATE,!1),this._refreshTargets=!1),this._monitorState.dirty&&(this.emit(q.MONITORS_UPDATE,this._monitorState.shallowClone()),this._monitorState.dirty=!1),null!==this.profiler&&(this.profiler.stop(),this.profiler.reportFrames()),this.interpolationEnabled&&(this._lastStepTime=Date.now())}_getMonitorThreadCount(e){let t=0;return e.forEach((e=>{e.updateMonitor&&t++})),t}_pushMonitors(){this.monitorBlocks.runAllMonitored(this)}setEditingTarget(e){const t=this._editingTarget;this._editingTarget=e,this._scriptGlowsPreviousFrame=[],this._updateGlows(),t!==this._editingTarget&&this.requestToolboxExtensionsUpdate()}setCompatibilityMode(e){e?this.setFramerate(30):this.setFramerate(60)}setFramerate(e){e>250&&(e=250),e<0&&(e=1),this.frameLoop.setFramerate(e),this.emit(q.FRAMERATE_CHANGED,e)}setInterpolation(e){this.interpolationEnabled=e,this.frameLoop.setInterpolation(this.interpolationEnabled),this.emit(q.INTERPOLATION_CHANGED,e)}setRuntimeOptions(e){this.runtimeOptions=Object.assign({},this.runtimeOptions,e),this.emit(q.RUNTIME_OPTIONS_CHANGED,this.runtimeOptions),this.renderer&&(this.renderer.offscreenTouching=!this.runtimeOptions.fencing)}setCompilerOptions(e){this.compilerOptions=Object.assign({},this.compilerOptions,e),this.resetAllCaches(),this.emit(q.COMPILER_OPTIONS_CHANGED,this.compilerOptions)}setStageSize(e,t){if(e=Math.round(Math.max(1,e)),t=Math.round(Math.max(1,t)),this.stageWidth!==e||this.stageHeight!==t){const n=e-this.stageWidth,r=t-this.stageHeight;if(this._monitorState.size>0){const e=n/2,t=r/2;for(const n of this._monitorState.valueSeq())this.requestUpdateMonitor({id:n.id,x:n.get("x")+e,y:n.get("y")+t});this.emit(q.MONITORS_UPDATE,this._monitorState.shallowClone())}this.stageWidth=e,this.stageHeight=t,this.renderer&&this.renderer.setStageSize(-e/2,e/2,-t/2,t/2),this.emit(q.STAGE_SIZE_CHANGED,e,t)}}setInEditor(e){}convertToPackagedRuntime(){if(this.storage)throw new Error("convertToPackagedRuntime must be called before attachStorage");this.isPackaged=!0}resetAllCaches(){for(const e of this.targets)e.isOriginal&&e.blocks.resetCache();this.flyoutBlocks.resetCache(),this.monitorBlocks.resetCache()}addAddonBlock(e){const t=e.procedureCode,n=e.arguments||[],s=n,o=n.map(((e,t)=>"arg".concat(t))),a=n.map((()=>""));if(this.addonBlocks[t]=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({namesIdsDefaults:[s,o,a]},e),!e.hidden){const n="a-b";let r=this._blockInfo.find((e=>e.id===n));if(!r){const e='<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48"><path d="M14.92 1.053A13.835 13.835 0 0 0 1.052 14.919v18.162a13.835 13.835 0 0 0 13.866 13.866h18.162a13.835 13.835 0 0 0 13.866-13.866V14.919A13.835 13.835 0 0 0 33.081 1.053zm16.6 12.746L41.72 24 31.52 34.201l-3.276-3.275L35.17 24l-6.926-6.926Zm-15.116.073 3.278 3.278L12.83 24l6.926 6.926L16.48 34.2 6.28 24Z" style="fill:#29beb8;fill-opacity:1;stroke:none;stroke-width:1.51371;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/></svg>';r={id:n,name:T({id:"tw.blocks.addons",default:"Addons",description:"Name of the addon block category in the extension list"}),color1:"#29beb8",color2:"#3aa8a4",color3:"#3aa8a4",menuIconURI:"data:image/svg+xml;,".concat(encodeURIComponent(e)),blocks:[],customFieldTypes:{},menus:[]},this._blockInfo.unshift(r)}r.blocks.push({info:{},xml:'<block type="procedures_call" gap="16"><mutation generateshadows="true" warp="false"'+' proccode="'.concat(w(t),'"')+' argumentnames="'.concat(w(JSON.stringify(s)),'"')+' argumentids="'.concat(w(JSON.stringify(o)),'"')+' argumentdefaults="'.concat(w(JSON.stringify(a)),'"')+"".concat(e.return?' return="'.concat(w(e.return.toString()),'"'):"")+"></mutation></block>"})}this.resetAllCaches()}getAddonBlock(e){return Object.prototype.hasOwnProperty.call(this.addonBlocks,e)?this.addonBlocks[e]:null}findProjectOptionsComment(){const e=this.getTargetForStage().comments;for(const t of Object.values(e))if(t.text.includes(_))return t;return null}parseProjectOptions(){const e=this.findProjectOptionsComment();if(!e)return;const t=e.text.split("\n").find((e=>e.endsWith(_)));if(!t)return void E.warn("Config comment does not contain valid line");const n=t.substr(0,t.length-14);let r;try{if(r=o.parse(n),!r||"object"!=typeof r)throw new Error("Invalid object")}catch(e){return void E.warn("Config comment has invalid JSON",e)}"number"==typeof r.framerate&&this.setFramerate(r.framerate),r.turbo&&(this.turboMode=!0,this.emit(q.TURBO_MODE_ON)),r.interpolation&&this.setInterpolation(!0),r.runtimeOptions&&this.setRuntimeOptions(r.runtimeOptions),r.hq&&this.renderer&&this.renderer.setUseHighQualityRender(!0);const i=+r.width||this.stageWidth,s=+r.height||this.stageHeight;i===this.stageWidth&&s===this.stageHeight||this.setStageSize(i,s)}_generateAllProjectOptions(){return{framerate:this.frameLoop.framerate,runtimeOptions:this.runtimeOptions,interpolation:this.interpolationEnabled,turbo:this.turboMode,hq:!!this.renderer&&this.renderer.useHighQualityRender,width:this.stageWidth,height:this.stageHeight}}generateDifferingProjectOptions(){const e=(t,n)=>{const r={};for(const i of Object.keys(n)){const s=n[i],o=t[i];if("object"==typeof s&&s){const t=e(o,s);Object.keys(t).length>0&&(r[i]=t)}else s!==o&&(r[i]=s)}return r};return e(this._defaultStoredSettings,this._generateAllProjectOptions())}storeProjectOptions(){const e=this.generateDifferingProjectOptions(),t="Configuration for https://turbowarp.org/\nYou can move, resize, and minimize this comment, but don't edit it by hand. This comment can be deleted to remove the stored settings.\n".concat(o.stringify(e)).concat(_),n=this.findProjectOptionsComment();if(n)n.text=t;else{this.getTargetForStage().createComment(F(),null,t,50,50,350,170,!1)}this.emitProjectChanged()}precompile(){this.allScriptsDo(((e,t)=>{const n=t.blocks.getBlock(e);if(this.getIsHat(n.opcode)){const n=new y(e);n.target=t,n.blockContainer=t.blocks,n.tryCompile()}}))}enableDebug(){this.resetAllCaches(),this.debug=!0}_updateGlows(e){const t=[];t.push(...this.threads),e&&t.push(...e);const n=[],r=[];for(let e=0;e<t.length;e++){const r=t[e],i=r.target;if(i===this._editingTarget){const e=r.blockGlowInFrame;if(r.requestScriptGlowInFrame||r.stackClick){let t=i.blocks.getTopLevelScript(e);t||(t=this.flyoutBlocks.getTopLevelScript(e)),t&&n.push(t)}}}for(let e=0;e<this._scriptGlowsPreviousFrame.length;e++){const t=this._scriptGlowsPreviousFrame[e];n.indexOf(t)<0?this.glowScript(t,!1):r.push(t)}for(let e=0;e<n.length;e++){const t=n[e];this._scriptGlowsPreviousFrame.indexOf(t)<0&&(this.glowScript(t,!0),r.push(t))}this._scriptGlowsPreviousFrame=r}_emitProjectRunStatus(e){0===this._nonMonitorThreadCount&&e>0&&this.emit(q.PROJECT_RUN_START),this._nonMonitorThreadCount>0&&0===e&&this.emit(q.PROJECT_RUN_STOP),this._nonMonitorThreadCount=e}quietGlow(e){const t=this._scriptGlowsPreviousFrame.indexOf(e);t>-1&&this._scriptGlowsPreviousFrame.splice(t,1)}glowBlock(e,t){t?this.emit(q.BLOCK_GLOW_ON,{id:e}):this.emit(q.BLOCK_GLOW_OFF,{id:e})}glowScript(e,t){t?this.emit(q.SCRIPT_GLOW_ON,{id:e}):this.emit(q.SCRIPT_GLOW_OFF,{id:e})}emitBlockDragUpdate(e){this.emit(q.BLOCK_DRAG_UPDATE,e)}emitBlockEndDrag(e,t){this.emit(q.BLOCK_DRAG_END,e,t)}visualReport(e,t,n){e===this.getEditingTarget()&&this.emit(q.VISUAL_REPORT,{id:t,value:N(n)})}requestAddMonitor(e){this.requestUpdateMonitor(e)||this._monitorState.set(e.id,e)}requestUpdateMonitor(e){const t=(e=V.externalDeltaToJS(e)).id;return!!this._monitorState.has(t)&&(this._monitorState.set(t,e),!0)}requestRemoveMonitor(e){this._monitorState.delete(e)}requestHideMonitor(e){return this.requestUpdateMonitor({id:e,visible:!1})}requestShowMonitor(e){return this.requestUpdateMonitor({id:e,visible:!0})}requestRemoveMonitorByTargetId(e){this._monitorState.filter((t=>t.targetId!==e))}getTargetById(e){for(let t=0;t<this.targets.length;t++){const n=this.targets[t];if(n.id===e)return n}}getSpriteTargetByName(e){for(let t=0;t<this.targets.length;t++){const n=this.targets[t];if(!n.isStage&&(n.sprite&&n.sprite.name===e))return n}}getTargetByDrawableId(e){for(let t=0;t<this.targets.length;t++){const n=this.targets[t];if(n.drawableID===e)return n}}changeCloneCounter(e){this._cloneCounter+=e}clonesAvailable(){return this._cloneCounter<this.runtimeOptions.maxClones}handleProjectLoaded(){this.emit(q.PROJECT_LOADED),this.resetRunId()}emitProjectChanged(){this.emit(q.PROJECT_CHANGED)}fireTargetWasCreated(e,t){this.emit("targetWasCreated",e,t)}fireTargetWasRemoved(e){this.emit("targetWasRemoved",e)}getTargetForStage(){if(this._stageTarget)return this._stageTarget;for(let e=0;e<this.targets.length;e++){const t=this.targets[e];if(t.isStage)return this._stageTarget=t,t}}getEditingTarget(){return this._editingTarget}getAllVarNamesOfType(e){let t=[];for(const n of this.targets){const r=n.getAllVariableNamesInScopeByType(e,!0);t=t.concat(r)}return t}getLabelForOpcode(e){const[t,n]=U.splitFirst(e,"_");if(!t||!n)return;const r=this._blockInfo.find((e=>e.id===t));if(!r)return;const i=r.blocks.find((e=>e.info.opcode===n));return i?{category:"extension",label:"".concat(r.name,": ").concat(i.info.text)}:void 0}createNewGlobalVariable(e,t,n){const r="string"==typeof n?n:A.SCALAR_TYPE,i=this.getAllVarNamesOfType(r),s=U.unusedName(e,i),o=new A(t||F(),s,r);return this.getTargetForStage().variables[o.id]=o,o}requestRedraw(){this.redrawRequested=!0}requestTargetsUpdate(e){e.isOriginal&&(this._refreshTargets=!0)}requestBlocksUpdate(){this.emit(q.BLOCKS_NEED_UPDATE)}requestToolboxExtensionsUpdate(){this.emit(q.TOOLBOX_EXTENSIONS_NEED_UPDATE)}start(){this.frameLoop.running||(this.frameLoop.start(),this.emit(q.RUNTIME_STARTED))}stop(){this.quit()}quit(){this.frameLoop.running&&(this.frameLoop.stop(),this.emit(q.RUNTIME_STOPPED))}enableProfiling(e){d.available()&&(this.profiler=new d(e))}disableProfiling(){this.profiler=null}updateCurrentMSecs(){this.currentMSecs=Date.now()}updatePrivacy(){const e=this.enforcePrivacy&&Object.values(this.externalCommunicationMethods).some((e=>e));this.renderer&&this.renderer.setPrivateSkinAccess&&this.renderer.setPrivateSkinAccess(!e)}setEnforcePrivacy(e){this.enforcePrivacy=e,this.updatePrivacy()}setExternalCommunicationMethod(e,t){if(!Object.prototype.hasOwnProperty.call(this.externalCommunicationMethods,e))throw new Error("Unknown method: ".concat(e));this.externalCommunicationMethods[e]=t,this.updatePrivacy()}emitAssetProgress(){this.emit(q.ASSET_PROGRESS,this.finishedAssetRequests,this.totalAssetRequests)}resetProgress(){this.finishedAssetRequests=0,this.totalAssetRequests=0,this.emitAssetProgress()}wrapAssetRequest(e){this.totalAssetRequests++,this.emitAssetProgress();return e().then((e=>(this.finishedAssetRequests++,this.emitAssetProgress(),e)),(e=>{throw this.finishedAssetRequests++,this.emitAssetProgress(),e}))}}e.exports=q},function(e,t){e.exports=function(e,t){let n="";for(const e in t){let r=t[e].value;"CURRENTMENU"===e&&(r=r.toLowerCase()),n+="_".concat(r)}return"".concat(e).concat(n)}},function(e,t,n){const r=n(1),i=n(6),s=n(2),o=n(9),a=n(0),c=n(188),{StackOpcode:l,InputOpcode:u,InputType:h}=n(15),{IntermediateStackBlock:d,IntermediateInput:p,IntermediateStack:f,IntermediateScript:m,IntermediateRepresentation:g}=n(10),b=n(45),y="",E="list",T=e=>e.substring(1);class v{constructor(e){this.thread=e,this.target=e.target,this.blocks=e.blockContainer,this.runtime=this.target.runtime,this.stage=this.runtime.getTargetForStage(),this.script=new m,this.script.warpTimer=this.target.runtime.compilerOptions.warpTimer,this.variableCache={},this.usesTimer=!1,this.namesOfCostumesAndSounds=new Set;for(const e of this.runtime.targets)if(e.isOriginal){const t=e.sprite;for(const e of t.costumes)this.namesOfCostumesAndSounds.add(e.name);for(const e of t.sounds)this.namesOfCostumesAndSounds.add(e.name)}this.oldCompilerStub=b.enabled?new b.ScriptTreeGeneratorStub(this):null}setProcedureVariant(e){const t=T(e);this.script.procedureVariant=e,this.script.procedureCode=t,this.script.isProcedure=!0,this.script.yields=!1;const n=this.blocks.getProcedureParamNamesIdsAndDefaults(t);if(null===n)throw new Error("IR: cannot find procedure: ".concat(e));const[r,i,s]=n;this.script.arguments=r}enableWarp(){this.script.isWarp=!0}getBlockById(e){return this.blocks.getBlock(e)||this.blocks.runtime.flyoutBlocks.getBlock(e)}getBlockInfo(e){const[t,n]=i.splitFirst(e,"_");if(!t||!n)return null;const r=this.runtime._blockInfo.find((e=>e.id===t));if(!r)return null;const s=r.blocks.find((e=>e.info.opcode===n));return s||null}createConstantInput(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(null===e)throw new Error("IR: Constant cannot have a null value.");const n=+(e+=""),r=t&&this.namesOfCostumesAndSounds.has(e);if(!Number.isNaN(n)&&(""!==e.trim()||e.includes("\t")))return r||n.toString()!==e?new p(u.CONSTANT,h.STRING_NUM,{value:e}):new p(u.CONSTANT,p.getNumberInputType(n),{value:n});if(!r){if("true"===e)return new p(u.CONSTANT,h.STRING_BOOLEAN,{value:e});if("false"===e)return new p(u.CONSTANT,h.STRING_BOOLEAN,{value:e})}return new p(u.CONSTANT,h.STRING_NAN,{value:e})}descendInputOfBlock(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const r=e.inputs[t];if(!r)return a.warn("IR: ".concat(e.opcode,": missing input ").concat(t),e),this.createConstantInput(0);const i=r.block,s=this.getBlockById(i);if(!s)return a.warn("IR: ".concat(e.opcode,": could not find input ").concat(t," with ID ").concat(i)),this.createConstantInput(0);const o=this.descendInput(s,n);return this.script.yields=this.script.yields||o.yields,o}descendInput(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.oldCompilerStub){const t=this.oldCompilerStub.descendInputFromNewCompiler(e);if(t)return t}switch(e.opcode){case"colour_picker":return this.createConstantInput(e.fields.COLOUR.value,!0);case"math_angle":case"math_integer":case"math_number":case"math_positive_number":case"math_whole_number":return this.createConstantInput(e.fields.NUM.value,t);case"text":return this.createConstantInput(e.fields.TEXT.value,t);case"argument_reporter_string_number":{const t=e.fields.VALUE.value,n=this.script.arguments.lastIndexOf(t);return-1===n&&"last key pressed"===t.toLowerCase()?new p(u.TW_KEY_LAST_PRESSED,h.STRING):-1===n?this.createConstantInput(0):new p(u.PROCEDURE_ARGUMENT,h.ANY,{index:n})}case"argument_reporter_boolean":{const t=e.fields.VALUE.value,n=this.script.arguments.lastIndexOf(t);return-1===n?"is compiled?"===t.toLowerCase()||"is turbowarp?"===t.toLowerCase()?this.createConstantInput(!0).toType(h.BOOLEAN):this.createConstantInput(0):new p(u.PROCEDURE_ARGUMENT,h.ANY,{index:n})}case"data_variable":return new p(u.VAR_GET,h.ANY,{variable:this.descendVariable(e,"VARIABLE",y)});case"data_itemoflist":return new p(u.LIST_GET,h.ANY,{list:this.descendVariable(e,"LIST",E),index:this.descendInputOfBlock(e,"INDEX")});case"data_lengthoflist":return new p(u.LIST_LENGTH,h.NUMBER_POS_INT|h.NUMBER_ZERO,{list:this.descendVariable(e,"LIST",E)});case"data_listcontainsitem":return new p(u.LIST_CONTAINS,h.BOOLEAN,{list:this.descendVariable(e,"LIST",E),item:this.descendInputOfBlock(e,"ITEM")});case"data_itemnumoflist":return new p(u.LIST_INDEX_OF,h.NUMBER_POS_INT|h.NUMBER_ZERO,{list:this.descendVariable(e,"LIST",E),item:this.descendInputOfBlock(e,"ITEM")});case"data_listcontents":return new p(u.LIST_CONTENTS,h.STRING,{list:this.descendVariable(e,"LIST",E)});case"event_broadcast_menu":{const t=e.fields.BROADCAST_OPTION,n=this.target.lookupBroadcastMsg(t.id,t.value),r=n?n.name:"";return this.createConstantInput(r)}case"looks_backdropnumbername":return"number"===e.fields.NUMBER_NAME.value?new p(u.LOOKS_BACKDROP_NUMBER,h.NUMBER_POS_INT):new p(u.LOOKS_BACKDROP_NAME,h.STRING);case"looks_costumenumbername":return"number"===e.fields.NUMBER_NAME.value?new p(u.LOOKS_COSTUME_NUMBER,h.NUMBER_POS_INT):new p(u.LOOKS_COSTUME_NAME,h.STRING);case"looks_size":return new p(u.LOOKS_SIZE_GET,h.NUMBER_POS|h.NUMBER_ZERO);case"motion_direction":return new p(u.MOTION_DIRECTION_GET,h.NUMBER_REAL);case"motion_xposition":return new p(u.MOTION_X_GET,h.NUMBER);case"motion_yposition":return new p(u.MOTION_Y_GET,h.NUMBER);case"operator_add":return new p(u.OP_ADD,h.NUMBER_OR_NAN,{left:this.descendInputOfBlock(e,"NUM1").toType(h.NUMBER),right:this.descendInputOfBlock(e,"NUM2").toType(h.NUMBER)});case"operator_and":return new p(u.OP_AND,h.BOOLEAN,{left:this.descendInputOfBlock(e,"OPERAND1").toType(h.BOOLEAN),right:this.descendInputOfBlock(e,"OPERAND2").toType(h.BOOLEAN)});case"operator_contains":return new p(u.OP_CONTAINS,h.BOOLEAN,{string:this.descendInputOfBlock(e,"STRING1").toType(h.STRING),contains:this.descendInputOfBlock(e,"STRING2").toType(h.STRING)});case"operator_divide":return new p(u.OP_DIVIDE,h.NUMBER_OR_NAN,{left:this.descendInputOfBlock(e,"NUM1").toType(h.NUMBER),right:this.descendInputOfBlock(e,"NUM2").toType(h.NUMBER)});case"operator_equals":return new p(u.OP_EQUALS,h.BOOLEAN,{left:this.descendInputOfBlock(e,"OPERAND1"),right:this.descendInputOfBlock(e,"OPERAND2")});case"operator_gt":return new p(u.OP_GREATER,h.BOOLEAN,{left:this.descendInputOfBlock(e,"OPERAND1"),right:this.descendInputOfBlock(e,"OPERAND2")});case"operator_join":return new p(u.OP_JOIN,h.STRING,{left:this.descendInputOfBlock(e,"STRING1").toType(h.STRING),right:this.descendInputOfBlock(e,"STRING2").toType(h.STRING)});case"operator_length":return new p(u.OP_LENGTH,h.NUMBER_POS_INT|h.NUMBER_ZERO,{string:this.descendInputOfBlock(e,"STRING").toType(h.STRING)});case"operator_letter_of":return new p(u.OP_LETTER_OF,h.STRING,{letter:this.descendInputOfBlock(e,"LETTER").toType(h.NUMBER_INDEX),string:this.descendInputOfBlock(e,"STRING").toType(h.STRING)});case"operator_lt":return new p(u.OP_LESS,h.BOOLEAN,{left:this.descendInputOfBlock(e,"OPERAND1"),right:this.descendInputOfBlock(e,"OPERAND2")});case"operator_mathop":{const t=this.descendInputOfBlock(e,"NUM").toType(h.NUMBER);switch(e.fields.OPERATOR.value.toLowerCase()){case"abs":return new p(u.OP_ABS,h.NUMBER_POS|h.NUMBER_ZERO,{value:t});case"floor":return new p(u.OP_FLOOR,h.NUMBER_INT|h.NUMBER_INF,{value:t});case"ceiling":return new p(u.OP_CEILING,h.NUMBER_INT|h.NUMBER_INF,{value:t});case"sqrt":return new p(u.OP_SQRT,h.NUMBER_OR_NAN,{value:t});case"sin":return new p(u.OP_SIN,h.NUMBER_OR_NAN,{value:t});case"cos":return new p(u.OP_COS,h.NUMBER_OR_NAN,{value:t});case"tan":return new p(u.OP_TAN,h.NUMBER_OR_NAN,{value:t});case"asin":return new p(u.OP_ASIN,h.NUMBER_OR_NAN,{value:t});case"acos":return new p(u.OP_ACOS,h.NUMBER_OR_NAN,{value:t});case"atan":return new p(u.OP_ATAN,h.NUMBER,{value:t});case"ln":return new p(u.OP_LOG_E,h.NUMBER_OR_NAN,{value:t});case"log":return new p(u.OP_LOG_10,h.NUMBER_OR_NAN,{value:t});case"e ^":return new p(u.OP_POW_E,h.NUMBER,{value:t});case"10 ^":return new p(u.OP_POW_10,h.NUMBER,{value:t});default:return this.createConstantInput(0)}}case"operator_mod":return new p(u.OP_MOD,h.NUMBER_OR_NAN,{left:this.descendInputOfBlock(e,"NUM1").toType(h.NUMBER),right:this.descendInputOfBlock(e,"NUM2").toType(h.NUMBER)});case"operator_multiply":return new p(u.OP_MULTIPLY,h.NUMBER_OR_NAN,{left:this.descendInputOfBlock(e,"NUM1").toType(h.NUMBER),right:this.descendInputOfBlock(e,"NUM2").toType(h.NUMBER)});case"operator_not":return new p(u.OP_NOT,h.BOOLEAN,{operand:this.descendInputOfBlock(e,"OPERAND").toType(h.BOOLEAN)});case"operator_or":return new p(u.OP_OR,h.BOOLEAN,{left:this.descendInputOfBlock(e,"OPERAND1").toType(h.BOOLEAN),right:this.descendInputOfBlock(e,"OPERAND2").toType(h.BOOLEAN)});case"operator_random":{const t=this.descendInputOfBlock(e,"FROM"),n=this.descendInputOfBlock(e,"TO");if(t.opcode===u.CONSTANT&&n.opcode===u.CONSTANT){const e=t.inputs.value,i=n.inputs.value,s=r.toNumber(e),o=r.toNumber(i);return s===o?this.createConstantInput(s):r.isInt(e)&&r.isInt(i)?new p(u.OP_RANDOM,h.NUMBER,{low:(s<=o?t:n).toType(h.NUMBER),high:(s<=o?n:t).toType(h.NUMBER),useInts:!0,useFloats:!1}):new p(u.OP_RANDOM,h.NUMBER_OR_NAN,{low:(s<=o?t:n).toType(h.NUMBER),high:(s<=o?n:t).toType(h.NUMBER),useInts:!1,useFloats:!0})}if(t.opcode===u.CONSTANT){if(!r.isInt(r.toNumber(t.inputs.value)))return new p(u.OP_RANDOM,h.NUMBER_OR_NAN,{low:t.toType(h.NUMBER),high:n.toType(h.NUMBER),useInts:!1,useFloats:!0})}else if(n.opcode===u.CONSTANT&&!r.isInt(r.toNumber(t.inputs.value)))return new p(u.OP_RANDOM,h.NUMBER_OR_NAN,{low:t.toType(h.NUMBER),high:n.toType(h.NUMBER),useInts:!1,useFloats:!0});return new p(u.OP_RANDOM,h.NUMBER_OR_NAN,{low:t,high:n,useInts:!1,useFloats:!1})}case"operator_round":return new p(u.OP_ROUND,h.NUMBER_INT|h.NUMBER_INF,{value:this.descendInputOfBlock(e,"NUM").toType(h.NUMBER)});case"operator_subtract":return new p(u.OP_SUBTRACT,h.NUMBER_OR_NAN,{left:this.descendInputOfBlock(e,"NUM1").toType(h.NUMBER),right:this.descendInputOfBlock(e,"NUM2").toType(h.NUMBER)});case"procedures_call":{const t=this.getProcedureInfo(e);return new p(t.opcode,h.ANY,t.inputs,t.yields)}case"sensing_answer":return new p(u.SENSING_ANSWER,h.STRING);case"sensing_coloristouchingcolor":return new p(u.SENSING_COLOR_TOUCHING_COLOR,h.BOOLEAN,{target:this.descendInputOfBlock(e,"COLOR2").toType(h.COLOR),mask:this.descendInputOfBlock(e,"COLOR").toType(h.COLOR)});case"sensing_current":switch(e.fields.CURRENTMENU.value.toLowerCase()){case"year":return new p(u.SENSING_TIME_YEAR,h.NUMBER_POS_INT|h.NUMBER_ZERO);case"month":return new p(u.SENSING_TIME_MONTH,h.NUMBER_POS_INT);case"date":return new p(u.SENSING_TIME_DATE,h.NUMBER_POS_INT);case"dayofweek":return new p(u.SENSING_TIME_WEEKDAY,h.NUMBER_POS_INT);case"hour":return new p(u.SENSING_TIME_HOUR,h.NUMBER_POS_INT|h.NUMBER_ZERO);case"minute":return new p(u.SENSING_TIME_MINUTE,h.NUMBER_POS_INT|h.NUMBER_ZERO);case"second":return new p(u.SENSING_TIME_SECOND,h.NUMBER_POS_INT|h.NUMBER_ZERO);default:return this.createConstantInput(0)}case"sensing_dayssince2000":return new p(u.SENSING_TIME_DAYS_SINCE_2000,h.NUMBER);case"sensing_distanceto":return new p(u.SENSING_DISTANCE,h.NUMBER_POS|h.NUMBER_ZERO,{target:this.descendInputOfBlock(e,"DISTANCETOMENU").toType(h.STRING)});case"sensing_keypressed":return new p(u.SENSING_KEY_DOWN,h.BOOLEAN,{key:this.descendInputOfBlock(e,"KEY_OPTION",!0)});case"sensing_mousedown":return new p(u.SENSING_MOUSE_DOWN,h.BOOLEAN);case"sensing_mousex":return new p(u.SENSING_MOUSE_X,h.NUMBER);case"sensing_mousey":return new p(u.SENSING_MOUSE_Y,h.NUMBER);case"sensing_of":{const t=e.fields.PROPERTY.value,n=this.descendInputOfBlock(e,"OBJECT").toType(h.STRING);if(n.opcode!==u.CONSTANT)return new p(u.SENSING_OF,h.ANY,{object:n,property:t});if("volume"===t)return new p(u.SENSING_OF_VOLUME,h.NUMBER_POS_REAL|h.NUMBER_ZERO,{object:n,property:t});if(n.isConstant("_stage_"))switch(t){case"background #":case"backdrop #":return new p(u.SENSING_OF_BACKDROP_NUMBER,h.NUMBER_POS_INT);case"backdrop name":return new p(u.SENSING_OF_BACKDROP_NAME,h.STRING)}else switch(t){case"x position":return new p(u.SENSING_OF_POS_X,h.NUMBER,{object:n});case"y position":return new p(u.SENSING_OF_POS_Y,h.NUMBER,{object:n});case"direction":return new p(u.SENSING_OF_DIRECTION,h.NUMBER_REAL,{object:n});case"costume #":return new p(u.SENSING_OF_COSTUME_NUMBER,h.NUMBER_POS_INT|h.NUMBER_ZERO,{object:n});case"costume name":return new p(u.SENSING_OF_COSTUME_NAME,h.STRING|h.NUMBER_ZERO,{object:n});case"size":return new p(u.SENSING_OF_SIZE,h.NUMBER_POS|h.NUMBER_ZERO,{object:n})}return new p(u.SENSING_OF_VAR,h.ANY,{object:n,property:t})}case"sensing_timer":return this.usesTimer=!0,new p(u.SENSING_TIMER_GET,h.NUMBER_POS_REAL|h.NUMBER_ZERO);case"sensing_touchingcolor":return new p(u.SENSING_TOUCHING_COLOR,h.BOOLEAN,{color:this.descendInputOfBlock(e,"COLOR").toType(h.COLOR)});case"sensing_touchingobject":return new p(u.SENSING_TOUCHING_OBJECT,h.BOOLEAN,{object:this.descendInputOfBlock(e,"TOUCHINGOBJECTMENU")});case"sensing_username":return new p(u.SENSING_USERNAME,h.STRING);case"sound_sounds_menu":return this.createConstantInput(e.fields.SOUND_MENU.value,!0);case"control_get_counter":return new p(u.CONTROL_COUNTER,h.NUMBER_POS_INT|h.NUMBER_ZERO);case"tw_getLastKeyPressed":return new p(u.TW_KEY_LAST_PRESSED,h.STRING);default:{if(this.runtime.getOpcodeFunction(e.opcode)){if(c.inputs.includes(e.opcode))return this.descendCompatLayerInput(e);const t=this.getBlockInfo(e.opcode);if(t){const n=t.info.blockType;if(n===s.REPORTER||n===s.BOOLEAN)return this.descendCompatLayerInput(e)}}const n=Object.keys(e.inputs),r=Object.keys(e.fields);if(0===n.length&&1===r.length)return this.createConstantInput(e.fields[r[0]].value,t);throw a.warn("IR: Unknown input: ".concat(e.opcode),e),new Error("IR: Unknown input: ".concat(e.opcode))}}}descendStackedBlock(e){if(this.oldCompilerStub){const t=this.oldCompilerStub.descendStackedBlockFromNewCompiler(e);if(t)return t}switch(e.opcode){case"control_all_at_once":return new d(l.CONTROL_IF_ELSE,{condition:this.createConstantInput(!0).toType(h.BOOLEAN),whenTrue:this.descendSubstack(e,"SUBSTACK"),whenFalse:new f});case"control_create_clone_of":return new d(l.CONTROL_CLONE_CREATE,{target:this.descendInputOfBlock(e,"CLONE_OPTION").toType(h.STRING)});case"control_delete_this_clone":return new d(l.CONTROL_CLONE_DELETE,{},!0);case"control_forever":return new d(l.CONTROL_WHILE,{condition:this.createConstantInput(!0).toType(h.BOOLEAN),do:this.descendSubstack(e,"SUBSTACK")},this.analyzeLoop());case"control_for_each":return new d(l.CONTROL_FOR,{variable:this.descendVariable(e,"VARIABLE",y),count:this.descendInputOfBlock(e,"VALUE").toType(h.NUMBER),do:this.descendSubstack(e,"SUBSTACK")},this.analyzeLoop());case"control_if":return new d(l.CONTROL_IF_ELSE,{condition:this.descendInputOfBlock(e,"CONDITION").toType(h.BOOLEAN),whenTrue:this.descendSubstack(e,"SUBSTACK"),whenFalse:new f});case"control_if_else":return new d(l.CONTROL_IF_ELSE,{condition:this.descendInputOfBlock(e,"CONDITION").toType(h.BOOLEAN),whenTrue:this.descendSubstack(e,"SUBSTACK"),whenFalse:this.descendSubstack(e,"SUBSTACK2")});case"control_repeat":return new d(l.CONTROL_REPEAT,{times:this.descendInputOfBlock(e,"TIMES").toType(h.NUMBER),do:this.descendSubstack(e,"SUBSTACK")},this.analyzeLoop());case"control_repeat_until":{this.usesTimer=!1;const t=this.descendInputOfBlock(e,"CONDITION").toType(h.BOOLEAN),n=this.usesTimer;return new d(l.CONTROL_WHILE,{condition:new p(u.OP_NOT,h.BOOLEAN,{operand:t}),do:this.descendSubstack(e,"SUBSTACK"),warpTimer:n},this.analyzeLoop()||n)}case"control_stop":{const t=e.fields.STOP_OPTION.value;return"all"===t?new d(l.CONTROL_STOP_ALL,{},!0):new d("other scripts in sprite"===t||"other scripts in stage"===t?l.CONTROL_STOP_OTHERS:"this script"===t?l.CONTROL_STOP_SCRIPT:l.NOP)}case"control_wait":return new d(l.CONTROL_WAIT,{seconds:this.descendInputOfBlock(e,"DURATION").toType(h.NUMBER)},!0);case"control_wait_until":return new d(l.CONTROL_WAIT_UNTIL,{condition:this.descendInputOfBlock(e,"CONDITION").toType(h.BOOLEAN)},!0);case"control_while":return new d(l.CONTROL_WHILE,{condition:this.descendInputOfBlock(e,"CONDITION").toType(h.BOOLEAN),do:this.descendSubstack(e,"SUBSTACK"),warpTimer:!1},this.analyzeLoop());case"control_clear_counter":return new d(l.CONTROL_CLEAR_COUNTER);case"control_incr_counter":return new d(l.CONTORL_INCR_COUNTER);case"data_addtolist":return new d(l.LIST_ADD,{list:this.descendVariable(e,"LIST",E),item:this.descendInputOfBlock(e,"ITEM",!0)});case"data_changevariableby":{const t=this.descendVariable(e,"VARIABLE",y);return new d(l.VAR_SET,{variable:t,value:new p(u.OP_ADD,h.NUMBER_OR_NAN,{left:new p(u.VAR_GET,h.ANY,{variable:t}).toType(h.NUMBER),right:this.descendInputOfBlock(e,"VALUE").toType(h.NUMBER)})})}case"data_deletealloflist":return new d(l.LIST_DELETE_ALL,{list:this.descendVariable(e,"LIST",E)});case"data_deleteoflist":{const t=this.descendInputOfBlock(e,"INDEX");return t.isConstant("all")?new d(l.LIST_DELETE_ALL,{list:this.descendVariable(e,"LIST",E)}):new d(l.LIST_DELETE,{list:this.descendVariable(e,"LIST",E),index:t})}case"data_hidelist":return new d(l.LIST_HIDE,{list:this.descendVariable(e,"LIST",E)});case"data_hidevariable":return new d(l.VAR_HIDE,{variable:this.descendVariable(e,"VARIABLE",y)});case"data_insertatlist":return new d(l.LIST_INSERT,{list:this.descendVariable(e,"LIST",E),index:this.descendInputOfBlock(e,"INDEX"),item:this.descendInputOfBlock(e,"ITEM",!0)});case"data_replaceitemoflist":return new d(l.LIST_REPLACE,{list:this.descendVariable(e,"LIST",E),index:this.descendInputOfBlock(e,"INDEX"),item:this.descendInputOfBlock(e,"ITEM",!0)});case"data_setvariableto":return new d(l.VAR_SET,{variable:this.descendVariable(e,"VARIABLE",y),value:this.descendInputOfBlock(e,"VALUE",!0)});case"data_showlist":return new d(l.LIST_SHOW,{list:this.descendVariable(e,"LIST",E)});case"data_showvariable":return new d(l.VAR_SHOW,{variable:this.descendVariable(e,"VARIABLE",y)});case"event_broadcast":return new d(l.EVENT_BROADCAST,{broadcast:this.descendInputOfBlock(e,"BROADCAST_INPUT").toType(h.STRING)});case"event_broadcastandwait":return new d(l.EVENT_BROADCAST_AND_WAIT,{broadcast:this.descendInputOfBlock(e,"BROADCAST_INPUT").toType(h.STRING)},!0);case"looks_changeeffectby":return new d(l.LOOKS_EFFECT_CHANGE,{effect:e.fields.EFFECT.value.toLowerCase(),value:this.descendInputOfBlock(e,"CHANGE").toType(h.NUMBER)});case"looks_changesizeby":return new d(l.LOOKS_SIZE_CHANGE,{size:this.descendInputOfBlock(e,"CHANGE").toType(h.NUMBER)});case"looks_cleargraphiceffects":return new d(l.LOOKS_EFFECT_CLEAR);case"looks_goforwardbackwardlayers":return"forward"===e.fields.FORWARD_BACKWARD.value?new d(l.LOOKS_LAYER_FORWARD,{layers:this.descendInputOfBlock(e,"NUM").toType(h.NUMBER)}):new d(l.LOOKS_LAYER_BACKWARD,{layers:this.descendInputOfBlock(e,"NUM").toType(h.NUMBER)});case"looks_gotofrontback":return"front"===e.fields.FRONT_BACK.value?new d(l.LOOKS_LAYER_FRONT):new d(l.LOOKS_LAYER_BACK);case"looks_hide":return new d(l.LOOKS_HIDE);case"looks_nextbackdrop":return new d(l.LOOKS_BACKDROP_NEXT);case"looks_nextcostume":return new d(l.LOOKS_COSTUME_NEXT);case"looks_say":return new d(l.LOOKS_SAY,{message:this.descendInputOfBlock(e,"MESSAGE")});case"looks_seteffectto":return new d(l.LOOKS_EFFECT_SET,{effect:e.fields.EFFECT.value.toLowerCase(),value:this.descendInputOfBlock(e,"VALUE").toType(h.NUMBER)});case"looks_setsizeto":return new d(l.LOOKS_SIZE_SET,{size:this.descendInputOfBlock(e,"SIZE").toType(h.NUMBER)});case"looks_show":return new d(l.LOOKS_SHOW);case"looks_switchbackdropto":return new d(l.LOOKS_BACKDROP_SET,{backdrop:this.descendInputOfBlock(e,"BACKDROP",!0)});case"looks_switchcostumeto":return new d(l.LOOKS_COSTUME_SET,{costume:this.descendInputOfBlock(e,"COSTUME",!0)});case"looks_think":return new d(l.LOOKS_THINK,{message:this.descendInputOfBlock(e,"MESSAGE")});case"motion_changexby":return new d(l.MOTION_X_CHANGE,{dx:this.descendInputOfBlock(e,"DX").toType(h.NUMBER)});case"motion_changeyby":return new d(l.MOTION_Y_CHANGE,{dy:this.descendInputOfBlock(e,"DY").toType(h.NUMBER)});case"motion_gotoxy":return new d(l.MOTION_XY_SET,{x:this.descendInputOfBlock(e,"X").toType(h.NUMBER),y:this.descendInputOfBlock(e,"Y").toType(h.NUMBER)});case"motion_ifonedgebounce":return new d(l.MOTION_IF_ON_EDGE_BOUNCE);case"motion_movesteps":return new d(l.MOTION_STEP,{steps:this.descendInputOfBlock(e,"STEPS").toType(h.NUMBER)});case"motion_pointindirection":return new d(l.MOTION_DIRECTION_SET,{direction:this.descendInputOfBlock(e,"DIRECTION").toType(h.NUMBER)});case"motion_setrotationstyle":return new d(l.MOTION_ROTATION_STYLE_SET,{style:e.fields.STYLE.value});case"motion_setx":return new d(l.MOTION_X_SET,{x:this.descendInputOfBlock(e,"X").toType(h.NUMBER)});case"motion_sety":return new d(l.MOTION_Y_SET,{y:this.descendInputOfBlock(e,"Y").toType(h.NUMBER)});case"motion_turnleft":return new d(l.MOTION_DIRECTION_SET,{direction:new p(u.OP_SUBTRACT,h.NUMBER,{left:new p(u.MOTION_DIRECTION_GET,h.NUMBER),right:this.descendInputOfBlock(e,"DEGREES").toType(h.NUMBER)})});case"motion_turnright":return new d(l.MOTION_DIRECTION_SET,{direction:new p(u.OP_ADD,h.NUMBER,{left:new p(u.MOTION_DIRECTION_GET,h.NUMBER),right:this.descendInputOfBlock(e,"DEGREES").toType(h.NUMBER)})});case"pen_clear":return new d(l.PEN_CLEAR);case"pen_changePenColorParamBy":return new d(l.PEN_COLOR_PARAM_CHANGE,{param:this.descendInputOfBlock(e,"COLOR_PARAM").toType(h.STRING),value:this.descendInputOfBlock(e,"VALUE").toType(h.NUMBER)});case"pen_changePenHueBy":return new d(l.PEN_COLOR_HUE_CHANGE_LEGACY,{hue:this.descendInputOfBlock(e,"HUE").toType(h.NUMBER)});case"pen_changePenShadeBy":return new d(l.PEN_COLOR_SHADE_CHANGE_LEGACY,{shade:this.descendInputOfBlock(e,"SHADE").toType(h.NUMBER)});case"pen_penDown":return new d(l.PEN_DOWN);case"pen_penUp":return new d(l.PEN_UP);case"pen_setPenColorParamTo":return new d(l.PEN_COLOR_PARAM_SET,{param:this.descendInputOfBlock(e,"COLOR_PARAM").toType(h.STRING),value:this.descendInputOfBlock(e,"VALUE").toType(h.NUMBER)});case"pen_setPenColorToColor":return new d(l.PEN_COLOR_SET,{color:this.descendInputOfBlock(e,"COLOR")});case"pen_setPenHueToNumber":return new d(l.PEN_COLOR_HUE_SET_LEGACY,{hue:this.descendInputOfBlock(e,"HUE").toType(h.NUMBER)});case"pen_setPenShadeToNumber":return new d(l.PEN_COLOR_SHADE_SET_LEGACY,{shade:this.descendInputOfBlock(e,"SHADE").toType(h.NUMBER)});case"pen_setPenSizeTo":return new d(l.PEN_SIZE_SET,{size:this.descendInputOfBlock(e,"SIZE").toType(h.NUMBER)});case"pen_changePenSizeBy":return new d(l.PEN_SIZE_CHANGE,{size:this.descendInputOfBlock(e,"SIZE").toType(h.NUMBER)});case"pen_stamp":return new d(l.PEN_STAMP);case"procedures_call":{const t=e.mutation.proccode;if(e.mutation.return){const t=this.descendVisualReport(e);if(t)return t}if("tw:debugger;"===t)return new d(l.DEBUGGER);const n=this.getProcedureInfo(e);return new d(n.opcode,n.inputs,n.yields)}case"procedures_return":return new d(l.PROCEDURE_RETURN,{value:this.descendInputOfBlock(e,"VALUE")});case"sensing_resettimer":return new d(l.SENSING_TIMER_RESET);default:{if(this.runtime.getOpcodeFunction(e.opcode)){if(c.stacked.includes(e.opcode))return this.descendCompatLayerStack(e);const t=this.getBlockInfo(e.opcode);if(t){const n=t.info.blockType;if(n===s.COMMAND||n===s.CONDITIONAL||n===s.LOOP)return this.descendCompatLayerStack(e)}}const t=this.descendVisualReport(e);if(t)return t;throw a.warn("IR: Unknown stacked block: ".concat(e.opcode),e),new Error("IR: Unknown stacked block: ".concat(e.opcode))}}}descendSubstack(e,t){const n=e.inputs[t];if(!n)return new f;const r=n.block;return this.walkStack(r)}walkStack(e){const t=new f;let n=e;for(;null!==n;){const e=this.getBlockById(n);if(!e)break;const r=this.descendStackedBlock(e);this.script.yields=this.script.yields||r.yields,t.blocks.push(r),n=e.next}return t}getProcedureInfo(e){const t=e.mutation.proccode,n=this.blocks.getProcedureParamNamesIdsAndDefaults(t);if(null===n)return{opcode:l.NOP,yields:!1};const[r,i,s]=n;if(this.runtime.getAddonBlock(t)){const n={};for(let t=0;t<i.length;t++){let o;o=e.inputs[i[t]]&&e.inputs[i[t]].block?this.descendInputOfBlock(e,i[t],!0):this.createConstantInput(s[t],!0),n[r[t]]=o}return{opcode:l.ADDON_CALL,inputs:{code:t,arguments:n,blockId:e.id},yields:!0}}const o=this.blocks.getProcedureDefinition(t),a=this.blocks.getBlock(o);if(!a)return{opcode:l.NOP,yields:!1};const c=this.blocks.getBlock(a.inputs.custom_block.block);let u=this.script.isWarp;if(!u&&c&&c.mutation){const e=c.mutation.warp;"boolean"==typeof e?u=e:"string"==typeof e&&(u=JSON.parse(e))}const h=(d=t,u?"W".concat(d):"Z".concat(d));var d;this.script.dependedProcedures.includes(h)||this.script.dependedProcedures.push(h);const p=[];for(let t=0;t<i.length;t++){let n;n=e.inputs[i[t]]&&e.inputs[i[t]].block?this.descendInputOfBlock(e,i[t],!0):this.createConstantInput(s[t],!0),p.push(n)}return{opcode:l.PROCEDURE_CALL,inputs:{code:t,variant:h,arguments:p},yields:!this.script.isWarp&&t===this.script.procedureCode}}descendVisualReport(e){if(!this.thread.stackClick||e.next)return null;try{return new d(l.VISUAL_REPORT,{input:this.descendInput(e)})}catch(e){return null}}descendVariable(e,t,n){const r=e.fields[t],i=r.id;if(i&&Object.prototype.hasOwnProperty.call(this.variableCache,i))return this.variableCache[i];const s=this._descendVariable(i,r.value,n);return this.variableCache[String(s.id)]=s,s}_descendVariable(e,t,n){const r=this.target,i=this.stage;if(Object.prototype.hasOwnProperty.call(r.variables,e)){const t=r.variables[String(e)];return{scope:"target",id:t.id,name:t.name,isCloud:t.isCloud}}if(!r.isStage&&i&&Object.prototype.hasOwnProperty.call(i.variables,e)){const t=i.variables[String(e)];return{scope:"stage",id:t.id,name:t.name,isCloud:t.isCloud}}for(const e in r.variables)if(Object.prototype.hasOwnProperty.call(r.variables,e)){const i=r.variables[e];if(i.name===t&&i.type===n)return{scope:"target",id:i.id,name:i.name,isCloud:i.isCloud}}if(!r.isStage&&i)for(const e in i.variables)if(Object.prototype.hasOwnProperty.call(i.variables,e)){const r=i.variables[e];if(r.name===t&&r.type===n)return{scope:"stage",id:r.id,name:r.name,isCloud:r.isCloud}}const s=new o(e,t,n,!1);if(r.variables[String(e)]=s,r.sprite)for(const i of r.sprite.clones)Object.prototype.hasOwnProperty.call(i.variables,e)||(i.variables[String(e)]=new o(e,t,n,!1));return{scope:"target",id:e,name:s.name,isCloud:s.isCloud}}descendCompatLayerInput(e){const t={},n={};for(const n of Object.keys(e.inputs))t[n]=this.descendInputOfBlock(e,n,!0);for(const t of Object.keys(e.fields))n[t]=e.fields[t].value;return new p(u.COMPATIBILITY_LAYER,h.ANY,{opcode:e.opcode,id:e.id,inputs:t,fields:n},!0)}descendCompatLayerStack(e){const t={};for(const n of Object.keys(e.inputs))n.startsWith("SUBSTACK")||(t[n]=this.descendInputOfBlock(e,n,!0));const n={};for(const t of Object.keys(e.fields))n[t]=e.fields[t].value;const r=this.getBlockInfo(e.opcode),i=r&&r.info&&r.info.blockType||s.COMMAND,o={};if(i===s.CONDITIONAL||i===s.LOOP)for(const t in e.inputs){if(!t.startsWith("SUBSTACK"))continue;const n="SUBSTACK"===t?1:+t.substring(8);isNaN(n)||(o[n]=this.descendSubstack(e,t))}return new d(l.COMPATIBILITY_LAYER,{opcode:e.opcode,id:e.id,blockType:i,inputs:t,fields:n,substacks:o},!0)}analyzeLoop(){return!this.script.isWarp||this.script.warpTimer}readTopBlockComment(e){const t=this.target.comments[e];if(!t)return;const n=t.text;for(const e of n.split("\n")){if(!/^tw\b/.test(e))continue;const t=e.split(" ");for(const e of t)switch(e){case"nocompile":throw new Error("Script explicitly disables compilation");case"stuck":this.script.warpTimer=!0}break}}walkHat(e){const t=e.next,n=e.opcode,r=this.runtime._hats[n];if(this.thread.stackClick){return this.runtime.getOpcodeFunction(n)?new f([this.descendCompatLayerStack(e),...this.walkStack(t).blocks]):this.walkStack(t)}if(r.edgeActivated)return this.script.yields=!0,this.script.executableHat=!0,new f([new d(l.HAT_EDGE,{id:e.id,condition:this.descendCompatLayerInput(e).toType(h.BOOLEAN)}),...this.walkStack(t).blocks]);return this.runtime.getOpcodeFunction(n)?(this.script.yields=!0,this.script.executableHat=!0,new f([new d(l.HAT_PREDICATE,{condition:this.descendCompatLayerInput(e).toType(h.BOOLEAN)}),...this.walkStack(t).blocks])):this.walkStack(t)}generate(e){this.blocks.populateProcedureCache(),this.script.topBlockId=e;const t=this.getBlockById(e);if(!t){if(this.script.isProcedure)return this.script;throw new Error("Cannot find top block")}t.comment&&this.readTopBlockComment(t.comment);if(!!this.runtime._hats[t.opcode])this.script.stack=this.walkHat(t);else{let n;n="procedures_definition"===t.opcode?t.next:e,n&&(this.script.stack=this.walkStack(n))}return this.script}}e.exports={ScriptTreeGenerator:v,IRGenerator:class{constructor(e){this.thread=e,this.blocks=e.blockContainer,this.proceduresToCompile=new Map,this.compilingProcedures=new Map,this.procedures={},this.analyzedProcedures=[]}addProcedureDependencies(e){for(const t of e){if(Object.prototype.hasOwnProperty.call(this.procedures,t))continue;if(this.compilingProcedures.has(t))continue;if(this.proceduresToCompile.has(t))continue;const e=T(t),n=this.blocks.getProcedureDefinition(e);this.proceduresToCompile.set(t,n)}}generateScriptTree(e,t){const n=e.generate(t);return this.addProcedureDependencies(n.dependedProcedures),n}analyzeScript(e){let t=!1;for(const n of e.dependedProcedures){const r=this.procedures[n];this.analyzedProcedures.includes(n)||(this.analyzedProcedures.push(n),this.analyzeScript(r)&&(t=!0),this.analyzedProcedures.pop()),r.yields&&!e.yields&&(e.yields=!0,t=!0)}return t}generate(){const e=this.generateScriptTree(new v(this.thread),this.thread.topBlock),t=this.blocks._cache.compiledProcedures;for(;this.proceduresToCompile.size>0;){this.compilingProcedures=this.proceduresToCompile,this.proceduresToCompile=new Map;for(const[e,n]of this.compilingProcedures.entries())if(t[e]){const n=t[e];this.procedures[e]=n,this.addProcedureDependencies(n.dependedProcedures)}else{const r="W"===e.charAt(0),i=new v(this.thread);i.setProcedureVariant(e),r&&i.enableWarp();const s=this.generateScriptTree(i,n);this.procedures[e]=s,t[e]=s}}for(;this.analyzeScript(e););return new g(e,this.procedures)}}}},function(e,t,n){const{InputOpcode:r,InputType:i}=n(15),{IntermediateInput:s,IntermediateStackBlock:o,IntermediateStack:a}=n(10);class c{constructor(e,t){this.source=e,t instanceof s?(this.intermediate=t,this.type=4):(this.intermediate=null,this.type=t)}asNumber(){return"(+".concat(this.source," || 0)")}asNumberOrNaN(){return"(+".concat(this.source,")")}asString(){return'("" + '.concat(this.source,")")}asBoolean(){return"toBoolean(".concat(this.source,")")}asColor(){return this.asUnknown()}asUnknown(){return this.source}asSafe(){return this.asUnknown()}isAlwaysNumber(){return!1}isAlwaysNumberOrNaN(){return!1}isNeverNumber(){return!1}}class l{constructor(e){this.prefix=e,this.count=0}next(){return"".concat(this.prefix).concat(this.count++)}}class u{constructor(e){this.real=e,this.fakeThis={script:e.script,ir:e.ir,target:e.target,get frames(){return e.frames},get currentFrame(){return e.currentFrame},get source(){return e.source},set source(t){e.source=t},localVariables:new l("oldCompilerLocal"),descendInput(t){const n=e.descendInput(t);return new c(n,t)},descendStack(t,n){e.descendStack(t,n)},yieldLoop:()=>e.yieldLoop(),yieldNotWarp:()=>e.yieldNotWarp(),yieldStuckOrNotWarp:()=>e.yieldStuckOrNotWarp(),yielded:()=>e.yielded(),requestRedraw:()=>e.requestRedraw()}}descendInput(e){throw new Error("Unknown input: ".concat(e.kind))}descendStackedBlock(e){throw new Error("Unknown stacked block: ".concat(e.kind))}descendInputFromNewCompiler(e){const t=e.inputs.oldNode;return this.descendInput.call(this.fakeThis,t).asSafe()}descendStackedBlockFromNewCompiler(e){const t=e.inputs.oldNode;this.descendStackedBlock.call(this.fakeThis,t)}}u.unstable_exports={TYPE_NUMBER:1,TYPE_STRING:2,TYPE_BOOLEAN:3,TYPE_UNKNOWN:4,TYPE_NUMBER_NAN:5,VariablePool:l,TypedInput:c,Frame:class{constructor(e){this.isLoop=e,this.isLastBlock=!1}}};const h={enabled:!1,IRGeneratorStub:class{},ScriptTreeGeneratorStub:class{constructor(e){this.real=e,this.fakeThis={thread:e.thread,target:e.target,blocks:e.blocks,runtime:e.runtime,stage:e.stage,script:e.script,descendInputOfBlock:(t,n)=>e.descendInputOfBlock(t,n,!0),descendSubstack:(t,n)=>e.descendSubstack(t,n),analyzeLoop(){e.script.yields=!0}}}descendInput(e){return null}descendStackedBlock(e){return null}descendInputFromNewCompiler(e){const t=this.descendInput.call(this.fakeThis,e);return t?new s(r.OLD_COMPILER_COMPATIBILITY_LAYER,i.ANY,{oldNode:t},!0):null}descendStackedBlockFromNewCompiler(e){const t=this.descendStackedBlock.call(this.fakeThis,e);return t?new o(r.OLD_COMPILER_COMPATIBILITY_LAYER,{oldNode:t},!0):null}},TypedInput:c,JSGeneratorStub:u};e.exports=h},function(e,t,n){const r={Timer:n(14),Cast:n(1),log:n(0),blockUtility:n(191),thread:null};let i="";const s={};i+="let stuckCounter = 0;\nconst isStuck = () => {\n // The real time is not checked on every call for performance.\n stuckCounter++;\n if (stuckCounter === 100) {\n stuckCounter = 0;\n return globalState.thread.target.runtime.sequencer.timer.timeElapsed() > 500;\n }\n return false;\n};",s.startHats="const startHats = (requestedHat, optMatchFields) => {\n const thread = globalState.thread;\n const threads = thread.target.runtime.startHats(requestedHat, optMatchFields);\n return threads;\n}",s.waitThreads="const waitThreads = function*(threads) {\n const thread = globalState.thread;\n const runtime = thread.target.runtime;\n\n while (true) {\n // determine whether any threads are running\n let anyRunning = false;\n for (let i = 0; i < threads.length; i++) {\n if (runtime.threads.indexOf(threads[i]) !== -1) {\n anyRunning = true;\n break;\n }\n }\n if (!anyRunning) {\n // all threads are finished, can resume\n return;\n }\n\n let allWaiting = true;\n for (let i = 0; i < threads.length; i++) {\n if (!runtime.isWaitingThread(threads[i])) {\n allWaiting = false;\n break;\n }\n }\n if (allWaiting) {\n thread.status = 3; // STATUS_YIELD_TICK\n }\n\n yield;\n }\n}",s.executeInCompatibilityLayer="let hasResumedFromPromise = false;\nconst waitPromise = function*(promise) {\n const thread = globalState.thread;\n let returnValue;\n\n // enter STATUS_PROMISE_WAIT and yield\n // this will stop script execution until the promise handlers reset the thread status\n // because promise handlers might execute immediately, configure thread.status here\n thread.status = 1; // STATUS_PROMISE_WAIT\n\n promise\n .then(value => {\n returnValue = value;\n thread.status = 0; // STATUS_RUNNING\n }, error => {\n thread.status = 0; // STATUS_RUNNING\n globalState.log.warn('Promise rejected in compiled script:', error);\n returnValue = '' + error;\n thread.status = 0; // STATUS_RUNNING\n });\n\n yield;\n\n return returnValue;\n};\nconst isPromise = value => (\n // see engine/execute.js\n value !== null &&\n typeof value === 'object' &&\n typeof value.then === 'function'\n);\nconst executeInCompatibilityLayer = function*(inputs, blockFunction, isWarp, useFlags, blockId, branchInfo) {\n const thread = globalState.thread;\n const blockUtility = globalState.blockUtility;\n const stackFrame = branchInfo ? branchInfo.stackFrame : {};\n\n const finish = (returnValue) => {\n if (branchInfo) {\n if (typeof returnValue === 'undefined' && blockUtility._startedBranch) {\n branchInfo.isLoop = blockUtility._startedBranch[1];\n return blockUtility._startedBranch[0];\n }\n branchInfo.isLoop = branchInfo.defaultIsLoop;\n return returnValue;\n }\n return returnValue;\n };\n\n const executeBlock = () => {\n blockUtility.init(thread, blockId, stackFrame);\n return blockFunction(inputs, blockUtility);\n };\n\n let returnValue = executeBlock();\n if (isPromise(returnValue)) {\n returnValue = finish(yield* waitPromise(returnValue));\n if (useFlags) hasResumedFromPromise = true;\n return returnValue;\n }\n\n if (thread.status === 1 /* STATUS_PROMISE_WAIT */ || thread.status === 4 /* STATUS_DONE */) {\n // Something external is forcing us to stop\n yield;\n // Make up a return value because whatever is forcing us to stop can't specify one\n return '';\n }\n\n while (thread.status === 2 /* STATUS_YIELD */ || thread.status === 3 /* STATUS_YIELD_TICK */) {\n // Yielded threads will run next iteration.\n if (thread.status === 2 /* STATUS_YIELD */) {\n thread.status = 0; // STATUS_RUNNING\n // Yield back to the event loop when stuck or not in warp mode.\n if (!isWarp || isStuck()) {\n yield;\n }\n } else {\n // status is STATUS_YIELD_TICK, always yield to the event loop\n yield;\n }\n\n returnValue = executeBlock();\n if (isPromise(returnValue)) {\n returnValue = finish(yield* waitPromise(returnValue));\n if (useFlags) hasResumedFromPromise = true;\n return returnValue;\n }\n\n if (thread.status === 1 /* STATUS_PROMISE_WAIT */ || thread.status === 4 /* STATUS_DONE */) {\n yield;\n return finish('');\n }\n }\n\n // todo: do we have to do anything extra if status is STATUS_DONE?\n\n return finish(returnValue);\n}",s.createBranchInfo="const createBranchInfo = (isLoop) => ({\n defaultIsLoop: isLoop,\n isLoop: false,\n branch: 0,\n stackFrame: {}\n});",s.retire="const retire = () => {\n const thread = globalState.thread;\n thread.target.runtime.sequencer.retireThread(thread);\n}",s.toNotNaN="const toNotNaN = value => Number.isNaN(value) ? 0 : value",s.toBoolean="const toBoolean = value => {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n if (value === '' || value === '0' || value.toLowerCase() === 'false') {\n return false;\n }\n return true;\n }\n return !!value;\n}",s.limitPrecision="const limitPrecision = value => {\n const rounded = Math.round(value);\n const delta = value - rounded;\n return (Math.abs(delta) < 1e-9) ? rounded : value;\n}",i+="const isNotActuallyZero = val => {\n if (typeof val !== 'string') return false;\n for (let i = 0; i < val.length; i++) {\n const code = val.charCodeAt(i);\n if (code === 48 || code === 9) {\n return false;\n }\n }\n return true;\n};",i+="const compareEqualSlow = (v1, v2) => {\n const n1 = +v1;\n if (Number.isNaN(n1) || (n1 === 0 && isNotActuallyZero(v1))) return ('' + v1).toLowerCase() === ('' + v2).toLowerCase();\n const n2 = +v2;\n if (Number.isNaN(n2) || (n2 === 0 && isNotActuallyZero(v2))) return ('' + v1).toLowerCase() === ('' + v2).toLowerCase();\n return n1 === n2;\n};\nconst compareEqual = (v1, v2) => (typeof v1 === 'number' && typeof v2 === 'number' && !Number.isNaN(v1) && !Number.isNaN(v2) || v1 === v2) ? v1 === v2 : compareEqualSlow(v1, v2);",s.compareGreaterThan="const compareGreaterThanSlow = (v1, v2) => {\n let n1 = +v1;\n let n2 = +v2;\n if (n1 === 0 && isNotActuallyZero(v1)) {\n n1 = NaN;\n } else if (n2 === 0 && isNotActuallyZero(v2)) {\n n2 = NaN;\n }\n if (Number.isNaN(n1) || Number.isNaN(n2)) {\n const s1 = ('' + v1).toLowerCase();\n const s2 = ('' + v2).toLowerCase();\n return s1 > s2;\n }\n return n1 > n2;\n};\nconst compareGreaterThan = (v1, v2) => typeof v1 === 'number' && typeof v2 === 'number' && !Number.isNaN(v1) ? v1 > v2 : compareGreaterThanSlow(v1, v2)",s.compareLessThan="const compareLessThanSlow = (v1, v2) => {\n let n1 = +v1;\n let n2 = +v2;\n if (n1 === 0 && isNotActuallyZero(v1)) {\n n1 = NaN;\n } else if (n2 === 0 && isNotActuallyZero(v2)) {\n n2 = NaN;\n }\n if (Number.isNaN(n1) || Number.isNaN(n2)) {\n const s1 = ('' + v1).toLowerCase();\n const s2 = ('' + v2).toLowerCase();\n return s1 < s2;\n }\n return n1 < n2;\n};\nconst compareLessThan = (v1, v2) => typeof v1 === 'number' && typeof v2 === 'number' && !Number.isNaN(v2) ? v1 < v2 : compareLessThanSlow(v1, v2)",s.randomInt="const randomInt = (low, high) => low + Math.floor(Math.random() * ((high + 1) - low))",s.randomFloat="const randomFloat = (low, high) => (Math.random() * (high - low)) + low",s.timer="const timer = () => {\n const t = new globalState.Timer({\n now: () => globalState.thread.target.runtime.currentMSecs\n });\n t.start();\n return t;\n}",s.daysSince2000="const daysSince2000 = () => (Date.now() - 946684800000) / (24 * 60 * 60 * 1000)",s.distance="const distance = menu => {\n const thread = globalState.thread;\n if (thread.target.isStage) return 10000;\n\n let targetX = 0;\n let targetY = 0;\n if (menu === '_mouse_') {\n targetX = thread.target.runtime.ioDevices.mouse.getScratchX();\n targetY = thread.target.runtime.ioDevices.mouse.getScratchY();\n } else {\n const distTarget = thread.target.runtime.getSpriteTargetByName(menu);\n if (!distTarget) return 10000;\n targetX = distTarget.x;\n targetY = distTarget.y;\n }\n\n const dx = thread.target.x - targetX;\n const dy = thread.target.y - targetY;\n return Math.sqrt((dx * dx) + (dy * dy));\n}",i+="const listIndexSlow = (index, length) => {\n if (index === 'last') {\n return length - 1;\n } else if (index === 'random' || index === 'any') {\n if (length > 0) {\n return (Math.random() * length) | 0;\n }\n return -1;\n }\n index = (+index || 0) | 0;\n if (index < 1 || index > length) {\n return -1;\n }\n return index - 1;\n};\nconst listIndex = (index, length) => {\n if (typeof index !== 'number') {\n return listIndexSlow(index, length);\n }\n index = index | 0;\n return index < 1 || index > length ? -1 : index - 1;\n};",s.listGet="const listGet = (list, idx) => {\n const index = listIndex(idx, list.length);\n if (index === -1) {\n return '';\n }\n return list[index];\n}",s.listReplace="const listReplace = (list, idx, value) => {\n const index = listIndex(idx, list.value.length);\n if (index === -1) {\n return;\n }\n list.value[index] = value;\n list._monitorUpToDate = false;\n}",s.listInsert="const listInsert = (list, idx, value) => {\n const index = listIndex(idx, list.value.length + 1);\n if (index === -1) {\n return;\n }\n list.value.splice(index, 0, value);\n list._monitorUpToDate = false;\n}",s.listDelete="const listDelete = (list, idx) => {\n if (idx === 'all') {\n list.value = [];\n return;\n }\n const index = listIndex(idx, list.value.length);\n if (index === -1) {\n return;\n }\n list.value.splice(index, 1);\n list._monitorUpToDate = false;\n}",s.listContains="const listContains = (list, item) => {\n // TODO: evaluate whether indexOf is worthwhile here\n if (list.value.indexOf(item) !== -1) {\n return true;\n }\n for (let i = 0; i < list.value.length; i++) {\n if (compareEqual(list.value[i], item)) {\n return true;\n }\n }\n return false;\n}",s.listIndexOf="const listIndexOf = (list, item) => {\n for (let i = 0; i < list.value.length; i++) {\n if (compareEqual(list.value[i], item)) {\n return i + 1;\n }\n }\n return 0;\n}",s.listContents="const listContents = list => {\n for (let i = 0; i < list.value.length; i++) {\n const listItem = list.value[i];\n // this is an intentional break from what scratch 3 does to address our automatic string -> number conversions\n // it fixes more than it breaks\n if ((listItem + '').length !== 1) {\n return list.value.join(' ');\n }\n }\n return list.value.join('');\n}",s.colorToList="const colorToList = color => globalState.Cast.toRgbColorList(color)",s.mod="const mod = (n, modulus) => {\n let result = n % modulus;\n if (result / modulus < 0) result += modulus;\n return result;\n}",s.tan="const tan = (angle) => {\n switch (angle % 360) {\n case -270: case 90: return Infinity;\n case -90: case 270: return -Infinity;\n }\n return Math.round(Math.tan((Math.PI * angle) / 180) * 1e10) / 1e10;\n}",s.yieldThenCall="const yieldThenCall = function* (callback, ...args) {\n yield;\n return callback(...args);\n}",s.yieldThenCallGenerator="const yieldThenCallGenerator = function* (callback, ...args) {\n yield;\n return yield* callback(...args);\n}";const o=e=>{r.thread=e,e.generator.next()},a=[];o.scopedEval=e=>{const t=(e=>{let t="let stuckCounter = 0;\nconst isStuck = () => {\n // The real time is not checked on every call for performance.\n stuckCounter++;\n if (stuckCounter === 100) {\n stuckCounter = 0;\n return globalState.thread.target.runtime.sequencer.timer.timeElapsed() > 500;\n }\n return false;\n};const isNotActuallyZero = val => {\n if (typeof val !== 'string') return false;\n for (let i = 0; i < val.length; i++) {\n const code = val.charCodeAt(i);\n if (code === 48 || code === 9) {\n return false;\n }\n }\n return true;\n};const compareEqualSlow = (v1, v2) => {\n const n1 = +v1;\n if (Number.isNaN(n1) || (n1 === 0 && isNotActuallyZero(v1))) return ('' + v1).toLowerCase() === ('' + v2).toLowerCase();\n const n2 = +v2;\n if (Number.isNaN(n2) || (n2 === 0 && isNotActuallyZero(v2))) return ('' + v1).toLowerCase() === ('' + v2).toLowerCase();\n return n1 === n2;\n};\nconst compareEqual = (v1, v2) => (typeof v1 === 'number' && typeof v2 === 'number' && !Number.isNaN(v1) && !Number.isNaN(v2) || v1 === v2) ? v1 === v2 : compareEqualSlow(v1, v2);const listIndexSlow = (index, length) => {\n if (index === 'last') {\n return length - 1;\n } else if (index === 'random' || index === 'any') {\n if (length > 0) {\n return (Math.random() * length) | 0;\n }\n return -1;\n }\n index = (+index || 0) | 0;\n if (index < 1 || index > length) {\n return -1;\n }\n return index - 1;\n};\nconst listIndex = (index, length) => {\n if (typeof index !== 'number') {\n return listIndexSlow(index, length);\n }\n index = index | 0;\n return index < 1 || index > length ? -1 : index - 1;\n};";for(const n of Object.keys(s))e.includes(n)&&(t+="".concat(s[n],";"));return t+="return ".concat(e),t})(e);try{return new Function("globalState",t)(r)}catch(e){throw r.log.error("was unable to compile script",t),e}},o.runtimeFunctions=s,o.saveGlobalState=()=>{a.push(r.thread)},o.restoreGlobalState=()=>{r.thread=a.pop()},e.exports=o},function(e,t,n){const r=n(4),i=n(6),s=n(1),o=n(12),a=n(235),c=n(13);class l extends a{constructor(e,t){super(t,e.blocks),this.sprite=e,this.renderer=null,this.runtime&&(this.renderer=this.runtime.renderer),this.drawableID=null,this.dragging=!1,this.effects={color:0,fisheye:0,whirl:0,pixelate:0,mosaic:0,brightness:0,ghost:0},this.isOriginal=!0,this.isStage=!1,this.x=0,this.y=0,this.direction=90,this.draggable=!1,this.visible=!0,this.size=100,this.currentCostume=0,this.rotationStyle=l.ROTATION_STYLE_ALL_AROUND,this.volume=100,this.tempo=60,this.videoTransparency=50,this.videoState=l.VIDEO_STATE.ON,this.textToSpeechLanguage=null,this.onTargetMoved=null,this.onTargetVisualChange=null,this.interpolationData=null}initDrawable(e){this.renderer&&(this.drawableID=this.renderer.createDrawable(e)),this.isOriginal||this.runtime.startHats("control_start_as_clone",null,this)}get audioPlayer(){console.warn("get audioPlayer deprecated, please update to use .sprite.soundBank methods"),console.warn(new Error("stack for debug").stack);const e=this.sprite.soundBank,t={playSound:t=>e.play(this,t)};return Object.defineProperty(this,"audioPlayer",{configurable:!1,enumerable:!0,writable:!1,value:t}),t}initAudio(){}static get ROTATION_STYLE_ALL_AROUND(){return"all around"}static get ROTATION_STYLE_LEFT_RIGHT(){return"left-right"}static get ROTATION_STYLE_NONE(){return"don't rotate"}static get VIDEO_STATE(){return{OFF:"off",ON:"on",ON_FLIPPED:"on-flipped"}}emitVisualChange(){this.onTargetVisualChange&&this.onTargetVisualChange(this)}setXY(e,t,n){if(this.isStage)return;if(this.dragging&&!n)return;const r=this.x,i=this.y;if(this.renderer){const n=this.runtime.runtimeOptions.fencing?this.renderer.getFencedPositionOfDrawable(this.drawableID,[e,t]):[e,t];this.x=n[0],this.y=n[1],this.renderer.updateDrawablePosition(this.drawableID,n),this.visible&&(this.emitVisualChange(),this.runtime.requestRedraw())}else this.x=e,this.y=t;this.onTargetMoved&&this.onTargetMoved(this,r,i,n),this.runtime.requestTargetsUpdate(this)}_getRenderedDirectionAndScale(){let e=this.direction,t=[this.size,this.size];if(this.rotationStyle===l.ROTATION_STYLE_NONE)e=90;else if(this.rotationStyle===l.ROTATION_STYLE_LEFT_RIGHT){e=90;t=[(this.direction<0?-1:1)*this.size,this.size]}return{direction:e,scale:t}}setDirection(e){if(!this.isStage&&isFinite(e)){if(this.direction=r.wrapClamp(e,-179,180),this.renderer){const{direction:e,scale:t}=this._getRenderedDirectionAndScale();this.renderer.updateDrawableDirectionScale(this.drawableID,e,t),this.visible&&(this.emitVisualChange(),this.runtime.requestRedraw())}this.runtime.requestTargetsUpdate(this)}}setDraggable(e){this.isStage||(this.draggable=!!e,this.runtime.requestTargetsUpdate(this))}setVisible(e){this.isStage||(this.visible=!!e,this.renderer&&(this.renderer.updateDrawableVisible(this.drawableID,this.visible),this.visible&&(this.emitVisualChange(),this.runtime.requestRedraw())),this.runtime.requestTargetsUpdate(this))}setSize(e){if(!this.isStage){if(this.renderer){const t=this.renderer.getCurrentSkinSize(this.drawableID),n=t[0],i=t[1],s=this.runtime.runtimeOptions.fencing,o=s?Math.min(1,Math.max(5/n,5/i)):0,a=s?Math.min(1.5*this.runtime.stageWidth/n,1.5*this.runtime.stageHeight/i):1/0;this.size=100*r.clamp(e/100,o,a);const{direction:c,scale:l}=this._getRenderedDirectionAndScale();this.renderer.updateDrawableDirectionScale(this.drawableID,c,l),this.visible&&(this.emitVisualChange(),this.runtime.requestRedraw())}else this.size=e;this.runtime.requestTargetsUpdate(this)}}setEffect(e,t){Object.prototype.hasOwnProperty.call(this.effects,e)&&(this.effects[e]=t,this.renderer&&(this.renderer.updateDrawableEffect(this.drawableID,e,t),this.visible&&(this.emitVisualChange(),this.runtime.requestRedraw())))}clearEffects(){for(const e in this.effects)Object.prototype.hasOwnProperty.call(this.effects,e)&&(this.effects[e]=0);if(this.renderer){for(const e in this.effects)Object.prototype.hasOwnProperty.call(this.effects,e)&&this.renderer.updateDrawableEffect(this.drawableID,e,0);this.visible&&(this.emitVisualChange(),this.runtime.requestRedraw())}}setCostume(e){if((e=Math.round(e))!==1/0&&e!==-1/0&&e||(e=0),this.currentCostume=r.wrapClamp(e,0,this.sprite.costumes.length-1),this.renderer){const e=this.sprite.costumes[this.currentCostume];this.renderer.updateDrawableSkinId(this.drawableID,e.skinId),this.visible&&(this.emitVisualChange(),this.runtime.requestRedraw())}this.runtime.requestTargetsUpdate(this)}addCostume(e,t){"number"!=typeof t||isNaN(t)?this.sprite.addCostumeAt(e,this.sprite.costumes.length):this.sprite.addCostumeAt(e,t)}renameCostume(e,t){const n=this.sprite.costumes.filter(((t,n)=>e!==n)).map((e=>e.name)),r=this.getCostumes()[e].name,s=i.unusedName(t,n);if(this.getCostumes()[e].name=s,this.isStage){const e=this.runtime.targets;for(let t=0;t<e.length;t++){e[t].blocks.updateAssetName(r,s,"backdrop")}}else this.blocks.updateAssetName(r,s,"costume")}deleteCostume(e){const t=this.sprite.costumes.length;if(1===t)return null;if(e<0||e>=t)return null;const n=this.sprite.deleteCostumeAt(e);return e===this.currentCostume&&e===t-1?this.setCostume(e-1):e<this.currentCostume?this.setCostume(this.currentCostume-1):this.setCostume(this.currentCostume),this.runtime.requestTargetsUpdate(this),n}addSound(e,t){const n=this.sprite.sounds.map((e=>e.name));e.name=i.unusedName(e.name,n),"number"!=typeof t||isNaN(t)?this.sprite.sounds.push(e):this.sprite.sounds.splice(t,0,e)}renameSound(e,t){const n=this.sprite.sounds.filter(((t,n)=>e!==n)).map((e=>e.name)),r=this.sprite.sounds[e].name,s=i.unusedName(t,n);this.sprite.sounds[e].name=s,this.blocks.updateAssetName(r,s,"sound")}deleteSound(e){if(e<0||e>=this.sprite.sounds.length)return null;const t=this.sprite.sounds.splice(e,1)[0];return this.runtime.requestTargetsUpdate(this),t}setRotationStyle(e){if(e===l.ROTATION_STYLE_NONE?this.rotationStyle=l.ROTATION_STYLE_NONE:e===l.ROTATION_STYLE_ALL_AROUND?this.rotationStyle=l.ROTATION_STYLE_ALL_AROUND:e===l.ROTATION_STYLE_LEFT_RIGHT&&(this.rotationStyle=l.ROTATION_STYLE_LEFT_RIGHT),this.renderer){const{direction:e,scale:t}=this._getRenderedDirectionAndScale();this.renderer.updateDrawableDirectionScale(this.drawableID,e,t),this.visible&&(this.emitVisualChange(),this.runtime.requestRedraw())}this.runtime.requestTargetsUpdate(this)}getCostumeIndexByName(e){const t=this.getCostumes();for(let n=0;n<t.length;n++)if(t[n].name===e)return n;return-1}getCurrentCostume(){return this.getCostumes()[this.currentCostume]}getCostumes(){return this.sprite.costumes}reorderCostume(e,t){if((t=r.clamp(t,0,this.sprite.costumes.length-1))===(e=r.clamp(e,0,this.sprite.costumes.length-1)))return!1;const n=this.getCurrentCostume(),i=this.sprite.costumes[e];return this.sprite.deleteCostumeAt(e),this.addCostume(i,t),this.currentCostume=this.getCostumeIndexByName(n.name),!0}reorderSound(e,t){if((t=r.clamp(t,0,this.sprite.sounds.length-1))===(e=r.clamp(e,0,this.sprite.sounds.length-1)))return!1;const n=this.sprite.sounds[e];return this.deleteSound(e),this.addSound(n,t),!0}getSounds(){return this.sprite.sounds}updateAllDrawableProperties(){if(this.renderer){const{direction:e,scale:t}=this._getRenderedDirectionAndScale();this.renderer.updateDrawablePosition(this.drawableID,[this.x,this.y]),this.renderer.updateDrawableDirectionScale(this.drawableID,e,t),this.renderer.updateDrawableVisible(this.drawableID,this.visible);const n=this.getCostumes()[this.currentCostume];this.renderer.updateDrawableSkinId(this.drawableID,n.skinId);for(const e in this.effects)Object.prototype.hasOwnProperty.call(this.effects,e)&&this.renderer.updateDrawableEffect(this.drawableID,e,this.effects[e]);this.visible&&(this.emitVisualChange(),this.runtime.requestRedraw())}this.runtime.requestTargetsUpdate(this)}getName(){return this.sprite.name}isSprite(){return!this.isStage&&this.isOriginal}getBounds(){return this.renderer?this.runtime.renderer.getBounds(this.drawableID):null}getBoundsForBubble(){return this.renderer?this.runtime.renderer.getBoundsForBubble(this.drawableID):null}isTouchingObject(e){if("_mouse_"===e){if(!this.runtime.ioDevices.mouse)return!1;const e=this.runtime.ioDevices.mouse.getClientX(),t=this.runtime.ioDevices.mouse.getClientY();return this.isTouchingPoint(e,t)}return"_edge_"===e?this.isTouchingEdge():this.isTouchingSprite(e)}isTouchingPoint(e,t){return!!this.renderer&&this.renderer.drawableTouching(this.drawableID,e,t)}isTouchingEdge(){if(this.renderer){const e=this.runtime.stageWidth,t=this.runtime.stageHeight,n=this.getBounds();if(n.left<-e/2||n.right>e/2||n.top>t/2||n.bottom<-t/2)return!0}return!1}isTouchingSprite(e){e=s.toString(e);const t=this.runtime.getSpriteTargetByName(e);if(!t||!this.renderer)return!1;const n=t.sprite.clones.filter((e=>!e.dragging)).map((e=>e.drawableID));return this.renderer.isTouchingDrawables(this.drawableID,n)}isTouchingColor(e){return!!this.renderer&&this.renderer.isTouchingColor(this.drawableID,e)}colorIsTouchingColor(e,t){return!!this.renderer&&this.renderer.isTouchingColor(this.drawableID,e,t)}getLayerOrder(){return this.renderer?this.renderer.getDrawableOrder(this.drawableID):null}goToFront(){this.renderer&&this.renderer.setDrawableOrder(this.drawableID,1/0,c.SPRITE_LAYER),this.runtime.setExecutablePosition(this,1/0)}goToBack(){this.renderer&&this.renderer.setDrawableOrder(this.drawableID,-1/0,c.SPRITE_LAYER,!1),this.runtime.setExecutablePosition(this,-1/0)}goForwardLayers(e){this.renderer&&this.renderer.setDrawableOrder(this.drawableID,e,c.SPRITE_LAYER,!0),this.runtime.moveExecutable(this,e)}goBackwardLayers(e){this.renderer&&this.renderer.setDrawableOrder(this.drawableID,-e,c.SPRITE_LAYER,!0),this.runtime.moveExecutable(this,-e)}goBehindOther(e){if(this.renderer){const t=this.renderer.setDrawableOrder(e.drawableID,0,c.SPRITE_LAYER,!0);this.renderer.setDrawableOrder(this.drawableID,t,c.SPRITE_LAYER)}const t=this.runtime.executableTargets.indexOf(e);this.runtime.setExecutablePosition(this,t)}keepInFence(e,t,n){let r=n;r||(r={left:-this.runtime.stageWidth/2,right:this.runtime.stageWidth/2,top:this.runtime.stageHeight/2,bottom:-this.runtime.stageHeight/2});const i=this.getBounds();if(!i)return;i.left+=e-this.x,i.right+=e-this.x,i.top+=t-this.y,i.bottom+=t-this.y;let s=0,o=0;return i.left<r.left&&(s+=r.left-i.left),i.right>r.right&&(s+=r.right-i.right),i.top>r.top&&(o+=r.top-i.top),i.bottom<r.bottom&&(o+=r.bottom-i.bottom),[e+s,t+o]}makeClone(){if(!this.runtime.clonesAvailable()||this.isStage)return null;this.runtime.changeCloneCounter(1);const e=this.sprite.createClone();return e.x=this.x,e.y=this.y,e.direction=this.direction,e.draggable=this.draggable,e.visible=this.visible,e.size=this.size,e.currentCostume=this.currentCostume,e.rotationStyle=this.rotationStyle,e.effects=o.simple(this.effects),e.variables=this.duplicateVariables(),e._edgeActivatedHatValues=o.simple(this._edgeActivatedHatValues),e.initDrawable(c.SPRITE_LAYER),e.updateAllDrawableProperties(),e}duplicate(){return this.sprite.duplicate().then((e=>{const t=e.createClone();return t.x=400*(Math.random()-.5)/2,t.y=300*(Math.random()-.5)/2,t.direction=this.direction,t.draggable=this.draggable,t.visible=this.visible,t.size=this.size,t.currentCostume=this.currentCostume,t.rotationStyle=this.rotationStyle,t.effects=JSON.parse(JSON.stringify(this.effects)),t.variables=this.duplicateVariables(t.blocks),t.updateAllDrawableProperties(),t}))}onGreenFlag(){this.clearEffects()}onStopAll(){this.clearEffects()}postSpriteInfo(e){const t=Object.prototype.hasOwnProperty.call(e,"force")?e.force:null,n=Object.prototype.hasOwnProperty.call(e,"x"),r=Object.prototype.hasOwnProperty.call(e,"y");(n||r)&&this.setXY(n?e.x:this.x,r?e.y:this.y,t),Object.prototype.hasOwnProperty.call(e,"direction")&&this.setDirection(e.direction),Object.prototype.hasOwnProperty.call(e,"draggable")&&this.setDraggable(e.draggable),Object.prototype.hasOwnProperty.call(e,"rotationStyle")&&this.setRotationStyle(e.rotationStyle),Object.prototype.hasOwnProperty.call(e,"visible")&&this.setVisible(e.visible),Object.prototype.hasOwnProperty.call(e,"size")&&this.setSize(e.size)}startDrag(){this.dragging=!0}stopDrag(){this.dragging=!1}toJSON(){const e=this.getCostumes();return{id:this.id,name:this.getName(),isStage:this.isStage,x:this.x,y:this.y,size:this.size,direction:this.direction,draggable:this.draggable,currentCostume:this.currentCostume,costume:e[this.currentCostume],costumeCount:e.length,visible:this.visible,rotationStyle:this.rotationStyle,comments:this.comments,blocks:this.blocks._blocks,variables:this.variables,costumes:e,sounds:this.getSounds(),textToSpeechLanguage:this.textToSpeechLanguage,tempo:this.tempo,volume:this.volume,videoTransparency:this.videoTransparency,videoState:this.videoState}}dispose(){this.isOriginal||this.runtime.changeCloneCounter(-1),this.runtime.stopForTarget(this),this.runtime.removeExecutable(this),this.sprite.removeClone(this),this.renderer&&null!==this.drawableID&&(this.renderer.destroyDrawable(this.drawableID,this.isStage?c.BACKGROUND_LAYER:c.SPRITE_LAYER),this.visible&&(this.emitVisualChange(),this.runtime.requestRedraw()))}}e.exports=l},function(e,t,n){const r=n(7),i=n(31);class s{constructor(e,t,n,i,o,a,c){this.id=e||r(),this.text=t,this.x=n,this.y=i,this.width=Math.max(Number(o),s.MIN_WIDTH),this.height=Math.max(Number(a),s.MIN_HEIGHT),this.minimized=c||!1,this.blockId=null}toXML(){return'<comment id="'.concat(this.id,'" x="').concat(this.x,'" y="').concat(this.y,'" w="').concat(this.width,'" h="').concat(this.height,'" pinned="').concat(null!==this.blockId,'" minimized="').concat(this.minimized,'">').concat(i(this.text),"</comment>")}static get MIN_WIDTH(){return 20}static get MIN_HEIGHT(){return 20}static get DEFAULT_WIDTH(){return 100}static get DEFAULT_HEIGHT(){return 100}}e.exports=s},function(e,t,n){const r=n(47),i=n(17),{loadSoundFromAsset:s}=n(33),{loadCostumeFromAsset:o}=n(34),a=n(80),c=n(6),l=n(13);class u{constructor(e,t){this.runtime=t,e||(e=new i(t)),this.blocks=e,this.name="",this.costumes_=[],this.sounds=[],this.clones=[],this.soundBank=null,this.runtime&&this.runtime.audioEngine&&(this.soundBank=this.runtime.audioEngine.createBank())}set costumes(e){this.costumes_=[];for(const t of e)this.addCostumeAt(t,this.costumes_.length)}get costumes(){return this.costumes_}addCostumeAt(e,t){e.name||(e.name="");const n=this.costumes_.map((e=>e.name));e.name=c.unusedName(e.name,n),this.costumes_.splice(t,0,e)}deleteCostumeAt(e){return this.costumes.splice(e,1)[0]}createClone(e){const t=new r(this,this.runtime);if(t.isOriginal=0===this.clones.length,this.clones.push(t),t.initAudio(),t.isOriginal){const n="string"==typeof e?e:l.SPRITE_LAYER;t.initDrawable(n),this.runtime.fireTargetWasCreated(t)}else this.runtime.fireTargetWasCreated(t,this.clones[0]);return t}removeClone(e){this.runtime.fireTargetWasRemoved(e);const t=this.clones.indexOf(e);t>=0&&this.clones.splice(t,1)}duplicate(){const e=new u(null,this.runtime),t=this.blocks._blocks,n=Object.keys(t).map((e=>t[e])),r=JSON.parse(JSON.stringify(n));a(r),r.forEach((t=>{e.blocks.createBlock(t)}));const i=this.runtime.targets.map((e=>e.sprite.name));e.name=c.unusedName(this.name,i);const l=[];return e.costumes=this.costumes_.map((e=>{const t=Object.assign({},e);return l.push(o(t,this.runtime)),t})),e.sounds=this.sounds.map((t=>{const n=Object.assign({},t),r=t.asset;return l.push(s(n,r,this.runtime,e.soundBank)),n})),Promise.all(l).then((()=>e))}dispose(){this.soundBank&&this.soundBank.dispose()}}e.exports=u},function(e,t,n){e.exports=function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,n){return t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(e,n)}function n(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function r(e,i,s){return r=n()?Reflect.construct:function(e,n,r){var i=[null];i.push.apply(i,n);var s=new(Function.bind.apply(e,i));return r&&t(s,r.prototype),s},r.apply(null,arguments)}function i(e){return s(e)||o(e)||a(e)||l()}function s(e){if(Array.isArray(e))return c(e)}function o(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function a(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u=Object.hasOwnProperty,h=Object.setPrototypeOf,d=Object.isFrozen,p=Object.getPrototypeOf,f=Object.getOwnPropertyDescriptor,m=Object.freeze,g=Object.seal,b=Object.create,y="undefined"!=typeof Reflect&&Reflect,E=y.apply,T=y.construct;E||(E=function(e,t,n){return e.apply(t,n)}),m||(m=function(e){return e}),g||(g=function(e){return e}),T||(T=function(e,t){return r(e,i(t))});var v=C(Array.prototype.forEach),A=C(Array.prototype.pop),w=C(Array.prototype.push),S=C(String.prototype.toLowerCase),k=C(String.prototype.toString),O=C(String.prototype.match),I=C(String.prototype.replace),N=C(String.prototype.indexOf),R=C(String.prototype.trim),x=C(RegExp.prototype.test),M=P(TypeError);function C(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return E(e,t,r)}}function P(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return T(e,n)}}function L(e,t,n){var r;n=null!==(r=n)&&void 0!==r?r:S,h&&h(e,null);for(var i=t.length;i--;){var s=t[i];if("string"==typeof s){var o=n(s);o!==s&&(d(t)||(t[i]=o),s=o)}e[s]=!0}return e}function D(e){var t,n=b(null);for(t in e)!0===E(u,e,[t])&&(n[t]=e[t]);return n}function B(e,t){for(;null!==e;){var n=f(e,t);if(n){if(n.get)return C(n.get);if("function"==typeof n.value)return C(n.value)}e=p(e)}function r(e){return console.warn("fallback value for",e),null}return r}var U=m(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),F=m(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),j=m(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),z=m(["animate","color-profile","cursor","discard","fedropshadow","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),G=m(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),V=m(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Y=m(["#text"]),_=m(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),H=m(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),W=m(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),K=m(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),X=g(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Z=g(/<%[\w\W]*|[\w\W]*%>/gm),q=g(/\${[\w\W]*}/gm),Q=g(/^data-[\-\w.\u00B7-\uFFFF]+$/),J=g(/^aria-[\-\w]+$/),$=g(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ee=g(/^(?:\w+script|data):/i),te=g(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ne=g(/^html$/i),re=g(/^[a-z][.\w]*(-[.\w]+)+$/i),ie=function(){return"undefined"==typeof window?null:window},se=function(t,n){if("object"!==e(t)||"function"!=typeof t.createPolicy)return null;var r=null,i="data-tt-policy-suffix";n.currentScript&&n.currentScript.hasAttribute(i)&&(r=n.currentScript.getAttribute(i));var s="dompurify"+(r?"#"+r:"");try{return t.createPolicy(s,{createHTML:function(e){return e},createScriptURL:function(e){return e}})}catch(e){return console.warn("TrustedTypes policy "+s+" could not be created."),null}};function oe(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ie(),n=function(e){return oe(e)};if(n.version="2.5.8",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var r=t.document,s=t.document,o=t.DocumentFragment,a=t.HTMLTemplateElement,c=t.Node,l=t.Element,u=t.NodeFilter,h=t.NamedNodeMap,d=void 0===h?t.NamedNodeMap||t.MozNamedAttrMap:h,p=t.HTMLFormElement,f=t.DOMParser,g=t.trustedTypes,b=l.prototype,y=B(b,"cloneNode"),E=B(b,"nextSibling"),T=B(b,"childNodes"),C=B(b,"parentNode");if("function"==typeof a){var P=s.createElement("template");P.content&&P.content.ownerDocument&&(s=P.content.ownerDocument)}var ae=se(g,r),ce=ae?ae.createHTML(""):"",le=s,ue=le.implementation,he=le.createNodeIterator,de=le.createDocumentFragment,pe=le.getElementsByTagName,fe=r.importNode,me={};try{me=D(s).documentMode?s.documentMode:{}}catch(e){}var ge={};n.isSupported="function"==typeof C&&ue&&void 0!==ue.createHTMLDocument&&9!==me;var be,ye,Ee=X,Te=Z,ve=q,Ae=Q,we=J,Se=ee,ke=te,Oe=re,Ie=$,Ne=null,Re=L({},[].concat(i(U),i(F),i(j),i(G),i(Y))),xe=null,Me=L({},[].concat(i(_),i(H),i(W),i(K))),Ce=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Pe=null,Le=null,De=!0,Be=!0,Ue=!1,Fe=!0,je=!1,ze=!0,Ge=!1,Ve=!1,Ye=!1,_e=!1,He=!1,We=!1,Ke=!0,Xe=!1,Ze="user-content-",qe=!0,Qe=!1,Je={},$e=null,et=L({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),tt=null,nt=L({},["audio","video","img","source","image","track"]),rt=null,it=L({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),st="http://www.w3.org/1998/Math/MathML",ot="http://www.w3.org/2000/svg",at="http://www.w3.org/1999/xhtml",ct=at,lt=!1,ut=null,ht=L({},[st,ot,at],k),dt=["application/xhtml+xml","text/html"],pt="text/html",ft=null,mt=s.createElement("form"),gt=function(e){return e instanceof RegExp||e instanceof Function},bt=function(t){ft&&ft===t||(t&&"object"===e(t)||(t={}),t=D(t),be=be=-1===dt.indexOf(t.PARSER_MEDIA_TYPE)?pt:t.PARSER_MEDIA_TYPE,ye="application/xhtml+xml"===be?k:S,Ne="ALLOWED_TAGS"in t?L({},t.ALLOWED_TAGS,ye):Re,xe="ALLOWED_ATTR"in t?L({},t.ALLOWED_ATTR,ye):Me,ut="ALLOWED_NAMESPACES"in t?L({},t.ALLOWED_NAMESPACES,k):ht,rt="ADD_URI_SAFE_ATTR"in t?L(D(it),t.ADD_URI_SAFE_ATTR,ye):it,tt="ADD_DATA_URI_TAGS"in t?L(D(nt),t.ADD_DATA_URI_TAGS,ye):nt,$e="FORBID_CONTENTS"in t?L({},t.FORBID_CONTENTS,ye):et,Pe="FORBID_TAGS"in t?L({},t.FORBID_TAGS,ye):{},Le="FORBID_ATTR"in t?L({},t.FORBID_ATTR,ye):{},Je="USE_PROFILES"in t&&t.USE_PROFILES,De=!1!==t.ALLOW_ARIA_ATTR,Be=!1!==t.ALLOW_DATA_ATTR,Ue=t.ALLOW_UNKNOWN_PROTOCOLS||!1,Fe=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,je=t.SAFE_FOR_TEMPLATES||!1,ze=!1!==t.SAFE_FOR_XML,Ge=t.WHOLE_DOCUMENT||!1,_e=t.RETURN_DOM||!1,He=t.RETURN_DOM_FRAGMENT||!1,We=t.RETURN_TRUSTED_TYPE||!1,Ye=t.FORCE_BODY||!1,Ke=!1!==t.SANITIZE_DOM,Xe=t.SANITIZE_NAMED_PROPS||!1,qe=!1!==t.KEEP_CONTENT,Qe=t.IN_PLACE||!1,Ie=t.ALLOWED_URI_REGEXP||Ie,ct=t.NAMESPACE||at,Ce=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&>(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ce.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&>(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ce.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Ce.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),je&&(Be=!1),He&&(_e=!0),Je&&(Ne=L({},i(Y)),xe=[],!0===Je.html&&(L(Ne,U),L(xe,_)),!0===Je.svg&&(L(Ne,F),L(xe,H),L(xe,K)),!0===Je.svgFilters&&(L(Ne,j),L(xe,H),L(xe,K)),!0===Je.mathMl&&(L(Ne,G),L(xe,W),L(xe,K))),t.ADD_TAGS&&(Ne===Re&&(Ne=D(Ne)),L(Ne,t.ADD_TAGS,ye)),t.ADD_ATTR&&(xe===Me&&(xe=D(xe)),L(xe,t.ADD_ATTR,ye)),t.ADD_URI_SAFE_ATTR&&L(rt,t.ADD_URI_SAFE_ATTR,ye),t.FORBID_CONTENTS&&($e===et&&($e=D($e)),L($e,t.FORBID_CONTENTS,ye)),qe&&(Ne["#text"]=!0),Ge&&L(Ne,["html","head","body"]),Ne.table&&(L(Ne,["tbody"]),delete Pe.tbody),m&&m(t),ft=t)},yt=L({},["mi","mo","mn","ms","mtext"]),Et=L({},["annotation-xml"]),Tt=L({},["title","style","font","a","script"]),vt=L({},F);L(vt,j),L(vt,z);var At=L({},G);L(At,V);var wt=function(e){var t=C(e);t&&t.tagName||(t={namespaceURI:ct,tagName:"template"});var n=S(e.tagName),r=S(t.tagName);return!!ut[e.namespaceURI]&&(e.namespaceURI===ot?t.namespaceURI===at?"svg"===n:t.namespaceURI===st?"svg"===n&&("annotation-xml"===r||yt[r]):Boolean(vt[n]):e.namespaceURI===st?t.namespaceURI===at?"math"===n:t.namespaceURI===ot?"math"===n&&Et[r]:Boolean(At[n]):e.namespaceURI===at?!(t.namespaceURI===ot&&!Et[r])&&!(t.namespaceURI===st&&!yt[r])&&!At[n]&&(Tt[n]||!vt[n]):!("application/xhtml+xml"!==be||!ut[e.namespaceURI]))},St=function(e){w(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){try{e.outerHTML=ce}catch(t){e.remove()}}},kt=function(e,t){try{w(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){w(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!xe[e])if(_e||He)try{St(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},Ot=function(e){var t,n;if(Ye)e="<remove></remove>"+e;else{var r=O(e,/^[\r\n\t ]+/);n=r&&r[0]}"application/xhtml+xml"===be&&ct===at&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");var i=ae?ae.createHTML(e):e;if(ct===at)try{t=(new f).parseFromString(i,be)}catch(e){}if(!t||!t.documentElement){t=ue.createDocument(ct,"template",null);try{t.documentElement.innerHTML=lt?ce:i}catch(e){}}var o=t.body||t.documentElement;return e&&n&&o.insertBefore(s.createTextNode(n),o.childNodes[0]||null),ct===at?pe.call(t,Ge?"html":"body")[0]:Ge?t.documentElement:o},It=function(e){return he.call(e.ownerDocument||e,e,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null,!1)},Nt=function(e){return e instanceof p&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof d)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Rt=function(t){return"object"===e(c)?t instanceof c:t&&"object"===e(t)&&"number"==typeof t.nodeType&&"string"==typeof t.nodeName},xt=function(e,t,r){ge[e]&&v(ge[e],(function(e){e.call(n,t,r,ft)}))},Mt=function(e){var t;if(xt("beforeSanitizeElements",e,null),Nt(e))return St(e),!0;if(x(/[\u0080-\uFFFF]/,e.nodeName))return St(e),!0;var r=ye(e.nodeName);if(xt("uponSanitizeElement",e,{tagName:r,allowedTags:Ne}),e.hasChildNodes()&&!Rt(e.firstElementChild)&&(!Rt(e.content)||!Rt(e.content.firstElementChild))&&x(/<[/\w]/g,e.innerHTML)&&x(/<[/\w]/g,e.textContent))return St(e),!0;if("select"===r&&x(/<template/i,e.innerHTML))return St(e),!0;if(7===e.nodeType)return St(e),!0;if(ze&&8===e.nodeType&&x(/<[/\w]/g,e.data))return St(e),!0;if(!Ne[r]||Pe[r]){if(!Pe[r]&&Pt(r)){if(Ce.tagNameCheck instanceof RegExp&&x(Ce.tagNameCheck,r))return!1;if(Ce.tagNameCheck instanceof Function&&Ce.tagNameCheck(r))return!1}if(qe&&!$e[r]){var i=C(e)||e.parentNode,s=T(e)||e.childNodes;if(s&&i)for(var o=s.length-1;o>=0;--o){var a=y(s[o],!0);a.__removalCount=(e.__removalCount||0)+1,i.insertBefore(a,E(e))}}return St(e),!0}return e instanceof l&&!wt(e)?(St(e),!0):"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!x(/<\/no(script|embed|frames)/i,e.innerHTML)?(je&&3===e.nodeType&&(t=e.textContent,t=I(t,Ee," "),t=I(t,Te," "),t=I(t,ve," "),e.textContent!==t&&(w(n.removed,{element:e.cloneNode()}),e.textContent=t)),xt("afterSanitizeElements",e,null),!1):(St(e),!0)},Ct=function(e,t,n){if(Ke&&("id"===t||"name"===t)&&(n in s||n in mt))return!1;if(Be&&!Le[t]&&x(Ae,t));else if(De&&x(we,t));else if(!xe[t]||Le[t]){if(!(Pt(e)&&(Ce.tagNameCheck instanceof RegExp&&x(Ce.tagNameCheck,e)||Ce.tagNameCheck instanceof Function&&Ce.tagNameCheck(e))&&(Ce.attributeNameCheck instanceof RegExp&&x(Ce.attributeNameCheck,t)||Ce.attributeNameCheck instanceof Function&&Ce.attributeNameCheck(t))||"is"===t&&Ce.allowCustomizedBuiltInElements&&(Ce.tagNameCheck instanceof RegExp&&x(Ce.tagNameCheck,n)||Ce.tagNameCheck instanceof Function&&Ce.tagNameCheck(n))))return!1}else if(rt[t]);else if(x(Ie,I(n,ke,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==N(n,"data:")||!tt[e])if(Ue&&!x(Se,I(n,ke,"")));else if(n)return!1;return!0},Pt=function(e){return"annotation-xml"!==e&&O(e,Oe)},Lt=function(t){var r,i,s,o;xt("beforeSanitizeAttributes",t,null);var a=t.attributes;if(a&&!Nt(t)){var c={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:xe};for(o=a.length;o--;){var l=r=a[o],u=l.name,h=l.namespaceURI;if(i="value"===u?r.value:R(r.value),s=ye(u),c.attrName=s,c.attrValue=i,c.keepAttr=!0,c.forceKeepAttr=void 0,xt("uponSanitizeAttribute",t,c),i=c.attrValue,!c.forceKeepAttr&&(kt(u,t),c.keepAttr))if(Fe||!x(/\/>/i,i)){je&&(i=I(i,Ee," "),i=I(i,Te," "),i=I(i,ve," "));var d=ye(t.nodeName);if(Ct(d,s,i))if(!Xe||"id"!==s&&"name"!==s||(kt(u,t),i=Ze+i),ze&&x(/((--!?|])>)|<\/(style|title)/i,i))kt(u,t);else{if(ae&&"object"===e(g)&&"function"==typeof g.getAttributeType)if(h);else switch(g.getAttributeType(d,s)){case"TrustedHTML":i=ae.createHTML(i);break;case"TrustedScriptURL":i=ae.createScriptURL(i)}try{h?t.setAttributeNS(h,u,i):t.setAttribute(u,i),Nt(t)?St(t):A(n.removed)}catch(e){}}}else kt(u,t)}xt("afterSanitizeAttributes",t,null)}},Dt=function e(t){var n,r=It(t);for(xt("beforeSanitizeShadowDOM",t,null);n=r.nextNode();)xt("uponSanitizeShadowNode",n,null),Mt(n),Lt(n),n.content instanceof o&&e(n.content);xt("afterSanitizeShadowDOM",t,null)};return n.sanitize=function(i){var s,a,l,u,h,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if((lt=!i)&&(i="\x3c!--\x3e"),"string"!=typeof i&&!Rt(i)){if("function"!=typeof i.toString)throw M("toString is not a function");if("string"!=typeof(i=i.toString()))throw M("dirty is not a string, aborting")}if(!n.isSupported){if("object"===e(t.toStaticHTML)||"function"==typeof t.toStaticHTML){if("string"==typeof i)return t.toStaticHTML(i);if(Rt(i))return t.toStaticHTML(i.outerHTML)}return i}if(Ve||bt(d),n.removed=[],"string"==typeof i&&(Qe=!1),Qe){if(i.nodeName){var p=ye(i.nodeName);if(!Ne[p]||Pe[p])throw M("root node is forbidden and cannot be sanitized in-place")}}else if(i instanceof c)1===(a=(s=Ot("\x3c!----\x3e")).ownerDocument.importNode(i,!0)).nodeType&&"BODY"===a.nodeName||"HTML"===a.nodeName?s=a:s.appendChild(a);else{if(!_e&&!je&&!Ge&&-1===i.indexOf("<"))return ae&&We?ae.createHTML(i):i;if(!(s=Ot(i)))return _e?null:We?ce:""}s&&Ye&&St(s.firstChild);for(var f=It(Qe?i:s);l=f.nextNode();)3===l.nodeType&&l===u||(Mt(l),Lt(l),l.content instanceof o&&Dt(l.content),u=l);if(u=null,Qe)return i;if(_e){if(He)for(h=de.call(s.ownerDocument);s.firstChild;)h.appendChild(s.firstChild);else h=s;return(xe.shadowroot||xe.shadowrootmod)&&(h=fe.call(r,h,!0)),h}var m=Ge?s.outerHTML:s.innerHTML;return Ge&&Ne["!doctype"]&&s.ownerDocument&&s.ownerDocument.doctype&&s.ownerDocument.doctype.name&&x(ne,s.ownerDocument.doctype.name)&&(m="<!DOCTYPE "+s.ownerDocument.doctype.name+">\n"+m),je&&(m=I(m,Ee," "),m=I(m,Te," "),m=I(m,ve," ")),ae&&We?ae.createHTML(m):m},n.setConfig=function(e){bt(e),Ve=!0},n.clearConfig=function(){ft=null,Ve=!1},n.isValidAttribute=function(e,t,n){ft||bt({});var r=ye(e),i=ye(t);return Ct(r,i,n)},n.addHook=function(e,t){"function"==typeof t&&(ge[e]=ge[e]||[],w(ge[e],t))},n.removeHook=function(e){if(ge[e])return A(ge[e])},n.removeHooks=function(e){ge[e]&&(ge[e]=[])},n.removeAllHooks=function(){ge={}},n}return oe()}()},function(e,t){class n{static get svg(){return"http://www.w3.org/2000/svg"}static get xmlns(){return"http://www.w3.org/2000/xmlns"}static get xlink(){return"http://www.w3.org/1999/xlink"}static attributeNamespace(){return{href:n.xlink,xlink:n.xmlns,xmlns:`${n.xmlns}/`,"xmlns:xlink":`${n.xmlns}/`}}static create(e,t,r){return n.set(document.createElementNS(n.svg,e),t,r)}static get(e,t){const r=n.attributeNamespace[t],i=r?e.getAttributeNS(r,t):e.getAttribute(t);return"null"===i?null:i}static set(e,t,r){for(const i in t){let s=t[i];const o=n.attributeNamespace[i];"number"==typeof s&&r&&(s=r.number(s)),o?e.setAttributeNS(o,i,s):e.setAttribute(i,s)}return e}}e.exports=n},function(e,t){e.exports=class{constructor(e,t,n){this.audioEngine=e,this.audioPlayer=t,this.lastEffect=n,this.value=this.DEFAULT_VALUE,this.initialized=!1,this.inputNode=null,this.outputNode=null,this.target=null}get name(){throw new Error("".concat(this.constructor.name,".name is not implemented"))}get DEFAULT_VALUE(){return 0}get _isPatch(){return this.initialized&&(this.value!==this.DEFAULT_VALUE||null===this.audioPlayer)}getInputNode(){return this._isPatch?this.inputNode:this.target.getInputNode()}initialize(){throw new Error("".concat(this.constructor.name,".initialize is not implemented."))}_set(){throw new Error("".concat(this.constructor.name,"._set is not implemented."))}set(e){this.initialized||this.initialize();const t=this._isPatch;t&&(this._lastPatch=this.audioEngine.currentTime),e!==this.value&&this._set(e),this._isPatch!==t&&null!==this.target&&this.connect(this.target)}update(){}clear(){this.set(this.DEFAULT_VALUE)}connect(e){if(null===e)throw new Error("target may not be null");const t=e=>{if(e)return e===this||t(e.target)};if(t(e))throw new Error("Effect cannot connect to itself");this.target=e,null!==this.outputNode&&this.outputNode.disconnect(),(this._isPatch||this._lastPatch+this.audioEngine.DECAY_DURATION<this.audioEngine.currentTime)&&this.outputNode.connect(e.getInputNode()),null===this.lastEffect?null!==this.audioPlayer&&this.audioPlayer.connect(this):this.lastEffect.connect(this)}dispose(){this.inputNode=null,this.outputNode=null,this.target=null,this.initialized=!1}}},function(e,t,n){"use strict";var r=n(94),i=n.n(r),s=n(95),o=n.n(s),a=n(96),c=i()((function(e){return e[1]})),l=o()(a.a);c.push([e.i,'.sc-root {\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n --sc-accent-color: #ff4c4c;\n --sc-accent-color-transparent: #ff4c4c59;\n}\n.sc-layers {\n position: relative;\n}\n.sc-layers > * {\n position: absolute;\n}\n.sc-scaled-overlays-outer {\n overflow: hidden;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n.sc-scaled-overlays-inner {\n transform-origin: top left;\n}\n.sc-root * {\n box-sizing: border-box;\n}\n.sc-canvas {\n width: 100%;\n height: 100%;\n}\n\n.sc-question-root {\n bottom: 0;\n width: 100%;\n color: black;\n pointer-events: all;\n}\n.sc-question-inner {\n margin: 0.5rem;\n border: 1px solid hsla(0, 0%, 0%, 0.15);\n border-radius: 0.5rem;\n border-width: 2px;\n padding: 1rem;\n background: white;\n}\n.sc-question-text {\n font-size: 12px;\n padding-bottom: 8px;\n font-weight: bold;\n}\n.sc-question-input-outer {\n position: relative;\n}\n.sc-question-input {\n width: 100%;\n height: 2rem;\n padding: 0 12px;\n font-size: 10px;\n border-width: 1px;\n border-style: solid;\n border-color: hsla(0, 0%, 0%, 0.15);\n border-radius: 2rem;\n outline: none;\n transition: 0.25s ease-out;\n box-shadow: none;\n overflow: hidden;\n text-overflow: ellipsis;\n color: inherit;\n}\n.sc-question-input:focus {\n border-color: var(--sc-accent-color);\n box-shadow: 0px 0px 0px 3px var(--sc-accent-color-transparent);\n}\n.sc-question-input:hover {\n border-color: var(--sc-accent-color);\n}\n.sc-question-submit-button {\n top: 4px;\n right: 4px;\n width: 24px;\n height: 24px;\n position: absolute;\n outline: none;\n border: none;\n padding: 2px;\n margin: 0;\n border-radius: 100%;\n background: none;\n cursor: pointer;\n color: white;\n background-color: var(--sc-accent-color);\n background-image: url('+l+');\n overflow: hidden;\n}\n.sc-question-submit-button:focus {\n outline: 2px solid black;\n}\n.sc-question-submit-button-image {\n width: 100%;\n height: 100%;\n}\n\n.sc-monitor-overlay {\n\n}\n.sc-monitor-root {\n position: absolute;\n top: 0;\n left: 0;\n background: hsla(215, 100%, 95%, 1);\n color: #575e75;\n border: 1px solid hsla(0, 0%, 0%, 0.15);\n border-radius: 4px;\n font-size: 12px;\n overflow: hidden;\n user-select: none;\n -webkit-user-select: none;\n display: flex;\n flex-direction: column;\n pointer-events: all;\n}\n.sc-monitor-inner {\n display: flex;\n flex-direction: column;\n padding: 3px;\n}\n.sc-monitor-row {\n display: flex;\n flex-direction: row;\n}\n.sc-monitor-label {\n font-weight: bold;\n text-align: center;\n margin: 0 5px;\n white-space: nowrap;\n}\n.sc-monitor-slider {\n margin: 0;\n width: 100%;\n}\n.sc-monitor-value {\n min-width: 40px;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n color: white;\n margin: 0 5px;\n border-radius: 4px;\n padding: 0 2px;\n white-space: pre-wrap;\n background-color: #0fbd8c;\n}\n.sc-monitor-root[data-opcode^="motion_"] .sc-monitor-value-color {\n background-color: #4c97ff;\n}\n.sc-monitor-root[data-opcode^="sensing_"] .sc-monitor-value-color {\n background-color: #5cb1d6;\n}\n.sc-monitor-root[data-opcode^="data_"] .sc-monitor-value-color {\n background-color: #ff8c1a;\n}\n.sc-monitor-root[data-opcode^="looks_"] .sc-monitor-value-color {\n background-color: #9966ff;\n}\n.sc-monitor-root[data-opcode^="sound_"] .sc-monitor-value-color {\n background-color: #cf63cf;\n}\n.sc-monitor-large-value {\n min-height: 1.4rem;\n min-width: 3rem;\n padding: 0.1rem 0.25rem;\n text-align: center;\n color: white;\n font-size: 1rem;\n white-space: pre-wrap;\n}\n\n.sc-monitor-list-label {\n background-color: white;\n text-align: center;\n font-weight: bold;\n border-bottom: 1px solid hsla(0, 0%, 0%, 0.15);\n padding: 3px;\n}\n.sc-monitor-list-footer {\n display: flex;\n background-color: white;\n text-align: center;\n font-weight: bold;\n padding: 3px;\n}\n.sc-monitor-list-footer-text {\n text-align: center;\n flex-grow: 1;\n}\n.sc-monitor-row-delete, .sc-monitor-list-add {\n font-weight: bold;\n background: none;\n border: none;\n outline: none;\n font-family: inherit;\n color: inherit;\n cursor: pointer;\n margin: 0;\n padding: 0;\n}\n.sc-monitor-rows-outer {\n flex-grow: 1;\n}\n.sc-monitor-rows-inner {\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n position: relative;\n}\n.sc-monitor-rows-endpoint {\n position: absolute;\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n pointer-events: none;\n}\n\n.sc-monitor-row-root {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n justify-content: space-around;\n align-items: center;\n padding: 2px;\n width: 100%;\n}\n.sc-monitor-row-index {\n font-weight: bold;\n color: hsla(225, 15%, 40%, 1);\n margin: 0 3px;\n}\n.sc-monitor-row-value-outer {\n display: flex;\n align-items: center;\n min-width: 40px;\n height: 22px;\n border: 1px solid hsla(0, 0%, 0%, 0.15);\n background-color: #fc662c;\n color: white;\n margin: 0 3px;\n border-radius: calc(0.5rem / 2);\n flex-grow: 1;\n}\n.sc-monitor-row-value-editing .sc-monitor-row-value-outer {\n background-color: #e25c28;\n}\n.sc-monitor-row-value-inner {\n padding: 3px 5px;\n width: 100%;\n color: inherit;\n background: none;\n border: none;\n font: inherit;\n outline: none;\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: text;\n -webkit-user-select: text;\n white-space: pre;\n}\n.sc-monitor-row-value-editing .sc-monitor-row-value-inner {\n padding-right: 0;\n}\n.sc-monitor-row-delete {\n display: none;\n font-size: 150%;\n padding: 0 2px;\n}\n.sc-monitor-row-value-editing .sc-monitor-row-delete {\n display: block;\n}\n.sc-monitor-empty {\n text-align: center;\n padding: 5px;\n}\n\n.sc-controls-bar {\n transform: translateY(-100%);\n display: flex;\n width: 100%;\n justify-content: space-between;\n flex-wrap: nowrap;\n}\n.sc-controls-bar > * {\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n}\n\n.sc-context-menu {\n position: absolute;\n color: black;\n box-shadow: 0px 0px 5px 1px hsla(0, 0%, 0%, 0.25);\n min-width: 130px;\n opacity: 0;\n transition: .2s opacity;\n}\n.sc-context-menu-item {\n display: block;\n width: 100%;\n background-color: white;\n border: none;\n border-radius: 0;\n cursor: pointer;\n text-align: left;\n font-family: inherit;\n font-size: 0.85em;\n padding: 8px 12px;\n margin: 0;\n transition: .1s background-color, .1s color;\n}\n.sc-context-menu-item:focus {\n outline: 2px solid black;\n}\n.sc-context-menu-item:hover,\n.sc-context-menu-item:active {\n color: white;\n background-color: var(--sc-accent-color);\n}\n.sc-context-menu-item:first-child {\n border-radius: 4px 4px 0 0;\n}\n.sc-context-menu-item:last-child {\n border-radius: 0 0 4px 4px;\n}\n\n.sc-dropping {\n background-color: var(--sc-accent-color-transparent);\n}\n',""]),c.locals={root:"sc-root",layers:"sc-layers","scaled-overlays-outer":"sc-scaled-overlays-outer",scaledOverlaysOuter:"sc-scaled-overlays-outer","scaled-overlays-inner":"sc-scaled-overlays-inner",scaledOverlaysInner:"sc-scaled-overlays-inner",canvas:"sc-canvas","question-root":"sc-question-root",questionRoot:"sc-question-root","question-inner":"sc-question-inner",questionInner:"sc-question-inner","question-text":"sc-question-text",questionText:"sc-question-text","question-input-outer":"sc-question-input-outer",questionInputOuter:"sc-question-input-outer","question-input":"sc-question-input",questionInput:"sc-question-input","question-submit-button":"sc-question-submit-button",questionSubmitButton:"sc-question-submit-button","question-submit-button-image":"sc-question-submit-button-image",questionSubmitButtonImage:"sc-question-submit-button-image","monitor-overlay":"sc-monitor-overlay",monitorOverlay:"sc-monitor-overlay","monitor-root":"sc-monitor-root",monitorRoot:"sc-monitor-root","monitor-inner":"sc-monitor-inner",monitorInner:"sc-monitor-inner","monitor-row":"sc-monitor-row",monitorRow:"sc-monitor-row","monitor-label":"sc-monitor-label",monitorLabel:"sc-monitor-label","monitor-slider":"sc-monitor-slider",monitorSlider:"sc-monitor-slider","monitor-value":"sc-monitor-value",monitorValue:"sc-monitor-value","monitor-value-color":"sc-monitor-value-color",monitorValueColor:"sc-monitor-value-color","monitor-large-value":"sc-monitor-large-value",monitorLargeValue:"sc-monitor-large-value","monitor-list-label":"sc-monitor-list-label",monitorListLabel:"sc-monitor-list-label","monitor-list-footer":"sc-monitor-list-footer",monitorListFooter:"sc-monitor-list-footer","monitor-list-footer-text":"sc-monitor-list-footer-text",monitorListFooterText:"sc-monitor-list-footer-text","monitor-row-delete":"sc-monitor-row-delete",monitorRowDelete:"sc-monitor-row-delete","monitor-list-add":"sc-monitor-list-add",monitorListAdd:"sc-monitor-list-add","monitor-rows-outer":"sc-monitor-rows-outer",monitorRowsOuter:"sc-monitor-rows-outer","monitor-rows-inner":"sc-monitor-rows-inner",monitorRowsInner:"sc-monitor-rows-inner","monitor-rows-endpoint":"sc-monitor-rows-endpoint",monitorRowsEndpoint:"sc-monitor-rows-endpoint","monitor-row-root":"sc-monitor-row-root",monitorRowRoot:"sc-monitor-row-root","monitor-row-index":"sc-monitor-row-index",monitorRowIndex:"sc-monitor-row-index","monitor-row-value-outer":"sc-monitor-row-value-outer",monitorRowValueOuter:"sc-monitor-row-value-outer","monitor-row-value-editing":"sc-monitor-row-value-editing",monitorRowValueEditing:"sc-monitor-row-value-editing","monitor-row-value-inner":"sc-monitor-row-value-inner",monitorRowValueInner:"sc-monitor-row-value-inner","monitor-empty":"sc-monitor-empty",monitorEmpty:"sc-monitor-empty","controls-bar":"sc-controls-bar",controlsBar:"sc-controls-bar","context-menu":"sc-context-menu",contextMenu:"sc-context-menu","context-menu-item":"sc-context-menu-item",contextMenuItem:"sc-context-menu-item",dropping:"sc-dropping"},t.a=c},function(e,t,n){const r=n(103);e.exports=r},function(e,t,n){const r=n(105),i=n(0);e.exports=new class extends r{constructor(){super(),this.services={},this.workerClass="undefined"==typeof Worker?null:Worker,this.workers=[]}callSync(e,t){const{provider:n,isRemote:r}=this._getServiceProvider(e);if(n){if(r)throw new Error("Cannot use 'callSync' on remote provider for service ".concat(e,"."));for(var i=arguments.length,s=new Array(i>2?i-2:0),o=2;o<i;o++)s[o-2]=arguments[o];return n[t].apply(n,s)}throw new Error("Provider not found for service: ".concat(e))}setServiceSync(e,t){Object.prototype.hasOwnProperty.call(this.services,e)&&i.warn("Central dispatch replacing existing service provider for ".concat(e)),this.services[e]=t}setService(e,t){try{return this.setServiceSync(e,t),Promise.resolve()}catch(e){return Promise.reject(e)}}addWorker(e){-1===this.workers.indexOf(e)?(this.workers.push(e),e.onmessage=this._onMessage.bind(this,e),this._remoteCall(e,"dispatch","handshake").catch((e=>{i.error("Could not handshake with worker: ".concat(e))}))):i.warn("Central dispatch ignoring attempt to add duplicate worker")}_getServiceProvider(e){const t=this.services[e];return t&&{provider:t,isRemote:Boolean(this.workerClass&&t instanceof this.workerClass||t.isRemote)}}_onDispatchMessage(e,t){let n;if("setService"===t.method)n=this.setService(t.args[0],e);else i.error("Central dispatch received message for unknown method: ".concat(t.method));return n}}},function(e,t,n){const r=n(5);e.exports=function(e,t,n){return e&&e.id&&e.default?r(e,t,n):e}},function(e,t){var n="long",r="short",i="narrow",s="numeric",o="2-digit";e.exports={number:{decimal:{style:"decimal"},integer:{style:"decimal",maximumFractionDigits:0},currency:{style:"currency",currency:"USD"},percent:{style:"percent"},default:{style:"decimal"}},date:{short:{month:s,day:s,year:o},medium:{month:r,day:s,year:s},long:{month:n,day:s,year:s},full:{month:n,day:s,year:s,weekday:n},default:{month:r,day:s,year:s}},time:{short:{hour:s,minute:s},medium:{hour:s,minute:s,second:s},long:{hour:s,minute:s,second:s,timeZoneName:r},full:{hour:s,minute:s,second:s,timeZoneName:r},default:{hour:s,minute:s,second:s}},duration:{default:{hours:{minimumIntegerDigits:1,maximumFractionDigits:0},minutes:{minimumIntegerDigits:2,maximumFractionDigits:0},seconds:{minimumIntegerDigits:2,maximumFractionDigits:3}}},parseNumberPattern:function(e){if(e){var t={},n=e.match(/\b[A-Z]{3}\b/i),r=e.replace(/[^¤]/g,"").length;if(!r&&n&&(r=1),r?(t.style="currency",t.currencyDisplay=1===r?"symbol":2===r?"code":"name",t.currency=n?n[0].toUpperCase():"USD"):e.indexOf("%")>=0&&(t.style="percent"),!/[@#0]/.test(e))return t.style?t:void 0;if(t.useGrouping=e.indexOf(",")>=0,/E\+?[@#0]+/i.test(e)||e.indexOf("@")>=0){var i=e.replace(/E\+?[@#0]+|[^@#0]/gi,"");t.minimumSignificantDigits=Math.min(Math.max(i.replace(/[^@0]/g,"").length,1),21),t.maximumSignificantDigits=Math.min(Math.max(i.length,1),21)}else{for(var s=e.replace(/[^#0.]/g,"").split("."),o=s[0],a=o.length-1;"0"===o[a];)--a;t.minimumIntegerDigits=Math.min(Math.max(o.length-1-a,1),21);var c=s[1]||"";for(a=0;"0"===c[a];)++a;for(t.minimumFractionDigits=Math.min(Math.max(a,0),20);"#"===c[a];)++a;t.maximumFractionDigits=Math.min(Math.max(a,0),20)}return t}},parseDatePattern:function(e){if(e){for(var t={},a=0;a<e.length;){for(var c=e[a],l=1;e[++a]===c;)++l;switch(c){case"G":t.era=5===l?i:4===l?n:r;break;case"y":case"Y":t.year=2===l?o:s;break;case"M":case"L":l=Math.min(Math.max(l-1,0),4),t.month=[s,o,r,n,i][l];break;case"E":case"e":case"c":t.weekday=5===l?i:4===l?n:r;break;case"d":case"D":t.day=2===l?o:s;break;case"h":case"K":t.hour12=!0,t.hour=2===l?o:s;break;case"H":case"k":t.hour12=!1,t.hour=2===l?o:s;break;case"m":t.minute=2===l?o:s;break;case"s":case"S":t.second=2===l?o:s;break;case"z":case"Z":case"v":case"V":t.timeZoneName=1===l?r:n}}return Object.keys(t).length?t:void 0}}}},function(e,t){e.exports=function(e,t){if("string"==typeof e&&t[e])return e;for(var n=[].concat(e||[]),r=0,i=n.length;r<i;++r)for(var s=n[r].split("-");s.length;){var o=s.join("-");if(t[o])return o;s.pop()}}},function(e,t,n){"use strict";var r="zero",i="one",s="two",o="few",a="many",c="other",l=[function(e){return 1===+e?i:c},function(e){var t=+e;return 0<=t&&t<=1?i:c},function(e){return 0===Math.floor(Math.abs(+e))||1===+e?i:c},function(e){var t=+e;return 0===t?r:1===t?i:2===t?s:3<=t%100&&t%100<=10?o:11<=t%100&&t%100<=99?a:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length;return 1===t&&0===n?i:c},function(e){var t=+e;return t%10==1&&t%100!=11?i:2<=t%10&&t%10<=4&&(t%100<12||14<t%100)?o:t%10==0||5<=t%10&&t%10<=9||11<=t%100&&t%100<=14?a:c},function(e){var t=+e;return t%10==1&&t%100!=11&&t%100!=71&&t%100!=91?i:t%10==2&&t%100!=12&&t%100!=72&&t%100!=92?s:(3<=t%10&&t%10<=4||t%10==9)&&(t%100<10||19<t%100)&&(t%100<70||79<t%100)&&(t%100<90||99<t%100)?o:0!==t&&t%1e6==0?a:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length,r=+(e+".").split(".")[1];return 0===n&&t%10==1&&t%100!=11||r%10==1&&r%100!=11?i:0===n&&2<=t%10&&t%10<=4&&(t%100<12||14<t%100)||2<=r%10&&r%10<=4&&(r%100<12||14<r%100)?o:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length;return 1===t&&0===n?i:2<=t&&t<=4&&0===n?o:0!==n?a:c},function(e){var t=+e;return 0===t?r:1===t?i:2===t?s:3===t?o:6===t?a:c},function(e){var t=Math.floor(Math.abs(+e)),n=+(""+e).replace(/^[^.]*.?|0+$/g,"");return 1===+e||0!==n&&(0===t||1===t)?i:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length,r=+(e+".").split(".")[1];return 0===n&&t%100==1||r%100==1?i:0===n&&t%100==2||r%100==2?s:0===n&&3<=t%100&&t%100<=4||3<=r%100&&r%100<=4?o:c},function(e){var t=Math.floor(Math.abs(+e));return 0===t||1===t?i:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length,r=+(e+".").split(".")[1];return 0===n&&(1===t||2===t||3===t)||0===n&&t%10!=4&&t%10!=6&&t%10!=9||0!==n&&r%10!=4&&r%10!=6&&r%10!=9?i:c},function(e){var t=+e;return 1===t?i:2===t?s:3<=t&&t<=6?o:7<=t&&t<=10?a:c},function(e){var t=+e;return 1===t||11===t?i:2===t||12===t?s:3<=t&&t<=10||13<=t&&t<=19?o:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length;return 0===n&&t%10==1?i:0===n&&t%10==2?s:0!==n||t%100!=0&&t%100!=20&&t%100!=40&&t%100!=60&&t%100!=80?0!==n?a:c:o},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length,r=+e;return 1===t&&0===n?i:2===t&&0===n?s:0===n&&(r<0||10<r)&&r%10==0?a:c},function(e){var t=Math.floor(Math.abs(+e)),n=+(""+e).replace(/^[^.]*.?|0+$/g,"");return 0===n&&t%10==1&&t%100!=11||0!==n?i:c},function(e){var t=+e;return 1===t?i:2===t?s:c},function(e){var t=+e;return 0===t?r:1===t?i:c},function(e){var t=Math.floor(Math.abs(+e)),n=+e;return 0===n?r:0!==t&&1!==t||0===n?c:i},function(e){var t=+(e+".").split(".")[1],n=+e;return n%10==1&&(n%100<11||19<n%100)?i:2<=n%10&&n%10<=9&&(n%100<11||19<n%100)?o:0!==t?a:c},function(e){var t=(e+".").split(".")[1].length,n=+(e+".").split(".")[1],s=+e;return s%10==0||11<=s%100&&s%100<=19||2===t&&11<=n%100&&n%100<=19?r:s%10==1&&s%100!=11||2===t&&n%10==1&&n%100!=11||2!==t&&n%10==1?i:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length,r=+(e+".").split(".")[1];return 0===n&&t%10==1&&t%100!=11||r%10==1&&r%100!=11?i:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length,r=+e;return 1===t&&0===n?i:0!==n||0===r||1!==r&&1<=r%100&&r%100<=19?o:c},function(e){var t=+e;return 1===t?i:0===t||2<=t%100&&t%100<=10?o:11<=t%100&&t%100<=19?a:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length;return 1===t&&0===n?i:0===n&&2<=t%10&&t%10<=4&&(t%100<12||14<t%100)?o:0===n&&1!==t&&0<=t%10&&t%10<=1||0===n&&5<=t%10&&t%10<=9||0===n&&12<=t%100&&t%100<=14?a:c},function(e){var t=Math.floor(Math.abs(+e));return 0<=t&&t<=1?i:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length;return 0===n&&t%10==1&&t%100!=11?i:0===n&&2<=t%10&&t%10<=4&&(t%100<12||14<t%100)?o:0===n&&t%10==0||0===n&&5<=t%10&&t%10<=9||0===n&&11<=t%100&&t%100<=14?a:c},function(e){var t=+e;return 0===Math.floor(Math.abs(+e))||1===t?i:2<=t&&t<=10?o:c},function(e){var t=Math.floor(Math.abs(+e)),n=+(e+".").split(".")[1],r=+e;return 0===r||1===r||0===t&&1===n?i:c},function(e){var t=Math.floor(Math.abs(+e)),n=(e+".").split(".")[1].length;return 0===n&&t%100==1?i:0===n&&t%100==2?s:0===n&&3<=t%100&&t%100<=4||0!==n?o:c},function(e){var t=+e;return 0<=t&&t<=1||11<=t&&t<=99?i:c},function(e){var t=+e;return 1===t||5===t||7===t||8===t||9===t||10===t?i:2===t||3===t?s:4===t?o:6===t?a:c},function(e){var t=Math.floor(Math.abs(+e));return t%10==1||t%10==2||t%10==5||t%10==7||t%10==8||t%100==20||t%100==50||t%100==70||t%100==80?i:t%10==3||t%10==4||t%1e3==100||t%1e3==200||t%1e3==300||t%1e3==400||t%1e3==500||t%1e3==600||t%1e3==700||t%1e3==800||t%1e3==900?o:0===t||t%10==6||t%100==40||t%100==60||t%100==90?a:c},function(e){var t=+e;return t%10!=2&&t%10!=3||t%100==12||t%100==13?c:o},function(e){var t=+e;return 1===t||3===t?i:2===t?s:4===t?o:c},function(e){var t=+e;return 0===t||7===t||8===t||9===t?r:1===t?i:2===t?s:3===t||4===t?o:5===t||6===t?a:c},function(e){var t=+e;return t%10==1&&t%100!=11?i:t%10==2&&t%100!=12?s:t%10==3&&t%100!=13?o:c},function(e){var t=+e;return 1===t||11===t?i:2===t||12===t?s:3===t||13===t?o:c},function(e){var t=+e;return 1===t?i:2===t||3===t?s:4===t?o:6===t?a:c},function(e){var t=+e;return 1===t||5===t?i:c},function(e){var t=+e;return 11===t||8===t||80===t||800===t?a:c},function(e){var t=Math.floor(Math.abs(+e));return 1===t?i:0===t||2<=t%100&&t%100<=20||t%100==40||t%100==60||t%100==80?a:c},function(e){var t=+e;return t%10==6||t%10==9||t%10==0&&0!==t?a:c},function(e){var t=Math.floor(Math.abs(+e));return t%10==1&&t%100!=11?i:t%10==2&&t%100!=12?s:t%10!=7&&t%10!=8||t%100==17||t%100==18?c:a},function(e){var t=+e;return 1===t?i:2===t||3===t?s:4===t?o:c},function(e){var t=+e;return 1<=t&&t<=4?i:c},function(e){var t=+e;return 1===t||5===t||7<=t&&t<=9?i:2===t||3===t?s:4===t?o:6===t?a:c},function(e){var t=+e;return 1===t?i:t%10==4&&t%100!=14?a:c},function(e){var t=+e;return t%10!=1&&t%10!=2||t%100==11||t%100==12?c:i},function(e){var t=+e;return t%10==6||t%10==9||10===t?o:c},function(e){var t=+e;return t%10==3&&t%100!=13?o:c}];e.exports={af:{cardinal:l[0]},ak:{cardinal:l[1]},am:{cardinal:l[2]},ar:{cardinal:l[3]},ars:{cardinal:l[3]},as:{cardinal:l[2],ordinal:l[34]},asa:{cardinal:l[0]},ast:{cardinal:l[4]},az:{cardinal:l[0],ordinal:l[35]},be:{cardinal:l[5],ordinal:l[36]},bem:{cardinal:l[0]},bez:{cardinal:l[0]},bg:{cardinal:l[0]},bh:{cardinal:l[1]},bn:{cardinal:l[2],ordinal:l[34]},br:{cardinal:l[6]},brx:{cardinal:l[0]},bs:{cardinal:l[7]},ca:{cardinal:l[4],ordinal:l[37]},ce:{cardinal:l[0]},cgg:{cardinal:l[0]},chr:{cardinal:l[0]},ckb:{cardinal:l[0]},cs:{cardinal:l[8]},cy:{cardinal:l[9],ordinal:l[38]},da:{cardinal:l[10]},de:{cardinal:l[4]},dsb:{cardinal:l[11]},dv:{cardinal:l[0]},ee:{cardinal:l[0]},el:{cardinal:l[0]},en:{cardinal:l[4],ordinal:l[39]},eo:{cardinal:l[0]},es:{cardinal:l[0]},et:{cardinal:l[4]},eu:{cardinal:l[0]},fa:{cardinal:l[2]},ff:{cardinal:l[12]},fi:{cardinal:l[4]},fil:{cardinal:l[13],ordinal:l[0]},fo:{cardinal:l[0]},fr:{cardinal:l[12],ordinal:l[0]},fur:{cardinal:l[0]},fy:{cardinal:l[4]},ga:{cardinal:l[14],ordinal:l[0]},gd:{cardinal:l[15],ordinal:l[40]},gl:{cardinal:l[4]},gsw:{cardinal:l[0]},gu:{cardinal:l[2],ordinal:l[41]},guw:{cardinal:l[1]},gv:{cardinal:l[16]},ha:{cardinal:l[0]},haw:{cardinal:l[0]},he:{cardinal:l[17]},hi:{cardinal:l[2],ordinal:l[41]},hr:{cardinal:l[7]},hsb:{cardinal:l[11]},hu:{cardinal:l[0],ordinal:l[42]},hy:{cardinal:l[12],ordinal:l[0]},ia:{cardinal:l[4]},io:{cardinal:l[4]},is:{cardinal:l[18]},it:{cardinal:l[4],ordinal:l[43]},iu:{cardinal:l[19]},iw:{cardinal:l[17]},jgo:{cardinal:l[0]},ji:{cardinal:l[4]},jmc:{cardinal:l[0]},ka:{cardinal:l[0],ordinal:l[44]},kab:{cardinal:l[12]},kaj:{cardinal:l[0]},kcg:{cardinal:l[0]},kk:{cardinal:l[0],ordinal:l[45]},kkj:{cardinal:l[0]},kl:{cardinal:l[0]},kn:{cardinal:l[2]},ks:{cardinal:l[0]},ksb:{cardinal:l[0]},ksh:{cardinal:l[20]},ku:{cardinal:l[0]},kw:{cardinal:l[19]},ky:{cardinal:l[0]},lag:{cardinal:l[21]},lb:{cardinal:l[0]},lg:{cardinal:l[0]},ln:{cardinal:l[1]},lt:{cardinal:l[22]},lv:{cardinal:l[23]},mas:{cardinal:l[0]},mg:{cardinal:l[1]},mgo:{cardinal:l[0]},mk:{cardinal:l[24],ordinal:l[46]},ml:{cardinal:l[0]},mn:{cardinal:l[0]},mo:{cardinal:l[25],ordinal:l[0]},mr:{cardinal:l[2],ordinal:l[47]},mt:{cardinal:l[26]},nah:{cardinal:l[0]},naq:{cardinal:l[19]},nb:{cardinal:l[0]},nd:{cardinal:l[0]},ne:{cardinal:l[0],ordinal:l[48]},nl:{cardinal:l[4]},nn:{cardinal:l[0]},nnh:{cardinal:l[0]},no:{cardinal:l[0]},nr:{cardinal:l[0]},nso:{cardinal:l[1]},ny:{cardinal:l[0]},nyn:{cardinal:l[0]},om:{cardinal:l[0]},or:{cardinal:l[0],ordinal:l[49]},os:{cardinal:l[0]},pa:{cardinal:l[1]},pap:{cardinal:l[0]},pl:{cardinal:l[27]},prg:{cardinal:l[23]},ps:{cardinal:l[0]},pt:{cardinal:l[28]},"pt-PT":{cardinal:l[4]},rm:{cardinal:l[0]},ro:{cardinal:l[25],ordinal:l[0]},rof:{cardinal:l[0]},ru:{cardinal:l[29]},rwk:{cardinal:l[0]},saq:{cardinal:l[0]},sc:{cardinal:l[4],ordinal:l[43]},scn:{cardinal:l[4],ordinal:l[43]},sd:{cardinal:l[0]},sdh:{cardinal:l[0]},se:{cardinal:l[19]},seh:{cardinal:l[0]},sh:{cardinal:l[7]},shi:{cardinal:l[30]},si:{cardinal:l[31]},sk:{cardinal:l[8]},sl:{cardinal:l[32]},sma:{cardinal:l[19]},smi:{cardinal:l[19]},smj:{cardinal:l[19]},smn:{cardinal:l[19]},sms:{cardinal:l[19]},sn:{cardinal:l[0]},so:{cardinal:l[0]},sq:{cardinal:l[0],ordinal:l[50]},sr:{cardinal:l[7]},ss:{cardinal:l[0]},ssy:{cardinal:l[0]},st:{cardinal:l[0]},sv:{cardinal:l[4],ordinal:l[51]},sw:{cardinal:l[4]},syr:{cardinal:l[0]},ta:{cardinal:l[0]},te:{cardinal:l[0]},teo:{cardinal:l[0]},ti:{cardinal:l[1]},tig:{cardinal:l[0]},tk:{cardinal:l[0],ordinal:l[52]},tl:{cardinal:l[13],ordinal:l[0]},tn:{cardinal:l[0]},tr:{cardinal:l[0]},ts:{cardinal:l[0]},tzm:{cardinal:l[33]},ug:{cardinal:l[0]},uk:{cardinal:l[29],ordinal:l[53]},ur:{cardinal:l[4]},uz:{cardinal:l[0]},ve:{cardinal:l[0]},vo:{cardinal:l[0]},vun:{cardinal:l[0]},wa:{cardinal:l[1]},wae:{cardinal:l[0]},xh:{cardinal:l[0]},xog:{cardinal:l[0]},yi:{cardinal:l[4]},zu:{cardinal:l[2]},lo:{ordinal:l[0]},ms:{ordinal:l[0]},vi:{ordinal:l[0]}}},function(e,t){e.exports=class{constructor(){this._requestID=0,this._openRequests={}}sendRemoteRequest(e,t){const n=this._requestID++,r=new Promise(((e,t)=>{this._openRequests[n]={resolve:e,reject:t}}));return this._sendRequest(e,t,n),r}sendRemoteNotification(e,t){this._sendRequest(e,t)}didReceiveCall(){throw new Error("Must override didReceiveCall")}_sendMessage(){throw new Error("Must override _sendMessage")}_sendRequest(e,t,n){const r={jsonrpc:"2.0",method:e,params:t};null!==n&&(r.id=n),this._sendMessage(r)}_handleMessage(e){if("2.0"!==e.jsonrpc)throw new Error("Bad or missing JSON-RPC version in message: ".concat(e));Object.prototype.hasOwnProperty.call(e,"method")?this._handleRequest(e):this._handleResponse(e)}_sendResponse(e,t,n){const r={jsonrpc:"2.0",id:e};n?r.error=n:r.result=t||null,this._sendMessage(r)}_handleResponse(e){const{result:t,error:n,id:r}=e,i=this._openRequests[r];delete this._openRequests[r],i&&(n?i.reject(n):i.resolve(t))}_handleRequest(e){const{method:t,params:n,id:r}=e,i=this.didReceiveCall(t,n);null!=r&&Promise.resolve(i).then((e=>{this._sendResponse(r,e)}),(e=>{this._sendResponse(r,null,e)}))}}},function(e){e.exports=JSON.parse('{"menuMap":{"am":[{"code":"am","name":"አማርኛ"}],"ar":[{"code":"ar","name":"العربية"}],"el":[{"code":"el","name":"Ελληνικά"}],"id":[{"code":"id","name":"Indonesia"}],"fa":[{"code":"fa","name":"فارسی"}],"pt":[{"code":"pt","name":"Português"}],"pt-br":[{"code":"pt","name":"Português"}],"nl":[{"code":"nl","name":"Nederlands"}],"es":[{"code":"es","name":"español"}],"es-419":[{"code":"es","name":"español"}],"gd":[{"code":"gd","name":"Gàidhlig"}],"pl":[{"code":"pl","name":"polski"}],"is":[{"code":"is","name":"íslenska"}],"hr":[{"code":"hr","name":"hrvatski"}],"fr":[{"code":"fr","name":"Français"}],"nb":[{"code":"nb","name":"norsk"}],"gl":[{"code":"gl","name":"galego"}],"bg":[{"code":"bg","name":"български"}],"lv":[{"code":"lv","name":"latviešu"}],"ca":[{"code":"ca","name":"català"}],"zu":[{"code":"zu","name":"IsiZulu"}],"vi":[{"code":"vi","name":"Việt"}],"hu":[{"code":"hu","name":"magyar"}],"et":[{"code":"et","name":"eesti"}],"lt":[{"code":"lt","name":"lietuvių"}],"uk":[{"code":"uk","name":"українська"}],"az":[{"code":"az","name":"Azərbaycan"}],"zh-tw":[{"code":"zh-tw","name":"中文 (繁體)"}],"mi":[{"code":"mi","name":"Māori"}],"th":[{"code":"th","name":"ไทย"}],"eu":[{"code":"eu","name":"euskara"}],"it":[{"code":"it","name":"Italiano"}],"fi":[{"code":"fi","name":"suomi"}],"en":[{"code":"en","name":"English"}],"tr":[{"code":"tr","name":"Türkçe"}],"ro":[{"code":"ro","name":"Română"}],"zh-cn":[{"code":"zh-cn","name":"中文(简体)"},{"code":"zh-cn","name":"中文(简体)"}],"ko":[{"code":"ko","name":"한국어"}],"de":[{"code":"de","name":"Deutsch"}],"cs":[{"code":"cs","name":"čeština"}],"he":[{"code":"he","name":"עברית"},{"code":"he","name":"עברית"}],"cy":[{"code":"cy","name":"Cymraeg"}],"sv":[{"code":"sv","name":"svenska"}],"ga":[{"code":"ga","name":"Gaeilge"}],"ja":[{"code":"ja","name":"日本語"}],"ja-hira":[{"code":"ja","name":"日本語"}],"sk":[{"code":"sk","name":"slovenčina"}],"da":[{"code":"da","name":"Dansk"}],"sl":[{"code":"sl","name":"slovenščina"}],"sr":[{"code":"sr","name":"српски"}],"ru":[{"code":"ru","name":"русский"}]},"nameMap":{"abkhaz":"ab","albanian":"sq","amharic":"am","arabic":"ar","armenian":"hy","azerbaijani":"az","basque":"eu","belarusian":"be","bulgarian":"bg","catalan":"ca","chinese (simplified)":"zh-cn","chinese (traditional)":"zh-tw","croatian":"hr","czech":"cs","danish":"da","dutch":"nl","english":"en","esperanto":"eo","estonian":"et","finnish":"fi","french":"fr","galician":"gl","german":"de","greek":"el","haitian creole":"ht","hebrew":"he","hindi":"hi","hungarian":"hu","icelandic":"is","indonesian":"id","irish gaelic":"ga","italian":"it","japanese":"ja","kannada":"kn","korean":"ko","kurdish (kurmanji)":"ku","kurdish (sorani)":"ckb","latin":"la","latvian":"lv","lithuanian":"lt","macedonian":"mk","malay":"ms","malayalam":"ml","maltese":"mt","maori":"mi","marathi":"mr","mongolian":"mn","myanmar (burmese)":"my","norwegian":"nb","persian":"fa","polish":"pl","portuguese":"pt","romanian":"ro","russian":"ru","scots gaelic":"gd","serbian":"sr","slovak":"sk","slovenian":"sl","spanish":"es","swedish":"sv","telugu":"te","thai":"th","turkish":"tr","ukrainian":"uk","uzbek":"uz","vietnamese":"vi","welsh":"cy","zulu":"zu","ሀንጋሪኛ":"hu","ህንድኛ":"hi","ሊትዌንኛ":"lt","ላቲንኛ":"la","ላትቪያኛ":"lv","ማላያላምኛ":"ml","ማላይኛ":"ms","ማልቲስኛ":"mt","ማራቲኛ":"mr","ማዮሪኛ":"mi","ሜቄዶኒያኛ":"mk","ሞንጎሊያኛ":"mn","ራሽያኛ":"ru","ሮማኒያንኛ":"ro","ሰርቢያኛ":"sr","ስሎቫክኛ":"sk","ስሎቬንያኛ":"sl","ስዊድንኛ":"sv","ስፓኒሽኛ":"es","በርማኛ":"my","ቡልጋሪያኛ":"bg","ባስክኛ":"eu","ቤላሩስኛ":"be","ቪትናምኛ":"vi","ቱርክኛ":"tr","ታይኛ":"th","ቴሉጉኛ":"te","ቻይንኛ (ቀላሉ)":"zh-cn","ቻይንኛ (ባሕላዊው)":"zh-tw","ቼክኛ":"cs","ኖርዌጅያንኛ":"nb","አልባንያኛ":"sq","አማርኛ":"am","አርመኒያኛ":"hy","አብካዝኛ":"ab","አዜርባይጃንኛ":"az","አይሪሽ":"ga","አይስላንድኛ":"is","ኡዝቤክኛ":"uz","ኤስቶኒያኛ":"et","ኤስፐራንቶኛ":"eo","እንዶኔዢያኛ":"id","እንግሊዝኛ":"en","ኩርድሽኛ (ሶራኒ)":"ckb","ኩርድሽኛ (ኩርማንጂ)":"ku","ካታላንኛ":"ca","ካናዳኛ":"kn","ክሮኤሽያኛ":"hr","ኮሪያኛ":"ko","ዌልሽ":"cy","ዐረብኛ":"ar","ዕብራይስጥ":"he","ዙሉኛ":"zu","የሃይቲ ክረኦሌኛ":"ht","የስኮት ጌልክኛ":"gd","ዩክሬንኛ":"uk","ደችኛ":"nl","ዴንሽኛ":"da","ጀርመንኛ":"de","ጃፓንኛ":"ja","ጋሊሺያኛ":"gl","ግሪክኛ":"el","ጣሊያንኛ":"it","ፈረንሳይኛ":"fr","ፊኒሽኛ":"fi","ፐርሺያኛ":"fa","ፖሊሽኛ":"pl","ፖርቱጋሊኛ":"pt","الآيسلندية":"is","الأبخازية":"ab","الأذرية":"az","الأرمنية":"hy","الإسبانية":"es","الإسبرانتو":"eo","الإستونية":"et","الألبانية":"sq","الألمانية":"de","الأمهرية":"am","الإنجليزية":"en","الإندونيسية":"id","الأوزبكية":"uz","الأوكرانية":"uk","الأيرلندية":"ga","الإيطالية":"it","الباسكية":"eu","البرتغالية":"pt","البلغارية":"bg","البورمية":"my","البولندية":"pl","البيلاروسية":"be","التايلاندية":"th","التركية":"tr","التشيكية":"cs","التيلوغوية":"te","الجاليكية":"gl","الدانمركية":"da","الروسية":"ru","الرومانية":"ro","الزولو":"zu","السلوفاكية":"sk","السلوفينية":"sl","السويدية":"sv","الصربية":"sr","الصينية (التقليدية)":"zh-tw","الصينية (المبسطة)":"zh-cn","العبرية":"he","العربية":"ar","الغيلية الأسكتلندية":"gd","الفارسية":"fa","الفرنسية":"fr","الفنلندية":"fi","الفيتنامية":"vi","القطلونية":"ca","الكردية (السورانية)":"ckb","الكردية (الكرمانجية)":"ku","الكرواتية":"hr","الكريولية الهايتية":"ht","الكنادية":"kn","الكورية":"ko","اللاتفية":"lv","اللاتينية":"la","الليتوانية":"lt","الماراثية":"mr","المالايالامية":"ml","المالطيّة":"mt","الماورية":"mi","المقدونية":"mk","الملايو":"ms","المنغولية":"mn","النرويجية":"nb","الهندية":"hi","الهنغارية":"hu","الهولندية":"nl","الويلزية":"cy","اليابانية":"ja","اليونانية":"el","αγγλικά":"en","αζερμπαϊτζανικά":"az","αλβανικά":"sq","αμπχαζικά":"ab","αμχαρικά":"am","αραβικά":"ar","αρμενικά":"hy","βασκικά":"eu","βιετναμεζικά":"vi","βιρμανικά":"my","βουλγαρικά":"bg","γαελικά σκοτίας":"gd","γαλικιακά":"gl","γαλλικά":"fr","γερμανικά":"de","δανικά":"da","εβραϊκά":"he","ελληνικά":"el","εσθονικά":"et","εσπεράντο":"eo","ζουλού":"zu","ιαπωνικά":"ja","ινδονησιακά":"id","ιρλανδικά":"ga","ισλανδικά":"is","ισπανικά":"es","ιταλικά":"it","κανάντα":"kn","καταλανικά":"ca","κινεζικά (απλοποιημένα)":"zh-cn","κινεζικά (παραδοσιακά)":"zh-tw","κορεατικά":"ko","κουρδικά (κουρμαντζί)":"ku","κουρδικά (σορανί)":"ckb","κρεόλ αϊτής":"ht","κροατικά":"hr","λατινικά":"la","λετονικά":"lv","λευκορωσικά":"be","λιθουανικά":"lt","μαλαγιάλαμ":"ml","μαλέι":"ms","μαλτεζικά":"mt","μαορί":"mi","μαραθικά":"mr","μογγολικά":"mn","νορβηγικά":"nb","ολλανδικά":"nl","ουαλικά":"cy","ουγγρικά":"hu","ουζμπεκικά":"uz","ουκρανικά":"uk","περσικά":"fa","πολωνικά":"pl","πορτογαλικά":"pt","ρουμανικά":"ro","ρωσικά":"ru","σερβικά":"sr","σλαβομακεδονικά":"mk","σλοβακικά":"sk","σλοβενικά":"sl","σουηδικά":"sv","ταϊλανδεζικά":"th","τελούγκου":"te","τουρκικά":"tr","τσεχικά":"cs","φινλανδικά":"fi","χίντι":"hi","albania":"sq","amharik":"am","arab":"ar","armenia":"hy","azerbaijan":"az","bask":"eu","belanda":"nl","belarussia":"be","bulgaria":"bg","ceko":"cs","china (aks. sederhana)":"zh-cn","china (aks. tradisional)":"zh-tw","denmark":"da","estonia":"et","farsi":"fa","finlandia":"fi","gaelig":"ga","gaelik skotlandia":"gd","galisia":"gl","hungaria":"hu","ibrani":"he","indonesia":"id","inggris":"en","islandia":"is","italia":"it","jepang":"ja","jerman":"de","katalan":"ca","korea":"ko","kreol haiti":"ht","kroasia":"hr","kurdi (kurmanji)":"ku","kurdi (sorani)":"ckb","latvia":"lv","lituania":"lt","makedonia":"mk","malta":"mt","melayu":"ms","mongolia":"mn","myanmar":"my","norwegia":"nb","polandia":"pl","portugis":"pt","prancis":"fr","rumania":"ro","rusia":"ru","serb":"sr","slovakia":"sk","slovenia":"sl","spanyol":"es","swedia":"sv","turkiye":"tr","ukraina":"uk","vietnam":"vi","yunani":"el","آبخازی":"ab","آذرباﻳﺠﺎﻧﻰ":"az","آلبانیایی":"sq","آلمانی":"de","ارمنی":"hy","ازبکی":"uz","اسپانیایی":"es","اسپرانتو":"eo","استونيايی":"et","اسلواکی":"sk","اسلونیایی":"sl","اکراينی":"uk","امهری":"am","اندونزيايی":"id","انگلیسی":"en","ایتالیایی":"it","ایرلندی":"ga","ايسلندی":"is","باسکی":"eu","برمهای":"my","بلاروسی":"be","بلغاری":"bg","پرتغالی":"pt","تايلندی":"th","ترکی استانبولی":"tr","تلوگو":"te","چک":"cs","چینی (سادهشده)":"zh-cn","چینی (سنتی)":"zh-tw","دانمارکی":"da","روسی":"ru","رومانيايی":"ro","زولو":"zu","ژاپنی":"ja","سوئدی":"sv","صربی":"sr","عبری":"he","عربی":"ar","فارسی":"fa","فرانسوی":"fr","فنلاندی":"fi","کاتالان":"ca","کرئول هائیتی":"ht","کردی (سورانی)":"ckb","کردی (کرمانجی)":"ku","کرواتی":"hr","کرهای":"ko","کنادا":"kn","گالیسی":"gl","گاليک اسکاتلندی":"gd","لاتين":"la","لتونيايی":"lv","لهستانی":"pl","ليتوانيايی":"lt","مائوری":"mi","مالایالمی":"ml","مالايی":"ms","مالتی":"mt","مجاری":"hu","مراتی":"mr","مغولی":"mn","مقدونيهای":"mk","نروژی":"nb","ولزی":"cy","ويتنامی":"vi","هلندی":"nl","هندی":"hi","يونانی":"el","abecásio":"ab","albanês":"sq","alemão":"de","amárico":"am","árabe":"ar","armênio":"hy","azerbaijano":"az","basco":"eu","bielorrusso":"be","birmanês":"my","búlgaro":"bg","canarês":"kn","catalão":"ca","chinês (simplificado)":"zh-cn","chinês (tradicional)":"zh-tw","coreano":"ko","crioulo haitiano":"ht","croata":"hr","curdo (kurmanji)":"ku","curdo (sorâni)":"ckb","dinamarquês":"da","eslovaco":"sk","esloveno":"sl","espanhol":"es","estoniano":"et","finlandês":"fi","francês":"fr","gaélico escocês":"gd","galego":"gl","galês":"cy","grego":"el","hebraico":"he","holandês":"nl","húngaro":"hu","indonésio":"id","inglês":"en","irlandês":"ga","islandês":"is","italiano":"it","japonês":"ja","latim":"la","letão":"lv","lituano":"lt","macedônio":"mk","malaiala":"ml","malaio":"ms","maltês":"mt","marata":"mr","mongol":"mn","norueguês":"nb","persa":"fa","polonês":"pl","português":"pt","romeno":"ro","russo":"ru","sérvio":"sr","sueco":"sv","tailandês":"th","tcheco":"cs","telugo":"te","turco":"tr","ucraniano":"uk","uzbeque":"uz","vietnamita":"vi","abchazisch":"ab","albanees":"sq","amharisch":"am","arabisch":"ar","armeens":"hy","azerbeidzjaans":"az","baskisch":"eu","belarussisch":"be","birmaans":"my","bulgaars":"bg","catalaans":"ca","chinees (traditioneel)":"zh-tw","chinees (vereenvoudigd)":"zh-cn","deens":"da","duits":"de","engels":"en","ests":"et","fins":"fi","frans":"fr","galicisch":"gl","grieks":"el","haïtiaans creools":"ht","hebreeuws":"he","hongaars":"hu","iers":"ga","ijslands":"is","indonesisch":"id","italiaans":"it","japans":"ja","koerdisch (kurmanji)":"ku","koerdisch (sorani)":"ckb","koreaans":"ko","kroatisch":"hr","latijn":"la","lets":"lv","litouws":"lt","macedonisch":"mk","maleis":"ms","maltees":"mt","mongools":"mn","nederlands":"nl","noors":"nb","oekraïens":"uk","oezbeeks":"uz","perzisch":"fa","pools":"pl","portugees":"pt","roemeens":"ro","russisch":"ru","schots-gaelisch":"gd","servisch":"sr","slovaaks":"sk","sloveens":"sl","spaans":"es","tsjechisch":"cs","turks":"tr","vietnamees":"vi","zoeloe":"zu","zweeds":"sv","abjasio":"ab","albanés":"sq","alemán":"de","amhárico":"am","armenio":"hy","azerí":"az","bielorruso":"be","birmano":"my","canarés":"kn","catalán":"ca","checo":"cs","chino (simplificado)":"zh-cn","chino (tradicional)":"zh-tw","criollo haitiano":"ht","danés":"da","español":"es","estonio":"et","euskera":"eu","finlandés":"fi","francés":"fr","gaélico escocés":"gd","galés":"cy","gallego":"gl","griego":"el","hebreo":"he","indonesio":"id","inglés":"en","irlandés":"ga","islandés":"is","japonés":"ja","kurdo (kurmanyi)":"ku","kurdo (sorani)":"ckb","latín":"la","letón":"lv","macedonio":"mk","malayo":"ms","maltés":"mt","maorí":"mi","maratí":"mr","neerlandés":"nl","noruego":"nb","polaco":"pl","portugués":"pt","rumano":"ro","ruso":"ru","serbio":"sr","tailandés":"th","uzbeco":"uz","zulú":"zu","abchasais":"ab","airmeinis":"hy","albàinis":"sq","amtharais":"am","arabais":"ar","asarbaideànais":"az","basgais":"eu","bealaruisis":"be","beurla":"en","bhiet-namais":"vi","bulgarais":"bg","cànan nan tàidh":"th","catalanais":"ca","coirèanais":"ko","crìtheol haidhti":"ht","cròthaisis":"hr","cuimris":"cy","cùrdais (kurmanji)":"ku","cùrdais (sorani)":"ckb","danmhairgis":"da","duitsis":"nl","eabhra":"he","eadailtis":"it","eastoinis":"et","fionnlannais":"fi","fraingis":"fr","gaeilge":"ga","gàidhlig":"gd","gailìsis":"gl","gearmailtis":"de","grèigis":"el","hindis":"hi","innd-innsis":"id","innis-tìlis":"is","laideann":"la","laitbheis":"lv","liotuainis":"lt","malaidhis":"ms","maltais":"mt","māori":"mi","masadonais":"mk","miànmar (burmais)":"my","mongolais":"mn","nirribhis":"nb","peirsis":"fa","pòlainnis":"pl","portagailis":"pt","romàinis":"ro","ruisis":"ru","seacais":"cs","seapanais":"ja","sèirbis":"sr","sìonais (seann-nòsach)":"zh-tw","sìonais (sìmplichte)":"zh-cn","slòbhacais":"sk","slòbhainis":"sl","spàinntis":"es","suainis":"sv","turcais":"tr","ucràinis":"uk","ungairis":"hu","usbagais":"uz","abchaski":"ab","albański":"sq","amharski":"am","angielski":"en","arabski":"ar","azerski":"az","baskijski":"eu","białoruski":"be","birmański":"my","bułgarski":"bg","chiński (tradycyjny)":"zh-tw","chiński (uproszczony)":"zh-cn","chorwacki":"hr","czeski":"cs","duński":"da","estoński":"et","fiński":"fi","francuski":"fr","galicyjski":"gl","grecki":"el","hebrajski":"he","hiszpański":"es","indonezyjski":"id","irlandzki":"ga","islandzki":"is","japoński":"ja","kataloński":"ca","koreański":"ko","kreolski (haiti)":"ht","kurdyjski (kurmandżi)":"ku","kurdyjski (sorani)":"ckb","litewski":"lt","łaciński":"la","łotewski":"lv","macedoński":"mk","malajalam":"ml","malajski":"ms","maltański":"mt","maoryski":"mi","mongolski":"mn","niderlandzki":"nl","niemiecki":"de","norweski":"nb","ormiański":"hy","perski":"fa","polski":"pl","portugalski":"pt","rosyjski":"ru","rumuński":"ro","serbski":"sr","słowacki":"sk","słoweński":"sl","szkocki gaelicki":"gd","szwedzki":"sv","tajski":"th","turecki":"tr","ukraiński":"uk","uzbecki":"uz","walijski":"cy","węgierski":"hu","wietnamski":"vi","włoski":"it","abkasíska":"ab","albanska":"sq","amharíska":"am","arabíska":"ar","armenska":"hy","aserska":"az","baskneska":"eu","búlgarska":"bg","búrmíska":"my","danska":"da","eistneska":"et","enska":"en","esperantó":"eo","finnska":"fi","franska":"fr","galisíska":"gl","gríska":"el","haítískt kreólamál":"ht","hebreska":"he","hindí":"hi","hollenska":"nl","hvítrússneska":"be","indónesíska":"id","írska":"ga","íslenska":"is","ítalska":"it","japanska":"ja","katalónska":"ca","kínverska (einfölduð)":"zh-cn","kínverska (hefðbundin)":"zh-tw","kóreska":"ko","króatíska":"hr","kúrdíska (kurmanji)":"ku","kúrdíska (soraní)":"ckb","latína":"la","lettneska":"lv","litháíska":"lt","makedónska":"mk","malajíska":"ms","maltneska":"mt","maoríska":"mi","mongólska":"mn","norska":"nb","persneska":"fa","portúgalska":"pt","pólska":"pl","rúmenska":"ro","rússneska":"ru","serbneska":"sr","skosk-gelíska":"gd","slóvakíska":"sk","slóvenska":"sl","spænska":"es","súlú":"zu","sænska":"sv","taílenska":"th","tékkneska":"cs","tyrkneska":"tr","ungverska":"hu","úkraínska":"uk","úsbekíska":"uz","velska":"cy","víetnamska":"vi","þýska":"de","abhaski":"ab","albanski":"sq","arapski":"ar","armenski":"hy","azerbajdžanski":"az","bjeloruski":"be","bugarski":"bg","burmanski":"my","češki":"cs","danski":"da","engleski":"en","estonski":"et","finski":"fi","galješki":"gl","grčki":"el","haićanski kreolski":"ht","hebrejski":"he","hindu":"hi","hrvatski":"hr","indonezijski":"id","irski":"ga","islandski":"is","japanski":"ja","katalonski":"ca","kineski (pojednostavljeni)":"zh-cn","kineski (tradicionalni)":"zh-tw","korejski":"ko","kurdski (kurmanji)":"ku","kurdski (soranski)":"ckb","latinski":"la","latvijski/letonski":"lv","litvanski":"lt","mađarski":"hu","makedonski":"mk","malajalamski":"ml","malezijski":"ms","malteški":"mt","maorski":"mi","marati":"mr","nizozemski":"nl","norveški":"nb","njemački":"de","perzijski":"fa","poljski":"pl","rumunjski":"ro","ruski":"ru","slovački":"sk","slovenski":"sl","srpski":"sr","škotski gaelski":"gd","španjolski":"es","švedski":"sv","tajlandski":"th","talijanski":"it","turski":"tr","ukrajinski":"uk","uzbekistanski":"uz","velški":"cy","vijetnamski":"vi","abkhaze":"ab","albanais":"sq","allemand":"de","amharique":"am","anglais":"en","arabe":"ar","arménien":"hy","azéri":"az","biélorusse":"be","birman":"my","bulgare":"bg","chinois (simplifié)":"zh-cn","chinois (traditionnel)":"zh-tw","coréen":"ko","créole haïtien":"ht","croate":"hr","danois":"da","espagnol":"es","espéranto":"eo","estonien":"et","finnois":"fi","français":"fr","gaélique (écosse)":"gd","galicien":"gl","gallois":"cy","grec":"el","hébreu":"he","hongrois":"hu","indonésien":"id","irlandais":"ga","islandais":"is","italien":"it","japonais":"ja","kurde (kurmandji)":"ku","kurde (sorani)":"ckb","letton":"lv","lituanien":"lt","macédonien":"mk","malaisien":"ms","néerlandais":"nl","norvégien":"nb","ouzbek":"uz","persan":"fa","polonais":"pl","portugais":"pt","roumain":"ro","russe":"ru","serbe":"sr","slovaque":"sk","slovène":"sl","suédois":"sv","tchèque":"cs","thaï":"th","turc":"tr","ukrainien":"uk","vietnamien":"vi","zoulou":"zu","abkhasisk":"ab","albansk":"sq","amharisk":"am","arabisk":"ar","armensk":"hy","aserbajdsjansk":"az","baskisk":"eu","bulgarsk":"bg","burmesisk":"my","dansk":"da","engelsk":"en","estisk":"et","finsk":"fi","fransk":"fr","galisisk":"gl","gresk":"el","hebraisk":"he","hviterussisk":"be","indonesisk":"id","irsk":"ga","islandsk":"is","italiensk":"it","japansk":"ja","katalansk":"ca","kinesisk (forenklet)":"zh-cn","kinesisk (tradisjonell)":"zh-tw","koreansk":"ko","kreol (haiti)":"ht","kroatisk":"hr","kurdisk (kurmanji)":"ku","kurdisk (sorani)":"ckb","latvisk":"lv","litauisk":"lt","makedonsk":"mk","malayisk":"ms","maltesisk":"mt","mongolsk":"mn","nederlandsk":"nl","norsk":"nb","polsk":"pl","portugisisk":"pt","rumensk":"ro","russisk":"ru","serbisk":"sr","skotsk gælisk":"gd","slovakisk":"sk","slovensk":"sl","spansk":"es","svensk":"sv","tsjekkisk":"cs","tyrkisk":"tr","tysk":"de","ukrainsk":"uk","ungarsk":"hu","usbekisk":"uz","vietnamesisk":"vi","walisisk":"cy","abkhazo":"ab","acerbaixano":"az","chinés (simplificado)":"zh-cn","chinés (tradicional)":"zh-tw","dinamarqués":"da","éuscaro":"eu","finés":"fi","kurdo (kurmanji)":"ku","malabar":"ml","noruegués":"nb","romanés":"ro","telugú":"te","ucraíno":"uk","uzbeko":"uz","xaponés":"ja","абхазки":"ab","азербайджански":"az","албански":"sq","амхарски":"am","английски":"en","арабски":"ar","арменски":"hy","баски":"eu","беларуски":"be","бирмански":"my","български":"bg","виетнамски":"vi","галисийски":"gl","гръцки":"el","датски":"da","есперанто":"eo","естонски":"et","зулу":"zu","иврит":"he","индонезийски":"id","ирландски":"ga","исландски":"is","испански":"es","италиански":"it","каннада":"kn","каталонски":"ca","китайски (опростен)":"zh-cn","китайски (традиционен)":"zh-tw","корейски":"ko","кюрдски (курманджи)":"ku","кюрдски (сорани)":"ckb","латвийски":"lv","латински":"la","литовски":"lt","македонски":"mk","малайски":"ms","малаялам":"ml","малтийски":"mt","маорски":"mi","маратхи":"mr","монголски":"mn","немски":"de","нидерландски":"nl","норвежки":"nb","персийски":"fa","полски":"pl","португалски":"pt","румънски":"ro","руски":"ru","словашки":"sk","словенски":"sl","сръбски":"sr","тайландски":"th","телугу":"te","турски":"tr","уелски":"cy","узбекски":"uz","украински":"uk","унгарски":"hu","финландски":"fi","френски":"fr","хаитянски креолски":"ht","хинди":"hi","хърватски":"hr","чешки":"cs","шведски":"sv","шотландски келтски":"gd","японски":"ja","азербејџански":"az","англиски":"en","апхаски":"ab","арапски":"ar","баскиски":"eu","белоруски":"be","бугарски":"bg","велшки":"cy","галициски":"gl","германски":"de","грчки":"el","дански":"da","ерменски":"hy","индонезиски":"id","ирски":"ga","италијански":"it","јапонски":"ja","канада":"kn","кинески (поедноставен)":"zh-cn","кинески (традиционален)":"zh-tw","корејски":"ko","курдски (курманџи)":"ku","курдски (сорани)":"ckb","латвиски":"lv","литвански":"lt","малајалски":"ml","малајски":"ms","малтешки":"mt","мјанмарски (бурмански)":"my","норвешки":"nb","персиски":"fa","романски":"ro","словачки":"sk","словенечки":"sl","српски":"sr","тајландски":"th","узбечки":"uz","фински":"fi","француски":"fr","хаитски креолски":"ht","хебрејски":"he","холандски":"nl","хрватски":"hr","шкотски галски":"gd","шпански":"es","աբխազերեն":"ab","ադրբեջաներեն":"az","ալբաներեն":"sq","ամհարերեն":"am","անգլերեն":"en","արաբերեն":"ar","բասկերեն":"eu","բելառուսերեն":"be","բիրմաներեն":"my","բուլղարերեն":"bg","գալիսերեն":"gl","գելական շոտլանդերեն":"gd","գերմաներեն":"de","դանիերեն":"da","եբրայերեն":"he","զուլուսերեն":"zu","էսպերանտո":"eo","էստոներեն":"et","թայերեն":"th","թուրքերեն":"tr","ինդոնեզերեն":"id","իռլանդերեն":"ga","իսլանդերեն":"is","իսպաներեն":"es","իտալերեն":"it","լատիներեն":"la","լատվիերեն":"lv","լեհերեն":"pl","լիտվերեն":"lt","խորվաթերեն":"hr","կաննադա":"kn","կատալաներեն":"ca","կորեերեն":"ko","կրեոլերեն (հաիթի)":"ht","հայերեն":"hy","հինդի":"hi","հոլանդերեն":"nl","հունարեն":"el","հունգարերեն":"hu","ճապոներեն":"ja","մալայալամ":"ml","մալայերեն":"ms","մալթայերեն":"mt","մակեդոներեն":"mk","մաորի":"mi","մարաթի":"mr","մոնղոլերեն":"mn","նորվեգերեն":"nb","շվեդերեն":"sv","ուզբեկերեն":"uz","ուկրաիներեն":"uk","չեխերեն":"cs","չինարեն (ավանդական)":"zh-tw","չինարեն (պարզեցված)":"zh-cn","պարսկերեն":"fa","պորտուգալերեն":"pt","ռումիներեն":"ro","ռուսերեն":"ru","սերբերեն":"sr","սլովակերեն":"sk","սլովեներեն":"sl","վալլերեն":"cy","վիետնամերեն":"vi","տելուգու":"te","քրդերեն (սորանի)":"ckb","քրդերեն (քուրմանջի)":"ku","ֆիններեն":"fi","ֆրանսերեն":"fr","abhāzu":"ab","albāņu":"sq","amharu":"am","angļu":"en","arābu":"ar","armēņu":"hy","azerbaidžāņu":"az","baltkrievu":"be","basku":"eu","birmiešu":"my","bulgāru":"bg","čehu":"cs","dāņu":"da","franču":"fr","galisiešu":"gl","grieķu":"el","haitiešu":"ht","holandiešu":"nl","horvātu":"hr","igauņu":"et","indonēziešu":"id","itāļu":"it","ivrits":"he","īru":"ga","īslandiešu":"is","japāņu":"ja","katalāņu":"ca","korejiešu":"ko","krievu":"ru","kurdu (kurmandži)":"ku","kurdu (sorani)":"ckb","ķīniešu (tradicionālā)":"zh-tw","ķīniešu (vienkāršotā)":"zh-cn","latīņu":"la","latviešu":"lv","lietuviešu":"lt","maķedoniešu":"mk","malajalamiešu":"ml","malajiešu":"ms","maltiešu":"mt","maratu":"mr","mongoļu":"mn","norvēģu":"nb","persiešu":"fa","poļu":"pl","portugāļu":"pt","rumāņu":"ro","serbu":"sr","skotu gēlu":"gd","slovāku":"sk","slovēņu":"sl","somu":"fi","spāņu":"es","taju":"th","turku":"tr","ukraiņu":"uk","ungāru":"hu","uzbeku":"uz","vācu":"de","velsiešu":"cy","vjetnamiešu":"vi","zviedru":"sv","albanès":"sq","alemany":"de","amhàric":"am","anglès":"en","àrab":"ar","armeni":"hy","àzeri":"az","basc":"eu","bielorús":"be","birmà":"my","búlgar":"bg","castellà":"es","català":"ca","coreà":"ko","crioll d\'haití":"ht","croat":"hr","danès":"da","eslovac":"sk","eslovè":"sl","estonià":"et","finès":"fi","francès":"fr","gaèlic escocès":"gd","gallec":"gl","gal·lès":"cy","hebreu":"he","hongarès":"hu","indonesi":"id","irlandès":"ga","islandès":"is","italià":"it","japonès":"ja","kurd (kurmanji)":"ku","kurd (sorani)":"ckb","letó":"lv","lituà":"lt","llatí":"la","macedònic":"mk","malai":"ms","malaiàlam":"ml","maltès":"mt","neerlandès":"nl","noruec":"nb","polonès":"pl","portuguès":"pt","romanès":"ro","rus":"ru","serbi":"sr","suec":"sv","tai":"th","txec":"cs","ucraïnès":"uk","xinès (simplificat)":"zh-cn","xinès (tradicional)":"zh-tw","isi-abkhaz":"ab","isi-albania":"sq","isi-amharic":"am","isi-arabic":"ar","isi-armenian":"hy","isi-azerbaijani":"az","isi-dutch":"nl","isi-esperanto":"eo","isi-estonia":"et","isi-icelandic":"is","isi-indonesia":"id","isi-irish":"ga","isi-ukraine":"uk","isi-uzbek":"uz","isibasque":"eu","isibelarus":"be","isibulgaria":"bg","isicatalan":"ca","isichina (esilulana)":"zh-cn","isicreole sasehaiti":"ht","isicroatia":"hr","isiczech":"cs","isidanish":"da","isifinnish":"fi","isifrentshi":"fr","isigalicia":"gl","isigrikhi":"el","isihebheru":"he","isihindi":"hi","isihungary":"hu","isijalimani":"de","isijaphani":"ja","isikannada":"kn","isikorean":"ko","isikurdish (sasekurmanji)":"ku","isikurdish (sasesorani)":"ckb","isilathini":"la","isilatvian":"lv","isilithuania":"lt","isimacedonian":"mk","isimalay":"ms","isimalayalam":"ml","isimaltese":"mt","isimaori":"mi","isimarathi":"mr","isimongolia":"mn","isimyanmar (saseburmese)":"my","isingisi":"en","isinorwegia":"nb","isintaliyani":"it","isipersian":"fa","isipolish":"pl","isiputukezi":"pt","isirashiya":"ru","isiromania":"ro","isiscots gaelic":"gd","isiserbian":"sr","isislovak":"sk","isislovenia":"sl","isiswidi":"sv","isitelugu":"te","isithai":"th","isiturkish":"tr","isivietnam":"vi","isiwelsh":"cy","isizulu":"zu","ispenishi":"es","अंग्रेज़ी":"en","अज़रबैजानी":"az","अबखाज़":"ab","अरबी":"ar","अल्बेनियन":"sq","आइसलैंडिक":"is","आयरिश":"ga","आर्मीनियन":"hy","इंडोनेशियन":"id","इटैलियन":"it","उज़्बेक":"uz","एस्टोनियन":"et","एस्पेरांटो":"eo","ऐम्हेरिक":"am","कन्नड़":"kn","कुर्दिश (कुर्मांजी)":"ku","कुर्दिश (सोरानी)":"ckb","कैटेलन":"ca","कोरियन":"ko","क्रोएशियन":"hr","गैलिशियन":"gl","ग्रीक":"el","चाइनीज़ (ट्रेडिश्नल)":"zh-tw","चाइनीज़ (सिंप्लिफ़ाइड)":"zh-cn","चेक":"cs","जर्मन":"de","ज़ुलु":"zu","जैपनीज़":"ja","डच":"nl","डैनिश":"da","तुर्क":"tr","तेलुगु":"te","थाई":"th","नॉर्वेजियन":"nb","पुर्तगाली":"pt","पोलिश":"pl","फारसी":"fa","फ़िनिश":"fi","फ़्रेंच":"fr","बर्मी":"my","बल्गैरियन":"bg","बेलारशियन":"be","बैस्क":"eu","मंगोलियन":"mn","मराठी":"mr","मलय":"ms","मलयालम":"ml","माऔरी":"mi","माल्टी":"mt","मैसेडोनियन":"mk","यूक्रेनियन":"uk","रूसी":"ru","रोमेनियन":"ro","लातवियन":"lv","लिथुएनियन":"lt","लैटिन":"la","वियतनामी":"vi","वेल्श":"cy","सर्बियाई":"sr","स्कॉट्स गेलिक":"gd","स्पैनिश":"es","स्लोवाक":"sk","स्लोवेनियन":"sl","स्वीडिश":"sv","हंगेरियन":"hu","हिन्दी":"hi","हीब्रू":"he","हैतियन क्रिओल":"ht","ả rập":"ar","anh":"en","ba lan":"pl","ba tư":"fa","belarus":"be","bồ đào nha":"pt","creole (haiti)":"ht","croatia":"hr","do thái":"he","đan mạch":"da","đức":"de","gael scotland":"gd","galicia":"gl","hà lan":"nl","hàn":"ko","hungary":"hu","hy lạp":"el","iceland":"is","ireland":"ga","latinh":"la","litva":"lt","mã lai":"ms","macedonia":"mk","mông cổ":"mn","na uy":"nb","nga":"ru","nhật":"ja","pháp":"fr","phần lan":"fi","quốc tế ngữ":"eo","rumani":"ro","séc":"cs","serbia":"sr","tây ban nha":"es","thái":"th","thổ nhĩ kỳ":"tr","thụy điển":"sv","trung (giản thể)":"zh-cn","trung (phồn thể)":"zh-tw","việt":"vi","xứ wales":"cy","ý":"it","abház":"ab","albán":"sq","amhara":"am","angol":"en","azeri":"az","baszk":"eu","belorusz":"be","bolgár":"bg","burmai":"my","cseh":"cs","dán":"da","eszperantó":"eo","észt":"et","finn":"fi","francia":"fr","galíciai":"gl","görög":"el","haiti kreol":"ht","héber":"he","holland":"nl","horvát":"hr","indonéz":"id","ír":"ga","izlandi":"is","japán":"ja","katalán":"ca","kínai (egyszerűsített)":"zh-cn","kínai (hagyományos)":"zh-tw","koreai":"ko","kurd (kurmandzsi)":"ku","kurd (szoráni)":"ckb","lengyel":"pl","lett":"lv","litván":"lt","macedón":"mk","magyar":"hu","maláj":"ms","malajálam":"ml","máltai":"mt","maráthi":"mr","német":"de","norvég":"nb","olasz":"it","orosz":"ru","örmény":"hy","perzsa":"fa","portugál":"pt","román":"ro","skót gael":"gd","svéd":"sv","szerb":"sr","szlovák":"sk","szlovén":"sl","török":"tr","ukrán":"uk","üzbég":"uz","vietnámi":"vi","walesi":"cy","abhaasi":"ab","albaania":"sq","amhaari":"am","araabia":"ar","armeenia":"hy","aserbaidžaani":"az","baski":"eu","birma":"my","bulgaaria":"bg","eesti":"et","galeegi":"gl","haitikreooli":"ht","heebrea":"he","hiina (lihtsustatud)":"zh-cn","hiina (traditsiooniline)":"zh-tw","hispaania":"es","hollandi":"nl","horvaadi":"hr","iiri":"ga","indoneesia":"id","inglise":"en","islandi":"is","itaalia":"it","jaapani":"ja","katalaani":"ca","kreeka":"el","kurdi (kurmandži)":"ku","ladina":"la","leedu":"lt","läti":"lv","makedoonia":"mk","malajalaami":"ml","maoori":"mi","mongoli":"mn","norra":"nb","poola":"pl","portugali":"pt","prantsuse":"fr","pärsia":"fa","rootsi":"sv","rumeenia":"ro","saksa":"de","slovaki":"sk","sloveeni":"sl","soome":"fi","suulu":"zu","šoti":"gd","taani":"da","tšehhi":"cs","türgi":"tr","uelsi":"cy","ungari":"hu","usbeki":"uz","valgevene":"be","vene":"ru","vietnami":"vi","abchazų":"ab","airių":"ga","albanų":"sq","amharų":"am","anglų":"en","arabų":"ar","armėnų":"hy","azerbaidžaniečių":"az","baltarusių":"be","baskų":"eu","birmiečių":"my","bulgarų":"bg","čekų":"cs","danų":"da","estų":"et","galisų":"gl","graikų":"el","haičio kreolų":"ht","hebrajų":"he","indoneziečių":"id","islandų":"is","ispanų":"es","italų":"it","japonų":"ja","kanadų":"kn","kataloniečių":"ca","kinų (supaprastinta)":"zh-cn","kinų (tradicinė)":"zh-tw","korėjiečių":"ko","kroatų":"hr","kurdų (kurmandžių)":"ku","kurdų (soranių)":"ckb","latvių":"lv","lenkų":"pl","lietuvių":"lt","lotynų":"la","makedoniečių":"mk","malajalių":"ml","malajiečių":"ms","maltiečių":"mt","maorių":"mi","maratų":"mr","mongolų":"mn","norvegų":"nb","olandų":"nl","persų":"fa","portugalų":"pt","prancūzų":"fr","rumunų":"ro","rusų":"ru","serbų":"sr","slovakų":"sk","slovėnų":"sl","suomių":"fi","škotų":"gd","švedų":"sv","tajų":"th","telugų":"te","turkų":"tr","ukrainiečių":"uk","uzbekų":"uz","valų":"cy","vengrų":"hu","vietnamiečių":"vi","vokiečių":"de","zulusų":"zu","абхазька":"ab","азербайджанська":"az","албанська":"sq","амхарська":"am","англійська":"en","арабська":"ar","баскська":"eu","білоруська":"be","бірманська":"my","болгарська":"bg","в’єтнамська":"vi","валлійська":"cy","вірменська":"hy","гаїтянська креольська":"ht","гінді":"hi","грецька":"el","ґалісійська":"gl","данська":"da","естонська":"et","іврит":"he","індонезійська":"id","ірландська":"ga","ісландська":"is","іспанська":"es","італійська":"it","каталанська":"ca","китайська (спрощена)":"zh-cn","китайська (традиційна)":"zh-tw","корейська":"ko","курдська (курманджі)":"ku","курдська (сорані)":"ckb","латинська":"la","латиська":"lv","литовська":"lt","македонська":"mk","малайська":"ms","мальтійська":"mt","маорі":"mi","маратхі":"mr","монгольська":"mn","нідерландська":"nl","німецька":"de","норвезька":"nb","перська":"fa","польська":"pl","португальська":"pt","російська":"ru","румунська":"ro","сербська":"sr","словацька":"sk","словенська":"sl","тайська":"th","телуґу":"te","турецька":"tr","угорська":"hu","узбецька":"uz","українська":"uk","фінська":"fi","французька":"fr","хорватська":"hr","чеська":"cs","шведська":"sv","шотландська (ґельська)":"gd","японська":"ja","अझरबैजानी":"az","अब्काझ":"ab","अम्हारिक":"am","अर्मेनियन":"hy","अल्बानियन":"sq","आइसलँडिक":"is","इंग्रजी":"en","इटालियन":"it","उझ्बेक":"uz","एस्परँटो":"eo","कन्नड":"kn","कॅटलान":"ca","गॅलिशियन":"gl","चीनी (पारंपारिक)":"zh-tw","चीनी (सरलीकृत)":"zh-cn","जपानी":"ja","झुलु":"zu","झेक":"cs","डॅनिश":"da","तुर्की":"tr","पोर्तुगीज":"pt","फिन्निश":"fi","फ्रेंच":"fr","बल्गेरियन":"bg","बास्क":"eu","बेलारुशियन":"be","मल्याळम":"ml","माओरी":"mi","माल्टीज":"mt","मॅसेडोनियन":"mk","म्यानमार (बर्मीज)":"my","युक्रेनियन":"uk","रशियन":"ru","रोमानियन":"ro","लाट्वियन":"lv","लिथुआनियन":"lt","लॅटिन":"la","व्हिएतनामी":"vi","सर्बियन":"sr","स्पॅनिश":"es","स्लोव्हाक":"sk","स्लोव्हेनियन":"sl","हिब्रू":"he","हैतीयन क्रेओल":"ht","abxaz":"ab","alban":"sq","amxar":"am","arman":"hy","bolgar":"bg","dan":"da","eston":"et","fin":"fi","fors":"fa","fransuz":"fr","gaiti-kreol":"ht","galisiy":"gl","golland":"nl","grek":"el","hind":"hi","indonez":"id","ingliz":"en","irland":"ga","island":"is","ispan":"es","italyan":"it","ivrit":"he","koreys":"ko","kurd (kurmonji)":"ku","latish":"lv","lotin":"la","makedon":"mk","maltiy":"mt","maratxi":"mr","nemis":"de","norveg":"nb","ozarbayjon":"az","polyak":"pl","portugal":"pt","rumin":"ro","sloven":"sl","tay":"th","turk":"tr","ukrain":"uk","valliy":"cy","venger":"hu","vyetnam":"vi","xitoy (odatiy)":"zh-tw","xitoy (soddalashgan)":"zh-cn","xorvat":"hr","yapon":"ja","o‘zbek":"uz","shotland-gel":"gd","shved":"sv","chex":"cs","alman":"de","amarik":"am","azərbaycan":"az","bolqar":"bg","çex":"cs","çin (ənənəvi)":"zh-tw","çin (sadələşdirilmiş)":"zh-cn","danimarka":"da","erməni":"hy","ərəb":"ar","fars":"fa","fransız":"fr","ingilis":"en","i̇ndoneziya":"id","i̇rland":"ga","i̇sland":"is","i̇sveç":"sv","i̇talyan":"it","i̇vrit":"he","koreya":"ko","kürd(kurmanci)":"ku","kürd(sorani)":"ckb","qalisian":"gl","latın":"la","latış":"lv","macar":"hu","makedoniya":"mk","monqol":"mn","myanma (birma)":"my","norveç":"nb","özbək":"uz","portuqal":"pt","rumın":"ro","şotland (kelt)":"gd","teluqu":"te","türk":"tr","uels":"cy","ukrayna":"uk","yunan":"el","土耳其文":"tr","中文 (繁體)":"zh-tw","中文 (簡體)":"zh-cn","丹麥文":"da","巴斯克文":"eu","日文":"ja","毛利文":"mi","世界語":"eo","加里西亞文":"gl","加泰隆尼亞文":"ca","卡納達文":"kn","白俄羅斯文":"be","立陶宛文":"lt","冰島文":"is","匈牙利文":"hu","印尼文":"id","印地文":"hi","西班牙文":"es","克羅埃西亞文":"hr","希伯來文":"he","希臘文":"el","亞美尼亞文":"hy","亞塞拜然文":"az","拉丁文":"la","拉脫維亞文":"lv","法文":"fr","波斯文":"fa","波蘭文":"pl","芬蘭文":"fi","阿布哈茲文":"ab","阿姆哈拉文":"am","阿拉伯文":"ar","阿爾巴尼亞文":"sq","俄文":"ru","保加利亞文":"bg","南非祖魯文":"zu","威爾斯文":"cy","英文":"en","庫德文 (庫爾曼吉文)":"ku","庫德文 (索拉尼文)":"ckb","挪威文":"nb","泰文":"th","泰盧固文":"te","海地克里奧文":"ht","烏克蘭文":"uk","烏茲別克文":"uz","馬耳他文":"mt","馬來文":"ms","馬其頓文":"mk","馬拉地文":"mr","馬拉雅拉姆文":"ml","捷克文":"cs","荷蘭文":"nl","斯洛伐克文":"sk","斯洛維尼亞文":"sl","越南文":"vi","塞爾維亞文":"sr","愛沙尼亞文":"et","愛爾蘭文":"ga","瑞典文":"sv","義大利文":"it","葡萄牙文":"pt","蒙古文":"mn","德文":"de","緬甸文":"my","韓文":"ko","羅馬尼亞文":"ro","蘇格蘭蓋爾文":"gd","abkazisht":"ab","amarikisht":"am","anglisht":"en","arabisht":"ar","armenisht":"hy","azerisht":"az","baskisht":"eu","birmanisht":"my","bjellorusisht":"be","bullgarisht":"bg","çekisht":"cs","danisht":"da","estonisht":"et","finlandisht":"fi","frëngjisht":"fr","galicianisht":"gl","galishte skoceze":"gd","greqisht":"el","gjermanisht":"de","hebraisht":"he","hindisht":"hi","holandisht":"nl","hungarisht":"hu","indonezisht":"id","irlandisht":"ga","islandisht":"is","italisht":"it","japonisht":"ja","kanadaisht":"kn","katalonisht":"ca","kinezisht (e thjeshtuar)":"zh-cn","kinezisht (tradicionale)":"zh-tw","koreanisht":"ko","kreolishte haitiane":"ht","kroatisht":"hr","kurdisht (kurmanjisht)":"ku","kurdisht (sorani)":"ckb","latinisht":"la","letonisht":"lv","lituanisht":"lt","malajalamisht":"ml","malajzisht":"ms","maltisht":"mt","maorisht":"mi","maqedonisht":"mk","maratisht":"mr","mongolisht":"mn","norvegjisht":"nb","persisht":"fa","polonisht":"pl","portugalisht":"pt","rumanisht":"ro","rusisht":"ru","serbisht":"sr","sllovakisht":"sk","sllovenisht":"sl","spanjisht":"es","suedisht":"sv","shqip":"sq","tajlandisht":"th","telugisht":"te","turqisht":"tr","uellsisht":"cy","ukrainisht":"uk","uzbekisht":"uz","vietnamisht":"vi","bahasa melayu":"ms","cina (ringkas)":"zh-cn","cina (tradisional)":"zh-tw","finland":"fi","gaelic scotland":"gd","inggeris":"en","itali":"it","jepun":"ja","kurdistan (kurmanji)":"ku","kurdistan (sorani)":"ckb","lithuania":"lt","myanmar (burma)":"my","norway":"nb","parsi":"fa","perancis":"fr","poland":"pl","romania":"ro","sepanyol":"es","sweden":"sv","turki":"tr","ukraine":"uk","wales":"cy","ahepaitani":"az","airihi":"ga","amariki":"am","amēniana":"hy","arapeinia":"sq","arapi":"ar","eperānato":"eo","etōnia":"et","haina (onamata)":"zh-tw","hainamana (kua whakamāmātia)":"zh-cn","hanekeria":"hu","hapanihi":"ja","herepia":"sr","hinerangi":"fi","hīni":"hi","hiperu":"he","horowākia":"sk","horowinia":"sl","huitene":"sv","huru":"zu","ingarihi":"en","initonīhia":"id","itāriana":"it","kanata":"kn","karihia":"gl","katarāna":"ca","kereore haiti":"ht","kiriki":"el","kōreana":"ko","koroātiana":"hr","korukoru":"tr","kūrihi (horani)":"ckb","kūrihi (kurumanihi)":"ku","makerōnia":"mk","māratihi":"mt","marei":"ms","mareiarama":"ml","mongōriana":"mn","nōwei":"nb","pākihi":"eu","pāniora":"es","pēma (purumīhi)":"my","peraruhia":"be","perēhia":"fa","pōrana":"pl","potukīhi":"pt","purukāriana":"bg","rātini":"la","rāwhiana":"lv","rituānia":"lt","romānia":"ro","rūhia":"ru","tati":"nl","tenemāka":"da","teruku":"te","tiamana":"de","tieke":"cs","tiorangi":"is","tuauri kotarangi":"gd","uhipeke":"uz","ūkareiana":"uk","wēra":"cy","whitināmu":"vi","wīwī":"fr","абхазская":"ab","азербайджанская":"az","албанская":"sq","амхарская":"am","англійская":"en","арабская":"ar","армянская":"hy","балгарская":"bg","баскская":"eu","беларуская":"be","бірманская (м’янма)":"my","в’етнамская":"vi","валійская":"cy","венгерская":"hu","гаіцянская крэольская":"ht","галандская":"nl","галісійская":"gl","грэчаская":"el","дацкая":"da","інданезійская":"id","ірландская":"ga","ісландская":"is","іспанская":"es","італьянская":"it","іўрыт":"he","карэйская":"ko","каталанская":"ca","кітайская (спрошчаная)":"zh-cn","кітайская (традыцыйная)":"zh-tw","курдская (курманджы)":"ku","курдская (сарані)":"ckb","латышская":"lv","лацінская":"la","літоўская":"lt","маары":"mi","македонская":"mk","малайская":"ms","мальтыйская":"mt","мангольская":"mn","нарвежская":"nb","нямецкая":"de","партугальская":"pt","персідская":"fa","польская":"pl","румынская":"ro","руская":"ru","сербская":"sr","славацкая":"sk","славенская":"sl","тайская":"th","турэцкая":"tr","тэлугу":"te","узбекская":"uz","украінская":"uk","фінская":"fi","французская":"fr","харвацкая":"hr","хіндзі":"hi","чэшская":"cs","шатландская гэльская":"gd","шведская":"sv","эсперанта":"eo","эстонская":"et","японская":"ja","abkaz":"ab","albanyen":"sq","amenyen":"hy","anglè":"en","azèbajani":"az","belarisyen":"be","bilgaryen":"bg","chinwa (senp)":"zh-cn","chinwa (tradisyonèl)":"zh-tw","danwa":"da","ebre":"he","endonezyen":"id","endou":"hi","estonyen":"et","fenlandè":"fi","franse":"fr","gaelik ekosè":"gd","galisyen":"gl","grèk":"el","ikrenyen":"uk","ilandè":"ga","islandè":"is","italyen":"it","izbèk":"uz","japonè":"ja","kanada":"kn","kid (koumanji)":"ku","kid (sorani)":"ckb","koreyen":"ko","kreyòl ayisyen":"ht","kwoasyen":"hr","laten":"la","letonyen":"lv","lityanyen":"lt","malè":"ms","malt":"mt","masedonyen":"mk","mayori":"mi","mongolyen":"mn","myanma (burmese)":"my","nòvejyen":"nb","olandè, neyèlandè":"nl","onngaryen":"hu","panyòl":"es","pèsyen":"fa","polonè":"pl","pòtigè":"pt","ris":"ru","romanyen":"ro","sèb":"sr","slovenyen":"sl","syedwa":"sv","tuk":"tr","tyèk":"cs","vyetnamyen":"vi","กรีก":"el","กันนาดา":"kn","กาลิเชียน":"gl","เกลิกสกอต":"gd","เกาหลี":"ko","คาตาลัน":"ca","เคิร์ด (กุรมันชี)":"ku","เคิร์ด (โซรานี)":"ckb","โครเอเชีย":"hr","จีน (ตัวเต็ม)":"zh-tw","จีน (ตัวย่อ)":"zh-cn","เช็ก":"cs","ซูลู":"zu","เซอร์เบียน":"sr","ญี่ปุ่น":"ja","ดัตช์":"nl","เดนมาร์ก":"da","ตุรกี":"tr","เตลูกู":"te","ไทย":"th","นอร์เวย์":"nb","บัลแกเรีย":"bg","บาสก์":"eu","เบลารุส":"be","เปอร์เซีย":"fa","โปรตุเกส":"pt","โปแลนด์":"pl","ฝรั่งเศส":"fr","ฟินแลนด์":"fi","มองโกเลีย":"mn","มัลทีส":"mt","มาซีโดเนีย":"mk","มาราฐี":"mr","มาลายาลัม":"ml","มาเลย์":"ms","เมารี":"mi","เมียนมา (พม่า)":"my","ยูเครน":"uk","เยอรมัน":"de","รัสเซีย":"ru","โรมาเนีย":"ro","ละติน":"la","ลัตเวีย":"lv","ลิทัวเนีย":"lt","เวลส์":"cy","เวียดนาม":"vi","สเปน":"es","สโลวัก":"sk","สโลวีเนีย":"sl","สวีเดน":"sv","อังกฤษ":"en","อับคาเซีย":"ab","อัมฮาริก":"am","อาร์เซอร์ไบจัน":"az","อาร์เมเนีย":"hy","อาหรับ":"ar","อิตาลี":"it","อินโดนีเซีย":"id","อุสเบกิสถาน":"uz","เอสโทเนีย":"et","เอสเปอแรนโต":"eo","แอลเบเนีย":"sq","ไอซ์แลนด์":"is","ไอร์แลนด์":"ga","ฮังการี":"hu","ฮินดี":"hi","ฮีบรู":"he","เฮติครีโอล":"ht","abkhaziera":"ab","albaniera":"sq","alemana":"de","amharera":"am","arabiera":"ar","armeniera":"hy","azerbaijanera":"az","bielorrusiera":"be","birmaniera":"my","bulgariera":"bg","daniera":"da","errumaniera":"ro","errusiera":"ru","eskoziako gaelikoa":"gd","eslovakiera":"sk","esloveniera":"sl","esperantoa":"eo","estoniera":"et","euskara":"eu","finlandiera":"fi","frantsesa":"fr","galesa":"cy","galiziera":"gl","gaztelania":"es","greziera":"el","hebreera":"he","hindia":"hi","hungariera":"hu","indonesiera":"id","ingelesa":"en","irlandera":"ga","islandiera":"is","italiera":"it","japoniera":"ja","katalana":"ca","koreera":"ko","kreolera (haiti)":"ht","kroaziera":"hr","kurduera (kurmanji)":"ku","kurduera (sorania)":"ckb","latina":"la","letoniera":"lv","lituaniera":"lt","malabarera":"ml","malaysiera":"ms","maltera":"mt","maoriera":"mi","marathera":"mr","mazedoniera":"mk","mongoliera":"mn","nederlandera":"nl","norvegiera":"nb","persiera":"fa","poloniera":"pl","portugesa":"pt","serbiera":"sr","suediera":"sv","telugua":"te","thailandiera":"th","turkiera":"tr","txekiera":"cs","txinera (sinplifikatua)":"zh-cn","txinera (tradizionala)":"zh-tw","ukrainera":"uk","uzbekera":"uz","vietnamera":"vi","zuluera":"zu","abcaso":"ab","albanese":"sq","amarico":"am","arabo":"ar","armeno":"hy","azero":"az","bielorusso":"be","bulgaro":"bg","catalano":"ca","ceco":"cs","cinese (semplificato)":"zh-cn","cinese (tradizionale)":"zh-tw","creolo haitiano":"ht","croato":"hr","curdo (sorani)":"ckb","danese":"da","ebraico":"he","estone":"et","finlandese":"fi","francese":"fr","gaelico scozzese":"gd","galiziano":"gl","gallese":"cy","giapponese":"ja","greco":"el","indonesiano":"id","inglese":"en","irlandese":"ga","islandese":"is","latino":"la","lettone":"lv","macedone":"mk","malese":"ms","mongolo":"mn","norvegese":"nb","olandese":"nl","persiano":"fa","polacco":"pl","portoghese":"pt","rumeno":"ro","serbo":"sr","slovacco":"sk","sloveno":"sl","spagnolo":"es","svedese":"sv","tedesco":"de","ucraino":"uk","ungherese":"hu","abkaż":"ab","albaniż":"sq","amħari":"am","armen":"hy","ażerbajġani":"az","belarussu":"be","bulgaru":"bg","ċek":"cs","ċiniż (simplifikat)":"zh-cn","ċiniż (tradizzjonali)":"zh-tw","creole haiti":"ht","daniż":"da","ebrajk":"he","estonjan":"et","finlandiż":"fi","franċiż":"fr","ġappuniż":"ja","ġermaniż":"de","gaelic tal-iskoċċiżi":"gd","galizjan":"gl","grieg":"el","għarbi":"ar","ħindi":"hi","indoneżjan":"id","ingliż":"en","irlandiż":"ga","islandiż":"is","kroat":"hr","latvjan":"lv","litwen":"lt","maċedonjan":"mk","malasjan":"ms","malti":"mt","mjanmar (burma)":"my","mongoljan":"mn","norveġiż":"nb","olandiż":"nl","persjan":"fa","pollakk":"pl","portugiż":"pt","rumen":"ro","russu":"ru","slovakk":"sk","spanjol":"es","svediż":"sv","tajlandiż":"th","taljan":"it","tork":"tr","ukren":"uk","ungeriż":"hu","użbek":"uz","vjetnamiż":"vi","żulu":"zu","ಅಜರ್ಬೈಜಾನಿ":"az","ಅಬ್ಖಾಜ್":"ab","ಅಮಹಾರಿಕ್":"am","ಅರಬ್ಬಿ":"ar","ಆರ್ಮೇನಿಯನ್":"hy","ಆಲ್ಬೇನಿಯನ್":"sq","ಇಂಗ್ಲಿಷ್":"en","ಇಂಡೋನೇಷಿಯನ್":"id","ಇಟಾಲಿಯನ್":"it","ಉಜ್ಬೆಕ್":"uz","ಎಸ್ಟೋನಿಯನ್":"et","ಎಸ್ಪೆರಾಂಟೋ":"eo","ಐರಿಷ್":"ga","ಐಸ್ಲ್ಯಾಂಡಿಕ್":"is","ಕನ್ನಡ":"kn","ಕುರ್ದಿಶ್ (ಕುರ್ಮಾಂಜಿ)":"ku","ಕುರ್ದಿಶ್ (ಸೊರಾನಿ)":"ckb","ಕೊರಿಯನ್":"ko","ಕ್ಯಾಟಲನ್":"ca","ಕ್ರೊಯೇಷಿಯನ್":"hr","ಗ್ಯಾಲೀಷಿಯನ್":"gl","ಗ್ರೀಕ್":"el","ಚೀನಿ (ಸರಳೀಕೃತ)":"zh-cn","ಚೈನೀಸ್ (ಸಾಂಪ್ರದಾಯಿಕ)":"zh-tw","ಜಪಾನಿ":"ja","ಜರ್ಮನ್":"de","ಜುಲು":"zu","ಝೆಕ್":"cs","ಟರ್ಕಿಷ್":"tr","ಡಚ್":"nl","ಡ್ಯಾನಿಷ್":"da","ತೆಲುಗು":"te","ಥಾಯ್":"th","ನಾರ್ವೇಜಿಯನ್":"nb","ಪೋರ್ಚುಗೀಸ್":"pt","ಪೋಲಿಷ್":"pl","ಫಾರ್ಸಿ":"fa","ಫಿನ್ನಿಷ್":"fi","ಫ್ರೆಂಚ್":"fr","ಬಲ್ಗೇರಿಯನ್":"bg","ಬಾಸ್ಕ್":"eu","ಬೆಲರೂಸಿಯನ್":"be","ಮಂಗೋಲಿಯನ್":"mn","ಮಯನ್ಮಾರ್ (ಬರ್ಮೀಸ್)":"my","ಮರಾಠಿ":"mr","ಮಲಯ":"ms","ಮಲಯಾಳಂ":"ml","ಮಾಲ್ಟೀಸ್":"mt","ಮಾವೋರಿ":"mi","ಮ್ಯಾಸೆಡೋನಿಯನ್":"mk","ಯುಕ್ರೇನಿಯನ್":"uk","ರಷಿಯನ್":"ru","ರೊಮೇನಿಯನ್":"ro","ಲಿಥುವೇನಿಯನ್":"lt","ಲ್ಯಾಟಿನ್":"la","ಲ್ಯಾಟ್ವಿಯನ್":"lv","ವಿಯೆಟ್ನಾಮಿ":"vi","ವೆಲ್ಶ್":"cy","ಸರ್ಬಿಯನ್":"sr","ಸ್ಕಾಟ್ಸ್ ಗ್ಯಾಲಿಕ್":"gd","ಸ್ಪ್ಯಾನಿಷ್":"es","ಸ್ಲೊವಾಕ್":"sk","ಸ್ಲೊವೆನಿಯನ್":"sl","ಸ್ವೀಡಿಷ್":"sv","ಹಂಗೇರಿಯನ್":"hu","ಹಯಥಿಯನ್ ಕ್ರಿಯೋಲ್":"ht","ಹಿಂದಿ":"hi","ಹೀಬ್ರೂ":"he","arabia":"ar","burma":"my","englanti":"en","espanja":"es","haitinkreoli":"ht","heprea":"he","hollanti":"nl","islanti":"is","japani":"ja","kiina (perinteinen)":"zh-tw","kiina (yksinkertaistettu)":"zh-cn","kreikka":"el","kroatia":"hr","kurdi (soranî)":"ckb","kymri":"cy","liettua":"lt","malaiji":"ms","norja":"nb","persia":"fa","puola":"pl","ranska":"fr","ruotsi":"sv","skottigaeli":"gd","suomi":"fi","tanska":"da","tsekki":"cs","turkki":"tr","unkari":"hu","uzbekki":"uz","valkovenäjä":"be","venäjä":"ru","viro":"et","abhazca":"ab","almanca":"de","arapça":"ar","arnavutça":"sq","azerbaycan dili":"az","baskça":"eu","belarusça":"be","bulgarca":"bg","burmaca":"my","çekçe":"cs","çince (basitleştirilmiş)":"zh-cn","çince (geleneksel)":"zh-tw","danca":"da","endonezce":"id","ermenice":"hy","estonyaca":"et","farsça":"fa","felemenkçe":"nl","fince":"fi","fransızca":"fr","galce":"cy","galiçyaca":"gl","habeşçe":"am","haiti kreyolu":"ht","hırvatça":"hr","hintçe":"hi","i̇branice":"he","i̇ngilizce":"en","i̇rlandaca":"ga","i̇skoç gaelcesi":"gd","i̇spanyolca":"es","i̇sveççe":"sv","i̇talyanca":"it","i̇zlandaca":"is","japonca":"ja","kannada dili":"kn","katalanca":"ca","korece":"ko","kürtçe (kurmançça)":"ku","kürtçe (sorani)":"ckb","latince":"la","lehçe":"pl","letonca":"lv","litvanca":"lt","macarca":"hu","makedonca":"mk","malayalam dili":"ml","malayca":"ms","maltaca":"mt","maori dili":"mi","moğolca":"mn","norveççe":"nb","özbekçe":"uz","portekizce":"pt","romence":"ro","rusça":"ru","sırpça":"sr","slovakça":"sk","slovence":"sl","tayca":"th","telugu dili":"te","türkçe":"tr","ukraynaca":"uk","vietnamca":"vi","yunanca":"el","abhază":"ab","albaneză":"sq","amharică":"am","arabă":"ar","armeană":"hy","azerbaidjană":"az","bască":"eu","bielorusă":"be","birmană":"my","bulgară":"bg","catalană":"ca","cehă":"cs","chineză (simplificată)":"zh-cn","chineză (tradițională)":"zh-tw","coreeană":"ko","creolă haitiană":"ht","croată":"hr","daneză":"da","ebraică":"he","engleză":"en","estonă":"et","finlandeză":"fi","franceză":"fr","galeză":"cy","galica scoțiană":"gd","galiciană":"gl","germană":"de","greacă":"el","indoneziană":"id","irlandeză":"ga","islandeză":"is","italiană":"it","japoneză":"ja","kurdă (kurmanji)":"ku","kurdă (sorani)":"ckb","latină":"la","letonă":"lv","lituaniană":"lt","macedoneană":"mk","maghiară":"hu","malaeză":"ms","malteză":"mt","mongolă":"mn","neerlandeză":"nl","norvegiană":"nb","persană":"fa","poloneză":"pl","portugheză":"pt","română":"ro","rusă":"ru","sârbă":"sr","slovacă":"sk","slovenă":"sl","spaniolă":"es","suedeză":"sv","thailandeză":"th","turcă":"tr","ucraineană":"uk","uzbecă":"uz","vietnameză":"vi","ကနာဒါ":"kn","ကိုရီးယား":"ko","ကက်တလန်":"ca","ကဒ် (ကာမန်ဂျီ)":"ku","ကဒ် (ဆိုရာနီ)":"ckb","ခရိုအေးရှား":"hr","ချက်":"cs","ဂရိ":"el","ဂယ်လိရှ":"gl","ဂျပန်":"ja","ဂျာမန်":"de","စကော့ ဂေးလစ်":"gd","စပိန်":"es","ဆလိုဗေးနီးယား":"sl","ဆလိုဗက်":"sk","ဆားဘီးယား":"sr","ဆွီဒင်":"sv","ဇူးလူး":"zu","တရုတ် (ရိုးရာ)":"zh-tw","တရုတ် (ရိုးရှင်း)":"zh-cn","တူရကီ":"tr","တယ်လူဂူ":"te","ထိုင်း":"th","ဒတ်ချ်":"nl","ဒိန်းမတ်":"da","နော်ဝေး":"nb","ပါရှန်":"fa","ပေါ်တူဂီ":"pt","ပိုလန်":"pl","ပြင်သစ်":"fr","ဖင်လန်":"fi","ဗီယက်နမ်":"vi","ဘီလာရစ်":"be","ဘူဂေးရီးယား":"bg","ဘာစ်ခ်":"eu","မလေယာလမ်":"ml","မလေး":"ms","မာရာသီ":"mr","မော်ရီ":"mi","မော်လတာ":"mt","မက်ဆီဒိုးနီးယား":"mk","မြန်မာ":"my","မွန်ဂိုလီးယား":"mn","ယူကရိန်း":"uk","ရုရှား":"ru","ရိုမေးနီးယား":"ro","လက်တင်":"la","လစ်သူဝေးနီးယား":"lt","လတ်ဗီယာ":"lv","ဝေလ":"cy","ဟီဘရူး":"he","ဟေတီ ခရီအိုး":"ht","ဟန်ဂေရီ":"hu","ဟိန္ဒီ":"hi","အဇာဘိုင်ဂျန်":"az","အာမေးနီးယား":"hy","အာရေဗျ":"ar","အီတလီ":"it","ဥဇဘက်":"uz","အက်စတိုးနီးယား":"et","အက်ဘခါ့ဇ်":"ab","အက်စ်ပဲရန်တို":"eo","အိုက်စလန်":"is","အင်္ဂလိပ်":"en","အင်ဒိုနီးရှား":"id","အိုင်းရစ်ရှ်":"ga","အမ်ဟဲရစ်ခ်":"am","အယ်လ်ဘေးနီးယား":"sq","阿布哈兹语":"ab","阿尔巴尼亚语":"sq","阿拉伯语":"ar","阿姆哈拉语":"am","阿塞拜疆语":"az","爱尔兰语":"ga","爱沙尼亚语":"et","巴斯克语":"eu","白俄罗斯语":"be","保加利亚语":"bg","冰岛语":"is","波兰语":"pl","波斯语":"fa","丹麦语":"da","德语":"de","俄语":"ru","法语":"fr","芬兰语":"fi","海地克里奥尔语":"ht","韩语":"ko","荷兰语":"nl","加利西亚语":"gl","加泰罗尼亚语":"ca","捷克语":"cs","卡纳达语":"kn","克罗地亚语":"hr","库尔德语(库尔曼吉语)":"ku","库尔德语(索拉尼)":"ckb","拉丁语":"la","拉脱维亚语":"lv","立陶宛语":"lt","罗马尼亚语":"ro","马耳他语":"mt","马拉地语":"mr","马拉雅拉姆语":"ml","马来语":"ms","马其顿语":"mk","毛利语":"mi","蒙古语":"mn","缅甸语":"my","挪威语":"nb","葡萄牙语":"pt","日语":"ja","瑞典语":"sv","塞尔维亚语":"sr","世界语":"eo","斯洛伐克语":"sk","斯洛文尼亚语":"sl","苏格兰盖尔语":"gd","泰卢固语":"te","泰语":"th","土耳其语":"tr","威尔士语":"cy","乌克兰语":"uk","乌兹别克语":"uz","西班牙语":"es","希伯来语":"he","希腊语":"el","匈牙利语":"hu","亚美尼亚语":"hy","意大利语":"it","印地语":"hi","印尼语":"id","英语":"en","越南语":"vi","中文(繁体)":"zh-tw","中文(简体)":"zh-cn","祖鲁语":"zu","갈리시아어":"gl","그리스어":"el","네덜란드어":"nl","노르웨이어":"nb","덴마크어":"da","독일어":"de","라트비아어":"lv","라틴어":"la","러시아어":"ru","루마니아어":"ro","리투아니아어":"lt","마라티어":"mr","마오리어":"mi","마케도니아어":"mk","말라얄람어":"ml","말레이어":"ms","몰타어":"mt","몽골어":"mn","미얀마어(버마어)":"my","바스크어":"eu","베트남어":"vi","벨라루스어":"be","불가리아어":"bg","세르비아어":"sr","스웨덴어":"sv","스코틀랜드 게일어":"gd","스페인어":"es","슬로바키아어":"sk","슬로베니아어":"sl","아랍어":"ar","아르메니아어":"hy","아이슬란드어":"is","아이티 크리올어":"ht","아일랜드어":"ga","아제르바이잔어":"az","알바니아어":"sq","암하라어":"am","압하지야어":"ab","에스토니아어":"et","에스페란토어":"eo","영어":"en","우즈베크어":"uz","우크라이나어":"uk","웨일즈어":"cy","이탈리아어":"it","인도네시아어":"id","일본어":"ja","줄루어":"zu","중국어(간체)":"zh-cn","중국어(번체)":"zh-tw","체코어":"cs","카탈로니아어":"ca","칸나다어":"kn","쿠르드어(소라니)":"ckb","쿠르드어(쿠르만지)":"ku","크로아티아어":"hr","태국어":"th","터키어":"tr","텔루구어":"te","페르시아어":"fa","포르투갈어":"pt","폴란드어":"pl","프랑스어":"fr","핀란드어":"fi","한국어":"ko","헝가리어":"hu","히브리어":"he","힌디어":"hi","abchasisch":"ab","albanisch":"sq","armenisch":"hy","aserbaidschanisch":"az","birmanisch":"my","bulgarisch":"bg","chinesisch (traditionell)":"zh-tw","chinesisch (vereinfacht)":"zh-cn","dänisch":"da","deutsch":"de","englisch":"en","estnisch":"et","finnisch":"fi","französisch":"fr","galizisch":"gl","griechisch":"el","haitianisch":"ht","hebräisch":"he","irisch":"ga","isländisch":"is","italienisch":"it","japanisch":"ja","katalanisch":"ca","koreanisch":"ko","kurdisch (kurmandschi)":"ku","kurdisch (sorani)":"ckb","latein":"la","lettisch":"lv","litauisch":"lt","malaysisch":"ms","maltesisch":"mt","mazedonisch":"mk","mongolisch":"mn","niederländisch":"nl","norwegisch":"nb","persisch":"fa","polnisch":"pl","portugiesisch":"pt","rumänisch":"ro","schottisch-gälisch":"gd","schwedisch":"sv","serbisch":"sr","slowakisch":"sk","slowenisch":"sl","spanisch":"es","thailändisch":"th","tschechisch":"cs","türkisch":"tr","ukrainisch":"uk","ungarisch":"hu","usbekisch":"uz","vietnamesisch":"vi","walisisch":"cy","abcházština":"ab","albánština":"sq","amharština":"am","angličtina":"en","arabština":"ar","arménština":"hy","ázerbájdžánština":"az","barmština":"my","baskičtina":"eu","běloruština":"be","bulharština":"bg","čeština":"cs","čínština (tradiční)":"zh-tw","čínština (zjednodušená)":"zh-cn","dánština":"da","estonština":"et","finština":"fi","francouzština":"fr","galicijština":"gl","haitská kreolština":"ht","hebrejština":"he","hindština":"hi","holandština":"nl","chorvatština":"hr","indonéština":"id","irština":"ga","islandština":"is","italština":"it","japonština":"ja","kannadština":"kn","katalánština":"ca","korejština":"ko","kurdština":"ku","kurdština (sorání)":"ckb","litevština":"lt","lotyština":"lv","maďarština":"hu","makedonština":"mk","malajálamština":"ml","malajština":"ms","maltština":"mt","maorština":"mi","marátština":"mr","mongolština":"mn","němčina":"de","norština":"nb","perština":"fa","polština":"pl","portugalština":"pt","rumunština":"ro","ruština":"ru","řečtina":"el","skotská gaelština":"gd","slovenština":"sk","slovinština":"sl","srbština":"sr","španělština":"es","švédština":"sv","telužština":"te","thajština":"th","turečtina":"tr","ukrajinština":"uk","uzbečtina":"uz","velština":"cy","vietnamština":"vi","אבחזית":"ab","אוזבקית":"uz","אוקראינית":"uk","אזרית":"az","איטלקית":"it","אינדונזית":"id","איסלנדית":"is","אירית":"ga","אלבנית":"sq","אמהרית":"am","אנגלית":"en","אסטונית":"et","אספרנטו":"eo","ארמנית":"hy","באסקית":"eu","בולגרית":"bg","בורמזית":"my","בלארוסית":"be","גאלית סקוטית":"gd","גליציאנית":"gl","גרמנית":"de","דנית":"da","הולנדית":"nl","הונגרית":"hu","הינדי":"hi","וולשית":"cy","וייטנאמית":"vi","זולו":"zu","טורקית":"tr","טלוגו":"te","יוונית":"el","יפנית":"ja","כורדית (כורמנג\'ית)":"ku","כורדית (סורנית)":"ckb","לטבית":"lv","לטינית":"la","ליטאית":"lt","מאורית":"mi","מונגולית":"mn","מלאית":"ms","מלטית":"mt","מליאלאם":"ml","מקדונית":"mk","מראטהית":"mr","נורווגית":"nb","סינית (מסורתית)":"zh-tw","סינית (פשוטה)":"zh-cn","סלובנית":"sl","סלובקית":"sk","ספרדית":"es","סרבית":"sr","עברית":"he","ערבית":"ar","פולנית":"pl","פורטוגזית":"pt","פינית":"fi","פרסית":"fa","צ\'כית":"cs","צרפתית":"fr","קאנאדה":"kn","קוריאנית":"ko","קטלאנית":"ca","קרואטית":"hr","קריאולית האיטית":"ht","רומנית":"ro","רוסית":"ru","שוודית":"sv","תאית":"th","abcaseg":"ab","albaneg":"sq","almaeneg":"de","amhareg":"am","arabeg":"ar","armeneg":"hy","aserbaijaneg":"az","basgeg":"eu","belarwseg":"be","bwlgareg":"bg","catalaneg":"ca","creol haiti":"ht","croateg":"hr","cwrdeg (kurmandji)":"ku","cwrdeg (sorani)":"ckb","cymraeg":"cy","daneg":"da","eidaleg":"it","estoneg":"et","fietnameg":"vi","ffineg":"fi","fflemeg":"nl","ffrangeg":"fr","gaeleg yr alban":"gd","galiseg":"gl","groeg":"el","gwyddeleg":"ga","hebraeg":"he","hwngareg":"hu","iaith corea":"ko","indonesieg":"id","islandeg":"is","japaneg":"ja","latfieg":"lv","lithwaneg":"lt","lladin":"la","macedoneg":"mk","malteseg":"mt","mongoleg":"mn","myanmar (byrma)":"my","norwyeg":"nb","perseg":"fa","portiwgaleg":"pt","pwyleg":"pl","rwmaneg":"ro","rwsieg":"ru","saesneg":"en","sbaeneg":"es","serbeg":"sr","slofaceg":"sk","slofeneg":"sl","swedeg":"sv","swlw":"zu","telwgw":"te","tsieceg":"cs","tsieineeg (traddodiadol)":"zh-tw","tsieineeg (wedi symleiddio)":"zh-cn","twrceg":"tr","usbec":"uz","wcreineg":"uk","abchaziska":"ab","amhariska":"am","arabiska":"ar","armeniska":"hy","azerbajdzjanska":"az","baskiska":"eu","bulgariska":"bg","burmesiska":"my","engelska":"en","estniska":"et","finska":"fi","gaeliska":"gd","galiciska":"gl","grekiska":"el","haitiska":"ht","hebreiska":"he","indonesiska":"id","irländska":"ga","isländska":"is","italienska":"it","kanaresiska":"kn","katalanska":"ca","kinesiska (förenklad)":"zh-cn","kinesiska (traditionell)":"zh-tw","koreanska":"ko","kroatiska":"hr","kurdiska (kurmanji)":"ku","kurdiska (sorani)":"ckb","lettiska":"lv","litauiska":"lt","makedonska":"mk","malaysiska":"ms","maltesiska":"mt","mongoliska":"mn","nederländska":"nl","persiska":"fa","polska":"pl","portugisiska":"pt","rumänska":"ro","ryska":"ru","serbiska":"sr","slovakiska":"sk","slovenska":"sl","spanska":"es","svenska":"sv","thailändska":"th","tjeckiska":"cs","turkiska":"tr","tyska":"de","ukrainska":"uk","ungerska":"hu","uzbekiska":"uz","vietnamesiska":"vi","vitryska":"be","walesiska":"cy","abcáisis":"ab","airméinis":"hy","albáinis":"sq","amáiris":"am","araibis":"ar","asarbaiseáinis":"az","bascais":"eu","bealarúisis":"be","béarla":"en","breatnais":"cy","bulgáiris":"bg","cannadais":"kn","catalóinis":"ca","coirdis (curmainsis)":"ku","coirdis (sóráinis)":"ckb","cóiréis":"ko","criól háítí":"ht","cróitis":"hr","eabhrais":"he","eastóinis":"et","fionlainnis":"fi","fraincis":"fr","gaeilge na halban":"gd","gailísis":"gl","gearmáinis":"de","gréigis":"el","hiondúis":"hi","indinéisis":"id","iodáilis":"it","ioruais":"nb","íoslainnis":"is","laidin":"la","laitvis":"lv","liotuáinis":"lt","macadóinis":"mk","maenmar (burmais)":"my","mailéalaimis":"ml","malaeis":"ms","máltais":"mt","maorais":"mi","maraitis":"mr","mongóilis":"mn","ollainnis":"nl","polainnis":"pl","portaingéilis":"pt","rómáinis":"ro","rúisis":"ru","seapáinis":"ja","seicis":"cs","seirbis":"sr","sínis (simplithe)":"zh-cn","sínis (traidisiúnta)":"zh-tw","slóivéinis":"sl","slóvaicis":"sk","spáinnis":"es","sualainnis":"sv","súlúis":"zu","téalainnis":"th","teileagúis":"te","tuircis":"tr","úcráinis":"uk","úisbéiceastáinis":"uz","ungáiris":"hu","vítneaimis":"vi","アイスランド語":"is","アイルランド語":"ga","アゼルバイジャン語":"az","アブハズ語":"ab","アムハラ語":"am","アラビア語":"ar","アルバニア語":"sq","アルメニア語":"hy","イタリア語":"it","インドネシア語":"id","ウェールズ語":"cy","ウクライナ語":"uk","ウズベク語":"uz","エストニア語":"et","エスペラント語":"eo","オランダ語":"nl","カタルーニャ語":"ca","ガリシア語":"gl","カンナダ語":"kn","ギリシャ語":"el","クルド語(クルマンジー)":"ku","クルド語(ソラニー)":"ckb","クロアチア語":"hr","スウェーデン語":"sv","ズールー語":"zu","スコットランド ゲール語":"gd","スペイン語":"es","スロバキア語":"sk","スロベニア語":"sl","セルビア語":"sr","タイ語":"th","チェコ語":"cs","テルグ語":"te","デンマーク語":"da","ドイツ語":"de","トルコ語":"tr","ノルウェー語":"nb","ハイチ語":"ht","バスク語":"eu","ハンガリー語":"hu","ヒンディー語":"hi","フィンランド語":"fi","フランス語":"fr","ブルガリア語":"bg","ベトナム語":"vi","ヘブライ語":"he","ベラルーシ語":"be","ペルシャ語":"fa","ポーランド語":"pl","ポルトガル語":"pt","マオリ語":"mi","マケドニア語":"mk","マラーティー語":"mr","マラヤーラム語":"ml","マルタ語":"mt","マレー語":"ms","ミャンマー語(ビルマ語)":"my","モンゴル語":"mn","ラテン語":"la","ラトビア語":"lv","リトアニア語":"lt","ルーマニア語":"ro","ロシア語":"ru","英語":"en","韓国語":"ko","中国語(簡体)":"zh-cn","中国語(繁体)":"zh-tw","日本語":"ja","albánčina":"sq","amharčina":"am","arabčina":"ar","arménčina":"hy","azerbajdžančina":"az","barmčina":"my","bieloruština":"be","bulharčina":"bg","čínština (tradičná)":"zh-tw","dánčina":"da","estónčina":"et","fínčina":"fi","francúzština":"fr","galícijčina":"gl","gréčtina":"el","haitská kreolčina":"ht","hebrejčina":"he","hindčina":"hi","holandčina":"nl","chorvátčina":"hr","indonézština":"id","írčina":"ga","islandčina":"is","japončina":"ja","kannadčina":"kn","katalánčina":"ca","kórejčina":"ko","kurdčina (kurmándží)":"ku","kurdčina (sorání)":"ckb","latinčina":"la","litovčina":"lt","macedónčina":"mk","maďarčina":"hu","malajámčina":"ml","malajčina":"ms","maltčina":"mt","maorijčina":"mi","maratčina":"mr","mongolčina":"mn","nemčina":"de","nórčina":"nb","perzština":"fa","poľština":"pl","portugalčina":"pt","rumunčina":"ro","slovenčina":"sk","slovinčina":"sl","srbčina":"sr","škótska gaelčina":"gd","španielčina":"es","švédčina":"sv","taliančina":"it","telugčina":"te","thajčina":"th","ukrajinčina":"uk","vietnamčina":"vi","waleština":"cy","zuluština":"zu","galicisk":"gl","græsk":"el","haitisk kreolsk":"ht","hviderussisk":"be","kinesisk (traditionelt)":"zh-tw","lettisk":"lv","malajisk":"ms","persisk":"fa","rumænsk":"ro","thailandsk":"th","tjekkisk":"cs","అజర్బైజాని":"az","అబ్ఖాజ్":"ab","అర్మేనియన్":"hy","అల్బేనియన్":"sq","ఆంగ్లము":"en","ఆమ్హారిక్":"am","ఆరబిక్":"ar","ఇండొనేసియన్":"id","ఇటాలియన్":"it","ఉజ్బెక్":"uz","ఎస్పెరాంటో":"eo","ఏస్టోనియన్":"et","ఐరిష్":"ga","ఐస్ లాండిక్":"is","కన్నడ":"kn","కుర్దిష్ (కుర్మాంజి)":"ku","కుర్దిష్ (సొరని)":"ckb","కొరియన్":"ko","క్యాటలాన్":"ca","క్రొయేషియన్":"hr","గాలిసియన్":"gl","గ్రీక్":"el","చెక్":"cs","చైనీస్ (సరళమైన)":"zh-cn","చైనీస్ (సాంప్రదాయమైన)":"zh-tw","జపనీస్":"ja","జర్మన్":"de","జులు":"zu","టర్కిష్":"tr","డచ్":"nl","డానిష్":"da","తెలుగు":"te","థాయ్":"th","నార్విజియన్":"nb","పర్షియన్":"fa","పోర్చుగీస్":"pt","పోలిష్":"pl","ఫిన్నిష్":"fi","ఫ్రెంచ్":"fr","బర్మీస్":"my","బల్గేరియన్":"bg","బాస్క్":"eu","బెలారష్యన్":"be","మంగోలియన్":"mn","మయోరి":"mi","మరాఠీ":"mr","మలయాళం":"ml","మాలై":"ms","మాల్టీస్":"mt","మాసిడోనియన్":"mk","యుక్రేనియన్":"uk","రష్యన్":"ru","రొమేనియన్":"ro","లాటిన్":"la","లాట్వియన్":"lv","లిథువేనియన్":"lt","వియత్నామీస్":"vi","వెల్ష్":"cy","సెర్బియన్":"sr","స్కాట్స్ గేలిక్":"gd","స్పానిష్":"es","స్లోవాక్":"sk","స్లోవేనియన్":"sl","స్వీడిష్":"sv","హంగేరియన్":"hu","హిందీ":"hi","హీబ్రూ":"he","హైయేటియన్ క్రియోల్":"ht","അബ്ഖാസ്":"ab","അമാറിക്":"am","അർമേനിയൻ":"hy","അൽബേനിയൻ":"sq","അസർബൈജാനി":"az","അറബിക്":"ar","ഇന്തോനേഷ്യൻ":"id","ഇംഗ്ലീഷ്":"en","ഇറ്റാലിയൻ":"it","ഉക്രേനിയൻ":"uk","ഉസ്ബെക്ക്":"uz","എസ്പെരന്തോ":"eo","എസ്റ്റോണിയൻ":"et","ഐസ്ലാൻഡിക്":"is","ഐറിഷ്":"ga","കന്നട":"kn","കാറ്റലൻ":"ca","കുർദ്ദിഷ് (കുർമാൻജി)":"ku","കുർദ്ദിഷ് (സൊറാനി)":"ckb","കൊറിയൻ":"ko","ക്രൊയേഷ്യൻ":"hr","ഗലീഷ്യൻ":"gl","ഗ്രീക്ക്":"el","ചെക്ക്":"cs","ചൈനീസ് (പരമ്പരാഗതം)":"zh-tw","ചൈനീസ് (ലഘൂകരിച്ചത്)":"zh-cn","ജർമ്മൻ":"de","ജാപ്പനീസ്":"ja","ടർക്കിഷ്":"tr","ഡച്ച്":"nl","ഡാനിഷ്":"da","തായ്":"th","തെലുങ്ക്":"te","നോർവീജിയൻ":"nb","പേർഷ്യൻ":"fa","പോർച്ചുഗീസ്":"pt","പോളിഷ്":"pl","ഫിന്നിഷ്":"fi","ഫ്രെഞ്ച്":"fr","ബർമീസ്":"my","ബൾഗേറിയൻ":"bg","ബാസ്ക്":"eu","ബെലാറുഷ്യൻ":"be","മംഗോളിയൻ":"mn","മലയാളം":"ml","മലയ്":"ms","മറാഠി":"mr","മാസഡോണിയൻ":"mk","മാൾട്ടീസ്":"mt","മൗറി":"mi","ലാറ്റിൻ":"la","ലാറ്റ്വിയൻ":"lv","ലിത്വേനിയൻ":"lt","വിയറ്റ്നാമീസ്":"vi","വെൽഷ്":"cy","സുളു":"zu","സെർബിയൻ":"sr","സ്കോട്ട്സ് ഗ്യാലിക്":"gd","സ്പാനിഷ്":"es","സ്ലോവാക്":"sk","സ്ലോവേനിയൻ":"sl","സ്വീഡിഷ്":"sv","ഹംഗേറിയൻ":"hu","ഹിന്ദി":"hi","ഹീബ്രു":"he","ഹെയ്തിയൻ ക്രയോൾ":"ht","റഷ്യൻ":"ru","റൊമേനിയൻ":"ro","abhaščina":"ab","albanščina":"sq","amharščina":"am","angleščina":"en","arabščina":"ar","armenščina":"hy","azerbajdžanščina":"az","baskovščina":"eu","beloruščina":"be","bolgarščina":"bg","burmanščina":"my","češčina":"cs","danščina":"da","estonščina":"et","finščina":"fi","francoščina":"fr","galicijščina":"gl","grščina":"el","haitijska kreolščina":"ht","hebrejščina":"he","hindijščina":"hi","hrvaščina":"hr","indonezijščina":"id","irščina":"ga","islandščina":"is","italijanščina":"it","japonščina":"ja","kanareščina":"kn","katalonščina":"ca","kitajščina (poenostavljena)":"zh-cn","kitajščina (tradicionalna)":"zh-tw","korejščina":"ko","kurdščina (kurmandži)":"ku","kurdščina (soranščina)":"ckb","latinščina":"la","latvijščina":"lv","litovščina":"lt","madžarščina":"hu","makedonščina":"mk","malajalščina":"ml","malajščina":"ms","malteščina":"mt","maorščina":"mi","maratščina":"mr","mongolščina":"mn","nemščina":"de","nizozemščina":"nl","norveščina":"nb","perzijščina":"fa","poljščina":"pl","portugalščina":"pt","romunščina":"ro","ruščina":"ru","slovaščina":"sk","slovenščina":"sl","srbščina":"sr","škotska gelščina":"gd","španščina":"es","švedščina":"sv","tajščina":"th","teluščina":"te","turščina":"tr","ukrajinščina":"uk","uzbeščina":"uz","valižanščina":"cy","vietnamščina":"vi","zulujščina":"zu","абхаски":"ab","баскијски":"eu","бурмански":"my","вијетнамски":"vi","галски":"gl","енглески":"en","индонежански":"id","јапански":"ja","јерменски":"hy","кинески (поједностављени)":"zh-cn","кинески (традиционални)":"zh-tw","курдски (курмањи)":"ku","летонски":"lv","мађарски":"hu","малајалам":"ml","марати":"mr","немачки":"de","персијски":"fa","пољски":"pl","румунски":"ro","словеначки":"sl","тајски":"th","украјински":"uk","хаићански креолски":"ht"," دانماركی":"da","almanî":"de","ambarîkî":"am","arnawudî":"sq","azerbaycanî":"az","baskî":"eu","belarûsî":"be","bûlgarî":"bg","çînî (hêsankirî)":"zh-cn","çînî (kevneşopî)":"zh-tw","endonezyayî":"id","erebî":"ar","esperantoyî":"eo","estonî":"et","farsî":"fa","fînlandî":"fi","fransî":"fr","gaêlîkî sikotlandî":"gd","galîsî":"gl","hirwatî":"hr","holendî":"nl","hûngarî (macarî)":"hu","îbranî":"he","îngilîzî":"en","îrlandî":"ga","îspanyolî":"es","îzlandî":"is","japonî":"ja","kannadayî":"kn","katalanî":"ca","koreyî":"ko","kreolê haîtî":"ht","kurdî (kurmancî)":"ku","kurdî (soranî)":"ckb","latînî":"la","letonî":"lv","lîtvanî":"lt","makedonî":"mk","malayalamî":"ml","malayî":"ms","maltayî":"mt","maorîyî":"mi","maratî":"mr","moxolî":"mn","myanmarî (burmese)":"my","norwêcî":"nb","ozbekî":"uz","polandî (lehîstanî)":"pl","portekîzî":"pt","romanî":"ro","rûsî":"ru","sirbî":"sr","slovakî":"sk","slovenyayî":"sl","swêdî":"sv","tayî":"th","teleguyî":"te","tirkî":"tr","vîetnamî":"vi","welşî":"cy","yûnanî":"el","zûlûyî":"zu","ئه رمه نی":"hy","ئۆکرانی":"uk","ئیتالی":"it","چهكی":"cs","هیندی":"hi","абхаз":"ab","азербайжан":"az","албани":"sq","амхарик":"am","англи":"en","араб":"ar","армени":"hy","баск":"eu","беларусь":"be","бирм":"my","болгар":"bg","вьетнам":"vi","галик":"gl","гаэл":"gd","герман":"de","голланд":"nl","грек":"el","дани":"da","индонез":"id","ирланд":"ga","исланд":"is","испани":"es","итали":"it","каталан":"ca","кипр":"he","курд (курманжи)":"ku","курд (сорани)":"ckb","латви":"lv","латин":"la","литва":"lt","македон":"mk","малай":"ms","малайлам":"ml","малти":"mt","маори":"mi","монгол":"mn","норвег":"nb","орос":"ru","перс":"fa","польш":"pl","португаль":"pt","румын":"ro","серби":"sr","словак":"sk","словени":"sl","солонгос":"ko","тай":"th","турк":"tr","тэлүгү":"te","узбек":"uz","украин":"uk","унгар":"hu","уэльс":"cy","финланд":"fi","франц":"fr","хаитийн креол":"ht","хорват":"hr","хятад (уламжлалт)":"zh-tw","хятад (хялбаршуулсан)":"zh-cn","чех":"cs","швед":"sv","эсперанто":"eo","эстони":"et","япон":"ja","абхазский":"ab","азербайджанский":"az","албанский":"sq","амхарский":"am","английский":"en","арабский":"ar","армянский":"hy","баскский":"eu","белорусский":"be","бирманский":"my","болгарский":"bg","валлийский":"cy","венгерский":"hu","вьетнамский":"vi","гаитянский креольский":"ht","галисийский":"gl","греческий":"el","датский":"da","индонезийский":"id","ирландский":"ga","исландский":"is","испанский":"es","итальянский":"it","каталанский":"ca","китайский (традиционный)":"zh-tw","китайский (упрощенный)":"zh-cn","корейский":"ko","курдский (курманджи)":"ku","курдский (сорани)":"ckb","латинский":"la","латышский":"lv","литовский":"lt","македонский":"mk","малайский":"ms","мальтийский":"mt","монгольский":"mn","немецкий":"de","нидерландский":"nl","норвежский":"nb","польский":"pl","португальский":"pt","румынский":"ro","русский":"ru","сербский":"sr","словацкий":"sk","словенский":"sl","тайский":"th","турецкий":"tr","узбекский":"uz","украинский":"uk","фарси":"fa","финский":"fi","французский":"fr","хорватский":"hr","чешский":"cs","шведский":"sv","шотландский (гэльский)":"gd","эстонский":"et","японский":"ja","にほんご":"ja"},"scratchToGoogleMap":{"zh-cn":"zh","nb":"no","he":"iw","es-419":"es","pt-br":"pt","ja-hira":"ja"},"previouslySupported":["ab","ms","be","eo","hy","hi","kn","ht","ku","la","mk","ml","mt","mr","mn","my","nn","sq","te","uz"]}')},function(e,t,n){"use strict";n.r(t),n.d(t,"_parse",(function(){return r})),n.d(t,"parse",(function(){return i})),n.d(t,"stringify",(function(){return s}));const r=e=>{let t=0;const n=n=>{const{line:r,column:i}=(()=>{let n=0,r=0;for(let i=0;i<t;i++)"\n"===e[i]?(n++,r=0):r++;return{line:n+1,column:r+1}})();throw new SyntaxError(`${n} (Line ${r} Column ${i})`)},r=t=>(t>=e.length&&n("Unexpected end of input"),e[t]),i=()=>r(t),s=()=>{t++},o=e=>{i()!==e&&n(`Expected '${e}' but found '${i()}'`),s()},a=(n=1,i=1)=>{if(t+i+n>e.length)return"";if(1===n)return r(t+i);let s="";for(let e=0;e<n;e++)s+=r(t+i+e);return s},c=()=>{for(;;)if(/\s/.test(i()))s();else{const e=a(2,0);if("//"===e)for(s(),s();"\n"!==i();)s();else{if("/*"!==e)break;for(s(),s();"*/"!==a(2,0);)s();s(),s()}}},l=()=>{c();switch(i()){case'"':return d();case"{":return f();case"[":return p();case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"-":return h();default:return u()}},u=()=>{if("null"===a(4,0)){for(let e=0;e<4;e++)s();return null}if("true"===a(4,0)){for(let e=0;e<4;e++)s();return!0}if("false"===a(5,0)){for(let e=0;e<5;e++)s();return!1}if("Infinity"===a(8,0)){for(let e=0;e<8;e++)s();return 1/0}if("NaN"===a(3,0)){for(let e=0;e<3;e++)s();return NaN}n(`Unexpected character '${i()}'`)},h=()=>{if("-Infinity"===a(9,0)){for(let e=0;e<9;e++)s();return-1/0}let e="";for(;e+=i(),/[\d.e+-]/i.test(a());)s();s();const t=+e;return Number.isNaN(t)&&n(`Not a number: ${e}`),t},d=()=>{o('"');let e="";for(;;){const t=i();if('"'===t)break;if("\\"===t)switch(s(),i()){case'"':e+='"';break;case"/":e+="/";break;case"\\":e+="\\";break;case"b":e+="\b";break;case"f":e+="\f";break;case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":{let t="";for(let e=0;e<4;e++){s();const e=i();/[0-9a-f]/i.test(e)||n(`Invalid hex code: ${e}`),t+=e}const r=Number.parseInt(t,16);e+=String.fromCharCode(r);break}default:n(`Invalid escape code: \\${i()}`)}else e+=t;s()}return o('"'),e},p=()=>{o("["),c();const e=[];for(;c(),"]"!==i();){const t=l();if(e.push(t),c(),","!==i())break;s()}return o("]"),e},f=()=>{o("{"),c();const e={};for(;c(),"}"!==i();){const t=d();c(),o(":");const n=l();if(e[t]=n,c(),","!==i())break;s()}return o("}"),e};return l()},i=e=>{try{return JSON.parse(e)}catch(t){try{return r(e)}catch(e){throw t}}},s=e=>{if("string"==typeof e)return JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return e.toString();if(null==e||"symbol"==typeof e)return"null";if(Array.isArray(e))return`[${e.map((e=>s(e))).join(",")}]`;if("object"==typeof e){let t="{",n=!0;const r=Object.keys(e);for(let i=0;i<r.length;i++){const o=r[i],a=e[o];void 0!==a&&(n||(t+=","),t+=`${JSON.stringify(o)}:${s(a)}`,n=!1)}return t+="}",t}if("bigint"==typeof e)throw new TypeError("Can not stringify bigint");throw new TypeError(`Can not stringify: ${e}`)}},function(e,t,n){const r=n(64),i=n(184),s=function(e){const t=Object.create(null);t.tagName=e.name,t.children=[];for(const n in e.attribs)"xmlns"!==n&&(t[n]=i(e.attribs[n]),"blockinfo"===n&&(t.blockInfo=JSON.parse(t.blockinfo),delete t.blockinfo));for(let n=0;n<e.children.length;n++)t.children.push(s(e.children[n]));return t};e.exports=function(e){let t;return t="object"==typeof e?e:r.parseDOM(e)[0],s(t)}},function(e,t){e.exports={}},function(e,t,n){t.getCached=function(){throw new Error("blocks.js has not initialized BlocksExecuteCache")},n(17)},function(e,t,n){t.getScripts=function(){throw new Error("blocks.js has not initialized BlocksRuntimeCache")},t._RuntimeScriptCache=class{constructor(e,t){this.container=e,this.blockId=t;const n=e.getBlock(t),r=e.getFields(n);if(this.fieldsOfInputs=Object.assign({},r),0===Object.keys(r).length){const t=e.getInputs(n);for(const n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;const r=t[n].block,i=e.getBlock(r),s=e.getFields(i);Object.assign(this.fieldsOfInputs,s)}}for(const e in this.fieldsOfInputs){const t=this.fieldsOfInputs[e]=Object.assign({},this.fieldsOfInputs[e]);t.value.toUpperCase&&(t.value=t.value.toUpperCase())}}},n(17)},function(e,t,n){const r=n(0),i=n(2),s=n(190),o=n(46),a=n(192),{StackOpcode:c,InputOpcode:l,InputType:u}=n(15),h=n(45),{IntermediateStackBlock:d,IntermediateInput:p,IntermediateStack:f,IntermediateScript:m,IntermediateRepresentation:g}=n(10),b=e=>("string"!=typeof e&&(r.warn("sanitize got unexpected type: ".concat(typeof e)),e=""+e),JSON.stringify(e).slice(1,-1)),y="runtime.ext_pen",E="".concat(y,"._getPenState(target)"),T=new s("factory"),v=new s("fun"),A=new s("gen"),w=(e,t)=>e.opcode===l.CONSTANT&&(!(!e.isAlwaysType(u.NUMBER)&&!e.isAlwaysType(u.STRING_NUM))&&(!t.isSometimesType(u.NUMBER_NAN|u.STRING_NAN|u.BOOLEAN_INTERPRETABLE)||0!=+e.inputs.value));class S{constructor(e){this.isLoop=e,this.isLastBlock=!1}}class k{constructor(e,t,n){this.script=e,this.ir=t,this.target=n,this.source="",this.isWarp=e.isWarp,this.isProcedure=e.isProcedure,this.warpTimer=e.warpTimer,this.frames=[],this.currentFrame=null,this.localVariables=new s("a"),this._setupVariablesPool=new s("b"),this._setupVariables={},this.descendedIntoModulo=!1,this.isInHat=!1,this.debug=this.target.runtime.debug,this.oldCompilerStub=new h.JSGeneratorStub(this)}pushFrame(e){this.frames.push(e),this.currentFrame=e}popFrame(){this.frames.pop(),this.currentFrame=this.frames[this.frames.length-1]}isLastBlockInLoop(){for(let e=this.frames.length-1;e>=0;e--){const t=this.frames[e];if(!t.isLastBlock)return!1;if(t.isLoop)return!0}return!1}descendInput(e){const t=e.inputs;switch(e.opcode){case l.NOP:return'""';case l.PROCEDURE_ARGUMENT:return"p".concat(t.index);case l.ADDON_CALL:return"(".concat(this.descendAddonCall(t),")");case l.CAST_BOOLEAN:return"toBoolean(".concat(this.descendInput(t.target),")");case l.CAST_NUMBER:return t.target.isAlwaysType(u.BOOLEAN_INTERPRETABLE)?"(+".concat(this.descendInput(t.target.toType(u.BOOLEAN)),")"):t.target.isAlwaysType(u.NUMBER_OR_NAN)?"toNotNaN(".concat(this.descendInput(t.target),")"):"toNotNaN(+".concat(this.descendInput(t.target),")");case l.CAST_NUMBER_OR_NAN:return"(+".concat(this.descendInput(t.target),")");case l.CAST_NUMBER_INDEX:return"(".concat(this.descendInput(t.target.toType(u.NUMBER_OR_NAN))," | 0)");case l.CAST_STRING:return'("" + '.concat(this.descendInput(t.target),")");case l.CAST_COLOR:return"colorToList(".concat(this.descendInput(t.target),")");case l.COMPATIBILITY_LAYER:return"(".concat(this.generateCompatibilityLayerCall(t,!1),")");case l.OLD_COMPILER_COMPATIBILITY_LAYER:return this.oldCompilerStub.descendInputFromNewCompiler(e);case l.CONSTANT:if(e.isAlwaysType(u.NUMBER)){if("number"!=typeof t.value)throw new Error("JS: '".concat(e.type,"' type constant had ").concat(typeof t.value," type value. Expected number."));return Object.is(t.value,-0)?"-0":t.value.toString()}if(e.isAlwaysType(u.BOOLEAN)){if("boolean"!=typeof t.value)throw new Error("JS: '".concat(e.type,"' type constant had ").concat(typeof t.value," type value. Expected boolean."));return t.value.toString()}if(e.isAlwaysType(u.COLOR)){if(!Array.isArray(t.value))throw new Error("JS: '".concat(e.type,"' type constant was not an array."));if(3!==t.value.length)throw new Error("JS: '".concat(e.type,"' type constant had an array of length '").concat(t.value.length,"'. Expected 3."));for(let n=0;n<3;n++)if("number"!=typeof t.value[n])throw new Error("JS: '".concat(e.type,"' type constant element ").concat(n," had a value of type '").concat(t.value[n],"'. Expected number."));return"[".concat(t.value[0],",").concat(t.value[1],",").concat(t.value[2],"]")}if(e.isSometimesType(u.STRING))return'"'.concat(b(t.value.toString()),'"');throw new Error("JS: Unknown constant input type '".concat(e.type,"'."));case l.SENSING_KEY_DOWN:return"runtime.ioDevices.keyboard.getKeyIsDown(".concat(this.descendInput(t.key),")");case l.LIST_CONTAINS:return"listContains(".concat(this.referenceVariable(t.list),", ").concat(this.descendInput(t.item),")");case l.LIST_CONTENTS:return"listContents(".concat(this.referenceVariable(t.list),")");case l.LIST_GET:if(a.supportsNullishCoalescing){if(t.index.isAlwaysType(u.NUMBER_INTERPRETABLE|u.NUMBER_NAN))return"(".concat(this.referenceVariable(t.list),".value[").concat(this.descendInput(t.index.toType(u.NUMBER_INDEX)),' - 1] ?? "")');if(t.index.isConstant("last"))return"(".concat(this.referenceVariable(t.list),".value[").concat(this.referenceVariable(t.list),'.value.length - 1] ?? "")')}return"listGet(".concat(this.referenceVariable(t.list),".value, ").concat(this.descendInput(t.index),")");case l.LIST_INDEX_OF:return"listIndexOf(".concat(this.referenceVariable(t.list),", ").concat(this.descendInput(t.item),")");case l.LIST_LENGTH:return"".concat(this.referenceVariable(t.list),".value.length");case l.LOOKS_SIZE_GET:return"Math.round(target.size)";case l.LOOKS_BACKDROP_NAME:return"stage.getCostumes()[stage.currentCostume].name";case l.LOOKS_BACKDROP_NUMBER:return"(stage.currentCostume + 1)";case l.LOOKS_COSTUME_NAME:return"target.getCostumes()[target.currentCostume].name";case l.LOOKS_COSTUME_NUMBER:return"(target.currentCostume + 1)";case l.MOTION_DIRECTION_GET:return"target.direction";case l.MOTION_X_GET:return"limitPrecision(target.x)";case l.MOTION_Y_GET:return"limitPrecision(target.y)";case l.SENSING_MOUSE_DOWN:return"runtime.ioDevices.mouse.getIsDown()";case l.SENSING_MOUSE_X:return"runtime.ioDevices.mouse.getScratchX()";case l.SENSING_MOUSE_Y:return"runtime.ioDevices.mouse.getScratchY()";case l.OP_ABS:return"Math.abs(".concat(this.descendInput(t.value),")");case l.OP_ACOS:return"((Math.acos(".concat(this.descendInput(t.value),") * 180) / Math.PI)");case l.OP_ADD:return"(".concat(this.descendInput(t.left)," + ").concat(this.descendInput(t.right),")");case l.OP_AND:return"(".concat(this.descendInput(t.left)," && ").concat(this.descendInput(t.right),")");case l.OP_ASIN:return"((Math.asin(".concat(this.descendInput(t.value),") * 180) / Math.PI)");case l.OP_ATAN:return"((Math.atan(".concat(this.descendInput(t.value),") * 180) / Math.PI)");case l.OP_CEILING:return"Math.ceil(".concat(this.descendInput(t.value),")");case l.OP_CONTAINS:return"(".concat(this.descendInput(t.string),".toLowerCase().indexOf(").concat(this.descendInput(t.contains),".toLowerCase()) !== -1)");case l.OP_COS:return"(Math.round(Math.cos((Math.PI * ".concat(this.descendInput(t.value),") / 180) * 1e10) / 1e10)");case l.OP_DIVIDE:return"(".concat(this.descendInput(t.left)," / ").concat(this.descendInput(t.right),")");case l.OP_EQUALS:{const e=t.left,n=t.right;return e.isSometimesType(u.NUMBER_INTERPRETABLE)&&n.isSometimesType(u.NUMBER_INTERPRETABLE)?e.isAlwaysType(u.NUMBER_INTERPRETABLE)&&n.isAlwaysType(u.NUMBER_INTERPRETABLE)||w(e,n)||w(n,e)?"(".concat(this.descendInput(e.toType(u.NUMBER))," === ").concat(this.descendInput(n.toType(u.NUMBER)),")"):"compareEqual(".concat(this.descendInput(e),", ").concat(this.descendInput(n),")"):"(".concat(this.descendInput(e.toType(u.STRING)),".toLowerCase() === ").concat(this.descendInput(n.toType(u.STRING)),".toLowerCase())")}case l.OP_POW_E:return"Math.exp(".concat(this.descendInput(t.value),")");case l.OP_FLOOR:return"Math.floor(".concat(this.descendInput(t.value),")");case l.OP_GREATER:{const e=t.left,n=t.right;return e.isAlwaysType(u.NUMBER_INTERPRETABLE)&&n.isAlwaysType(u.NUMBER_INTERPRETABLE|u.NUMBER_NAN)?"(".concat(this.descendInput(e.toType(u.NUMBER))," > ").concat(this.descendInput(n.toType(u.NUMBER_OR_NAN)),")"):e.isAlwaysType(u.NUMBER_INTERPRETABLE|u.NUMBER_NAN)&&n.isAlwaysType(u.NUMBER_INTERPRETABLE)?"!(".concat(this.descendInput(e.toType(u.NUMBER_OR_NAN))," <= ").concat(this.descendInput(n.toType(u.NUMBER)),")"):e.isSometimesType(u.NUMBER_INTERPRETABLE)&&n.isSometimesType(u.NUMBER_INTERPRETABLE)?"compareGreaterThan(".concat(this.descendInput(e),", ").concat(this.descendInput(n),")"):"(".concat(this.descendInput(e.toType(u.STRING)),".toLowerCase() > ").concat(this.descendInput(n.toType(u.STRING)),".toLowerCase())")}case l.OP_JOIN:return"(".concat(this.descendInput(t.left)," + ").concat(this.descendInput(t.right),")");case l.OP_LENGTH:return"".concat(this.descendInput(t.string),".length");case l.OP_LESS:{const e=t.left,n=t.right;return e.isAlwaysType(u.NUMBER_INTERPRETABLE|u.NUMBER_NAN)&&n.isAlwaysType(u.NUMBER_INTERPRETABLE)?"(".concat(this.descendInput(e.toType(u.NUMBER_OR_NAN))," < ").concat(this.descendInput(n.toType(u.NUMBER)),")"):e.isAlwaysType(u.NUMBER_INTERPRETABLE)&&n.isAlwaysType(u.NUMBER_INTERPRETABLE|u.NUMBER_NAN)?"!(".concat(this.descendInput(e.toType(u.NUMBER))," >= ").concat(this.descendInput(n.toType(u.NUMBER_OR_NAN)),")"):e.isSometimesType(u.NUMBER_INTERPRETABLE)&&n.isSometimesType(u.NUMBER_INTERPRETABLE)?"compareLessThan(".concat(this.descendInput(e),", ").concat(this.descendInput(n),")"):"(".concat(this.descendInput(e.toType(u.STRING)),".toLowerCase() < ").concat(this.descendInput(n.toType(u.STRING)),".toLowerCase())")}case l.OP_LETTER_OF:return"((".concat(this.descendInput(t.string),")[").concat(this.descendInput(t.letter),' - 1] || "")');case l.OP_LOG_E:return"Math.log(".concat(this.descendInput(t.value),")");case l.OP_LOG_10:return"(Math.log(".concat(this.descendInput(t.value),") / Math.LN10)");case l.OP_MOD:return this.descendedIntoModulo=!0,"mod(".concat(this.descendInput(t.left),", ").concat(this.descendInput(t.right),")");case l.OP_MULTIPLY:return"(".concat(this.descendInput(t.left)," * ").concat(this.descendInput(t.right),")");case l.OP_NOT:return"!".concat(this.descendInput(t.operand));case l.OP_OR:return"(".concat(this.descendInput(t.left)," || ").concat(this.descendInput(t.right),")");case l.OP_RANDOM:return t.useInts?"randomInt(".concat(this.descendInput(t.low),", ").concat(this.descendInput(t.high),")"):t.useFloats?"randomFloat(".concat(this.descendInput(t.low),", ").concat(this.descendInput(t.high),")"):"runtime.ext_scratch3_operators._random(".concat(this.descendInput(t.low),", ").concat(this.descendInput(t.high),")");case l.OP_ROUND:return"Math.round(".concat(this.descendInput(t.value),")");case l.OP_SIN:return"(Math.round(Math.sin((Math.PI * ".concat(this.descendInput(t.value),") / 180) * 1e10) / 1e10)");case l.OP_SQRT:return"Math.sqrt(".concat(this.descendInput(t.value),")");case l.OP_SUBTRACT:return"(".concat(this.descendInput(t.left)," - ").concat(this.descendInput(t.right),")");case l.OP_TAN:return"tan(".concat(this.descendInput(t.value),")");case l.OP_POW_10:return"(10 ** ".concat(this.descendInput(t.value),")");case l.PROCEDURE_CALL:{const e=t.code,n=t.variant,r=this.ir.procedures[n];if(null===r.stack)return'""';const i='thread.procedures["'.concat(b(n),'"]'),s=[];for(const e of t.arguments)s.push(this.descendInput(e));const o=s.join(","),a=!this.isWarp&&e===this.script.procedureCode,c=this.isInHat;if(a||c){const e=r.yields?"yieldThenCallGenerator":"yieldThenCall";return"(yield* ".concat(e,"(").concat(i,", ").concat(o,"))")}return r.yields?"(yield* ".concat(i,"(").concat(o,"))"):"".concat(i,"(").concat(o,")")}case l.SENSING_ANSWER:return"runtime.ext_scratch3_sensing._answer";case l.SENSING_COLOR_TOUCHING_COLOR:return"target.colorIsTouchingColor(".concat(this.descendInput(t.target),", ").concat(this.descendInput(t.mask),")");case l.SENSING_TIME_DATE:return"(new Date().getDate())";case l.SENSING_TIME_WEEKDAY:return"(new Date().getDay() + 1)";case l.SENSING_TIME_DAYS_SINCE_2000:return"daysSince2000()";case l.SENSING_DISTANCE:return"distance(".concat(this.descendInput(t.target),")");case l.SENSING_TIME_HOUR:return"(new Date().getHours())";case l.SENSING_TIME_MINUTE:return"(new Date().getMinutes())";case l.SENSING_TIME_MONTH:return"(new Date().getMonth() + 1)";case l.SENSING_OF:return"runtime.ext_scratch3_sensing.getAttributeOf({OBJECT: ".concat(this.descendInput(t.object),', PROPERTY: "').concat(b(t.property),'" })');case l.SENSING_OF_VOLUME:{const e=this.descendTargetReference(t.object);return"(".concat(e," ? ").concat(e,".volume : 0)")}case l.SENSING_OF_BACKDROP_NUMBER:return"(stage.currentCostume + 1)";case l.SENSING_OF_BACKDROP_NAME:return"stage.getCostumes()[stage.currentCostume].name";case l.SENSING_OF_POS_X:{const e=this.descendTargetReference(t.object);return"(".concat(e," ? ").concat(e,".x : 0)")}case l.SENSING_OF_POS_Y:{const e=this.descendTargetReference(t.object);return"(".concat(e," ? ").concat(e,".y : 0)")}case l.SENSING_OF_DIRECTION:{const e=this.descendTargetReference(t.object);return"(".concat(e," ? ").concat(e,".direction : 0)")}case l.SENSING_OF_COSTUME_NUMBER:{const e=this.descendTargetReference(t.object);return"(".concat(e," ? ").concat(e,".currentCostume + 1 : 0)")}case l.SENSING_OF_COSTUME_NAME:{const e=this.descendTargetReference(t.object);return"(".concat(e," ? ").concat(e,".getCostumes()[").concat(e,".currentCostume].name : 0)")}case l.SENSING_OF_SIZE:{const e=this.descendTargetReference(t.object);return"(".concat(e," ? ").concat(e,".size : 0)")}case l.SENSING_OF_VAR:{const e=this.descendTargetReference(t.object),n=this.evaluateOnce("".concat(e," && ").concat(e,'.lookupVariableByNameAndType("').concat(b(t.property),'", "", true)'));return"(".concat(n," ? ").concat(n,".value : 0)")}case l.SENSING_TIME_SECOND:return"(new Date().getSeconds())";case l.SENSING_TOUCHING_OBJECT:return"target.isTouchingObject(".concat(this.descendInput(t.object),")");case l.SENSING_TOUCHING_COLOR:return"target.isTouchingColor(".concat(this.descendInput(t.color),")");case l.SENSING_USERNAME:return"runtime.ioDevices.userData.getUsername()";case l.SENSING_TIME_YEAR:return"(new Date().getFullYear())";case l.SENSING_TIMER_GET:return"runtime.ioDevices.clock.projectTimer()";case l.CONTROL_COUNTER:return"runtime.ext_scratch3_control._counter";case l.TW_KEY_LAST_PRESSED:return"runtime.ioDevices.keyboard.getLastKeyPressed()";case l.VAR_GET:return"".concat(this.referenceVariable(t.variable),".value");default:throw r.warn("JS: Unknown input: ".concat(e.opcode),t),new Error("JS: Unknown input: ".concat(e.opcode))}}descendStackedBlock(e){const t=e.inputs;switch(e.opcode){case c.ADDON_CALL:this.source+="".concat(this.descendAddonCall(t),";\n");break;case c.COMPATIBILITY_LAYER:{const e=this.isLastBlockInLoop(),n=t.blockType;if(n===i.COMMAND||n===i.HAT)this.source+="".concat(this.generateCompatibilityLayerCall(t,e),";\n");else{if(n!==i.CONDITIONAL&&n!==i.LOOP)throw new Error("Unknown block type: ".concat(n));{const e=this.localVariables.next();this.source+="const ".concat(e," = createBranchInfo(").concat(n===i.LOOP,");\n"),this.source+="while (".concat(e,".branch = +(").concat(this.generateCompatibilityLayerCall(t,!1,e),")) {\n"),this.source+="switch (".concat(e,".branch) {\n");for(const e in t.substacks)this.source+="case ".concat(+e,": {\n"),this.descendStack(t.substacks[e],new S(!1)),this.source+="break;\n",this.source+="}\n";this.source+="}\n",this.source+="if (!".concat(e,".isLoop) break;\n"),this.yieldLoop(),this.source+="}\n"}}e&&(this.source+="if (hasResumedFromPromise) {hasResumedFromPromise = false;continue;}\n");break}case l.OLD_COMPILER_COMPATIBILITY_LAYER:return this.oldCompilerStub.descendStackedBlockFromNewCompiler(e);case c.HAT_EDGE:this.isInHat=!0,this.source+="{\n",this.source+="const resolvedValue = ".concat(this.descendInput(t.condition),";\n"),this.source+='const id = "'.concat(b(t.id),'";\n'),this.source+="const hasOldEdgeValue = target.hasEdgeActivatedValue(id);\n",this.source+="const oldEdgeValue = target.updateEdgeActivatedValue(id, resolvedValue);\n",this.source+="const edgeWasActivated = hasOldEdgeValue ? (!oldEdgeValue && resolvedValue) : resolvedValue;\n",this.source+="if (!edgeWasActivated) {\n",this.retire(),this.source+="}\n",this.source+="yield;\n",this.source+="}\n",this.isInHat=!1;break;case c.HAT_PREDICATE:this.isInHat=!0,this.source+="if (!".concat(this.descendInput(t.condition),") {\n"),this.retire(),this.source+="}\n",this.source+="yield;\n",this.isInHat=!1;break;case c.CONTROL_CLONE_CREATE:this.source+="runtime.ext_scratch3_control._createClone(".concat(this.descendInput(t.target),", target);\n");break;case c.CONTROL_CLONE_DELETE:this.source+="if (!target.isOriginal) {\n",this.source+=" runtime.disposeTarget(target);\n",this.source+=" runtime.stopForTarget(target);\n",this.retire(),this.source+="}\n";break;case c.CONTROL_FOR:{const e=this.localVariables.next();this.source+="var ".concat(e," = 0; "),this.source+="while (".concat(e," < ").concat(this.descendInput(t.count),") { "),this.source+="".concat(e,"++; "),this.source+="".concat(this.referenceVariable(t.variable),".value = ").concat(e,";\n"),this.descendStack(t.do,new S(!0)),this.yieldLoop(),this.source+="}\n";break}case c.CONTROL_IF_ELSE:this.source+="if (".concat(this.descendInput(t.condition),") {\n"),this.descendStack(t.whenTrue,new S(!1)),t.whenFalse.blocks.length&&(this.source+="} else {\n",this.descendStack(t.whenFalse,new S(!1))),this.source+="}\n";break;case c.CONTROL_REPEAT:{const e=this.localVariables.next();t.times.isAlwaysType(u.NUMBER_INT|u.NUMBER_INF)?this.source+="for (var ".concat(e," = ").concat(this.descendInput(t.times),"; ").concat(e," > 0; ").concat(e,"--) {\n"):this.source+="for (var ".concat(e," = ").concat(this.descendInput(t.times),"; ").concat(e," >= 0.5; ").concat(e,"--) {\n"),this.descendStack(t.do,new S(!0)),this.yieldLoop(),this.source+="}\n";break}case c.CONTROL_STOP_ALL:this.source+="runtime.stopAll();\n",this.retire();break;case c.CONTROL_STOP_OTHERS:this.source+="runtime.stopForTarget(target, thread);\n";break;case c.CONTROL_STOP_SCRIPT:this.stopScript();break;case c.CONTROL_WAIT:{const e=this.localVariables.next();this.source+="thread.timer = timer();\n",this.source+="var ".concat(e," = Math.max(0, 1000 * ").concat(this.descendInput(t.seconds),");\n"),this.requestRedraw(),this.yieldNotWarp(),this.source+="while (thread.timer.timeElapsed() < ".concat(e,") {\n"),this.yieldStuckOrNotWarp(),this.source+="}\n",this.source+="thread.timer = null;\n";break}case c.CONTROL_WAIT_UNTIL:this.source+="while (!".concat(this.descendInput(t.condition),") {\n"),this.yieldStuckOrNotWarp(),this.source+="}\n";break;case c.CONTROL_WHILE:this.source+="while (".concat(this.descendInput(t.condition),") {\n"),this.descendStack(t.do,new S(!0)),t.warpTimer?this.yieldStuckOrNotWarp():this.yieldLoop(),this.source+="}\n";break;case c.CONTROL_CLEAR_COUNTER:this.source+="runtime.ext_scratch3_control._counter = 0;\n";break;case c.CONTORL_INCR_COUNTER:this.source+="runtime.ext_scratch3_control._counter++;\n";break;case c.EVENT_BROADCAST:this.source+='startHats("event_whenbroadcastreceived", { BROADCAST_OPTION: '.concat(this.descendInput(t.broadcast)," });\n");break;case c.EVENT_BROADCAST_AND_WAIT:this.source+='yield* waitThreads(startHats("event_whenbroadcastreceived", { BROADCAST_OPTION: '.concat(this.descendInput(t.broadcast)," }));\n"),this.yielded();break;case c.LIST_ADD:{const e=this.referenceVariable(t.list);this.source+="".concat(e,".value.push(").concat(this.descendInput(t.item),");\n"),this.source+="".concat(e,"._monitorUpToDate = false;\n");break}case c.LIST_DELETE:{const e=this.referenceVariable(t.list);if(t.index.isConstant("last")){this.source+="".concat(e,".value.pop();\n"),this.source+="".concat(e,"._monitorUpToDate = false;\n");break}if(t.index.isConstant(1)){this.source+="".concat(e,".value.shift();\n"),this.source+="".concat(e,"._monitorUpToDate = false;\n");break}this.source+="listDelete(".concat(e,", ").concat(this.descendInput(t.index),");\n");break}case c.LIST_DELETE_ALL:this.source+="".concat(this.referenceVariable(t.list),".value = [];\n");break;case c.LIST_HIDE:this.source+='runtime.monitorBlocks.changeBlock({ id: "'.concat(b(t.list.id),'", element: "checkbox", value: false }, runtime);\n');break;case c.LIST_INSERT:{const e=this.referenceVariable(t.list),n=this.descendInput(t.item);if(t.index.isConstant(1)){this.source+="".concat(e,".value.unshift(").concat(n,");\n"),this.source+="".concat(e,"._monitorUpToDate = false;\n");break}this.source+="listInsert(".concat(e,", ").concat(this.descendInput(t.index),", ").concat(n,");\n");break}case c.LIST_REPLACE:this.source+="listReplace(".concat(this.referenceVariable(t.list),", ").concat(this.descendInput(t.index),", ").concat(this.descendInput(t.item),");\n");break;case c.LIST_SHOW:this.source+='runtime.monitorBlocks.changeBlock({ id: "'.concat(b(t.list.id),'", element: "checkbox", value: true }, runtime);\n');break;case c.LOOKS_LAYER_BACKWARD:this.target.isStage||(this.source+="target.goBackwardLayers(".concat(this.descendInput(t.layers),");\n"));break;case c.LOOKS_EFFECT_CLEAR:this.source+="target.clearEffects();\n";break;case c.LOOKS_EFFECT_CHANGE:Object.prototype.hasOwnProperty.call(this.target.effects,t.effect)&&(this.source+='target.setEffect("'.concat(b(t.effect),'", runtime.ext_scratch3_looks.clampEffect("').concat(b(t.effect),'", ').concat(this.descendInput(t.value),' + target.effects["').concat(b(t.effect),'"]));\n'));break;case c.LOOKS_SIZE_CHANGE:this.source+="target.setSize(target.size + ".concat(this.descendInput(t.size),");\n");break;case c.LOOKS_LAYER_FORWARD:this.target.isStage||(this.source+="target.goForwardLayers(".concat(this.descendInput(t.layers),");\n"));break;case c.LOOKS_LAYER_BACK:this.target.isStage||(this.source+="target.goToBack();\n");break;case c.LOOKS_LAYER_FRONT:this.target.isStage||(this.source+="target.goToFront();\n");break;case c.LOOKS_HIDE:this.source+="target.setVisible(false);\n",this.source+="runtime.ext_scratch3_looks._renderBubble(target);\n";break;case c.LOOKS_BACKDROP_NEXT:this.source+="runtime.ext_scratch3_looks._setBackdrop(stage, stage.currentCostume + 1, true);\n";break;case c.LOOKS_COSTUME_NEXT:this.source+="target.setCostume(target.currentCostume + 1);\n";break;case c.LOOKS_EFFECT_SET:Object.prototype.hasOwnProperty.call(this.target.effects,t.effect)&&(this.source+='target.setEffect("'.concat(b(t.effect),'", runtime.ext_scratch3_looks.clampEffect("').concat(b(t.effect),'", ').concat(this.descendInput(t.value),"));\n"));break;case c.LOOKS_SIZE_SET:this.source+="target.setSize(".concat(this.descendInput(t.size),");\n");break;case c.LOOKS_SHOW:this.source+="target.setVisible(true);\n",this.source+="runtime.ext_scratch3_looks._renderBubble(target);\n";break;case c.LOOKS_BACKDROP_SET:this.source+="runtime.ext_scratch3_looks._setBackdrop(stage, ".concat(this.descendInput(t.backdrop),");\n");break;case c.LOOKS_COSTUME_SET:this.source+="runtime.ext_scratch3_looks._setCostume(target, ".concat(this.descendInput(t.costume),");\n");break;case c.LOOKS_SAY:this.source+="runtime.ext_scratch3_looks._say(".concat(this.descendInput(t.message),", target);\n");break;case c.LOOKS_THINK:this.source+="runtime.ext_scratch3_looks._think(".concat(this.descendInput(t.message),", target);\n");break;case c.MOTION_X_CHANGE:this.source+="target.setXY(target.x + ".concat(this.descendInput(t.dx),", target.y);\n");break;case c.MOTION_Y_CHANGE:this.source+="target.setXY(target.x, target.y + ".concat(this.descendInput(t.dy),");\n");break;case c.MOTION_IF_ON_EDGE_BOUNCE:this.source+="runtime.ext_scratch3_motion._ifOnEdgeBounce(target);\n";break;case c.MOTION_DIRECTION_SET:this.source+="target.setDirection(".concat(this.descendInput(t.direction),");\n");break;case c.MOTION_ROTATION_STYLE_SET:this.source+='target.setRotationStyle("'.concat(b(t.style),'");\n');break;case c.MOTION_X_SET:case c.MOTION_Y_SET:case c.MOTION_XY_SET:{this.descendedIntoModulo=!1;const e="x"in t?this.descendInput(t.x):"target.x",n="y"in t?this.descendInput(t.y):"target.y";this.source+="target.setXY(".concat(e,", ").concat(n,");\n"),this.descendedIntoModulo&&(this.source+="if (target.interpolationData) target.interpolationData = null;\n");break}case c.MOTION_STEP:this.source+="runtime.ext_scratch3_motion._moveSteps(".concat(this.descendInput(t.steps),", target);\n");break;case c.NOP:break;case c.PEN_CLEAR:this.source+="".concat(y,".clear();\n");break;case c.PEN_DOWN:this.source+="".concat(y,"._penDown(target);\n");break;case c.PEN_COLOR_PARAM_CHANGE:this.source+="".concat(y,"._setOrChangeColorParam(").concat(this.descendInput(t.param),", ").concat(this.descendInput(t.value),", ").concat(E,", true);\n");break;case c.PEN_SIZE_CHANGE:this.source+="".concat(y,"._changePenSizeBy(").concat(this.descendInput(t.size),", target);\n");break;case c.PEN_COLOR_HUE_CHANGE_LEGACY:this.source+="".concat(y,"._changePenHueBy(").concat(this.descendInput(t.hue),", target);\n");break;case c.PEN_COLOR_SHADE_CHANGE_LEGACY:this.source+="".concat(y,"._changePenShadeBy(").concat(this.descendInput(t.shade),", target);\n");break;case c.PEN_COLOR_HUE_SET_LEGACY:this.source+="".concat(y,"._setPenHueToNumber(").concat(this.descendInput(t.hue),", target);\n");break;case c.PEN_COLOR_SHADE_SET_LEGACY:this.source+="".concat(y,"._setPenShadeToNumber(").concat(this.descendInput(t.shade),", target);\n");break;case c.PEN_COLOR_SET:this.source+="".concat(y,"._setPenColorToColor(").concat(this.descendInput(t.color),", target);\n");break;case c.PEN_COLOR_PARAM_SET:this.source+="".concat(y,"._setOrChangeColorParam(").concat(this.descendInput(t.param),", ").concat(this.descendInput(t.value),", ").concat(E,", false);\n");break;case c.PEN_SIZE_SET:this.source+="".concat(y,"._setPenSizeTo(").concat(this.descendInput(t.size),", target);\n");break;case c.PEN_STAMP:this.source+="".concat(y,"._stamp(target);\n");break;case c.PEN_UP:this.source+="".concat(y,"._penUp(target);\n");break;case c.PROCEDURE_CALL:{const e=t.code,n=t.variant,r=this.ir.procedures[n];if(null===r.stack)break;if(!this.isWarp&&e===this.script.procedureCode&&this.yieldNotWarp(),r.yields&&(this.source+="yield* ",!this.script.yields))throw new Error("Script uses yielding procedure but is not marked as yielding.");this.source+='thread.procedures["'.concat(b(n),'"](');const i=[];for(const e of t.arguments)i.push(this.descendInput(e));this.source+=i.join(","),this.source+=");\n";break}case c.PROCEDURE_RETURN:this.stopScriptAndReturn(this.descendInput(t.value));break;case c.SENSING_TIMER_RESET:this.source+="runtime.ioDevices.clock.resetProjectTimer();\n";break;case c.DEBUGGER:this.source+="debugger;\n";break;case c.VAR_HIDE:this.source+='runtime.monitorBlocks.changeBlock({ id: "'.concat(b(t.variable.id),'", element: "checkbox", value: false }, runtime);\n');break;case c.VAR_SET:{const e=this.referenceVariable(t.variable);this.source+="".concat(e,".value = ").concat(this.descendInput(t.value),";\n"),t.variable.isCloud&&(this.source+='runtime.ioDevices.cloud.requestUpdateVariable("'.concat(b(t.variable.name),'", ').concat(e,".value);\n"));break}case c.VAR_SHOW:this.source+='runtime.monitorBlocks.changeBlock({ id: "'.concat(b(t.variable.id),'", element: "checkbox", value: true }, runtime);\n');break;case c.VISUAL_REPORT:{const e=this.localVariables.next();this.source+="const ".concat(e," = ").concat(this.descendInput(t.input),";"),this.source+="if (".concat(e,' !== undefined) runtime.visualReport(target, "').concat(b(this.script.topBlockId),'", ').concat(e,");\n");break}default:throw r.warn("JS: Unknown stacked block: ".concat(e.opcode),t),new Error("JS: Unknown stacked block: ".concat(e.opcode))}}descendTargetReference(e){if(!e.isAlwaysType(u.STRING))throw new Error("JS: Object references must be strings!");return e.isConstant("_stage_")?"stage":this.evaluateOnce("runtime.getSpriteTargetByName(".concat(this.descendInput(e),")"))}descendInputRecord(e){let t="{";for(const n of Object.keys(e)){const r=e[n];t+='"'.concat(b(n),'":').concat(this.descendInput(r),",")}return t+="}",t}descendStack(e,t){this.pushFrame(t);for(let n=0;n<e.blocks.length;n++)t.isLastBlock=n===e.blocks.length-1,this.descendStackedBlock(e.blocks[n]);this.popFrame()}descendAddonCall(e){const t=this.descendInputRecord(e.arguments),n='runtime.getAddonBlock("'.concat(b(e.code),'").callback'),r='"'.concat(b(e.blockId),'"');return"yield* executeInCompatibilityLayer(".concat(t,", ").concat(n,", ").concat(this.isWarp,", false, ").concat(r,")")}referenceVariable(e){return"target"===e.scope?this.evaluateOnce('target.variables["'.concat(b(e.id),'"]')):this.evaluateOnce('stage.variables["'.concat(b(e.id),'"]'))}evaluateOnce(e){if(Object.prototype.hasOwnProperty.call(this._setupVariables,e))return this._setupVariables[e];const t=this._setupVariablesPool.next();return this._setupVariables[e]=t,t}retire(){this.isProcedure?this.source+="retire(); yield;\n":this.source+="retire(); return;\n"}yieldLoop(){this.warpTimer?this.yieldStuckOrNotWarp():this.yieldNotWarp()}yieldNotWarp(){this.isWarp||(this.source+="yield;\n",this.yielded())}yieldStuckOrNotWarp(){this.isWarp?this.source+="if (isStuck()) yield;\n":this.source+="yield;\n",this.yielded()}yielded(){if(!this.script.yields)throw new Error("Script yielded but is not marked as yielding.")}requestRedraw(){this.source+="runtime.requestRedraw();\n"}generateCompatibilityLayerCall(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const r=e.opcode;let i="yield* executeInCompatibilityLayer({";for(const t of Object.keys(e.inputs)){const n=e.inputs[t],r=this.descendInput(n);i+='"'.concat(b(t),'":').concat(r,",")}for(const t of Object.keys(e.fields)){const n=e.fields[t];i+='"'.concat(b(t),'":"').concat(b(n),'",')}const s=this.evaluateOnce('runtime.getOpcodeFunction("'.concat(b(r),'")'));return i+="}, ".concat(s,", ").concat(this.isWarp,", ").concat(t,', "').concat(b(e.id),'", ').concat(n,")"),this.yielded(),i}getScriptFactoryName(){return T.next()}getScriptName(e){let t=e?A.next():v.next();if(this.isProcedure){const e=this.script.procedureCode.replace(/%[\w]/g,"").replace(/[^a-zA-Z0-9]/g,"_").substring(0,20);t+="_".concat(e)}return t}stopScript(){this.isProcedure?this.source+='return "";\n':this.retire()}stopScriptAndReturn(e){this.isProcedure?this.source+="return ".concat(e,";\n"):this.retire()}createScriptFactory(){let e="";e+="(function ".concat(this.getScriptFactoryName(),"(thread) { "),e+="const target = thread.target; ",e+="const runtime = target.runtime; ",e+="const stage = runtime.getTargetForStage();\n";for(const t of Object.keys(this._setupVariables)){const n=this._setupVariables[t];e+="const ".concat(n," = ").concat(t,";\n")}if(e+="return ",this.script.yields?e+="function* ":e+="function ",e+=this.getScriptName(this.script.yields),e+=" (",this.script.arguments.length){const t=[];for(let e=0;e<this.script.arguments.length;e++)t.push("p".concat(e));e+=t.join(",")}return e+=") {\n",e+=this.source,e+="}; })",e}compile(){this.script.stack&&this.descendStack(this.script.stack,new S(!1)),this.stopScript();const e=this.createScriptFactory(),t=o.scopedEval(e);return this.debug&&r.info("JS: ".concat(this.target.getName(),": compiled ").concat(this.script.procedureCode||"script"),e),k.testingApparatus&&k.testingApparatus.report(this,e),t}}k.unstable_exports={factoryNameVariablePool:T,functionNameVariablePool:v,generatorNameVariablePool:A,VariablePool:s,PEN_EXT:y,PEN_STATE:E,Frame:S,sanitize:b},k.testingApparatus=null,e.exports=k},function(e,t,n){const r=n(20),i=n(14);e.exports=class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.sequencer=e,this.thread=t,this._nowObj={now:()=>this.sequencer.runtime.currentMSecs}}get target(){return this.thread.target}get runtime(){return this.sequencer.runtime}get nowObj(){return this.runtime?this._nowObj:null}get stackFrame(){const e=this.thread.peekStackFrame();return null===e.executionContext&&(e.executionContext={}),e.executionContext}stackTimerFinished(){return!(this.stackFrame.timer.timeElapsed()<this.stackFrame.duration)}stackTimerNeedsInit(){return!this.stackFrame.timer}startStackTimer(e){this.nowObj?this.stackFrame.timer=new i(this.nowObj):this.stackFrame.timer=new i,this.stackFrame.timer.start(),this.stackFrame.duration=e}yield(){this.thread.status=r.STATUS_YIELD}yieldTick(){this.thread.status=r.STATUS_YIELD_TICK}startBranch(e,t){this.sequencer.stepToBranch(this.thread,e,t)}stopAll(){this.sequencer.runtime.stopAll()}stopOtherTargetThreads(){this.sequencer.runtime.stopForTarget(this.thread.target,this.thread)}stopThisScript(){this.thread.stopThisScript()}startProcedure(e){this.sequencer.stepToProcedure(this.thread,e)}getProcedureParamNamesAndIds(e){return this.thread.target.blocks.getProcedureParamNamesAndIds(e)}getProcedureParamNamesIdsAndDefaults(e){return this.thread.target.blocks.getProcedureParamNamesIdsAndDefaults(e)}initParams(){this.thread.initParams()}pushParam(e,t){this.thread.pushParam(e,t)}getParam(e){return this.thread.getParam(e)}startHats(e,t,n){const r=this.thread,i=this.sequencer,s=this.sequencer.runtime.startHats(e,t,n);return this.thread=r,this.sequencer=i,s}ioQuery(e,t,n){if(this.sequencer.runtime.ioDevices[e]&&this.sequencer.runtime.ioDevices[e][t]){const r=this.sequencer.runtime.ioDevices[e];return r[t].apply(r,n)}}}},function(e,t){e.exports={OUTPUT_SHAPE_HEXAGONAL:1,OUTPUT_SHAPE_ROUND:2,OUTPUT_SHAPE_SQUARE:3}},function(e,t,n){const r=n(13);class i{constructor(e){this.runtime=e,this.provider=null,this._skinId=-1,this._drawable=-1,this._ghost=0,this._forceTransparentPreview=!1}static get FORMAT_IMAGE_DATA(){return"image-data"}static get FORMAT_CANVAS(){return"canvas"}static get DIMENSIONS(){return[480,360]}static get ORDER(){return 1}setProvider(e){this.provider=e}enableVideo(){return this.provider?this.provider.enableVideo().then((()=>this._setupPreview())):null}disableVideo(){if(this._disablePreview(),!this.provider)return null;this.provider.disableVideo()}getFrame(e){let{dimensions:t=i.DIMENSIONS,mirror:n=this.mirror,format:r=i.FORMAT_IMAGE_DATA,cacheTimeout:s=this._frameCacheTimeout}=e;return this.provider?this.provider.getFrame({dimensions:t,mirror:n,format:r,cacheTimeout:s}):null}setPreviewGhost(e){this._ghost=e,-1!==this._drawable&&this.runtime.renderer.updateDrawableEffect(this._drawable,"ghost",this._forceTransparentPreview?100:e)}_disablePreview(){-1!==this._skinId&&(this.runtime.renderer.updateBitmapSkin(this._skinId,new ImageData(...i.DIMENSIONS),1),this.runtime.renderer.updateDrawableVisible(this._drawable,!1)),this._renderPreviewFrame=null}_setupPreview(){const{renderer:e}=this.runtime;e&&(-1===this._skinId&&-1===this._drawable&&(this._skinId=e.createBitmapSkin(new ImageData(...i.DIMENSIONS),1),this._drawable=e.createDrawable(r.VIDEO_LAYER),e.updateDrawableSkinId(this._drawable,this._skinId),e.markSkinAsPrivate&&e.markSkinAsPrivate(this._skinId),e.markDrawableAsNoninteractive&&e.markDrawableAsNoninteractive(this._drawable)),this._renderPreviewFrame||(e.updateDrawableEffect(this._drawable,"ghost",this._forceTransparentPreview?100:this._ghost),e.updateDrawableVisible(this._drawable,!0),this._renderPreviewFrame=()=>{if(clearTimeout(this._renderPreviewTimeout),!this._renderPreviewFrame)return;this._renderPreviewTimeout=setTimeout(this._renderPreviewFrame,this.runtime.currentStepTime);const t=this.getFrame({format:i.FORMAT_IMAGE_DATA,cacheTimeout:this.runtime.currentStepTime});t?(e.updateBitmapSkin(this._skinId,t,1),this.runtime.requestRedraw()):e.updateBitmapSkin(this._skinId,new ImageData(...i.DIMENSIONS),1)},this._renderPreviewFrame()))}get videoReady(){return!!this.provider&&this.provider.videoReady}postData(e){let{forceTransparentPreview:t}=e;this._forceTransparentPreview=t,this.setPreviewGhost(this._ghost)}}e.exports=i},function(e,t){e.exports={generateExtensionId:e=>{const t=e.replace(/[^a-z0-9]/gi,"").toLowerCase();return"sbx".concat(t)},argumentIndexToId:e=>e.toString()}},function(e,t){e.exports=class{constructor(e,t){this.callback=e,this.maxConcurrent=t,this._current=0,this._queue=[]}do(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new Promise(((e,n)=>{this._queue.push([e,n,t]),this._startNext()}))}_startNext(){if(this._current>=this.maxConcurrent||0===this._queue.length)return;this._current++;const[e,t,n]=this._queue.shift();this.callback.apply(null,n).then((t=>{e(t),this._current--,this._startNext()})).catch((e=>{t(e),this._current--,this._startNext()}))}}},function(e,t){class n{static _mergeVarRefObjects(e,t){for(const n in t)e[n]?e[n]=e[n].concat(t[n]):e[n]=t[n];return e}static getAllVarRefsForTargets(e,t){return e.map((e=>e.blocks.getAllVariableAndListReferences(null,t))).reduce(n._mergeVarRefObjects,{})}static updateVariableIdentifiers(e,t,n){e.map((e=>(e.referencingField.id=t,n&&(e.referencingField.value=n),e)))}}e.exports=n},function(e,t,n){const r=n(50),i=n(51),s=n(75),o=n(76),a=n(237),c=n(240),l=(e,t)=>{const n=[],r=e=>{e.localName!==t&&void 0!==t||!e.getAttribute||n.push(e);for(let t=0;t<e.childNodes.length;t++)r(e.childNodes[t])};return r(e),n},u=e=>{const t=c(),n=document.createElement("span"),i=e.outerHTML,s=r.sanitize(i,{USE_PROFILES:{svg:!0},FORBID_TAGS:["a","audio","canvas","video"],ADD_DATA_URI_TAGS:["image"]});let o,a;try{n.innerHTML=s,t.appendChild(n),o=n.children[0].getBBox()}finally{t.removeChild(n)}a=0===o.width||0===o.height?0:(e=>{let t=0;const n=e=>{e.getAttribute&&(e.getAttribute("stroke")&&(t=Math.max(t,1)),e.getAttribute("stroke-width")&&(t=Math.max(t,Number(e.getAttribute("stroke-width"))||0)));for(let t=0;t<e.childNodes.length;t++)n(e.childNodes[t])};return n(e),t})(e)/2;const l=o.width+2*a,u=o.height+2*a,h=o.x-a,d=o.y-a;e.setAttribute("width",l),e.setAttribute("height",u),e.setAttribute("viewBox",`${h} ${d} ${l} ${u}`)},h=(e,t)=>{t&&(e=>{const t=l(e,"linearGradient");for(const e of t)e.getAttribute("x2")||e.setAttribute("x2","0")})(e),a(e,window),(e=>{const t=l(e,"image"),n="image-rendering: optimizespeed; image-rendering: pixelated;";for(const e of t)e.getAttribute("style")?e.setAttribute("style",`${n} ${e.getAttribute("style")}`):e.setAttribute("style",n)})(e),t?((e=>{const t=[],n=e=>{"text"===e.localName&&t.push(e);for(let t=0;t<e.childNodes.length;t++)n(e.childNodes[t])};n(e),s(e);for(const n of t){n.removeAttribute("x"),n.removeAttribute("y"),n.setAttribute("alignment-baseline","text-before-edge"),n.setAttribute("xml:space","preserve"),n.getAttribute("font-size")||n.setAttribute("font-size","18");let t=n.textContent;const r=parseFloat(n.getAttribute("font-size")),s=2;let o=0,a=1.2;if("Handwriting"===n.getAttribute("font-family")?(a=2,o=-11*r/22):"Scratch"===n.getAttribute("font-family")?(a=.89,o=-3*r/22):"Curly"===n.getAttribute("font-family")?(a=1.38,o=-6*r/22):"Marker"===n.getAttribute("font-family")?(a=1.45,o=-6*r/22):"Sans Serif"===n.getAttribute("font-family")?(a=1.13,o=-3*r/22):"Serif"===n.getAttribute("font-family")&&(a=1.25,o=-4*r/22),0===n.transform.baseVal.numberOfItems){const t=e.createSVGTransform();n.transform.baseVal.appendItem(t)}const c=n.transform.baseVal.getItem(0).matrix;if(c.e+=c.a*s+c.c*o,c.f+=c.b*s+c.d*o,t&&0===n.childElementCount){n.textContent="";const e=t.split("\n");t="";for(const t of e){const e=i.create("tspan");e.setAttribute("x","0"),e.setAttribute("style","white-space: pre"),e.setAttribute("dy",`${a}em`),e.textContent=t||" ",n.appendChild(e)}}}})(e),u(e),(e=>{const t=l(e);for(const e of t){if(!e.style)continue;const t=e.style.stroke||e.getAttribute("stroke");t&&t.match(/^url\(#.*\)$/)&&(e.style["stroke-linejoin"]="round",e.style["stroke-linecap"]="round")}})(e)):e.getAttribute("viewBox")?e.getAttribute("width")&&e.getAttribute("height")||(e.setAttribute("width",e.viewBox.baseVal.width),e.setAttribute("height",e.viewBox.baseVal.height)):u(e)};e.exports=(e,t)=>{const n=new DOMParser;e=o(e);const r=n.parseFromString(e,"text/xml");if(r.childNodes.length<1||"svg"!==r.documentElement.localName)throw new Error("Document does not appear to be SVG.");const i=r.documentElement;return h(i,t),i}},function(e,t){e.exports=function(e){const t=[],n=e=>{"text"===e.localName&&t.push(e);for(let t=0;t<e.childNodes.length;t++)n(e.childNodes[t])};n(e);for(const e of t)e.getAttribute("font-family")&&"Helvetica"!==e.getAttribute("font-family")?"Mystery"===e.getAttribute("font-family")?e.setAttribute("font-family","Curly"):"Gloria"===e.getAttribute("font-family")?e.setAttribute("font-family","Handwriting"):"Donegal"===e.getAttribute("font-family")&&e.setAttribute("font-family","Serif"):e.setAttribute("font-family","Sans Serif")}},function(e,t){e.exports=function(e){const t=e.match(/<svg [^>]*>/);t&&-1===t[0].indexOf("xmlns=")&&(e=e.replace("<svg ",'<svg xmlns="http://www.w3.org/2000/svg" ')),t&&-1!==t[0].indexOf("&ns_")&&-1===e.indexOf("<!DOCTYPE")&&(e=e.replace(t[0],t[0].replace(/&ns_[^;]+;/g,"http://ns.adobe.com/Extensibility/1.0/"))),e.includes("data:img/png")&&(e=e.replace(/(<image[^>]+?xlink:href=["'])data:img\/png/g,((e,t)=>`${t}data:image/png`)));const n=/(<[^>]+?xmlns:(?!xml=)[^ ]+=)"http:\/\/www.w3.org\/XML\/1998\/namespace"/g;return null!==e.match(n)&&(e=e.replace(n,((e,t)=>`${t}"http://dummy.namespace"`))),e=(e=(e=e.replace(/<(\/?)\s*svg:/g,"<$1")).replace(/<metadata>[\s\S]*<\/metadata>/,"<metadata></metadata>")).replace(/<script[\s\S]*>[\s\S]*<\/script>/,"<script><\/script>")}},function(e,t,n){const r=n(78);e.exports=(e,t)=>{let n=(new XMLSerializer).serializeToString(e);return t&&(n=r(n,t)),n}},function(e,t,n){const r=n(241);e.exports=function(e,t={}){if("string"!=typeof e)throw new Error("SVG to be inlined is not a string");const n={};if(t&&"object"==typeof t)for(const[e,r]of Object.entries(t))n[(i=e,i.replace(/[<>&'"]/g,(e=>{switch(e){case"<":return"<";case">":return">";case"&":return"&";case"'":return"'";case'"':return"""}})))]=r;var i;try{Object.assign(n,r())}catch(e){}const s=new Set,o=/font-family="([^"]*)"/g;let a=o.exec(e);for(;a;)s.add(a[1]),a=o.exec(e);if(s.size>0){let t="<defs><style>";for(const e of s)Object.prototype.hasOwnProperty.call(n,e)&&(t+=`${n[e]}`);return t+="</style></defs>",e=e.replace(/<svg[^>]*>/,`$&${t}`)}return e}},function(e,t,n){let r,i;"undefined"==typeof TextEncoder?(r=n(21).TextEncoder,i=n(21).TextDecoder):(r=TextEncoder,i=TextDecoder);const s="<!".concat("-".repeat(2)),o="".concat("-".repeat(2),">"),a=new RegExp("".concat(s,"rotationCenter:(-?[\\d\\.]+):(-?[\\d\\.]+)").concat(o,"$"));e.exports={parseVectorMetadata:e=>{const t=e.match(a);if(!t)return null;const n=+t[1],r=+t[2];return Number.isNaN(n)||Number.isNaN(r)?null:[n,r]},exportCostume:e=>{const t=e.asset.data;if("svg"!==e.dataFormat)return t;let n=(new i).decode(t);n=n.replace(a,"");const c=e.rotationCenterX,l=e.rotationCenterY;return n+="".concat(s,"rotationCenter:").concat(c,":").concat(l).concat(o),(new r).encode(n)}}},function(e,t,n){const r=n(7);e.exports=e=>{const t={};for(let n=0;n<e.length;n++){const i=r(),s=e[n].id;e[n].id=t[s]=i}for(let n=0;n<e.length;n++){for(const r in e[n].inputs){const i=e[n].inputs[r];i.block=t[i.block],i.shadow=t[i.shadow]}e[n].parent&&(e[n].parent=t[e[n].parent]),e[n].next&&(e[n].next=t[e[n].next])}}},function(e,t,n){const r=e=>function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return new Promise(((t,r)=>{e(...n,((e,n)=>{e?r("string"==typeof e?new Error(e):e):t(n)}))}))};var i=r(n(255)),s=r(n(257)),o=r(n(258));e.exports=function(e,t,n){i(e,t).then((function(e){return s(e[0]).then(o.bind(null,t)).then((function(t){return[t,e[1]]}))})).then(n.bind(null,null),n)}},function(e,t,n){const r=n(22),i=n(0);e.exports={deserializeSound:function(e,t,n,s){const o=s||e.md5,a=t.storage;if(!a)return i.warn("No storage module present; cannot load sound asset: ",o),Promise.resolve(null);if(!n)return Promise.resolve(null);let c=n.file(o);if(!c){const e=new RegExp("^([^/]*/)?".concat(o,"$"));c=n.file(e)[0]}if(!c)return i.error("Could not find sound file associated with the ".concat(e.name," sound.")),Promise.resolve(null);if(!r.support.uint8array)return i.error("JSZip uint8array is not supported in this browser."),Promise.resolve(null);const l="mp3"===e.dataFormat.toLowerCase()?a.DataFormat.MP3:a.DataFormat.WAV;return c.async("uint8array").then((e=>a.createAsset(a.AssetType.Sound,l,e,null,!0))).then((t=>{e.asset=t,e.assetId=t.assetId,e.md5="".concat(t.assetId,".").concat(t.dataFormat)}))},deserializeCostume:function(e,t,n,s,o){const a=t.storage,c=e.assetId,l=s||"".concat(c,".").concat(e.dataFormat);if(!a)return i.warn("No storage module present; cannot load costume asset: ",l),Promise.resolve(null);if(e.asset)return Promise.resolve(a.createAsset(e.asset.assetType,e.asset.dataFormat,new Uint8Array(Object.keys(e.asset.data).map((t=>e.asset.data[t]))),null,!0)).then((t=>{e.asset=t,e.assetId=t.assetId,e.md5="".concat(t.assetId,".").concat(t.dataFormat)}));if(!n)return Promise.resolve(null);let u=n.file(l);if(!u){const e=new RegExp("^([^/]*/)?".concat(l,"$"));u=n.file(e)[0]}if(!u)return i.error("Could not find costume file associated with the ".concat(e.name," costume.")),Promise.resolve(null);let h=null;const d=e.dataFormat.toLowerCase();if("svg"===d?h=a.AssetType.ImageVector:["png","bmp","jpeg","jpg","gif"].indexOf(d)>=0?h=a.AssetType.ImageBitmap:i.error("Unexpected file format for costume: ".concat(d)),!r.support.uint8array)return i.error("JSZip uint8array is not supported in this browser."),Promise.resolve(null);let p;if(e.textLayerMD5){const t=n.file(o);if(!t)return i.error("Could not find text layer file associated with the ".concat(e.name," costume.")),Promise.resolve(null);p=t.async("uint8array").then((t=>a.createAsset(a.AssetType.ImageBitmap,"png",t,e.textLayerMD5))).then((t=>{e.textLayerAsset=t}))}else p=Promise.resolve(null);return Promise.all([p,u.async("uint8array").then((e=>a.createAsset(h,d,e,null,!0))).then((t=>{e.asset=t,e.assetId=t.assetId,e.md5="".concat(t.assetId,".").concat(t.dataFormat)}))])}}},function(e,t,n){const r=n(17),i=n(47),s=n(49),o=n(23),a=n(0),c=n(7),l=n(6),u=n(4),h=n(261),d=n(48),p=n(9),f=n(24),m=n(13),g=n(71),{loadCostume:b}=n(34),{loadSound:y}=n(33),{deserializeCostume:E,deserializeSound:T}=n(82),v=["argument","control","data","event","looks","math","motion","operator","procedures","sensing","sound"],A=/\u001f|\./,w=e=>{const[t,n]=e.split(A),r=g.generateExtensionId(t);return"".concat(r,"_").concat(n)},S=function(e){const t=[{}];let n=0;const r=e.split(/(?=[^\\]%[nbs])/);for(let e=0;e<r.length;e++){const i=r[e].trim();if("%"===i.substring(0,1)){const e=i.substring(1,2),r={type:"input",inputName:"input"+n++};"n"===e?r.inputOp="math_number":"s"===e?r.inputOp="text":"b"===e&&(r.inputOp="boolean"),t.push(r)}}return t},k=function(e){return S(e).map((e=>e.inputName)).filter((e=>e))},O=function(e){let t=[];for(let n=0;n<e.length;n++){const r=e[n];t.push(r),r.children&&(t=t.concat(O(r.children))),delete r.children}return t},I=function(e,t,n,r,i,s,o){const a=[];let c=null;for(let l=0;l<e.length;l++){const u=e[l],h=D(u,t,n,r,i,s,o),d=h[0];o=h[1],d&&(c&&(d.parent=c.id,c.next=d.id),c=d,a.push(d))}return[a,o]},N=function(){let e={};const t=(e,t,n)=>"".concat(e,"-").concat(l.replaceUnsafeChars(t),"-").concat(n);return function(n,r){return r&&(e={}),function(i,s){return r?(e["".concat(i,"-").concat(s)]=t(n,i,s),e["".concat(i,"-").concat(s)]):e["".concat(i,"-").concat(s)]?e["".concat(i,"-").concat(s)]:t(n,i,s)}}}(),R=function(){let e={};const t=[],n=c();return function(r){return r&&(e={}),{broadcastMsgMapUpdater:function(r,i){return""===(r=r.toLowerCase())&&(r=n),e[r]="broadcastMsgId-".concat(l.replaceUnsafeChars(r)),t.push(i),e[r]},globalBroadcastMsgs:e,allBroadcastFields:t,emptyMsgName:n}}}(),x=(e,t,n,r)=>{if(!h[e.cmd])return void a.warn("Could not find monitor block with opcode: ".concat(e.cmd));const i=h[e.cmd].opcode,s=i.indexOf("_"),o=i.substring(0,s);if("videoSensing"===o)return;if(-1===v.indexOf(o)&&""!==o&&!r.extensionIDs.has(o)&&!e.visible)return;let c=null;if(!Object.prototype.hasOwnProperty.call(e,"target"))for(let t=0;t<n.length;t++){const r=n[t];Object.keys(r.variables).filter((t=>{const n=r.variables[t];return n.type===p.LIST_TYPE&&n.name===e.listName})).length>0&&(c=r,e.target=r.getName())}if(c=c||n.filter((t=>t.getName()===e.target))[0],!c)throw new Error("Cannot create monitor for target that cannot be found by name");const l=N(c.id,!1),[u,d]=D([e.cmd,e.param],null,l,r,{},null,null);"getVar:"===e.cmd?u.id=l(e.param,p.SCALAR_TYPE):"contentsOfList:"===e.cmd?u.id=l(e.param,p.LIST_TYPE):Object.prototype.hasOwnProperty.call(t.monitorBlockInfo,u.opcode)?u.id=t.monitorBlockInfo[u.opcode].getId(c.id,u.fields):u.id=u.opcode,u.targetId=c.isStage?null:c.id,u.isMonitored=e.visible;const m=t.monitorBlocks._blocks[u.id];if(m)m.isMonitored=e.visible,m.targetId=u.targetId;else{const e=O([u]);for(let n=0;n<e.length;n++)t.monitorBlocks.createBlock(e[n])}switch(e.mode){case 1:e.mode="default";break;case 2:e.mode="large";break;case 3:e.mode="slider"}t.requestAddMonitor(new f({id:u.id,targetId:u.targetId,spriteName:u.targetId?e.target:null,opcode:u.opcode,params:t.monitorBlocks._getBlockParams(u),value:"",mode:e.mode,sliderMin:e.sliderMin,sliderMax:e.sliderMax,isDiscrete:e.isDiscrete,x:e.x,y:e.y,width:e.width,height:e.height,visible:e.visible}))},M=function(e,t,n,r){if(!Object.prototype.hasOwnProperty.call(e,"objName"))return null;const i={costumePromises:[],soundPromises:[],soundBank:t.audioEngine&&t.audioEngine.createBank(),children:[]},s=i.costumePromises;if(Object.prototype.hasOwnProperty.call(e,"costumes"))for(let i=0;i<e.costumes.length;i++){const o=e.costumes[i],a=o.bitmapResolution||1,c={name:o.costumeName,bitmapResolution:a,rotationCenterX:n?240*a:o.rotationCenterX,rotationCenterY:n?180*a:o.rotationCenterY,md5:o.baseLayerMD5,skinId:null},u=o.baseLayerMD5,h=l.splitFirst(u,"."),d=h[0];let p;2===h.length&&h[1]?p=h[1]:(p="png",c.md5="".concat(c.md5,".").concat(p)),c.dataFormat=p,c.assetId=d,o.textLayerMD5&&(c.textLayerMD5=l.splitFirst(o.textLayerMD5,".")[0]);const f="".concat(o.baseLayerID,".").concat(p),m=o.textLayerID?"".concat(o.textLayerID,".png"):null;s.push(t.wrapAssetRequest((()=>E(c,t,r,f,m).then((()=>b(c.md5,c,t,2))))))}const{soundBank:o,soundPromises:a}=i;if(Object.prototype.hasOwnProperty.call(e,"sounds"))for(let n=0;n<e.sounds.length;n++){const i=e.sounds[n],s={name:i.soundName,format:i.format,rate:i.rate,sampleCount:i.sampleCount,md5:i.md5,data:null},c=i.md5,u=l.splitFirst(c,"."),h=u[0],d=u[1].toLowerCase();s.dataFormat=d,s.assetId=h;const p="".concat(i.soundID,".").concat(d);a.push(t.wrapAssetRequest((()=>T(s,t,r,p).then((()=>y(s,t,o))))))}const c=i.children;if(e.children)for(let n=0;n<e.children.length;n++)c.push(M(e.children[n],t,!1,r));return i},C=function(e,t,n,o,a,c){if(!Object.prototype.hasOwnProperty.call(e,"objName"))return Object.prototype.hasOwnProperty.call(e,"listName")&&(e.cmd="contentsOfList:",e.param=e.listName,e.mode="list"),e.deferredMonitor=!0,Promise.resolve(e);const l=new r(t),h=new s(l,t);if(Object.prototype.hasOwnProperty.call(e,"objName")){if(o&&"Stage"!==e.objName){for(const t of e.children)Object.prototype.hasOwnProperty.call(t,"objName")||t.target!==e.objName||(t.target="Stage");e.objName="Stage"}h.name=e.objName}const f=c.costumePromises,{soundBank:b,soundPromises:y}=c,E=h.createClone(o?m.BACKGROUND_LAYER:m.SPRITE_LAYER),T=N(E.id,o),v=R(o),A=v.broadcastMsgMapUpdater;if(Object.prototype.hasOwnProperty.call(e,"variables"))for(let n=0;n<e.variables.length;n++){const r=e.variables[n],i=r.isPersistent&&o&&t.canAddCloudVariable(),s=new p(T(r.name,p.SCALAR_TYPE),r.name,p.SCALAR_TYPE,i);i&&t.addCloudVariable(),s.value=r.value,E.variables[s.id]=s}const w={};if(Object.prototype.hasOwnProperty.call(e,"scriptComments")){e.scriptComments.map((e=>{const[t,n,r,i,s,o,a]=e,c=e[5]>=0,l=new d(null,a,c?null:1.5*t,c?null:2.2*n,1.5*r,2.2*i,!s);return c&&(l.blockId=o,Object.prototype.hasOwnProperty.call(w,o)?w[o].push(l):w[o]=[l]),l})).forEach((e=>{E.comments[e.id]=e}))}Object.prototype.hasOwnProperty.call(e,"scripts")&&function(e,t,n,r,i,s){let o=0;for(let a=0;a<e.length;a++){const c=e[a],l=c[0],u=c[1],h=c[2],d={},[p,f]=I(h,n,r,i,d,s,o);o=f,p[0]&&(p[0].x=1.5*l,p[0].y=2.2*u,p[0].topLevel=!0,p[0].parent=null);const m=O(p);for(let e=0;e<m.length;e++)t.createBlock(m[e])}}(e.scripts,l,A,T,n,w);for(const e in w){w[e].forEach((e=>{"number"==typeof e.blockId&&(e.blockId=null)}))}if(l.updateTargetSpecificBlocks(o),Object.prototype.hasOwnProperty.call(e,"lists"))for(let t=0;t<e.lists.length;t++){const n=e.lists[t],r=new p(T(n.listName,p.LIST_TYPE),n.listName,p.LIST_TYPE,!1);r.value=n.contents,E.variables[r.id]=r}Object.prototype.hasOwnProperty.call(e,"scratchX")&&(E.x=e.scratchX),Object.prototype.hasOwnProperty.call(e,"scratchY")&&(E.y=e.scratchY),Object.prototype.hasOwnProperty.call(e,"direction")&&(E.direction=u.wrapClamp(e.direction,-179,180)),Object.prototype.hasOwnProperty.call(e,"isDraggable")&&(E.draggable=e.isDraggable),Object.prototype.hasOwnProperty.call(e,"scale")&&(E.size=100*e.scale),Object.prototype.hasOwnProperty.call(e,"visible")&&(E.visible=e.visible),Object.prototype.hasOwnProperty.call(e,"currentCostumeIndex")&&(E.currentCostume=u.clamp(Math.floor(e.currentCostumeIndex),0,e.costumes.length-1)),Object.prototype.hasOwnProperty.call(e,"rotationStyle")&&("none"===e.rotationStyle?E.rotationStyle=i.ROTATION_STYLE_NONE:"leftRight"===e.rotationStyle?E.rotationStyle=i.ROTATION_STYLE_LEFT_RIGHT:"normal"===e.rotationStyle&&(E.rotationStyle=i.ROTATION_STYLE_ALL_AROUND)),Object.prototype.hasOwnProperty.call(e,"tempoBPM")&&(E.tempo=e.tempoBPM),Object.prototype.hasOwnProperty.call(e,"videoAlpha")&&(E.videoTransparency=100-100*e.videoAlpha),Object.prototype.hasOwnProperty.call(e,"info")&&Object.prototype.hasOwnProperty.call(e.info,"videoOn")&&(e.info.videoOn?E.videoState=i.VIDEO_STATE.ON:E.videoState=i.VIDEO_STATE.OFF),Object.prototype.hasOwnProperty.call(e,"indexInLibrary")&&(E.targetPaneOrder=e.indexInLibrary),E.isStage=o,Promise.all(f).then((e=>{h.costumes=e})),Promise.all(y).then((e=>{h.sounds=e,h.soundBank=b||null}));const S=[];if(e.children)for(let r=0;r<e.children.length;r++)S.push(C(e.children[r],t,n,!1,a,c.children[r]));if(o){const t=e.info&&e.info.savedExtensions;if(Array.isArray(t))for(const e of t){const t=g.generateExtensionId(e.extensionName),r=e.javascriptURL;n.extensionURLs.set(t,r)}}return Promise.all(f.concat(y)).then((()=>Promise.all(S).then((e=>{if(E.isStage){const e=v.globalBroadcastMsgs,t=v.allBroadcastFields,n=v.emptyMsgName;if(e[n]){let r=1;for(;e["message".concat(r)];)r+=1;const i="message".concat(r);e[i]=e[n],delete e[n];for(let e=0;e<t.length;e++)""===t[e].value&&(t[e].value=i)}for(const t in e){const n=e[t],r=new p(n,t,p.BROADCAST_MESSAGE_TYPE,!1);E.variables[r.id]=r}}let r=[E];const i=[];for(let t=0;t<e.length;t++)e[t]&&(e[t].deferredMonitor?i.push(e[t]):r=r.concat(e[t]));for(let e=0;e<i.length;e++)x(i[e],t,r,n);return r}))))},P=function(e){const t=e.map(((e,t)=>(e.layerOrder=t,e))).sort(((e,t)=>e.targetPaneOrder-t.targetPaneOrder));return t.forEach((e=>{delete e.targetPaneOrder})),t},L=function(e){const t=e[0],n=t&&h[t];return n?"function"==typeof n?n(e):n:t&&(e=>A.test(e))(t)?(e=>{const t=e[0],n=e.length-1,r=[];for(let e=0;e<n;e++)r.push({type:"input",inputOp:"text",inputName:g.argumentIndexToId(e)});return{opcode:w(t),argMap:r}})(e):(a.warn("Couldn't find SB2 block: ".concat(t)),null)},D=function(e,t,n,r,i,s,l){const u=s&&"number"==typeof l&&!isNaN(l)?s[l]:null,h=L(e);if(!h)return u&&u.forEach((e=>{e.blockId=null,e.x=e.y=0})),[null,l+1];const d=e[0],f=h.opcode.indexOf("_"),m=h.opcode.substring(0,f);-1===v.indexOf(m)&&""!==m&&r.extensionIDs.add(m);const g={id:c(),opcode:h.opcode,inputs:{},fields:{},next:null,shadow:!1,children:[]};u&&(g.comment=u[u.length-1].id,u.forEach((e=>{e.id===g.comment?e.blockId=g.id:(e.blockId=null,e.x=e.y=0)}))),l++;const b=i.expectedArg;"call"===d&&(h.argMap=S(e[1]));for(let u=0;u<h.argMap.length;u++){const d=h.argMap[u],f=e[u+1];let m=!1;if("input"===d.type){const e=c();if(g.inputs[d.inputName]={name:d.inputName,block:null,shadow:null},"object"==typeof f&&f){let e;if(i.expectedArg=d,"object"==typeof f[0]&&f[0])[e,l]=I(f,t,n,r,i,s,l);else{const o=D(f,t,n,r,i,s,l);e=o[0]?[o[0]]:[],l=o[1]}if(i.expectedArg=b,e.length>0){let t=null;for(let n=0;n<e.length;n++)e[n].parent=0===n?g.id:t,t=e[n].id;g.inputs[d.inputName].block=e[0].id,g.children=g.children.concat(e)}m=!0}if(!d.inputOp){a.warn("Unknown input operation for input ".concat(d.inputName," of opcode ").concat(g.opcode,"."));continue}if("boolean"===d.inputOp||"substack"===d.inputOp)continue;let u=f,h=d.inputName;"math_number"===d.inputOp||"math_whole_number"===d.inputOp||"math_positive_number"===d.inputOp||"math_integer"===d.inputOp||"math_angle"===d.inputOp?(h="NUM",m&&(u=10)):"text"===d.inputOp?(h="TEXT",m&&(u="")):"colour_picker"===d.inputOp?(u=o.decimalToHex(f),h="COLOUR",m&&(u="#990000")):"event_broadcast_menu"===d.inputOp?(h="BROADCAST_OPTION",m&&(u="")):"sensing_of_object_menu"===d.inputOp?(m||"Stage"===u)&&(u="_stage_"):"note"===d.inputOp?m&&(u=60):"music.menu.DRUM"===d.inputOp||"music.menu.INSTRUMENT"===d.inputOp?m&&(u=1):"videoSensing.menu.ATTRIBUTE"===d.inputOp?m&&(u="motion"):"videoSensing.menu.SUBJECT"===d.inputOp?m&&(u="this sprite"):"videoSensing.menu.VIDEO_STATE"===d.inputOp?m&&(u="on"):m&&(u="");const p={};if(p[h]={name:h,value:u},"event_broadcast_menu"===d.inputOp){const e=t(u,p[h]);p[h].id=e,p[h].variableType=d.variableType}g.children.push({id:e,opcode:d.inputOp,inputs:{},fields:p,next:null,topLevel:!1,parent:g.id,shadow:!0}),g.inputs[d.inputName].shadow=e,g.inputs[d.inputName].block||(g.inputs[d.inputName].block=e)}else if("field"===d.type){if(g.fields[d.fieldName]={name:d.fieldName,value:f},"CURRENTMENU"===d.fieldName&&(g.fields[d.fieldName].value=f.toUpperCase(),"day of week"===f&&(g.fields[d.fieldName].value="DAYOFWEEK")),"VARIABLE"===d.fieldName)g.fields[d.fieldName].id=n(f,p.SCALAR_TYPE);else if("LIST"===d.fieldName)g.fields[d.fieldName].id=n(f,p.LIST_TYPE);else if("BROADCAST_OPTION"===d.fieldName){const e=t(f,g.fields[d.fieldName]);g.fields[d.fieldName].id=e}const e=d.variableType;"string"==typeof e&&(g.fields[d.fieldName].variableType=e)}}switch(d){case"comeToFront":g.fields.FRONT_BACK={name:"FRONT_BACK",value:"front"};break;case"goBackByLayers:":g.fields.FORWARD_BACKWARD={name:"FORWARD_BACKWARD",value:"backward"};break;case"backgroundIndex":case"costumeIndex":g.fields.NUMBER_NAME={name:"NUMBER_NAME",value:"number"};break;case"sceneName":case"costumeName":g.fields.NUMBER_NAME={name:"NUMBER_NAME",value:"name"}}if("stopScripts"===d)"other scripts in sprite"!==e[1]&&"other scripts in stage"!==e[1]||(g.mutation={tagName:"mutation",hasnext:"true",children:[]});else if("procDef"===d){const t=e.slice(1),n=c(),r="custom_block";g.inputs[r]={name:r,block:n,shadow:n},g.children=[{id:n,opcode:"procedures_prototype",inputs:{},fields:{},next:null,shadow:!0,children:[],mutation:{tagName:"mutation",proccode:t[0],argumentnames:JSON.stringify(t[1]),argumentids:JSON.stringify(k(t[0])),argumentdefaults:JSON.stringify(t[2]),warp:t[3],children:[]}}]}else if("call"===d)g.mutation={tagName:"mutation",children:[],proccode:e[1],argumentids:JSON.stringify(k(e[1]))};else if("getParam"===d){let t=e[2];switch(b&&"boolean"===b.inputOp&&"b"!==t&&(t="b"),t){case"r":g.opcode="argument_reporter_string_number";break;case"b":g.opcode="argument_reporter_boolean"}}return[g,l]};e.exports={deserialize:function(e,t,n,r){const i={extensionIDs:new Set,extensionURLs:new Map};return Promise.resolve(M(e,t,!n,r)).then((e=>Promise.resolve(e))).then((s=>C(e,t,i,!n,r,s))).then(P).then((e=>({targets:e,extensions:i})))}}},function(e,t,n){const r=n(263);e.exports=r},function(e,t){class n{constructor(){this.left=-1/0,this.right=1/0,this.bottom=-1/0,this.top=1/0}initFromBounds(e,t,n,r){this.left=e,this.right=t,this.bottom=n,this.top=r}initFromPointsAABB(e){this.left=1/0,this.right=-1/0,this.top=-1/0,this.bottom=1/0;for(let t=0;t<e.length;t++){const n=e[t][0],r=e[t][1];n<this.left&&(this.left=n),n>this.right&&(this.right=n),r>this.top&&(this.top=r),r<this.bottom&&(this.bottom=r)}}initFromModelMatrix(e){const t=e[12],n=e[13],r=Math.abs(.5*e[0])+Math.abs(.5*e[4]),i=Math.abs(.5*e[1])+Math.abs(.5*e[5]);this.left=-r+t,this.right=r+t,this.top=i+n,this.bottom=-i+n}intersects(e){return this.left<=e.right&&e.left<=this.right&&this.top>=e.bottom&&e.top>=this.bottom}contains(e){return e.left>this.left&&e.right<this.right&&e.top<this.top&&e.bottom>this.bottom}clamp(e,t,n,r){this.left=Math.max(this.left,e),this.right=Math.min(this.right,t),this.bottom=Math.max(this.bottom,n),this.top=Math.min(this.top,r),this.left=Math.min(this.left,t),this.right=Math.max(this.right,e),this.bottom=Math.min(this.bottom,r),this.top=Math.max(this.top,n)}snapToInt(){this.left=Math.floor(this.left),this.right=Math.ceil(this.right),this.bottom=Math.floor(this.bottom),this.top=Math.ceil(this.top)}static intersect(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new n;return r.left=Math.max(e.left,t.left),r.right=Math.min(e.right,t.right),r.top=Math.min(e.top,t.top),r.bottom=Math.max(e.bottom,t.bottom),r}static union(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new n;return r.left=Math.min(e.left,t.left),r.right=Math.max(e.right,t.right),r.top=Math.max(e.top,t.top),r.bottom=Math.min(e.bottom,t.bottom),r}get width(){return Math.abs(this.left-this.right)}get height(){return Math.abs(this.top-this.bottom)}}e.exports=n},function(e,t,n){const r=n(11),{rgbToHsv:i,hsvToRgb:s}=n(274),o=n(28),a=.5,c=.5,l=[0,0,0];e.exports=class{static transformColor(e,t,n){if(0===t[3])return t;let r=e.enabledEffects;"number"==typeof n&&(r&=n);const a=e.getUniforms(),c=!!(r&o.EFFECT_INFO.color.mask),u=!!(r&o.EFFECT_INFO.brightness.mask);if(c||u){const e=t[3]/255;if(t[0]/=e,t[1]/=e,t[2]/=e,c){const e=i(t,l),n=.055,r=.09;e[2]<n?(e[0]=0,e[1]=1,e[2]=n):e[1]<r&&(e[0]=0,e[1]=r),e[0]=a.u_color+e[0]+1,s(e,t)}if(u){const e=255*a.u_brightness;t[0]+=e,t[1]+=e,t[2]+=e}t[0]*=e,t[1]*=e,t[2]*=e}return r&o.EFFECT_INFO.ghost.mask&&(t[0]*=a.u_ghost,t[1]*=a.u_ghost,t[2]*=a.u_ghost,t[3]*=a.u_ghost),t}static transformPoint(e,t,n){r.v3.copy(t,n);const i=e.enabledEffects,s=e.getUniforms();if(i&o.EFFECT_INFO.mosaic.mask&&(n[0]=s.u_mosaic*n[0]%1,n[1]=s.u_mosaic*n[1]%1),i&o.EFFECT_INFO.pixelate.mask){const t=e.skin.getUniforms(),r=t.u_skinSize[0]/s.u_pixelate,i=t.u_skinSize[1]/s.u_pixelate;n[0]=(Math.floor(n[0]*r)+a)/r,n[1]=(Math.floor(n[1]*i)+c)/i}if(i&o.EFFECT_INFO.whirl.mask){const e=.5,t=n[0]-a,r=n[1]-c,i=Math.sqrt(Math.pow(t,2)+Math.pow(r,2)),o=Math.max(1-i/e,0),l=s.u_whirl*o*o,u=Math.sin(l),h=Math.cos(l),d=h,p=-u,f=u,m=h;n[0]=d*t+f*r+a,n[1]=p*t+m*r+c}if(i&o.EFFECT_INFO.fisheye.mask){const e=(n[0]-a)/a,t=(n[1]-c)/c,r=Math.sqrt(e*e+t*t),i=Math.pow(Math.min(r,1),s.u_fisheye)*Math.max(1,r),o=e/r,l=t/r;n[0]=a+i*o*a,n[1]=c+i*l*c}return n}}},function(e,t,n){const r=n(29);r.enable(),e.exports=r("scratch-render")},function(e,t){e.exports=class{constructor(e){this._ctx=e,this._cache={}}beginMeasurementSession(){}endMeasurementSession(){}measureText(e){return this._cache[e]||(this._cache[e]=this._ctx.measureText(e).width),this._cache[e]}clearCache(){this._cache={}}}},function(e,t,n){var r,i;i=n(280),r=function(){function e(e){var t,n,r;(t="function"==typeof e.readUInt32BE&&"function"==typeof e.slice)||e instanceof Uint8Array?(t?(this.highStart=e.readUInt32BE(0),this.errorValue=e.readUInt32BE(4),n=e.readUInt32BE(8),e=e.slice(12)):(r=new DataView(e.buffer),this.highStart=r.getUint32(0),this.errorValue=r.getUint32(4),n=r.getUint32(8),e=e.subarray(12)),e=i(e,new Uint8Array(n)),e=i(e,new Uint8Array(n)),this.data=new Uint32Array(e.buffer)):(this.data=e.data,this.highStart=e.highStart,this.errorValue=e.errorValue)}return e.prototype.get=function(e){var t;return e<0||e>1114111?this.errorValue:e<55296||e>56319&&e<=65535?(t=(this.data[e>>5]<<2)+(31&e),this.data[t]):e<=65535?(t=(this.data[2048+(e-55296>>5)]<<2)+(31&e),this.data[t]):e<this.highStart?(t=this.data[2080+(e>>11)],t=((t=this.data[t+(e>>5&63)])<<2)+(31&e),this.data[t]):this.data[this.data.length-4]},e}(),e.exports=r},function(module,exports,__webpack_require__){var factory;window,factory=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="./src/index.js")}({"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js":function(e,t,n){var r=n("./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");e.exports=function(e,t){if(null==e)return{};var n,i,s=r(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s},e.exports.__esModule=!0,e.exports.default=e.exports},"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(i[n]=e[n]);return i},e.exports.__esModule=!0,e.exports.default=e.exports},"./node_modules/arraybuffer-loader/lib/to-array-buffer.js":function(e,t,n){"use strict";(function(t){e.exports=function(e){for(var n="undefined"!=typeof window&&"function"==typeof window.atob?window.atob(e):t.from(e,"base64").toString("binary"),r=new Uint8Array(n.length),i=0;i<n.length;++i)r[i]=n.charCodeAt(i);return r.buffer}}).call(this,n("./node_modules/node-libs-browser/node_modules/buffer/index.js").Buffer)},"./node_modules/base64-js/index.js":function(e,t,n){"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){for(var t,n=c(e),r=n[0],o=n[1],a=new s(function(e,t,n){return 3*(t+n)/4-n}(0,r,o)),l=0,u=o>0?r-4:r,h=0;h<u;h+=4)t=i[e.charCodeAt(h)]<<18|i[e.charCodeAt(h+1)]<<12|i[e.charCodeAt(h+2)]<<6|i[e.charCodeAt(h+3)],a[l++]=t>>16&255,a[l++]=t>>8&255,a[l++]=255&t;return 2===o&&(t=i[e.charCodeAt(h)]<<2|i[e.charCodeAt(h+1)]>>4,a[l++]=255&t),1===o&&(t=i[e.charCodeAt(h)]<<10|i[e.charCodeAt(h+1)]<<4|i[e.charCodeAt(h+2)]>>2,a[l++]=t>>8&255,a[l++]=255&t),a},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,s=[],o=16383,a=0,c=n-i;a<c;a+=o)s.push(l(e,a,a+o>c?c:a+o));return 1===i?(t=e[n-1],s.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],s.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),s.join("")};for(var r=[],i=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0;a<64;++a)r[a]=o[a],i[o.charCodeAt(a)]=a;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var i,s,o=[],a=t;a<n;a+=3)i=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(r[(s=i)>>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},"./node_modules/cross-fetch/dist/browser-ponyfill.js":function(e,t){var n="undefined"!=typeof self?self:this,r=function(){function e(){this.fetch=!1,this.DOMException=n.DOMException}return e.prototype=n,new e}();!function(e){!function(t){var n="URLSearchParams"in e,r="Symbol"in e&&"iterator"in Symbol,i="FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),s="FormData"in e,o="ArrayBuffer"in e;if(o)var a=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],c=ArrayBuffer.isView||function(e){return e&&a.indexOf(Object.prototype.toString.call(e))>-1};function l(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function u(e){return"string"!=typeof e&&(e=String(e)),e}function h(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return r&&(t[Symbol.iterator]=function(){return t}),t}function d(e){this.map={},e instanceof d?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function p(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function f(e){return new Promise((function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}}))}function m(e){var t=new FileReader,n=f(t);return t.readAsArrayBuffer(e),n}function g(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function b(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:i&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:s&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:n&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():o&&i&&(t=e)&&DataView.prototype.isPrototypeOf(t)?(this._bodyArrayBuffer=g(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):o&&(ArrayBuffer.prototype.isPrototypeOf(e)||c(e))?this._bodyArrayBuffer=g(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var e=p(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?p(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(m)}),this.text=function(){var e,t,n,r=p(this);if(r)return r;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,n=f(t),t.readAsText(e),n;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},s&&(this.formData=function(){return this.text().then(T)}),this.json=function(){return this.text().then(JSON.parse)},this}d.prototype.append=function(e,t){e=l(e),t=u(t);var n=this.map[e];this.map[e]=n?n+", "+t:t},d.prototype.delete=function(e){delete this.map[l(e)]},d.prototype.get=function(e){return e=l(e),this.has(e)?this.map[e]:null},d.prototype.has=function(e){return this.map.hasOwnProperty(l(e))},d.prototype.set=function(e,t){this.map[l(e)]=u(t)},d.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},d.prototype.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),h(e)},d.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),h(e)},d.prototype.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),h(e)},r&&(d.prototype[Symbol.iterator]=d.prototype.entries);var y=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function E(e,t){var n,r,i=(t=t||{}).body;if(e instanceof E){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new d(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,i||null==e._bodyInit||(i=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new d(t.headers)),this.method=(n=t.method||this.method||"GET",r=n.toUpperCase(),y.indexOf(r)>-1?r:n),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i)}function T(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(i))}})),t}function v(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new d(t.headers),this.url=t.url||"",this._initBody(e)}E.prototype.clone=function(){return new E(this,{body:this._bodyInit})},b.call(E.prototype),b.call(v.prototype),v.prototype.clone=function(){return new v(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},v.error=function(){var e=new v(null,{status:0,statusText:""});return e.type="error",e};var A=[301,302,303,307,308];v.redirect=function(e,t){if(-1===A.indexOf(t))throw new RangeError("Invalid status code");return new v(null,{status:t,headers:{location:e}})},t.DOMException=e.DOMException;try{new t.DOMException}catch(e){t.DOMException=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function w(e,n){return new Promise((function(r,s){var o=new E(e,n);if(o.signal&&o.signal.aborted)return s(new t.DOMException("Aborted","AbortError"));var a=new XMLHttpRequest;function c(){a.abort()}a.onload=function(){var e,t,n={status:a.status,statusText:a.statusText,headers:(e=a.getAllResponseHeaders()||"",t=new d,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var n=e.split(":"),r=n.shift().trim();if(r){var i=n.join(":").trim();t.append(r,i)}})),t)};n.url="responseURL"in a?a.responseURL:n.headers.get("X-Request-URL");var i="response"in a?a.response:a.responseText;r(new v(i,n))},a.onerror=function(){s(new TypeError("Network request failed"))},a.ontimeout=function(){s(new TypeError("Network request failed"))},a.onabort=function(){s(new t.DOMException("Aborted","AbortError"))},a.open(o.method,o.url,!0),"include"===o.credentials?a.withCredentials=!0:"omit"===o.credentials&&(a.withCredentials=!1),"responseType"in a&&i&&(a.responseType="blob"),o.headers.forEach((function(e,t){a.setRequestHeader(t,e)})),o.signal&&(o.signal.addEventListener("abort",c),a.onreadystatechange=function(){4===a.readyState&&o.signal.removeEventListener("abort",c)}),a.send(void 0===o._bodyInit?null:o._bodyInit)}))}w.polyfill=!0,e.fetch||(e.fetch=w,e.Headers=d,e.Request=E,e.Response=v),t.Headers=d,t.Request=E,t.Response=v,t.fetch=w,Object.defineProperty(t,"__esModule",{value:!0})}({})}(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var i=r;(t=i.fetch).default=i.fetch,t.fetch=i.fetch,t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response,e.exports=t},"./node_modules/ieee754/index.js":function(e,t){t.read=function(e,t,n,r,i){var s,o,a=8*i-r-1,c=(1<<a)-1,l=c>>1,u=-7,h=n?i-1:0,d=n?-1:1,p=e[t+h];for(h+=d,s=p&(1<<-u)-1,p>>=-u,u+=a;u>0;s=256*s+e[t+h],h+=d,u-=8);for(o=s&(1<<-u)-1,s>>=-u,u+=r;u>0;o=256*o+e[t+h],h+=d,u-=8);if(0===s)s=1-l;else{if(s===c)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,r),s-=l}return(p?-1:1)*o*Math.pow(2,s-r)},t.write=function(e,t,n,r,i,s){var o,a,c,l=8*s-i-1,u=(1<<l)-1,h=u>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:s-1,f=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+h>=1?d/c:d*Math.pow(2,1-h))*c>=2&&(o++,c/=2),o+h>=u?(a=0,o=u):o+h>=1?(a=(t*c-1)*Math.pow(2,i),o+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;e[n+p]=255&a,p+=f,a/=256,i-=8);for(o=o<<i|a,l+=i;l>0;e[n+p]=255&o,p+=f,o/=256,l-=8);e[n+p-f]|=128*m}},"./node_modules/js-md5/src/md5.js":function(module,exports,__webpack_require__){(function(process,global){var __WEBPACK_AMD_DEFINE_RESULT__;(function(){"use strict";var ERROR="input is invalid type",WINDOW="object"==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&"object"==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&"object"==typeof module&&module.exports,AMD=__webpack_require__("./node_modules/webpack/buildin/amd-options.js"),ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,HEX_CHARS="0123456789abcdef".split(""),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=["hex","array","digest","buffer","arrayBuffer","base64"],BASE64_ENCODE_CHAR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}!root.JS_MD5_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!ARRAY_BUFFER||!root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e){return function(t){return new Md5(!0).update(t)[e]()}},createMethod=function(){var e=createOutputMethod("hex");NODE_JS&&(e=nodeWrap(e)),e.create=function(){return new Md5},e.update=function(t){return e.create().update(t)};for(var t=0;t<OUTPUT_TYPES.length;++t){var n=OUTPUT_TYPES[t];e[n]=createOutputMethod(n)}return e},nodeWrap=function(method){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),nodeMethod=function(e){if("string"==typeof e)return crypto.createHash("md5").update(e,"utf8").digest("hex");if(null==e)throw ERROR;return e.constructor===ArrayBuffer&&(e=new Uint8Array(e)),Array.isArray(e)||ArrayBuffer.isView(e)||e.constructor===Buffer?crypto.createHash("md5").update(new Buffer(e)).digest("hex"):method(e)};return nodeMethod};function Md5(e){if(e)blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks,this.buffer8=buffer8;else if(ARRAY_BUFFER){var t=new ArrayBuffer(68);this.buffer8=new Uint8Array(t),this.blocks=new Uint32Array(t)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}Md5.prototype.update=function(e){if(!this.finalized){var t,n=typeof e;if("string"!==n){if("object"!==n)throw ERROR;if(null===e)throw ERROR;if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||ARRAY_BUFFER&&ArrayBuffer.isView(e)))throw ERROR;t=!0}for(var r,i,s=0,o=e.length,a=this.blocks,c=this.buffer8;s<o;){if(this.hashed&&(this.hashed=!1,a[0]=a[16],a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),t)if(ARRAY_BUFFER)for(i=this.start;s<o&&i<64;++s)c[i++]=e[s];else for(i=this.start;s<o&&i<64;++s)a[i>>2]|=e[s]<<SHIFT[3&i++];else if(ARRAY_BUFFER)for(i=this.start;s<o&&i<64;++s)(r=e.charCodeAt(s))<128?c[i++]=r:r<2048?(c[i++]=192|r>>6,c[i++]=128|63&r):r<55296||r>=57344?(c[i++]=224|r>>12,c[i++]=128|r>>6&63,c[i++]=128|63&r):(r=65536+((1023&r)<<10|1023&e.charCodeAt(++s)),c[i++]=240|r>>18,c[i++]=128|r>>12&63,c[i++]=128|r>>6&63,c[i++]=128|63&r);else for(i=this.start;s<o&&i<64;++s)(r=e.charCodeAt(s))<128?a[i>>2]|=r<<SHIFT[3&i++]:r<2048?(a[i>>2]|=(192|r>>6)<<SHIFT[3&i++],a[i>>2]|=(128|63&r)<<SHIFT[3&i++]):r<55296||r>=57344?(a[i>>2]|=(224|r>>12)<<SHIFT[3&i++],a[i>>2]|=(128|r>>6&63)<<SHIFT[3&i++],a[i>>2]|=(128|63&r)<<SHIFT[3&i++]):(r=65536+((1023&r)<<10|1023&e.charCodeAt(++s)),a[i>>2]|=(240|r>>18)<<SHIFT[3&i++],a[i>>2]|=(128|r>>12&63)<<SHIFT[3&i++],a[i>>2]|=(128|r>>6&63)<<SHIFT[3&i++],a[i>>2]|=(128|63&r)<<SHIFT[3&i++]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296|0,this.bytes=this.bytes%4294967296),this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[t>>2]|=EXTRA[3&t],t>=56&&(this.hashed||this.hash(),e[0]=e[16],e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.bytes<<3,e[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},Md5.prototype.hash=function(){var e,t,n,r,i,s,o=this.blocks;this.first?t=((t=((e=((e=o[0]-680876937)<<7|e>>>25)-271733879|0)^(n=((n=(-271733879^(r=((r=(-1732584194^2004318071&e)+o[1]-117830708)<<12|r>>>20)+e|0)&(-271733879^e))+o[2]-1126478375)<<17|n>>>15)+r|0)&(r^e))+o[3]-1316259209)<<22|t>>>10)+n|0:(e=this.h0,t=this.h1,n=this.h2,t=((t+=((e=((e+=((r=this.h3)^t&(n^r))+o[0]-680876936)<<7|e>>>25)+t|0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+o[1]-389564586)<<12|r>>>20)+e|0)&(e^t))+o[2]+606105819)<<17|n>>>15)+r|0)&(r^e))+o[3]-1044525330)<<22|t>>>10)+n|0),t=((t+=((e=((e+=(r^t&(n^r))+o[4]-176418897)<<7|e>>>25)+t|0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+o[5]+1200080426)<<12|r>>>20)+e|0)&(e^t))+o[6]-1473231341)<<17|n>>>15)+r|0)&(r^e))+o[7]-45705983)<<22|t>>>10)+n|0,t=((t+=((e=((e+=(r^t&(n^r))+o[8]+1770035416)<<7|e>>>25)+t|0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+o[9]-1958414417)<<12|r>>>20)+e|0)&(e^t))+o[10]-42063)<<17|n>>>15)+r|0)&(r^e))+o[11]-1990404162)<<22|t>>>10)+n|0,t=((t+=((e=((e+=(r^t&(n^r))+o[12]+1804603682)<<7|e>>>25)+t|0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+o[13]-40341101)<<12|r>>>20)+e|0)&(e^t))+o[14]-1502002290)<<17|n>>>15)+r|0)&(r^e))+o[15]+1236535329)<<22|t>>>10)+n|0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+o[1]-165796510)<<5|e>>>27)+t|0)^t))+o[6]-1069501632)<<9|r>>>23)+e|0)^e&((n=((n+=(e^t&(r^e))+o[11]+643717713)<<14|n>>>18)+r|0)^r))+o[0]-373897302)<<20|t>>>12)+n|0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+o[5]-701558691)<<5|e>>>27)+t|0)^t))+o[10]+38016083)<<9|r>>>23)+e|0)^e&((n=((n+=(e^t&(r^e))+o[15]-660478335)<<14|n>>>18)+r|0)^r))+o[4]-405537848)<<20|t>>>12)+n|0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+o[9]+568446438)<<5|e>>>27)+t|0)^t))+o[14]-1019803690)<<9|r>>>23)+e|0)^e&((n=((n+=(e^t&(r^e))+o[3]-187363961)<<14|n>>>18)+r|0)^r))+o[8]+1163531501)<<20|t>>>12)+n|0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+o[13]-1444681467)<<5|e>>>27)+t|0)^t))+o[2]-51403784)<<9|r>>>23)+e|0)^e&((n=((n+=(e^t&(r^e))+o[7]+1735328473)<<14|n>>>18)+r|0)^r))+o[12]-1926607734)<<20|t>>>12)+n|0,t=((t+=((s=(r=((r+=((i=t^n)^(e=((e+=(i^r)+o[5]-378558)<<4|e>>>28)+t|0))+o[8]-2022574463)<<11|r>>>21)+e|0)^e)^(n=((n+=(s^t)+o[11]+1839030562)<<16|n>>>16)+r|0))+o[14]-35309556)<<23|t>>>9)+n|0,t=((t+=((s=(r=((r+=((i=t^n)^(e=((e+=(i^r)+o[1]-1530992060)<<4|e>>>28)+t|0))+o[4]+1272893353)<<11|r>>>21)+e|0)^e)^(n=((n+=(s^t)+o[7]-155497632)<<16|n>>>16)+r|0))+o[10]-1094730640)<<23|t>>>9)+n|0,t=((t+=((s=(r=((r+=((i=t^n)^(e=((e+=(i^r)+o[13]+681279174)<<4|e>>>28)+t|0))+o[0]-358537222)<<11|r>>>21)+e|0)^e)^(n=((n+=(s^t)+o[3]-722521979)<<16|n>>>16)+r|0))+o[6]+76029189)<<23|t>>>9)+n|0,t=((t+=((s=(r=((r+=((i=t^n)^(e=((e+=(i^r)+o[9]-640364487)<<4|e>>>28)+t|0))+o[12]-421815835)<<11|r>>>21)+e|0)^e)^(n=((n+=(s^t)+o[15]+530742520)<<16|n>>>16)+r|0))+o[2]-995338651)<<23|t>>>9)+n|0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+o[0]-198630844)<<6|e>>>26)+t|0)|~n))+o[7]+1126891415)<<10|r>>>22)+e|0)^((n=((n+=(e^(r|~t))+o[14]-1416354905)<<15|n>>>17)+r|0)|~e))+o[5]-57434055)<<21|t>>>11)+n|0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+o[12]+1700485571)<<6|e>>>26)+t|0)|~n))+o[3]-1894986606)<<10|r>>>22)+e|0)^((n=((n+=(e^(r|~t))+o[10]-1051523)<<15|n>>>17)+r|0)|~e))+o[1]-2054922799)<<21|t>>>11)+n|0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+o[8]+1873313359)<<6|e>>>26)+t|0)|~n))+o[15]-30611744)<<10|r>>>22)+e|0)^((n=((n+=(e^(r|~t))+o[6]-1560198380)<<15|n>>>17)+r|0)|~e))+o[13]+1309151649)<<21|t>>>11)+n|0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+o[4]-145523070)<<6|e>>>26)+t|0)|~n))+o[11]-1120210379)<<10|r>>>22)+e|0)^((n=((n+=(e^(r|~t))+o[2]+718787259)<<15|n>>>17)+r|0)|~e))+o[9]-343485551)<<21|t>>>11)+n|0,this.first?(this.h0=e+1732584193|0,this.h1=t-271733879|0,this.h2=n-1732584194|0,this.h3=r+271733878|0,this.first=!1):(this.h0=this.h0+e|0,this.h1=this.h1+t|0,this.h2=this.h2+n|0,this.h3=this.h3+r|0)},Md5.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3;return HEX_CHARS[e>>4&15]+HEX_CHARS[15&e]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[15&t]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[15&n]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[15&r]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3;return[255&e,e>>8&255,e>>16&255,e>>24&255,255&t,t>>8&255,t>>16&255,t>>24&255,255&n,n>>8&255,n>>16&255,n>>24&255,255&r,r>>8&255,r>>16&255,r>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(16),t=new Uint32Array(e);return t[0]=this.h0,t[1]=this.h1,t[2]=this.h2,t[3]=this.h3,e},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var e,t,n,r="",i=this.array(),s=0;s<15;)e=i[s++],t=i[s++],n=i[s++],r+=BASE64_ENCODE_CHAR[e>>>2]+BASE64_ENCODE_CHAR[63&(e<<4|t>>>4)]+BASE64_ENCODE_CHAR[63&(t<<2|n>>>6)]+BASE64_ENCODE_CHAR[63&n];return e=i[s],r+=BASE64_ENCODE_CHAR[e>>>2]+BASE64_ENCODE_CHAR[e<<4&63]+"=="};var exports=createMethod();COMMON_JS?module.exports=exports:(root.md5=exports,AMD&&(__WEBPACK_AMD_DEFINE_RESULT__=function(){return exports}.call(exports,__webpack_require__,exports,module),void 0===__WEBPACK_AMD_DEFINE_RESULT__||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)))})()}).call(this,__webpack_require__("./node_modules/process/browser.js"),__webpack_require__("./node_modules/webpack/buildin/global.js"))},"./node_modules/node-libs-browser/node_modules/buffer/index.js":function(e,t,n){"use strict";(function(e){var r=n("./node_modules/base64-js/index.js"),i=n("./node_modules/ieee754/index.js"),s=n("./node_modules/node-libs-browser/node_modules/isarray/index.js");function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return h(this,e)}return l(this,e,t,n)}function l(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=d(e,t),e}(e,t,n,r):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|f(t,n),i=(e=a(e,r)).write(t,n);return i!==r&&(e=e.slice(0,i)),e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|p(t.length);return 0===(e=a(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?a(e,0):d(e,t);if("Buffer"===t.type&&s(t.data))return d(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function h(e,t){if(u(t),e=a(e,t<0?0:0|p(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function d(e,t){var n=t.length<0?0:0|p(t.length);e=a(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function p(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function f(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return G(e).length;default:if(r)return z(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return O(this,t,n);case"ascii":return N(this,t,n);case"latin1":case"binary":return R(this,t,n);case"base64":return k(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,i);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,i){var s,o=1,a=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,n/=2}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(s=n;s<a;s++)if(l(e,s)===l(t,-1===u?0:s-u)){if(-1===u&&(u=s),s-u+1===c)return u*o}else-1!==u&&(s-=s-u),u=-1}else for(n+c>a&&(n=a-c),s=n;s>=0;s--){for(var h=!0,d=0;d<c;d++)if(l(e,s+d)!==l(t,d)){h=!1;break}if(h)return s}return-1}function E(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var o=0;o<r;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[n+o]=a}return o}function T(e,t,n,r){return V(z(t,e.length-n),e,n,r)}function v(e,t,n,r){return V(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function A(e,t,n,r){return v(e,t,n,r)}function w(e,t,n,r){return V(G(t),e,n,r)}function S(e,t,n,r){return V(function(e,t){for(var n,r,i,s=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,i=n%256,s.push(i),s.push(r);return s}(t,e.length-n),e,n,r)}function k(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function O(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var s,o,a,c,l=e[i],u=null,h=l>239?4:l>223?3:l>191?2:1;if(i+h<=n)switch(h){case 1:l<128&&(u=l);break;case 2:128==(192&(s=e[i+1]))&&(c=(31&l)<<6|63&s)>127&&(u=c);break;case 3:s=e[i+1],o=e[i+2],128==(192&s)&&128==(192&o)&&(c=(15&l)<<12|(63&s)<<6|63&o)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:s=e[i+1],o=e[i+2],a=e[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(c=(15&l)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&c<1114112&&(u=c)}null===u?(u=65533,h=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=h}return function(e){var t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=I));return n}(r)}t.Buffer=c,t.SlowBuffer=function(e){return+e!=e&&(e=0),c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=o(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return l(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,r){return u(t),t<=0?a(e,t):void 0!==n?"string"==typeof r?a(e,t).fill(n,r):a(e,t).fill(n):a(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return h(null,e)},c.allocUnsafeSlow=function(e){return h(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,s=Math.min(n,r);i<s;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!s(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var o=e[n];if(!c.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},c.byteLength=f,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?O(this,0,e):m.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,r,i){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var s=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),a=Math.min(s,o),l=this.slice(r,i),u=e.slice(t,n),h=0;h<a;++h)if(l[h]!==u[h]){s=l[h],o=u[h];break}return s<o?-1:o<s?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return b(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return b(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return T(this,e,t,n);case"ascii":return v(this,e,t,n);case"latin1":case"binary":return A(this,e,t,n);case"base64":return w(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function N(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function R(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function x(e,t,n){var r,i=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>i)&&(n=i);for(var s="",o=t;o<n;++o)s+=(r=e[o])<16?"0"+r.toString(16):r.toString(16);return s}function M(e,t,n){for(var r=e.slice(t,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}function C(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function P(e,t,n,r,i,s){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<s)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function L(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-n,2);i<s;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function D(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-n,4);i<s;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function B(e,t,n,r,i,s){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function U(e,t,n,r,s){return s||B(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function F(e,t,n,r,s){return s||B(e,0,n,8),i.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var i=t-e;n=new c(i,void 0);for(var s=0;s<i;++s)n[s]=this[s+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},c.prototype.readUInt8=function(e,t){return t||C(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||C(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||C(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||C(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||C(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=t,i=1,s=this[e+--r];r>0&&(i*=256);)s+=this[e+--r]*i;return s>=(i*=128)&&(s-=Math.pow(2,8*t)),s},c.prototype.readInt8=function(e,t){return t||C(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||C(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||C(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||C(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||C(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||C(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||C(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||C(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||C(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||P(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,s=0;for(this[t]=255&e;++s<n&&(i*=256);)this[t+s]=e/i&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||P(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);P(this,e,t,n,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s<n&&(o*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/o|0)-a&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);P(this,e,t,n,i-1,-i)}var s=n-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o|0)-a&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return U(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return U(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return F(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return F(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,s=r-n;if(this===e&&n<t&&t<r)for(i=s-1;i>=0;--i)e[i+t]=this[i+n];else if(s<1e3||!c.TYPED_ARRAY_SUPPORT)for(i=0;i<s;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var s;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(s=t;s<n;++s)this[s]=e;else{var o=c.isBuffer(e)?e:z(new c(e,r).toString()),a=o.length;for(s=0;s<n-t;++s)this[s+t]=o[s%a]}return this};var j=/[^+\/0-9A-Za-z-_]/g;function z(e,t){var n;t=t||1/0;for(var r=e.length,i=null,s=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&s.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function G(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(j,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n("./node_modules/webpack/buildin/global.js"))},"./node_modules/node-libs-browser/node_modules/isarray/index.js":function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},"./node_modules/process/browser.js":function(e,t){var n,r,i=e.exports={};function s(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===s||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:s}catch(e){n=s}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var c,l=[],u=!1,h=-1;function d(){u&&c&&(u=!1,c.length?l=c.concat(l):h=-1,l.length&&p())}function p(){if(!u){var e=a(d);u=!0;for(var t=l.length;t;){for(c=l,l=[];++h<t;)c&&c[h].run();h=-1,t=l.length}c=null,u=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{return r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function m(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new f(e,t)),1!==l.length||u||a(p)},f.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=m,i.addListener=m,i.once=m,i.off=m,i.removeListener=m,i.removeAllListeners=m,i.emit=m,i.prependListener=m,i.prependOnceListener=m,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},"./node_modules/webpack/buildin/amd-options.js":function(e,t){(function(t){e.exports=t}).call(this,{})},"./node_modules/webpack/buildin/global.js":function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},'./node_modules/worker-loader/dist/cjs.js?{"inline":true,"fallback":true}!./src/FetchWorkerTool.worker.js':function(e,t,n){e.exports=function(){return n("./node_modules/worker-loader/dist/workers/InlineWorker.js")("/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./node_modules/babel-loader/lib/index.js?!./src/FetchWorkerTool.worker.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/babel-loader/lib/index.js?!./src/FetchWorkerTool.worker.js\":\n/*!*******************************************************************************!*\\\n !*** ./node_modules/babel-loader/lib??ref--4!./src/FetchWorkerTool.worker.js ***!\n \\*******************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-env worker */\n\nconst isNullResponse = __webpack_require__(/*! ./isNullResponse */ \"./src/isNullResponse.js\");\nconst saferFetch = __webpack_require__(/*! ./safer-fetch */ \"./src/safer-fetch.js\");\nconst complete = [];\nlet timeoutId = null;\nconst checkCompleted = () => {\n if (timeoutId) return;\n timeoutId = setTimeout(() => {\n timeoutId = null;\n if (complete.length) {\n // Send our chunk of completed requests and instruct postMessage to\n // transfer the buffers instead of copying them.\n postMessage(complete.slice(),\n // Instruct postMessage that these buffers in the sent message\n // should use their Transferable trait. After the postMessage\n // call the \"buffers\" will still be in complete if you looked,\n // but they will all be length 0 as the data they reference has\n // been sent to the window. This lets us send a lot of data\n // without the normal postMessage behaviour of making a copy of\n // all of the data for the window.\n complete.map(response => response.buffer).filter(Boolean));\n complete.length = 0;\n }\n });\n};\n\n/**\n * Receive a job from the parent and fetch the requested data.\n * @param {object} options.job A job id, url, and options descriptor to perform.\n */\nconst onMessage = _ref => {\n let {\n data: job\n } = _ref;\n saferFetch(job.url, job.options).then(result => {\n if (result.ok) return result.arrayBuffer();\n if (isNullResponse(result)) return null;\n return Promise.reject(result.status);\n }).then(buffer => complete.push({\n id: job.id,\n buffer\n })).catch(error => complete.push({\n id: job.id,\n error: error && error.message || \"Failed request: \".concat(job.url)\n })).then(checkCompleted);\n};\n\n// crossFetch means \"fetch\" is now always supported\npostMessage({\n support: {\n fetch: true\n }\n});\nself.addEventListener('message', onMessage);\n\n/***/ }),\n\n/***/ \"./node_modules/cross-fetch/dist/browser-ponyfill.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/cross-fetch/dist/browser-ponyfill.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n\n\n/***/ }),\n\n/***/ \"./src/isNullResponse.js\":\n/*!*******************************!*\\\n !*** ./src/isNullResponse.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * @param {Response} response the response from fetch()\n * @returns {boolean} true if the response is a \"null response\" where we successfully talked to the\n * source, but the source has no data for us.\n */\nconst isNullResponse = response =>\n// can't access, eg. due to expired/missing project token\nresponse.status === 403 ||\n// assets does not exist\n// assets.scratch.mit.edu also returns 503 for missing assets\nresponse.status === 404 || response.status === 503;\nmodule.exports = isNullResponse;\n\n/***/ }),\n\n/***/ \"./src/safer-fetch.js\":\n/*!****************************!*\\\n !*** ./src/safer-fetch.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable no-use-before-define */\n\nconst {\n scratchFetch\n} = __webpack_require__(/*! ./scratchFetch */ \"./src/scratchFetch.js\");\n\n// This throttles and retries scratchFetch() to mitigate the effect of random network errors and\n// random browser errors (especially in Chrome)\n\nlet currentFetches = 0;\nconst queue = [];\nconst sleep = ms => new Promise(resolve => setTimeout(resolve, ms));\nconst startNextFetch = _ref => {\n let [resolve, url, options] = _ref;\n let failedAttempts = 0;\n\n /**\n * @param {Response} result From fetch()\n */\n const done = result => {\n // In macOS WKWebView, requests to file:// URLs return status: 0 and ok: false when they succeed, so we'll\n // mess with the object so everyone that uses this realizes it succeeded.\n // If the requests failed (because the file didn't exist) then fetch() rejects instead.\n if (result.status === 0) {\n Object.defineProperty(result, 'ok', {\n value: true\n });\n Object.defineProperty(result, 'status', {\n value: 200\n });\n }\n currentFetches--;\n checkStartNextFetch();\n resolve(result);\n };\n const attemptToFetch = () => scratchFetch(url, options).then(done).catch(error => {\n // If fetch() errors, it means there was a network error of some sort.\n // This is worth retrying, especially as some browser will randomly fail requests\n // if we send too many at once (as we do).\n\n console.warn(\"Attempt to fetch \".concat(url, \" failed\"), error);\n if (failedAttempts < 2) {\n failedAttempts++;\n sleep((failedAttempts + Math.random() - 1) * 5000).then(attemptToFetch);\n return;\n }\n\n // The fetch() error is usually very generic, so we'll add enough information\n // to possibly be useful.\n done(Promise.reject(new Error(\"Storage request \".concat(url, \" failed: \").concat(error))));\n });\n attemptToFetch();\n};\nconst checkStartNextFetch = () => {\n if (currentFetches < 100 && queue.length > 0) {\n currentFetches++;\n startNextFetch(queue.shift());\n }\n};\nconst saferFetch = (url, options) => new Promise(resolve => {\n queue.push([resolve, url, options]);\n checkStartNextFetch();\n});\nmodule.exports = saferFetch;\n\n/***/ }),\n\n/***/ \"./src/scratchFetch.js\":\n/*!*****************************!*\\\n !*** ./src/scratchFetch.js ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nconst crossFetch = __webpack_require__(/*! cross-fetch */ \"./node_modules/cross-fetch/dist/browser-ponyfill.js\");\n\n/**\n * Metadata header names\n * @enum {string} The enum value is the name of the associated header.\n * @readonly\n */\nconst RequestMetadata = {\n /** The ID of the project associated with this request */\n ProjectId: 'X-Project-ID',\n /** The ID of the project run associated with this request */\n RunId: 'X-Run-ID'\n};\n\n/**\n * Metadata headers for requests\n * @type {Headers}\n */\nconst metadata = new crossFetch.Headers();\n\n/**\n * Check if there is any metadata to apply.\n * @returns {boolean} true if `metadata` has contents, or false if it is empty.\n */\nconst hasMetadata = () => {\n /* global self */\n const searchParams = typeof self !== 'undefined' && self && self.location && self.location.search && self.location.search.split(/[?&]/) || [];\n if (!searchParams.includes('scratchMetadata=1')) {\n // for now, disable this feature unless scratchMetadata=1\n // TODO: remove this check once we're sure the feature works correctly in production\n return false;\n }\n for (const _ of metadata) {\n return true;\n }\n return false;\n};\n\n/**\n * Non-destructively merge any metadata state (if any) with the provided options object (if any).\n * If there is metadata state but no options object is provided, make a new object.\n * If there is no metadata state, return the provided options parameter without modification.\n * If there is metadata and an options object is provided, modify a copy and return it.\n * Headers in the provided options object may override headers generated from metadata state.\n * @param {RequestInit} [options] The initial request options. May be null or undefined.\n * @returns {RequestInit|undefined} the provided options parameter without modification, or a new options object.\n */\nconst applyMetadata = options => {\n if (hasMetadata()) {\n const augmentedOptions = Object.assign({}, options);\n augmentedOptions.headers = new crossFetch.Headers(metadata);\n if (options && options.headers) {\n // the Fetch spec says options.headers could be:\n // \"A Headers object, an object literal, or an array of two-item arrays to set request's headers.\"\n // turn it into a Headers object to be sure of how to interact with it\n const overrideHeaders = options.headers instanceof crossFetch.Headers ? options.headers : new crossFetch.Headers(options.headers);\n for (const [name, value] of overrideHeaders.entries()) {\n augmentedOptions.headers.set(name, value);\n }\n }\n return augmentedOptions;\n }\n return options;\n};\n\n/**\n * Make a network request.\n * This is a wrapper for the global fetch method, adding some Scratch-specific functionality.\n * @param {RequestInfo|URL} resource The resource to fetch.\n * @param {RequestInit} options Optional object containing custom settings for this request.\n * @see {@link https://developer.mozilla.org/docs/Web/API/fetch} for more about the fetch API.\n * @returns {Promise<Response>} A promise for the response to the request.\n */\nconst scratchFetch = (resource, options) => {\n const augmentedOptions = applyMetadata(options);\n return crossFetch.fetch(resource, augmentedOptions);\n};\n\n/**\n * Set the value of a named request metadata item.\n * Setting the value to `null` or `undefined` will NOT remove the item.\n * Use `unsetMetadata` for that.\n * @param {RequestMetadata} name The name of the metadata item to set.\n * @param {any} value The value to set (will be converted to a string).\n */\nconst setMetadata = (name, value) => {\n metadata.set(name, value);\n};\n\n/**\n * Remove a named request metadata item.\n * @param {RequestMetadata} name The name of the metadata item to remove.\n */\nconst unsetMetadata = name => {\n metadata.delete(name);\n};\nmodule.exports = {\n default: scratchFetch,\n Headers: crossFetch.Headers,\n RequestMetadata,\n applyMetadata,\n scratchFetch,\n setMetadata,\n unsetMetadata\n};\nif (true) {\n /**\n * Retrieve a named request metadata item.\n * Only for use in tests.\n * @param {RequestMetadata} name The name of the metadata item to retrieve.\n * @returns {any} value The value of the metadata item, or `undefined` if it was not found.\n */\n const getMetadata = name => metadata.get(name);\n module.exports.getMetadata = getMetadata;\n}\n\n/***/ })\n\n/******/ });\n//# sourceMappingURL=3385fc4f5b394e2b375c.worker.js.map",n.p+"3385fc4f5b394e2b375c.worker.js")}},"./node_modules/worker-loader/dist/workers/InlineWorker.js":function(e,t,n){"use strict";var r=window.URL||window.webkitURL;e.exports=function(e,t){try{try{var n;try{(n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder)).append(e),n=n.getBlob()}catch(t){n=new Blob([e])}return new Worker(r.createObjectURL(n))}catch(t){return new Worker("data:application/javascript,"+encodeURIComponent(e))}}catch(e){if(!t)throw Error("Inline worker is not supported");return new Worker(t)}}},"./src/Asset.js":function(e,t,n){const r=n("./node_modules/js-md5/src/md5.js");let i=null;const s={},o={},a="function"==typeof FinalizationRegistry?new FinalizationRegistry((e=>{const t=o[e];1===t?(delete o[e],delete s[e]):o[e]=t-1})):null,c=a?e=>{const t=e.assetId,n=o[t]||0;o[t]=n+1,a.register(e,t)}:()=>{};e.exports=class{constructor(e,t,n,r,i){this.assetType=e,this.assetId=t,this.setData(r,n||e.runtimeFormat,i),this.dependencies=[],c(this)}setData(e,t,n){if(e&&!t)throw new Error("Data provided without specifying its format");this.dataFormat=t,this.data=e,n&&(this.assetId=r(e)),this.clean=!n}decodeText(){return(new TextDecoder).decode(this.data)}encodeTextData(e,t,n){const r=new TextEncoder;this.setData(r.encode(e),t,n)}encodeDataURI(e){return e=e||this.assetType.contentType,"data:".concat(e,";base64,").concat(((e,t)=>{if(!Object.prototype.hasOwnProperty.call(s,e))if("undefined"==typeof btoa){const r=n("./node_modules/base64-js/index.js");s[e]=r.fromByteArray(t)}else{if(null===i){i=new Array(256);for(let e=0;e<256;e++)i[e]=String.fromCharCode(e)}const{length:n}=t;let r="";for(let e=0,s=0;e<n;e=s){s=Math.min(s+32766,n);let o="";for(let n=e;n<s;n+=1)o+=i[t[n]];r+=btoa(o)}s[e]=r}return s[e]})(this.assetId,this.data))}}},"./src/AssetType.js":function(e,t,n){const r=n("./src/DataFormat.js"),i={ImageBitmap:{contentType:"image/png",name:"ImageBitmap",runtimeFormat:r.PNG,immutable:!0},ImageVector:{contentType:"image/svg+xml",name:"ImageVector",runtimeFormat:r.SVG,immutable:!0},Project:{contentType:"application/json",name:"Project",runtimeFormat:r.JSON,immutable:!1},Sound:{contentType:"audio/x-wav",name:"Sound",runtimeFormat:r.WAV,immutable:!0},Sprite:{contentType:"application/json",name:"Sprite",runtimeFormat:r.JSON,immutable:!0},Font:{contentType:"font/ttf",name:"Font",runtimeFormat:r.TTF,immutable:!0}};e.exports=i},"./src/BuiltinHelper.js":function(e,t,n){(function(t){const r=n("./node_modules/js-md5/src/md5.js"),i=n("./src/Asset.js"),s=n("./src/AssetType.js"),o=n("./src/DataFormat.js"),a=n("./src/Helper.js"),c=[{type:s.ImageBitmap,format:o.PNG,id:null,data:t.from(n("./src/builtins/defaultBitmap.png"))},{type:s.Sound,format:o.WAV,id:null,data:t.from(n("./src/builtins/defaultSound.wav"))},{type:s.ImageVector,format:o.SVG,id:null,data:t.from(n("./src/builtins/defaultVector.svg"))}],l=c.concat([]);e.exports=class extends a{constructor(e){super(e),this.assets={},l.forEach((e=>{e.id=this._store(e.type,e.format,e.data,e.id)}))}registerDefaultAssets(){const e=c.length;for(let t=0;t<e;++t){const e=c[t];this.parent.setDefaultAssetId(e.type,e.id)}}get(e){let t=null;if(Object.prototype.hasOwnProperty.call(this.assets,e)){const n=this.assets[e];t=new i(n.type,n.id,n.format,n.data)}return t}cache(e,t,n,r){return this.store(e,t,n,r)}store(e,t,n,r){return this._store(e,t,n,r)}_store(e,t,n,i){if(!t)throw new Error("Data cached without specifying its format");if(""!==i&&null!=i){if(Object.prototype.hasOwnProperty.call(this.assets,i)&&e.immutable)return i}else{if(!e.immutable)throw new Error("Tried to cache data without an id");i=r(n)}return this.assets[i]={type:e,format:t,id:i,data:n},i}load(e,t){return this.get(t)?Promise.resolve(this.get(t)):null}}}).call(this,n("./node_modules/node-libs-browser/node_modules/buffer/index.js").Buffer)},"./src/DataFormat.js":function(e,t){e.exports={JPG:"jpg",JSON:"json",MP3:"mp3",PNG:"png",SB2:"sb2",SB3:"sb3",SVG:"svg",WAV:"wav",TTF:"ttf",OTF:"otf",WOFF:"woff",WOFF2:"woff2"}},"./src/FetchTool.js":function(e,t,n){var r=n("./node_modules/@babel/runtime/helpers/objectWithoutProperties.js");const i=["url"],s=["url","withCredentials"],{scratchFetch:o}=n("./src/scratchFetch.js"),a=n("./src/safer-fetch.js"),c=n("./src/isNullResponse.js");e.exports=class{get isGetSupported(){return!0}get(e){let{url:t}=e,n=r(e,i);return a(t,Object.assign({method:"GET"},n)).then((e=>e.ok?e.arrayBuffer().then((e=>new Uint8Array(e))):c(e)?null:Promise.reject(e.status)))}get isSendSupported(){return!0}send(e){let{url:t,withCredentials:n=!1}=e,i=r(e,s);return o(t,Object.assign({credentials:n?"include":"omit"},i)).then((e=>e.ok?e.text():Promise.reject(e.status)))}}},"./src/FetchWorkerTool.js":function(e,t,n){var r=n("./node_modules/@babel/runtime/helpers/objectWithoutProperties.js");const i=["url"],{Headers:s,applyMetadata:o}=n("./src/scratchFetch.js");class a{constructor(){this._workerSupport={fetch:"undefined"!=typeof fetch},this._supportError=null,this.worker=null,this.jobs={};try{if(this.isGetSupported){const e=new(n('./node_modules/worker-loader/dist/cjs.js?{"inline":true,"fallback":true}!./src/FetchWorkerTool.worker.js'));e.addEventListener("message",(e=>{let{data:t}=e;if(t.support)this._workerSupport=t.support;else for(const e of t)this.jobs[e.id]&&(e.error?this.jobs[e.id].reject(e.error):this.jobs[e.id].resolve(e.buffer),delete this.jobs[e.id])})),this.worker=e}}catch(e){this._supportError=e}}get isGetSupported(){return"undefined"!=typeof Worker&&this._workerSupport.fetch&&!this._supportError}get(e){let{url:t}=e,n=r(e,i);return new Promise(((e,r)=>{const i=Math.random().toString(16).substring(2),a=o(Object.assign({method:"GET"},n));a&&a.headers instanceof s&&(a.headers=Array.from(a.headers.entries())),this.worker.postMessage({id:i,url:t,options:a}),this.jobs[i]={id:i,resolve:e,reject:r}})).then((e=>e?new Uint8Array(e):null))}get isSendSupported(){return!1}send(){throw new Error("Not implemented.")}static get instance(){return this._instance||(this._instance=new a),this._instance}}e.exports=class{constructor(){this.inner=a.instance}get isGetSupported(){return this.inner.isGetSupported}get(e){return this.inner.get(e)}get isSendSupported(){return!1}send(){throw new Error("Not implemented.")}}},"./src/Helper.js":function(e,t){e.exports=class{constructor(e){this.parent=e}load(e,t,n){return Promise.reject(new Error("No asset of type ".concat(e," for ID ").concat(t," with format ").concat(n)))}}},"./src/ProxyTool.js":function(e,t,n){const r=n("./src/FetchWorkerTool.js"),i=n("./src/FetchTool.js");class s{constructor(){let e;e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:s.TOOL_FILTER.ALL)===s.TOOL_FILTER.READY?[new i]:[new r,new i],this.tools=e}get isGetSupported(){return this.tools.some((e=>e.isGetSupported))}get(e){let t=0;const n=r=>{const i=this.tools[t++];if(!i)throw r;return i.isGetSupported?i.get(e).catch(n):n(r)};return n()}get isSendSupported(){return this.tools.some((e=>e.isSendSupported))}send(e){let t=0;const n=r=>{const i=this.tools[t++];if(!i)throw r;return i.isSendSupported?i.send(e).catch(n):n(r)};return n()}}s.TOOL_FILTER={ALL:"all",READY:"ready"},e.exports=s},"./src/ScratchStorage.js":function(e,t,n){const r=n("./src/BuiltinHelper.js"),i=n("./src/WebHelper.js"),s=n("./src/Asset.js"),o=n("./src/AssetType.js"),a=n("./src/DataFormat.js"),c=n("./src/scratchFetch.js");e.exports=class{constructor(){this.defaultAssetId={},this.builtinHelper=new r(this),this.webHelper=new i(this),this.builtinHelper.registerDefaultAssets(this),this._helpers=[{helper:this.builtinHelper,priority:100},{helper:this.webHelper,priority:-100}]}get Asset(){return s}get AssetType(){return o}get DataFormat(){return a}get scratchFetch(){return c}static get Asset(){return s}static get AssetType(){return o}addHelper(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._helpers.push({helper:e,priority:t}),this._helpers.sort(((e,t)=>t.priority-e.priority))}get(e){return this.builtinHelper.get(e)}cache(e,t,n,r){return this.builtinHelper._store(e,t,n,r)}createAsset(e,t,n,r,i){if(!t)throw new Error("Tried to create asset without a dataFormat");return new s(e,r,t,n,i)}addWebStore(e,t,n,r){this.webHelper.addStore(e,t,n,r)}addWebSource(e,t){this.addWebStore(e,t)}getDefaultAssetId(e){if(Object.prototype.hasOwnProperty.call(this.defaultAssetId,e.name))return this.defaultAssetId[e.name]}setDefaultAssetId(e,t){this.defaultAssetId[e.name]=t}load(e,t,n){const r=this._helpers.map((e=>e.helper)),i=[];n=n||e.runtimeFormat;let s,o=0;const a=c=>{if(c&&i.push(c),s=r[o++],s){const r=s.load(e,t,n);return null===r?a():r.catch(a)}return i.length>0?Promise.reject(i):Promise.resolve(null)};return a()}store(e,t,n,r){return t=t||e.runtimeFormat,new Promise(((i,s)=>this.webHelper.store(e,t,n,r).then((r=>(this.builtinHelper._store(e,t,n,r.id),i(r)))).catch((e=>s(e)))))}}},"./src/WebHelper.js":function(e,t,n){const r=n("./src/Asset.js"),i=n("./src/Helper.js"),s=n("./src/ProxyTool.js"),o=e=>"string"==typeof e?{url:e}:e;e.exports=class extends i{constructor(e){super(e),this.stores=[],this.assetTool=new s,this.projectTool=new s(s.TOOL_FILTER.READY)}addSource(e,t){this.addStore(e,t)}addStore(e,t,n,r){this.stores.push({types:e.map((e=>e.name)),get:t,create:n,update:r})}load(e,t,n){const i=[],s=this.stores.slice().filter((t=>t.types.indexOf(e.name)>=0)),a=new r(e,t,n);let c=this.assetTool;"Project"===e.name&&(c=this.projectTool);let l=0;const u=e=>{e&&i.push(e);const t=s[l++],r=t&&t.get;if(r){const e=o(r(a));return!1===e?u():c.get(e).then((e=>e?(a.setData(e,n),a):u())).catch(u)}return i.length>0?Promise.reject(i):Promise.resolve(null)};return u()}store(e,t,n,i){const s=new r(e,i,t),a=""===i||null==i,c=this.stores.filter((t=>-1!==t.types.indexOf(e.name)&&(a&&t.create||t.update)))[0],l=a?"post":"put";if(!c)return Promise.reject(new Error("No appropriate stores"));let u=this.assetTool;"Project"===e.name&&(u=this.projectTool);const h=o(a?c.create(s):c.update(s)),d=Object.assign({body:n,method:l},h);return u.send(d).then((e=>{if("string"==typeof e)try{e=JSON.parse(e)}catch(t){return e}return Object.assign({id:e["content-name"]||i},e)}))}}},"./src/builtins/defaultBitmap.png":function(e,t,n){e.exports=n("./node_modules/arraybuffer-loader/lib/to-array-buffer.js")("iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAAAAADmVT4XAAADZElEQVR42u3a70vbQBgH8O/7vOibvsmbFUEEWUGGUhQ25nDuhSKIUFDxlYi0SAd94atRmFiHCH2x4W8iiNtwowXRgd1QipJYY3N/1F4kTQ6XLKS9yyHcvWyO8MnT5y53Tw5EcIMESIAESIAESIAESIAEPFVAq/6l8G4oAQCp4aniwbUVJ6BVzafwqKXy1VZMgNb+CHzbyK4ZB+Bi0nnk0VyhsDiSoAmvvnMHmGUVAF6UG+0ffsxRhsRHky/AyCsAUpumX0wAAIs6T4CxDADDtcdZsal6gjmdH8AsAEC6+s8Fa48SFExeAKusAEju+V367AmUCi9ANQ0AU3pwcOw2cMEH0FwAAKz5X228pRLR5AI4TgIAtIDL24oLUE94AB6W7LsH/cONN14Ilh44AOqD9s2LQR1KHiB9zgGgOSGeuA3ocPrME1Q4ANaceyePAzrcjHmAZYs9IBeW4/fzHiAwTCwAgTle9ACZK44ALDT9e6x7gL4aT0BQCHb4AqgA5/1TTOMLoJ7vZSMM0H/GHnCeDnu+CrU8vGYPcN5FADBYD0vCaYPDy+i0p337GSMsS1Z4vA3t9QgAZTt0IuIxFRPSKicAQHlvhk3FXF5GhBByMa8qo/sBO6BarwuYbYrYnFKDYEvE7phKgcxvEQBqnvhgiQCUOgoAO4C3JOS3L/hv23UXxVldBECfcueAqpAa0WGy/QeULREAY6aTXRFDgBuA13+ElOncAERMAGaA9hBQD4gQQHsIRE1AZoD2xrgQS5nOZyHgFKmWDSIG4GRAVidiAE4GRB6AzAB2AKIPQFaA5myHA5AV4ESNugZhC7BLR50lIBPAebrzBGQCKAFQNSIMcDvRTQIwAHxNApM3RBygGK0uyhxwOwGsPAgEnPWj5ycRCNiJtBHlAChGKQVwANzPY+CXSMDNWISiLA9AfRA5IhJQ68UnoQAt+AtOPIBKhJosF8B6UM0yLkAxQk2WCyDX9SiUh1gkQAIkoCuAvjGuquMbuijAtwG7MPL8yBICOHSPk3W8Ne8KcEUdmBi6FADYos+QleIH0N/ogOxd7AD6uAS6WRU8WcBdlgZMG/EnYUlwEpLLoQ4PjzGbiA5UsRMRsbQ+5ziDJmYqJuR6NaMomdXuFuZyPSABEiABEiABEiABEiAc8Bd6VyvCEKGqcQAAAABJRU5ErkJggg==")},"./src/builtins/defaultSound.wav":function(e,t,n){e.exports=n("./node_modules/arraybuffer-loader/lib/to-array-buffer.js")("UklGRiYAAABXQVZFZm10IBAAAAABAAEAIlYAAESsAAACABAAZGF0YQIAAAAAAA==")},"./src/builtins/defaultVector.svg":function(e,t,n){e.exports=n("./node_modules/arraybuffer-loader/lib/to-array-buffer.js")("PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8Zz4KICA8cmVjdCBmaWxsPSIjQ0NDIiBoZWlnaHQ9IjEyOCIgd2lkdGg9IjEyOCIvPgogIDx0ZXh0IGZpbGw9ImJsYWNrIiB5PSIxMDciIHg9IjM1LjUiIGZvbnQtc2l6ZT0iMTI4Ij4/PC90ZXh0PgogPC9nPgo8L3N2Zz4K")},"./src/index.js":function(e,t,n){const r=n("./src/ScratchStorage.js");e.exports=r},"./src/isNullResponse.js":function(e,t){e.exports=e=>403===e.status||404===e.status||503===e.status},"./src/safer-fetch.js":function(e,t,n){const{scratchFetch:r}=n("./src/scratchFetch.js");let i=0;const s=[],o=e=>{let[t,n,s]=e,o=0;const c=e=>{0===e.status&&(Object.defineProperty(e,"ok",{value:!0}),Object.defineProperty(e,"status",{value:200})),i--,a(),t(e)},l=()=>r(n,s).then(c).catch((e=>{if(console.warn("Attempt to fetch ".concat(n," failed"),e),o<2)return o++,void(t=5e3*(o+Math.random()-1),new Promise((e=>setTimeout(e,t)))).then(l);var t;c(Promise.reject(new Error("Storage request ".concat(n," failed: ").concat(e))))}));l()},a=()=>{i<100&&s.length>0&&(i++,o(s.shift()))};e.exports=(e,t)=>new Promise((n=>{s.push([n,e,t]),a()}))},"./src/scratchFetch.js":function(e,t,n){const r=n("./node_modules/cross-fetch/dist/browser-ponyfill.js"),i=new r.Headers,s=e=>{if((()=>{if(!("undefined"!=typeof self&&self&&self.location&&self.location.search&&self.location.search.split(/[?&]/)||[]).includes("scratchMetadata=1"))return!1;for(const e of i)return!0;return!1})()){const t=Object.assign({},e);if(t.headers=new r.Headers(i),e&&e.headers){const n=e.headers instanceof r.Headers?e.headers:new r.Headers(e.headers);for(const[e,r]of n.entries())t.headers.set(e,r)}return t}return e},o=(e,t)=>{const n=s(t);return r.fetch(e,n)};e.exports={default:o,Headers:r.Headers,RequestMetadata:{ProjectId:"X-Project-ID",RunId:"X-Run-ID"},applyMetadata:s,scratchFetch:o,setMetadata:(e,t)=>{i.set(e,t)},unsetMetadata:e=>{i.delete(e)}};{const t=e=>i.get(e);e.exports.getMetadata=t}}})},module.exports=factory()},function(e,t,n){const r=n(287);e.exports=r},function(e,t,n){const r=n(52);e.exports=class extends r{get DEFAULT_VALUE(){return 100}get name(){return"volume"}initialize(){this.inputNode=this.audioEngine.audioContext.createGain(),this.outputNode=this.inputNode,this.initialized=!0}_set(e){this.value=e;const{gain:t}=this.outputNode,{currentTime:n,DECAY_DURATION:r}=this.audioEngine;t.linearRampToValueAtTime(e/100,n+r)}dispose(){this.initialized&&(this.outputNode.disconnect(),this.inputNode=null,this.outputNode=null,this.target=null,this.initialized=!1)}}},function(e,t,n){"use strict";var r,i=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},s=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),o=[];function a(e){for(var t=-1,n=0;n<o.length;n++)if(o[n].identifier===e){t=n;break}return t}function c(e,t){for(var n={},r=[],i=0;i<e.length;i++){var s=e[i],c=t.base?s[0]+t.base:s[0],l=n[c]||0,u="".concat(c," ").concat(l);n[c]=l+1;var h=a(u),d={css:s[1],media:s[2],sourceMap:s[3]};-1!==h?(o[h].references++,o[h].updater(d)):o.push({identifier:u,updater:g(d,t),references:1}),r.push(u)}return r}function l(e){var t=document.createElement("style"),r=e.attributes||{};if(void 0===r.nonce){var i=n.nc;i&&(r.nonce=i)}if(Object.keys(r).forEach((function(e){t.setAttribute(e,r[e])})),"function"==typeof e.insert)e.insert(t);else{var o=s(e.insert||"head");if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}return t}var u,h=(u=[],function(e,t){return u[e]=t,u.filter(Boolean).join("\n")});function d(e,t,n,r){var i=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(e.styleSheet)e.styleSheet.cssText=h(t,i);else{var s=document.createTextNode(i),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(s,o[t]):e.appendChild(s)}}function p(e,t,n){var r=n.css,i=n.media,s=n.sourceMap;if(i?e.setAttribute("media",i):e.removeAttribute("media"),s&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}var f=null,m=0;function g(e,t){var n,r,i;if(t.singleton){var s=m++;n=f||(f=l(t)),r=d.bind(null,n,s,!1),i=d.bind(null,n,s,!0)}else n=l(t),r=p.bind(null,n,t),i=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)};return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else i()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=i());var n=c(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var r=0;r<n.length;r++){var i=a(n[r]);o[i].references--}for(var s=c(e,t),l=0;l<n.length;l++){var u=a(n[l]);0===o[u].references&&(o[u].updater(),o.splice(u,1))}n=s}}}},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var i={};if(r)for(var s=0;s<this.length;s++){var o=this[s][0];null!=o&&(i[o]=!0)}for(var a=0;a<e.length;a++){var c=[].concat(e[a]);r&&i[c[0]]||(n&&(c[2]?c[2]="".concat(n," and ").concat(c[2]):c[2]=n),t.push(c))}},t}},function(e,t,n){"use strict";e.exports=function(e,t){return t||(t={}),"string"!=typeof(e=e&&e.__esModule?e.default:e)?e:(/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e)}},function(e,t,n){"use strict";t.a="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIwLjc3MzU5NSA1LjcyODA1MTlhMS4zMDc3Nzc0IDEuMzA3Nzc3NCAwIDAgMC0xLjg1NzA0MyAwTDkuMTczNjEwNSAxNS40ODQwNzFsLTQuMDkzMzQzMi00LjEwNjQyYTEuMzM2NDQ2OCAxLjMzNjQ0NjggMCAxIDAtMS44NTcwNDM5IDEuOTIyNDMybDUuMDIxODY1MSA1LjAyMTg2NmExLjMwNzc3NzQgMS4zMDc3Nzc0IDAgMCAwIDEuODU3MDQ0NSAwTDIwLjc3MzU5NSA3LjY1MDQ4NDdhMS4zMDc3Nzc0IDEuMzA3Nzc3NCAwIDAgMCAwLTEuOTIyNDMyOHoiIGZpbGw9IiNmZmYiLz48L3N2Zz4="},function(e){e.exports=JSON.parse('{"var-x":"x position","var-y":"y position","var-direction":"direction","var-username":"username","var-costume-number":"costume number","var-costume-name":"costume name","var-backdrop-number":"backdrop number","var-backdrop-name":"backdrop name","var-size":"size","var-answer":"answer","var-mousedown":"mouse down?","var-mousex":"mouse x","var-mousey":"mouse y","var-loudness":"loudness","var-timer":"timer","var-dayssince2000":"days since 2000","var-volume":"volume","var-year":"year","var-month":"month","var-date":"date","var-day-of-week":"day of week","var-hour":"hour","var-minute":"minute","var-second":"second","list-empty":"(empty)","list-length":"length {n}","list-import":"import","list-export":"export"}')},function(e,t,n){"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){for(var t,n=c(e),r=n[0],o=n[1],a=new s(function(e,t,n){return 3*(t+n)/4-n}(0,r,o)),l=0,u=o>0?r-4:r,h=0;h<u;h+=4)t=i[e.charCodeAt(h)]<<18|i[e.charCodeAt(h+1)]<<12|i[e.charCodeAt(h+2)]<<6|i[e.charCodeAt(h+3)],a[l++]=t>>16&255,a[l++]=t>>8&255,a[l++]=255&t;2===o&&(t=i[e.charCodeAt(h)]<<2|i[e.charCodeAt(h+1)]>>4,a[l++]=255&t);1===o&&(t=i[e.charCodeAt(h)]<<10|i[e.charCodeAt(h+1)]<<4|i[e.charCodeAt(h+2)]>>2,a[l++]=t>>8&255,a[l++]=255&t);return a},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,s=[],o=16383,a=0,c=n-i;a<c;a+=o)s.push(l(e,a,a+o>c?c:a+o));1===i?(t=e[n-1],s.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],s.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return s.join("")};for(var r=[],i=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0;a<64;++a)r[a]=o[a],i[o.charCodeAt(a)]=a;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var i,s,o=[],a=t;a<n;a+=3)i=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(r[(s=i)>>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,i){var s,o,a=8*i-r-1,c=(1<<a)-1,l=c>>1,u=-7,h=n?i-1:0,d=n?-1:1,p=e[t+h];for(h+=d,s=p&(1<<-u)-1,p>>=-u,u+=a;u>0;s=256*s+e[t+h],h+=d,u-=8);for(o=s&(1<<-u)-1,s>>=-u,u+=r;u>0;o=256*o+e[t+h],h+=d,u-=8);if(0===s)s=1-l;else{if(s===c)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,r),s-=l}return(p?-1:1)*o*Math.pow(2,s-r)},t.write=function(e,t,n,r,i,s){var o,a,c,l=8*s-i-1,u=(1<<l)-1,h=u>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:s-1,f=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+h>=1?d/c:d*Math.pow(2,1-h))*c>=2&&(o++,c/=2),o+h>=u?(a=0,o=u):o+h>=1?(a=(t*c-1)*Math.pow(2,i),o+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;e[n+p]=255&a,p+=f,a/=256,i-=8);for(o=o<<i|a,l+=i;l>0;e[n+p]=255&o,p+=f,o/=256,l-=8);e[n+p-f]|=128*m}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function s(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new s(i.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new s(i.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},s.prototype.unref=s.prototype.ref=function(){},s.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(102),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(8))},function(e,t,n){(function(e,t){!function(e){"use strict";if(!e.setImmediate){var n,r,i,s,o,a=1,c={},l=!1,u=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?n=function(e){t.nextTick((function(){p(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){p(e.data)},n=function(e){i.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(r=u.documentElement,n=function(e){var t=u.createElement("script");t.onreadystatechange=function(){p(e),t.onreadystatechange=null,r.removeChild(t),t=null},r.appendChild(t)}):n=function(e){setTimeout(p,0,e)}:(s="setImmediate$"+Math.random()+"$",o=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(s)&&p(+t.data.slice(s.length))},e.addEventListener?e.addEventListener("message",o,!1):e.attachEvent("onmessage",o),n=function(t){e.postMessage(s+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var i={callback:e,args:t};return c[a]=i,n(a),a++},h.clearImmediate=d}function d(e){delete c[e]}function p(e){if(l)setTimeout(p,0,e);else{var t=c[e];if(t){l=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(void 0,n)}}(t)}finally{d(e),l=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,n(8),n(38))},function(e,t,n){let r;r="undefined"==typeof TextEncoder?n(21).TextEncoder:TextEncoder;const i=n(19),s=n(22),o=n(18).Buffer,a=n(55),c=n(106),l=n(0),u=n(4),h=n(42),d=n(47),p=n(49),f=n(6),m=n(5),g=n(9),b=n(80),{loadCostume:y}=n(34),{loadSound:E}=n(33),{serializeSounds:T,serializeCostumes:v}=n(253);n(254);const{exportCostume:A}=n(79),w=n(16),S=["_mouse_","_stage_","_edge_","_myself_","_random_"],k=[];m.setup({missingTranslation:"ignore"});e.exports=class extends i{constructor(){super(),this.runtime=new h,a.setService("runtime",(e=>{const t={};return t._refreshExtensionPrimitives=e._refreshExtensionPrimitives.bind(e),t._registerExtensionPrimitives=e._registerExtensionPrimitives.bind(e),t})(this.runtime)).catch((e=>{l.error("Failed to register runtime service: ".concat(JSON.stringify(e)))})),this.editingTarget=null,this._dragTarget=null,this.runtime.on(h.SCRIPT_GLOW_ON,(e=>{this.emit(h.SCRIPT_GLOW_ON,e)})),this.runtime.on(h.SCRIPT_GLOW_OFF,(e=>{this.emit(h.SCRIPT_GLOW_OFF,e)})),this.runtime.on(h.BLOCK_GLOW_ON,(e=>{this.emit(h.BLOCK_GLOW_ON,e)})),this.runtime.on(h.BLOCK_GLOW_OFF,(e=>{this.emit(h.BLOCK_GLOW_OFF,e)})),this.runtime.on(h.PROJECT_START,(()=>{this.emit(h.PROJECT_START)})),this.runtime.on(h.PROJECT_RUN_START,(()=>{this.emit(h.PROJECT_RUN_START)})),this.runtime.on(h.PROJECT_RUN_STOP,(()=>{this.emit(h.PROJECT_RUN_STOP)})),this.runtime.on(h.PROJECT_CHANGED,(()=>{this.emit(h.PROJECT_CHANGED)})),this.runtime.on(h.VISUAL_REPORT,(e=>{this.emit(h.VISUAL_REPORT,e)})),this.runtime.on(h.TARGETS_UPDATE,(e=>{this.emitTargetsUpdate(e)})),this.runtime.on(h.MONITORS_UPDATE,(e=>{this.emit(h.MONITORS_UPDATE,e)})),this.runtime.on(h.BLOCK_DRAG_UPDATE,(e=>{this.emit(h.BLOCK_DRAG_UPDATE,e)})),this.runtime.on(h.BLOCK_DRAG_END,((e,t)=>{this.emit(h.BLOCK_DRAG_END,e,t)})),this.runtime.on(h.EXTENSION_ADDED,(e=>{this.emit(h.EXTENSION_ADDED,e)})),this.runtime.on(h.EXTENSION_FIELD_ADDED,((e,t)=>{this.emit(h.EXTENSION_FIELD_ADDED,e,t)})),this.runtime.on(h.BLOCKSINFO_UPDATE,(e=>{this.emit(h.BLOCKSINFO_UPDATE,e)})),this.runtime.on(h.BLOCKS_NEED_UPDATE,(()=>{this.emitWorkspaceUpdate()})),this.runtime.on(h.TOOLBOX_EXTENSIONS_NEED_UPDATE,(()=>{this.extensionManager.refreshBlocks()})),this.runtime.on(h.PERIPHERAL_LIST_UPDATE,(e=>{this.emit(h.PERIPHERAL_LIST_UPDATE,e)})),this.runtime.on(h.USER_PICKED_PERIPHERAL,(e=>{this.emit(h.USER_PICKED_PERIPHERAL,e)})),this.runtime.on(h.PERIPHERAL_CONNECTED,(()=>this.emit(h.PERIPHERAL_CONNECTED))),this.runtime.on(h.PERIPHERAL_REQUEST_ERROR,(()=>this.emit(h.PERIPHERAL_REQUEST_ERROR))),this.runtime.on(h.PERIPHERAL_DISCONNECTED,(()=>this.emit(h.PERIPHERAL_DISCONNECTED))),this.runtime.on(h.PERIPHERAL_CONNECTION_LOST_ERROR,(e=>this.emit(h.PERIPHERAL_CONNECTION_LOST_ERROR,e))),this.runtime.on(h.PERIPHERAL_SCAN_TIMEOUT,(()=>this.emit(h.PERIPHERAL_SCAN_TIMEOUT))),this.runtime.on(h.MIC_LISTENING,(e=>{this.emit(h.MIC_LISTENING,e)})),this.runtime.on(h.RUNTIME_STARTED,(()=>{this.emit(h.RUNTIME_STARTED)})),this.runtime.on(h.RUNTIME_STOPPED,(()=>{this.emit(h.RUNTIME_STOPPED)})),this.runtime.on(h.HAS_CLOUD_DATA_UPDATE,(e=>{this.emit(h.HAS_CLOUD_DATA_UPDATE,e)})),this.runtime.on(h.RUNTIME_OPTIONS_CHANGED,(e=>{this.emit(h.RUNTIME_OPTIONS_CHANGED,e)})),this.runtime.on(h.COMPILER_OPTIONS_CHANGED,(e=>{this.emit(h.COMPILER_OPTIONS_CHANGED,e)})),this.runtime.on(h.FRAMERATE_CHANGED,(e=>{this.emit(h.FRAMERATE_CHANGED,e)})),this.runtime.on(h.INTERPOLATION_CHANGED,(e=>{this.emit(h.INTERPOLATION_CHANGED,e)})),this.runtime.on(h.STAGE_SIZE_CHANGED,((e,t)=>{this.emit(h.STAGE_SIZE_CHANGED,e,t)})),this.runtime.on(h.COMPILE_ERROR,((e,t)=>{this.emit(h.COMPILE_ERROR,e,t)})),this.runtime.on(h.ASSET_PROGRESS,((e,t)=>{this.emit(h.ASSET_PROGRESS,e,t)})),this.runtime.on(h.TURBO_MODE_OFF,(()=>{this.emit(h.TURBO_MODE_OFF)})),this.runtime.on(h.TURBO_MODE_ON,(()=>{this.emit(h.TURBO_MODE_ON)})),this.extensionManager=new c(this),this.securityManager=this.extensionManager.securityManager,this.runtime.extensionManager=this.extensionManager;for(const e of k)this.extensionManager.loadExtensionIdSync(e);this.blockListener=this.blockListener.bind(this),this.flyoutBlockListener=this.flyoutBlockListener.bind(this),this.monitorBlockListener=this.monitorBlockListener.bind(this),this.variableListener=this.variableListener.bind(this),this.exports={Sprite:p,RenderedTarget:d,JSZip:s,Variable:g,these_broke_before_and_will_break_again:()=>(console.warn("You are using unsupported APIs. WHEN your code breaks, do not expect help."),{JSGenerator:n(67),IRGenerator:n(44).IRGenerator,ScriptTreeGenerator:n(44).ScriptTreeGenerator,IntermediateStackBlock:n(10).IntermediateStackBlock,IntermediateInput:n(10).IntermediateInput,IntermediateStack:n(10).IntermediateStack,IntermediateScript:n(10).IntermediateScript,IntermediateRepresentation:n(10).IntermediateRepresentation,StackOpcode:n(15).StackOpcode,InputOpcode:n(15).InputOpcode,InputType:n(15).InputType,Thread:n(20),execute:n(32)}),i_will_not_ask_for_help_when_these_break:()=>{this.emit("LEGACY_EXTENSION_API","i_will_not_ask_for_help_when_these_break");const e=n(45);return e.enabled=!0,{IRGenerator:e.IRGeneratorStub,ScriptTreeGenerator:e.ScriptTreeGeneratorStub,JSGenerator:e.JSGeneratorStub,Thread:n(20),execute:n(32)}}}}start(){this.runtime.start()}stop(){this.quit()}quit(){this.runtime.quit()}greenFlag(){this.runtime.greenFlag()}setTurboMode(e){this.runtime.turboMode=!!e,this.runtime.turboMode?this.emit(h.TURBO_MODE_ON):this.emit(h.TURBO_MODE_OFF)}setCompatibilityMode(e){this.runtime.setCompatibilityMode(!!e)}setFramerate(e){this.runtime.setFramerate(e)}setInterpolation(e){this.runtime.setInterpolation(e)}setRuntimeOptions(e){this.runtime.setRuntimeOptions(e)}setCompilerOptions(e){this.runtime.setCompilerOptions(e)}setStageSize(e,t){this.runtime.setStageSize(e,t)}setInEditor(e){this.runtime.setInEditor(e)}convertToPackagedRuntime(){this.runtime.convertToPackagedRuntime()}addAddonBlock(e){this.runtime.addAddonBlock(e)}getAddonBlock(e){return this.runtime.getAddonBlock(e)}storeProjectOptions(){this.runtime.storeProjectOptions(),this.editingTarget.isStage&&this.emitWorkspaceUpdate()}enableDebug(){return this.runtime.enableDebug(),"enabled debug mode"}handleExtensionButtonPress(e){this.runtime.handleExtensionButtonPress(e)}stopAll(){this.runtime.stopAll()}clear(){this.runtime.dispose(),this.editingTarget=null,this.emitTargetsUpdate(!1)}getPlaygroundData(){const e=this,t=this.runtime.threads.filter((t=>t.target===e.editingTarget)),n=JSON.stringify(t,((e,t)=>{if("target"!==e&&"blockContainer"!==e)return t}),2);this.emit("playgroundData",{blocks:this.editingTarget.blocks,threads:n})}postIOData(e,t){this.runtime.ioDevices[e]&&this.runtime.ioDevices[e].postData(t)}setVideoProvider(e){this.runtime.ioDevices.video.setProvider(e)}setCloudProvider(e){this.runtime.ioDevices.cloud.setProvider(e)}scanForPeripheral(e){this.runtime.scanForPeripheral(e)}connectPeripheral(e,t){this.runtime.connectPeripheral(e,t)}disconnectPeripheral(e){this.runtime.disconnectPeripheral(e)}getPeripheralIsConnected(e){return this.runtime.getPeripheralIsConnected(e)}loadProject(e){"object"!=typeof e||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||(e=JSON.stringify(e));return new Promise(((t,r)=>{n(81)(e,!1,((e,n)=>{if(e)return r(e);t(n)}))})).catch((t=>{const{SB1File:r,ValidationError:i}=n(299);try{const t=new r(e),n=t.json;return n.projectVersion=2,Promise.resolve([n,t.zip])}catch(e){if(!(e instanceof i||"".concat(e).includes("Non-ascii character in FixedAsciiString")))return Promise.reject(e)}return Promise.reject(t)})).then((e=>this.deserializeProject(e[0],e[1]))).then((()=>this.runtime.handleProjectLoaded())).catch((e=>Object.prototype.hasOwnProperty.call(e,"validationError")?Promise.reject(JSON.stringify(e)):Promise.reject(e)))}downloadProjectId(e){const t=this.runtime.storage;if(!t)return void l.error("No storage module present; cannot load project: ",e);const n=this;t.load(t.AssetType.Project,e).then((t=>t?n.loadProject(t.data):(l.error("Failed to fetch project with id: ".concat(e)),null)))}_saveProjectZip(){const e=this.toJSON(),t=new s;t.file("project.json",e),this._addFileDescsToZip(this.serializeAssets(),t);const n=new Date(1591657163e3);for(const e of Object.values(t.files))e.date=n;const r=[".json",".svg",".wav",".ttf",".otf"];for(const e of Object.values(t.files))r.some((t=>e.name.endsWith(t)))?e.options.compression="DEFLATE":e.options.compression="STORE";return t}saveProjectSb3(e){return this._saveProjectZip().generateAsync({type:e||"blob",mimeType:"application/x.scratch.sb3"})}saveProjectSb3Stream(e){return this._saveProjectZip().generateInternalStream({type:e||"arraybuffer",mimeType:"application/x.scratch.sb3",compression:"DEFLATE"})}saveProjectSb3DontZip(){const e=this.toJSON(),t={"project.json":(new r).encode(e)};for(const e of this.serializeAssets())t[e.fileName]=e.fileContent;return t}get assets(){return[...this.runtime.targets.reduce(((e,t)=>e.concat(t.sprite.sounds.map((e=>e.asset))).concat(t.sprite.costumes.map((e=>e.asset)))),[]),...this.runtime.fontManager.serializeAssets()]}serializeAssets(e){return[...v(this.runtime,e),...T(this.runtime,e),...this.runtime.fontManager.serializeAssets().map((e=>({fileName:"".concat(e.assetId,".").concat(e.dataFormat),fileContent:e.data})))]}_addFileDescsToZip(e,t){for(let n=0;n<e.length;n++){const r=e[n];t.file(r.fileName,r.fileContent)}}exportSprite(e,t){const n=this.toJSON(e),r=new s;return r.file("sprite.json",n),this._addFileDescsToZip(this.serializeAssets(e),r),r.generateAsync({type:"string"==typeof t?t:"blob",mimeType:"application/x.scratch.sprite3",compression:"DEFLATE",compressionOptions:{level:6}})}toJSON(e,t){const r=n(26);return f.stringify(r.serialize(this.runtime,e,t))}fromJSON(e){return l.warn("fromJSON is now just a wrapper around loadProject, please use that function instead."),this.loadProject(e)}deserializeProject(e,t){this.clear(),"undefined"!=typeof performance&&performance.mark("scratch-vm-deserialize-start");const r=this.runtime;return function(){const i=e.projectVersion;if(2===i){return n(83).deserialize(e,r,!1,t)}if(3===i){return n(26).deserialize(e,r,t)}return Promise.reject("Unable to verify Scratch Project version.")}().then((e=>{let{targets:t,extensions:n}=e;if("undefined"!=typeof performance){performance.mark("scratch-vm-deserialize-end");try{performance.measure("scratch-vm-deserialize","scratch-vm-deserialize-start","scratch-vm-deserialize-end")}catch(e){l.error(e)}}return this.installTargets(t,n,!0)}))}async _loadExtensions(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Map;const r=n(262),i=[];for(const n of e)if(this.extensionManager.isExtensionLoaded(n));else if(this.extensionManager.isBuiltinExtension(n))this.extensionManager.loadExtensionIdSync(n);else{let e=t.get(n);if(!e&&Object.prototype.hasOwnProperty.call(r,n)&&(e=r[n]),!e)throw new Error("Unknown extension: ".concat(n));if(!await this.securityManager.canLoadExtensionFromProject(e))throw new Error("Permission to load extension denied: ".concat(n));i.push(this.extensionManager.loadExtensionURL(e))}return Promise.all(i)}async installTargets(e,t,n){return await this.extensionManager.allAsyncExtensionsLoaded(),e=e.filter((e=>!!e)),this._loadExtensions(t.extensionIDs,t.extensionURLs).then((()=>{e.forEach((e=>{this.runtime.addTarget(e),e.updateAllDrawableProperties(),e.isSprite()&&this.renameSprite(e.id,e.getName())})),this.runtime.executableTargets.sort(((e,t)=>e.layerOrder-t.layerOrder)),e.forEach((e=>{delete e.layerOrder})),n&&e.length>1?this.editingTarget=e[1]:this.editingTarget=e[0],n||this.editingTarget.fixUpVariableReferences(),n&&this.runtime.parseProjectOptions(),this.emitTargetsUpdate(!1),this.emitWorkspaceUpdate(),this.runtime.setEditingTarget(this.editingTarget),this.runtime.ioDevices.cloud.setStage(this.runtime.getTargetForStage())}))}addSprite(e){const t="Sprite Upload Error:";"object"!=typeof e||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||(e=JSON.stringify(e));return new Promise(((t,r)=>{n(81)(e,!0,((e,n)=>{if(e)return r(e);t(n)}))})).then((e=>{const n=e[0].projectVersion;return 2===n?this._addSprite2(e[0],e[1]):3===n?this._addSprite3(e[0],e[1]):Promise.reject("".concat(t," Unable to verify sprite version."))})).then((()=>this.runtime.emitProjectChanged())).catch((e=>Object.prototype.hasOwnProperty.call(e,"validationError")?Promise.reject(JSON.stringify(e)):Promise.reject("".concat(t," ").concat(e))))}_addSprite2(e,t){return n(83).deserialize(e,this.runtime,!0,t).then((e=>{let{targets:t,extensions:n}=e;return this.installTargets(t,n,!1)}))}_addSprite3(e,t){return n(26).deserialize(e,this.runtime,t,!0).then((e=>{let{targets:t,extensions:n}=e;return this.installTargets(t,n,!1)}))}addCostume(e,t,n,r){const i=n?this.runtime.getTargetById(n):this.editingTarget;return i?y(e,t,this.runtime,r).then((()=>{i.addCostume(t),i.setCostume(i.getCostumes().length-1),this.runtime.emitProjectChanged()})):Promise.reject()}addCostumeFromLibrary(e,t){return this.editingTarget?this.addCostume(e,t,this.editingTarget.id,2):Promise.reject()}duplicateCostume(e){const t=this.editingTarget.getCostumes()[e],n=Object.assign({},t),r="".concat(n.assetId,".").concat(n.dataFormat);return y(r,n,this.runtime).then((()=>{this.editingTarget.addCostume(n,e+1),this.editingTarget.setCostume(e+1),this.emitTargetsUpdate()}))}duplicateSound(e){const t=this.editingTarget.getSounds()[e],n=Object.assign({},t);return E(n,this.runtime,this.editingTarget.sprite.soundBank).then((()=>{this.editingTarget.addSound(n,e+1),this.emitTargetsUpdate()}))}renameCostume(e,t){this.editingTarget.renameCostume(e,t),this.emitTargetsUpdate()}deleteCostume(e){const t=this.editingTarget.deleteCostume(e);if(t){const e=this.editingTarget;return this.runtime.emitProjectChanged(),()=>{e.addCostume(t),this.emitTargetsUpdate()}}return null}addSound(e,t){const n=t?this.runtime.getTargetById(t):this.editingTarget;return n?E(e,this.runtime,n.sprite.soundBank).then((()=>{n.addSound(e),this.emitTargetsUpdate()})):Promise.reject(new Error("No target with ID: ".concat(t)))}renameSound(e,t){this.editingTarget.renameSound(e,t),this.emitTargetsUpdate()}getSoundBuffer(e){const t=this.editingTarget.sprite.sounds[e].soundId;return t&&this.runtime&&this.runtime.audioEngine?this.editingTarget.sprite.soundBank.getSoundPlayer(t).buffer:null}updateSoundBuffer(e,t,n){const r=this.editingTarget.sprite.sounds[e];r&&r.broken&&delete r.broken;const i=r?r.soundId:null;if(i&&this.runtime&&this.runtime.audioEngine&&(this.editingTarget.sprite.soundBank.getSoundPlayer(i).buffer=t),n){r.format="";const e=this.runtime.storage;r.asset=e.createAsset(e.AssetType.Sound,e.DataFormat.WAV,n,null,!0),r.assetId=r.asset.assetId,r.dataFormat=e.DataFormat.WAV,r.md5="".concat(r.assetId,".").concat(r.dataFormat),r.sampleCount=t.length,r.rate=t.sampleRate}this.emitTargetsUpdate()}deleteSound(e){const t=this.editingTarget,n=this.editingTarget.deleteSound(e);if(n){this.runtime.emitProjectChanged();return()=>{t.addSound(n),this.emitTargetsUpdate()}}return null}getCostume(e){const t=this.editingTarget.getCostumes()[e].asset;if(!t||!this.runtime||!this.runtime.storage)return null;const n=t.dataFormat;return n===this.runtime.storage.DataFormat.SVG?t.decodeText():n===this.runtime.storage.DataFormat.PNG||n===this.runtime.storage.DataFormat.JPG?t.encodeDataURI():(l.error("Unhandled format: ".concat(t.dataFormat)),null)}getExportedCostume(e){return A(e)}getExportedCostumeBase64(e){const t=this.getExportedCostume(e);return w.uint8ArrayToBase64(t)}updateBitmap(e,t,n,r,i){return this._updateBitmap(this.editingTarget.getCostumes()[e],t,n,r,i)}_updateBitmap(e,t,n,r,i){if(!(e&&this.runtime&&this.runtime.renderer))return;e&&e.broken&&delete e.broken,e.rotationCenterX=n,e.rotationCenterY=r;const s=0===t.sourceWidth?0:t.width,a=0===t.sourceHeight?0:t.height,c=document.createElement("canvas");c.width=s,c.height=a;c.getContext("2d").putImageData(t,0,0),this.runtime.renderer.updateBitmapSkin(e.skinId,c,i,[n/i,r/i]),c.toBlob((t=>{const n=new FileReader;n.addEventListener("loadend",(()=>{const t=this.runtime.storage;e.dataFormat=t.DataFormat.PNG,e.bitmapResolution=i,e.size=[s,a],e.asset=t.createAsset(t.AssetType.ImageBitmap,e.dataFormat,o.from(n.result),null,!0),e.assetId=e.asset.assetId,e.md5="".concat(e.assetId,".").concat(e.dataFormat),this.emitTargetsUpdate()})),t&&n.readAsArrayBuffer(t)}))}updateSvg(e,t,n,r){return this._updateSvg(this.editingTarget.getCostumes()[e],t,n,r)}_updateSvg(e,t,n,i){e&&e.broken&&delete e.broken,e&&this.runtime&&this.runtime.renderer&&(e.rotationCenterX=n,e.rotationCenterY=i,this.runtime.renderer.updateSVGSkin(e.skinId,t,[n,i]),e.size=this.runtime.renderer.getSkinSize(e.skinId));const s=this.runtime.storage;e.dataFormat=s.DataFormat.SVG,e.bitmapResolution=1,e.asset=s.createAsset(s.AssetType.ImageVector,e.dataFormat,(new r).encode(t),null,!0),e.assetId=e.asset.assetId,e.md5="".concat(e.assetId,".").concat(e.dataFormat),this.emitTargetsUpdate()}addBackdrop(e,t){return y(e,t,this.runtime).then((()=>{const e=this.runtime.getTargetForStage();e.addCostume(t),e.setCostume(e.getCostumes().length-1),this.runtime.emitProjectChanged()}))}renameSprite(e,t){const n=this.runtime.getTargetById(e);if(!n)throw new Error("No target with the provided id.");{if(!n.isSprite())throw new Error("Cannot rename non-sprite targets.");const e=n.sprite;if(!e)throw new Error("No sprite associated with this target.");if(t&&-1===S.indexOf(t)){const r=this.runtime.targets.filter((e=>e.isSprite()&&e.id!==n.id)).map((e=>e.sprite.name)),i=e.name,s=f.unusedName(t,r);if(e.name=s,i===s)return;const o=this.runtime.targets;for(let e=0;e<o.length;e++){o[e].blocks.updateAssetName(i,t,"sprite")}s!==i&&this.emitTargetsUpdate()}}}deleteSprite(e){const t=this.runtime.getTargetById(e);if(t){const n=this.runtime.targets.map((e=>e.id)).indexOf(t.id);if(!t.isSprite())throw new Error("Cannot delete non-sprite targets.");const r=t.sprite;if(!r)throw new Error("No sprite associated with this target.");const i=this.exportSprite(e,"uint8array"),s=()=>i.then((e=>this.addSprite(e)));t.deleteMonitors();const o=this.editingTarget;for(let e=0;e<r.clones.length;e++){const t=r.clones[e];if(this.runtime.stopForTarget(r.clones[e]),this.runtime.disposeTarget(r.clones[e]),t===o){const e=Math.min(this.runtime.targets.length-1,n);this.runtime.targets.length>0?this.setEditingTarget(this.runtime.targets[e].id):this.editingTarget=null}}return this.emitTargetsUpdate(),s}throw new Error("No target with the provided id.")}duplicateSprite(e){const t=this.runtime.getTargetById(e);if(!t)throw new Error("No target with the provided id.");if(!t.isSprite())throw new Error("Cannot duplicate non-sprite targets.");if(!t.sprite)throw new Error("No sprite associated with this target.");return t.duplicate().then((e=>{this.runtime.addTarget(e),e.goBehindOther(t),this.setEditingTarget(e.id)}))}attachAudioEngine(e){this.runtime.attachAudioEngine(e)}attachRenderer(e){this.runtime.attachRenderer(e)}get renderer(){return this.runtime&&this.runtime.renderer}attachV2SVGAdapter(){}attachV2BitmapAdapter(e){this.runtime.attachV2BitmapAdapter(e)}attachStorage(e){this.runtime.attachStorage(e)}setLocale(e,t){return e!==m.setup().locale&&m.setup({locale:e,translations:{[e]:t}}),this.emit("LOCALE_CHANGED",e),this.extensionManager.refreshBlocks()}getLocale(){return m.setup().locale}blockListener(e){this.editingTarget&&this.editingTarget.blocks.blocklyListen(e)}flyoutBlockListener(e){this.runtime.flyoutBlocks.blocklyListen(e)}monitorBlockListener(e){-1!==["create","change"].indexOf(e.type)&&this.runtime.monitorBlocks.blocklyListen(e)}variableListener(e){-1!==["var_create","var_rename","var_delete"].indexOf(e.type)&&this.runtime.getTargetForStage().blocks.blocklyListen(e)}clearFlyoutBlocks(){this.runtime.flyoutBlocks.deleteAllBlocks()}setEditingTarget(e){if(this.editingTarget&&e===this.editingTarget.id)return;const t=this.runtime.getTargetById(e);t&&(this.editingTarget=t,this.emitTargetsUpdate(!1),this.emitWorkspaceUpdate(),this.runtime.setEditingTarget(t))}exportStandaloneBlocks(e){return n(26).serializeStandaloneBlocks(e,this.runtime)}shareBlocksToTarget(e,t,r){const i=n(26),{blocks:s,extensionURLs:o}=i.deserializeStandaloneBlocks(e);b(s);const a=this.runtime.getTargetById(t);if(r){this.runtime.getTargetById(r).resolveVariableSharingConflictsWithTarget(s,a)}const c=new Set(s.map((e=>i.getExtensionIdForOpcode(e.opcode))).filter((e=>!!e)).filter((e=>!this.extensionManager.isExtensionLoaded(e))));return this._loadExtensions(c,o).then((()=>{s.forEach((e=>{a.blocks.createBlock(e)})),a.blocks.updateTargetSpecificBlocks(a.isStage)}))}shareCostumeToTarget(e,t){const n=this.editingTarget.getCostumes()[e],r=Object.assign({},n),i="".concat(r.assetId,".").concat(r.dataFormat);return y(i,r,this.runtime).then((()=>{const e=this.runtime.getTargetById(t);e&&(e.addCostume(r),e.setCostume(e.getCostumes().length-1))}))}shareSoundToTarget(e,t){const n=this.editingTarget.getSounds()[e],r=Object.assign({},n),i=this.runtime.getTargetById(t);return E(r,this.runtime,i.sprite.soundBank).then((()=>{i&&(i.addSound(r),this.emitTargetsUpdate())}))}refreshWorkspace(){this.editingTarget&&(this.emitWorkspaceUpdate(),this.runtime.setEditingTarget(this.editingTarget),this.emitTargetsUpdate(!1))}emitTargetsUpdate(e){let t;void 0===e&&(e=!0);const n=()=>(t||(t=this.runtime.targets.filter((e=>!Object.prototype.hasOwnProperty.call(e,"isOriginal")||e.isOriginal)).map((e=>e.toJSON()))),t);this.emit("targetsUpdate",{get targetList(){return n()},editingTarget:this.editingTarget?this.editingTarget.id:null}),e&&this.runtime.emitProjectChanged()}emitWorkspaceUpdate(){const e=this.runtime.getTargetForStage().variables;let t=[];for(const n in e)e[n].type===g.BROADCAST_MESSAGE_TYPE&&t.push(n);for(let e=0;e<this.runtime.targets.length;e++){const n=this.runtime.targets[e].blocks._blocks;for(const e in n)if(n[e].fields.BROADCAST_OPTION){const r=n[e].fields.BROADCAST_OPTION.id,i=t.indexOf(r);-1!==i&&(t=t.slice(0,i).concat(t.slice(i+1)))}}for(let e=0;e<t.length;e++){const n=t[e];delete this.runtime.getTargetForStage().variables[n]}const n=Object.assign({},this.runtime.getTargetForStage().variables),r=this.editingTarget.isStage?Object.create(null):Object.assign({},this.editingTarget.variables),i=Object.keys(n).map((e=>n[e])),s=Object.keys(r).map((e=>r[e])),o=Object.keys(this.editingTarget.comments).map((e=>this.editingTarget.comments[e])).filter((e=>null===e.blockId)),a='<xml xmlns="http://www.w3.org/1999/xhtml">\n <variables>\n '.concat(i.map((e=>e.toXML())).join(),"\n ").concat(s.map((e=>e.toXML(!0))).join(),"\n </variables>\n ").concat(o.map((e=>e.toXML())).join(),"\n ").concat(this.editingTarget.blocks.toXML(this.editingTarget.comments),"\n </xml>");this.emit("workspaceUpdate",{xml:a})}getTargetIdForDrawableId(e){const t=this.runtime.getTargetByDrawableId(e);return t&&Object.prototype.hasOwnProperty.call(t,"id")&&Object.prototype.hasOwnProperty.call(t,"isStage")&&!t.isStage?t.id:null}reorderTarget(e,t){let n=this.runtime.targets;if((e=u.clamp(e,0,n.length-1))===(t=u.clamp(t,0,n.length-1)))return!1;const r=n[e];return n=n.slice(0,e).concat(n.slice(e+1)),n.splice(t,0,r),this.runtime.targets=n,this.emitTargetsUpdate(),!0}reorderCostume(e,t,n){const r=this.runtime.getTargetById(e);if(r){const e=r.reorderCostume(t,n);return e&&this.runtime.emitProjectChanged(),e}return!1}reorderSound(e,t,n){const r=this.runtime.getTargetById(e);if(r){const e=r.reorderSound(t,n);return e&&this.runtime.emitProjectChanged(),e}return!1}startDrag(e){const t=this.runtime.getTargetById(e);t&&(this._dragTarget=t,t.startDrag())}stopDrag(e){const t=this.runtime.getTargetById(e);t&&(this._dragTarget=null,t.stopDrag(),this.setEditingTarget(t.sprite&&t.sprite.clones[0]?t.sprite.clones[0].id:t.id))}postSpriteInfo(e){this._dragTarget?this._dragTarget.postSpriteInfo(e):this.editingTarget.postSpriteInfo(e),this.runtime.emitProjectChanged()}setVariableValue(e,t,n){const r=this.runtime.getTargetById(e);if(r){const e=r.lookupVariableById(t);if(e)return e.value=n,e.isCloud&&this.runtime.ioDevices.cloud.requestUpdateVariable(e.name,e.value),!0}return!1}getVariableValue(e,t){const n=this.runtime.getTargetById(e);if(n){const e=n.lookupVariableById(t);if(e)return e.value}return null}configureScratchLinkSocketFactory(e){this.runtime.configureScratchLinkSocketFactory(e)}}},function(e,t,n){"use strict";(function(e){!function(e){function t(){}function n(){}var r=String.fromCharCode,i={}.toString,s=i.call(e.SharedArrayBuffer),o=i(),a=e.Uint8Array,c=a||Array,l=a?ArrayBuffer:c,u=l.isView||function(e){return e&&"length"in e},h=i.call(l.prototype);l=n.prototype;var d=e.TextEncoder,p=new(a?Uint16Array:c)(32);t.prototype.decode=function(e){if(!u(e)){var t=i.call(e);if(t!==h&&t!==s&&t!==o)throw TypeError("Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");e=a?new c(e):e||[]}for(var n,l,d,f=t="",m=0,g=0|e.length,b=g-32|0,y=0,E=0,T=0,v=-1;m<g;){for(n=m<=b?32:g-m|0;T<n;m=m+1|0,T=T+1|0){switch((l=255&e[m])>>4){case 15:if(2!=(d=255&e[m=m+1|0])>>6||247<l){m=m-1|0;break}y=(7&l)<<6|63&d,E=5,l=256;case 14:y<<=6,y|=(15&l)<<6|63&(d=255&e[m=m+1|0]),E=2==d>>6?E+4|0:24,l=l+256&768;case 13:case 12:y<<=6,y|=(31&l)<<6|63&(d=255&e[m=m+1|0]),E=E+7|0,m<g&&2==d>>6&&y>>E&&1114112>y?(l=y,0<=(y=y-65536|0)&&(v=55296+(y>>10)|0,l=56320+(1023&y)|0,31>T?(p[T]=v,T=T+1|0,v=-1):(d=v,v=l,l=d))):(m=m-(l>>=8)-1|0,l=65533),y=E=0,n=m<=b?32:g-m|0;default:p[T]=l;continue;case 11:case 10:case 9:case 8:}p[T]=65533}if(f+=r(p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9],p[10],p[11],p[12],p[13],p[14],p[15],p[16],p[17],p[18],p[19],p[20],p[21],p[22],p[23],p[24],p[25],p[26],p[27],p[28],p[29],p[30],p[31]),32>T&&(f=f.slice(0,T-32|0)),m<g){if(p[0]=v,T=~v>>>31,v=-1,f.length<t.length)continue}else-1!==v&&(f+=r(v));t+=f,f=""}return t},l.encode=function(e){var t,n=0|(e=void 0===e?"":""+e).length,r=new c(8+(n<<1)|0),i=0,s=!a;for(t=0;t<n;t=t+1|0,i=i+1|0){var o=0|e.charCodeAt(t);if(127>=o)r[i]=o;else{if(2047>=o)r[i]=192|o>>6;else{e:{if(55296<=o)if(56319>=o){var l=0|e.charCodeAt(t=t+1|0);if(56320<=l&&57343>=l){if(65535<(o=(o<<10)+l-56613888|0)){r[i]=240|o>>18,r[i=i+1|0]=128|o>>12&63,r[i=i+1|0]=128|o>>6&63,r[i=i+1|0]=128|63&o;continue}break e}o=65533}else 57343>=o&&(o=65533);!s&&t<<1<i&&t<<1<(i-7|0)&&(s=!0,(l=new c(3*n)).set(r),r=l)}r[i]=224|o>>12,r[i=i+1|0]=128|o>>6&63}r[i=i+1|0]=128|63&o}}return a?r.subarray(0,i):r.slice(0,i)},d||(e.TextDecoder=t,e.TextEncoder=n)}(""+void 0==typeof e?""+void 0==typeof self?this:self:e)}).call(this,n(8))},function(e,t,n){const r=n(0);e.exports=class{constructor(){this.callbacks=[],this.nextResponseId=0}call(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return this.transferCall(e,t,null,...r)}transferCall(e,t,n){try{const{provider:o,isRemote:a}=this._getServiceProvider(e);if(o){for(var r=arguments.length,i=new Array(r>3?r-3:0),s=3;s<r;s++)i[s-3]=arguments[s];if(a)return this._remoteTransferCall(o,e,t,n,...i);const c=o[t].apply(o,i);return Promise.resolve(c)}return Promise.reject(new Error("Service not found: ".concat(e)))}catch(e){return Promise.reject(e)}}_isRemoteService(e){return this._getServiceProvider(e).isRemote}_remoteCall(e,t,n){for(var r=arguments.length,i=new Array(r>3?r-3:0),s=3;s<r;s++)i[s-3]=arguments[s];return this._remoteTransferCall(e,t,n,null,...i)}_remoteTransferCall(e,t,n,r){for(var i=arguments.length,s=new Array(i>4?i-4:0),o=4;o<i;o++)s[o-4]=arguments[o];return new Promise(((i,o)=>{const a=this._storeCallbacks(i,o);s.length>0&&"function"==typeof s[s.length-1].func&&(s.pop(),s.pop()),r?e.postMessage({service:t,method:n,responseId:a,args:s},r):e.postMessage({service:t,method:n,responseId:a,args:s})}))}_storeCallbacks(e,t){const n=this.nextResponseId++;return this.callbacks[n]=[e,t],n}_deliverResponse(e,t){try{const[n,r]=this.callbacks[e];delete this.callbacks[e],t.error?r(t.error):n(t.result)}catch(e){r.error("Dispatch callback failed: ".concat(e))}}_onMessage(e,t){const n=t.data;let i;n.args=n.args||[],n.service?i="dispatch"===n.service?this._onDispatchMessage(e,n):this.call(n.service,n.method,...n.args):void 0===n.responseId?r.error("Dispatch caught malformed message from a worker: ".concat(JSON.stringify(t))):this._deliverResponse(n.responseId,n),i&&(void 0===n.responseId?r.error("Dispatch message missing required response ID: ".concat(JSON.stringify(t))):i.then((t=>e.postMessage({responseId:n.responseId,result:t})),(t=>e.postMessage({responseId:n.responseId,error:"".concat(t)}))))}_getServiceProvider(e){throw new Error("Could not get provider for ".concat(e,": _getServiceProvider not implemented"))}_onDispatchMessage(e,t){throw new Error("Unimplemented dispatch message handler cannot handle ".concat(t.method," method"))}}},function(e,t,n){const r=n(55),i=n(0),s=n(56),o=n(2),a=n(109),c={coreExample:()=>n(110),pen:()=>n(111),wedo2:()=>n(112),music:()=>n(116),microbit:()=>n(179),text2speech:()=>n(180),translate:()=>n(181),videoSensing:()=>n(182),ev3:()=>n(218),makeymakey:()=>n(220),boost:()=>n(221),gdxfor:()=>n(222),tw:()=>n(225)};e.exports=class{constructor(e){this.nextExtensionWorker=0,this.pendingExtensions=[],this.pendingWorkers=[],this.workerURLs=[],this._loadedExtensions=new Map,this.securityManager=new a,this.vm=e,this.runtime=e.runtime,this.loadingAsyncExtensions=0,this.asyncExtensionsLoadedCallbacks=[],this.builtinExtensions=Object.assign({},c),r.setService("extensions",(e=>{const t={};return t.registerExtensionServiceSync=e.registerExtensionServiceSync.bind(e),t.allocateWorker=e.allocateWorker.bind(e),t.onWorkerInit=e.onWorkerInit.bind(e),t.registerExtensionService=e.registerExtensionService.bind(e),t})(this)).catch((e=>{i.error("ExtensionManager was unable to register extension service: ".concat(JSON.stringify(e)))}))}isExtensionLoaded(e){return this._loadedExtensions.has(e)}isBuiltinExtension(e){return Object.prototype.hasOwnProperty.call(this.builtinExtensions,e)}loadExtensionIdSync(e){if(!this.isBuiltinExtension(e))return void i.warn("Could not find extension ".concat(e," in the built in extensions."));if(this.isExtensionLoaded(e)){const t="Rejecting attempt to load a second extension with ID ".concat(e);return void i.warn(t)}const t=new(this.builtinExtensions[e]())(this.runtime),n=this._registerInternalExtension(t);this._loadedExtensions.set(e,n),this.runtime.compilerRegisterExtension(e,t)}addBuiltinExtension(e,t){this.builtinExtensions[e]=()=>t}_isValidExtensionURL(e){try{const t=new URL(e);return"https:"===t.protocol||"http:"===t.protocol||"data:"===t.protocol||"file:"===t.protocol}catch(e){return!1}}async loadExtensionURL(e){if(this.isBuiltinExtension(e))return void this.loadExtensionIdSync(e);if(this.isExtensionURLLoaded(e))return;if(!this._isValidExtensionURL(e))throw new Error("Invalid extension URL: ".concat(e));this.runtime.setExternalCommunicationMethod("customExtensions",!0),this.loadingAsyncExtensions++;const t=await this.securityManager.getSandboxMode(e),i=await this.securityManager.rewriteExtensionURL(e);if("unsandboxed"===t){const{load:t}=n(226),s=await t(i,this.vm).catch((e=>this._failedLoadingExtensionScript(e))),o=this.nextExtensionWorker++;this.workerURLs[o]=e;for(const e of s){const t=e.getInfo(),n="unsandboxed.".concat(o,".").concat(t.id);r.setServiceSync(n,e),r.callSync("extensions","registerExtensionServiceSync",n),this._loadedExtensions.set(t.id,n)}return void this._finishedLoadingExtensionScript()}let s;if("worker"===t)s=n(233);else{if("iframe"!==t)throw new Error("Invalid sandbox mode: ".concat(t));s=(await n.e(1).then(n.t.bind(null,302,7))).default}return new Promise(((e,t)=>{this.pendingExtensions.push({extensionURL:i,resolve:e,reject:t}),r.addWorker(new s)})).catch((e=>this._failedLoadingExtensionScript(e)))}allAsyncExtensionsLoaded(){if(0!==this.loadingAsyncExtensions)return new Promise(((e,t)=>{this.asyncExtensionsLoadedCallbacks.push({resolve:e,reject:t})}))}refreshBlocks(e){const t=e=>r.call(e,"getInfo").then((t=>{t=this._prepareExtensionInfo(e,t),r.call("runtime","_refreshExtensionPrimitives",t)})).catch((e=>{i.error("Failed to refresh built-in extension primitives",e)}));if(e)return this._loadedExtensions.has(e)?t(this._loadedExtensions.get(e)):Promise.reject(new Error("Unknown extension: ".concat(e)));const n=Array.from(this._loadedExtensions.values()).map(t);return Promise.all(n)}allocateWorker(){const e=this.nextExtensionWorker++,t=this.pendingExtensions.shift();return this.pendingWorkers[e]=t,this.workerURLs[e]=t.extensionURL,[e,t.extensionURL]}registerExtensionServiceSync(e){const t=r.callSync(e,"getInfo");this._registerExtensionInfo(e,t)}registerExtensionService(e){r.call(e,"getInfo").then((t=>{this._loadedExtensions.set(t.id,e),this._registerExtensionInfo(e,t),this._finishedLoadingExtensionScript()}))}_finishedLoadingExtensionScript(){this.loadingAsyncExtensions--,0===this.loadingAsyncExtensions&&(this.asyncExtensionsLoadedCallbacks.forEach((e=>e.resolve())),this.asyncExtensionsLoadedCallbacks=[])}_failedLoadingExtensionScript(e){throw this.loadingAsyncExtensions--,this.asyncExtensionsLoadedCallbacks.forEach((t=>t.reject(e))),this.asyncExtensionsLoadedCallbacks=[],e}onWorkerInit(e,t){const n=this.pendingWorkers[e];delete this.pendingWorkers[e],t?n.reject(t):n.resolve()}_registerInternalExtension(e){const t=e.getInfo(),n=this.nextExtensionWorker++,i="extension_".concat(n,"_").concat(t.id);return r.setServiceSync(i,e),r.callSync("extensions","registerExtensionServiceSync",i),i}_registerExtensionInfo(e,t){t=this._prepareExtensionInfo(e,t),r.call("runtime","_registerExtensionPrimitives",t).catch((t=>{i.error("Failed to register primitives for extension on service ".concat(e,":"),t)}))}_prepareExtensionInfo(e,t){if(t=Object.assign({},t),!/^[a-z0-9]+$/i.test(t.id))throw new Error("Invalid extension id");return t.name=t.name||t.id,t.blocks=t.blocks||[],t.targetTypes=t.targetTypes||[],t.blocks=t.blocks.reduce(((t,n)=>{try{let r;if("---"===n)r="---";else r=this._prepareBlockInfo(e,n);t.push(r)}catch(e){i.error("Error processing block: ".concat(e.message,", Block:\n").concat(JSON.stringify(n)))}return t}),[]),t.menus=t.menus||{},t.menus=this._prepareMenuInfo(e,t.menus),t}_prepareMenuInfo(e,t){const n=Object.getOwnPropertyNames(t);for(let i=0;i<n.length;i++){const s=n[i];let o=t[s];if(o.items||(o={items:o},t[s]=o),"string"==typeof o.items){const t=o.items,n=r.services[e];o.items=this._getExtensionMenuItems.bind(this,n,t)}}return t}_getExtensionMenuItems(e,t){const n=this.runtime.getEditingTarget()||this.runtime.getTargetForStage(),r=n?n.id:null,i=this.runtime.makeMessageContextForTarget(n),o=e[t].call(e,r).map((e=>{switch(typeof(e=s(e,i))){case"object":return[s(e.text,i),e.value];case"string":return[e,e];default:return e}}));if(!o||o.length<1)throw new Error("Extension menu returned no items: ".concat(t));return o}_prepareBlockInfo(e,t){if(t.blockType===o.XML)return(t=Object.assign({},t)).xml=String(t.xml)||"",t;switch((t=Object.assign({},{blockType:o.COMMAND,terminal:!1,blockAllThreads:!1,arguments:{}},t)).text=t.text||t.opcode,t.blockType){case o.EVENT:t.func&&i.warn('Ignoring function "'.concat(t.func,'" for event block ').concat(t.opcode));break;case o.BUTTON:t.opcode&&i.warn('Ignoring opcode "'.concat(t.opcode,'" for button with text: ').concat(t.text)),t.callFunc=()=>{r.call(e,t.func)};break;case o.LABEL:t.opcode&&i.warn('Ignoring opcode "'.concat(t.opcode,'" for label: ').concat(t.text));break;default:{if(!t.opcode)throw new Error("Missing opcode for block");const n=t.func||t.opcode,s=t.isDynamic?e=>e&&e.mutation&&e.mutation.blockInfo:()=>t,o=(()=>{if(r._isRemoteService(e))return(t,i,s)=>r.call(e,n,t,i,s).then((e=>"number"==typeof e||"string"==typeof e||"boolean"==typeof e?e:"".concat(e)));const t=r.services[e];return t[n]||i.warn("Could not find extension block function called ".concat(n)),(e,r,i)=>t[n](e,r,i)})();t.func=(e,t)=>{const n=s(e);return o(e,t,n)};break}}return t}getExtensionURLs(){const e={};for(const[t,n]of this._loadedExtensions.entries()){if(Object.prototype.hasOwnProperty.call(this.builtinExtensions,t))continue;const r=+n.split(".")[1],i=this.workerURLs[r];"string"==typeof i&&(e[t]=i)}return e}isExtensionURLLoaded(e){return Object.values(this.workerURLs).includes(e)}}},function(e,t,n){"use strict";var r="{",i="}",s=",",o="#",a="<",c=">",l="</",u="/>",h="'",d="offset:",p=["number","date","time","ordinal","duration","spellout"],f=["plural","select","selectordinal"];function m(e,t){var n=e.pattern,r=n.length,s=[],o=e.index,a=g(e,t);for(a&&s.push(a),a&&e.tokens&&e.tokens.push(["text",n.slice(o,e.index)]);e.index<r;){if(n[e.index]===i){if(!t)throw k(e);break}if(t&&e.tagsType&&n.slice(e.index,e.index+2)===l)break;s.push(E(e)),o=e.index,(a=g(e,t))&&s.push(a),a&&e.tokens&&e.tokens.push(["text",n.slice(o,e.index)])}return s}function g(e,t){for(var n=e.pattern,s=n.length,c="plural"===t||"selectordinal"===t,l=!!e.tagsType,u="{style}"===t,d="";e.index<s;){var p=n[e.index];if(p===r||p===i||c&&p===o||l&&p===a||u&&b(p.charCodeAt(0)))break;if(p===h)if((p=n[++e.index])===h)d+=p,++e.index;else if(p===r||p===i||c&&p===o||l&&p===a||u)for(d+=p;++e.index<s;)if((p=n[e.index])===h&&n[e.index+1]===h)d+=h,++e.index;else{if(p===h){++e.index;break}d+=p}else d+=h;else d+=p,++e.index}return d}function b(e){return e>=9&&e<=13||32===e||133===e||160===e||6158===e||e>=8192&&e<=8205||8232===e||8233===e||8239===e||8287===e||8288===e||12288===e||65279===e}function y(e){for(var t=e.pattern,n=t.length,r=e.index;e.index<n&&b(t.charCodeAt(e.index));)++e.index;r<e.index&&e.tokens&&e.tokens.push(["space",e.pattern.slice(r,e.index)])}function E(e){var t=e.pattern;if(t[e.index]===o)return e.tokens&&e.tokens.push(["syntax",o]),++e.index,[o];var n=function(e){var t=e.tagsType;if(!t||e.pattern[e.index]!==a)return;if(e.pattern.slice(e.index,e.index+2)===l)throw k(e,null,"closing tag without matching opening tag");e.tokens&&e.tokens.push(["syntax",a]);++e.index;var n=T(e,!0);if(!n)throw k(e,"placeholder id");e.tokens&&e.tokens.push(["id",n]);if(y(e),e.pattern.slice(e.index,e.index+2)===u)return e.tokens&&e.tokens.push(["syntax",u]),e.index+=2,[n,t];if(e.pattern[e.index]!==c)throw k(e,c);e.tokens&&e.tokens.push(["syntax",c]);++e.index;var r=m(e,t),i=e.index;if(e.pattern.slice(e.index,e.index+2)!==l)throw k(e,l+n+c);e.tokens&&e.tokens.push(["syntax",l]);e.index+=2;var s=T(e,!0);s&&e.tokens&&e.tokens.push(["id",s]);if(n!==s)throw e.index=i,k(e,l+n+c,l+s+c);if(y(e),e.pattern[e.index]!==c)throw k(e,c);e.tokens&&e.tokens.push(["syntax",c]);return++e.index,[n,t,{children:r}]}(e);if(n)return n;if(t[e.index]!==r)throw k(e,r);e.tokens&&e.tokens.push(["syntax",r]),++e.index,y(e);var h=T(e);if(!h)throw k(e,"placeholder id");e.tokens&&e.tokens.push(["id",h]),y(e);var f=t[e.index];if(f===i)return e.tokens&&e.tokens.push(["syntax",i]),++e.index,[h];if(f!==s)throw k(e,", or }");e.tokens&&e.tokens.push(["syntax",s]),++e.index,y(e);var g,b=T(e);if(!b)throw k(e,"placeholder type");if(e.tokens&&e.tokens.push(["type",b]),y(e),(f=t[e.index])===i){if(e.tokens&&e.tokens.push(["syntax",i]),"plural"===b||"selectordinal"===b||"select"===b)throw k(e,b+" sub-messages");return++e.index,[h,b]}if(f!==s)throw k(e,", or }");if(e.tokens&&e.tokens.push(["syntax",s]),++e.index,y(e),"plural"===b||"selectordinal"===b){var E=function(e){var t=e.pattern,n=t.length,r=0;if(t.slice(e.index,e.index+7)===d){e.tokens&&e.tokens.push(["offset","offset"],["syntax",":"]),e.index+=7,y(e);for(var i=e.index;e.index<n&&A(t.charCodeAt(e.index));)++e.index;if(i===e.index)throw k(e,"offset number");e.tokens&&e.tokens.push(["number",t.slice(i,e.index)]),r=+t.slice(i,e.index)}return r}(e);y(e),g=[h,b,E,w(e,b)]}else if("select"===b)g=[h,b,w(e,b)];else if(p.indexOf(b)>=0)g=[h,b,v(e)];else{var S=e.index,O=v(e);y(e),t[e.index]===r&&(e.index=S,O=w(e,b)),g=[h,b,O]}if(y(e),t[e.index]!==i)throw k(e,i);return e.tokens&&e.tokens.push(["syntax",i]),++e.index,g}function T(e,t){for(var n=e.pattern,l=n.length,u="";e.index<l;){var d=n[e.index];if(d===r||d===i||d===s||d===o||d===h||b(d.charCodeAt(0))||t&&(d===a||d===c||"/"===d))break;u+=d,++e.index}return u}function v(e){var t=e.index,n=g(e,"{style}");if(!n)throw k(e,"placeholder style name");return e.tokens&&e.tokens.push(["style",e.pattern.slice(t,e.index)]),n}function A(e){return e>=48&&e<=57}function w(e,t){for(var n=e.pattern,r=n.length,s={};e.index<r&&n[e.index]!==i;){var o=T(e);if(!o)throw k(e,"sub-message selector");e.tokens&&e.tokens.push(["selector",o]),y(e),s[o]=S(e,t),y(e)}if(!s.other&&f.indexOf(t)>=0)throw k(e,null,null,'"other" sub-message must be specified in '+t);return s}function S(e,t){if(e.pattern[e.index]!==r)throw k(e,"{ to start sub-message");e.tokens&&e.tokens.push(["syntax",r]),++e.index;var n=m(e,t);if(e.pattern[e.index]!==i)throw k(e,"} to end sub-message");return e.tokens&&e.tokens.push(["syntax",i]),++e.index,n}function k(e,t,n,r){var i=e.pattern,s=i.slice(0,e.index).split(/\r?\n/),o=e.index,a=s.length,c=s.slice(-1)[0].length;return n=n||(e.index>=i.length?"end of message pattern":T(e)||i[e.index]),r||(r=function(e,t){return e?"Expected "+e+" but found "+t:"Unexpected "+t+" found"}(t,n)),new O(r+=" in "+i.replace(/\r?\n/g,"\n"),t,n,o,a,c)}function O(e,t,n,r,i,s){Error.call(this,e),this.name="SyntaxError",this.message=e,this.expected=t,this.found=n,this.offset=r,this.line=i,this.column=s}t=e.exports=function(e,t){return m({pattern:String(e),index:0,tagsType:t&&t.tagsType||null,tokens:t&&t.tokens||null},"")},O.prototype=Object.create(Error.prototype),t.SyntaxError=O},function(e,t,n){"use strict";var r=n(57),i=n(58),s=n(59);function o(e,t,n,r,i){var s=e.map((function(e){return function(e,t,n,r,i){if("string"==typeof e){var s=e;return function(){return s}}var c,l=e[0],u=e[1];if(t&&"#"===e[0]){l=t[0];var h=t[2],p=(r.number||d.number)([l,"number"],n);return function(e){return p(a(l,e)-h,e)}}"plural"===u||"selectordinal"===u?(c={},Object.keys(e[3]).forEach((function(t){c[t]=o(e[3][t],e,n,r,i)})),e=[e[0],e[1],e[2],c]):e[2]&&"object"==typeof e[2]&&(c={},Object.keys(e[2]).forEach((function(t){c[t]=o(e[2][t],e,n,r,i)})),e=[e[0],e[1],c]);var f=u&&(r[u]||d[u]);if(f){var m=f(e,n);return function(e){return m(a(l,e),e)}}return i?function(e){return String(a(l,e))}:function(e){return a(l,e)}}(e,t,n,r,i)}));return i?1===s.length?s[0]:function(e){for(var t="",n=0;n<s.length;++n)t+=s[n](e);return t}:function(e){return s.reduce((function(t,n){return t.concat(n(e))}),[])}}function a(e,t){if(t&&e in t)return t[e];for(var n=e.split("."),r=t,i=0,s=n.length;r&&i<s;++i)r=r[n[i]];return r}function c(e,t){var n=e[2],i=r.number[n]||r.parseNumberPattern(n)||r.number.default;return new Intl.NumberFormat(t,i).format}function l(e,t){var n=e[1],i=e[2],s=r[n][i]||r.parseDatePattern(i)||r[n].default;return new Intl.DateTimeFormat(t,s).format}function u(e,t){var n,r="selectordinal"===e[1]?"ordinal":"cardinal",o=e[2],a=e[3];if(Intl.PluralRules&&Intl.PluralRules.supportedLocalesOf(t).length>0)n=new Intl.PluralRules(t,{type:r});else{var c=i(t,s),l=c&&s[c][r]||h;n={select:l}}return function(e,t){return(a["="+ +e]||a[n.select(e-o)]||a.other)(t)}}function h(){return"other"}(t=e.exports=function(e,t,n){return o(e,null,t||"en",n||{},!0)}).toParts=function(e,t,n){return o(e,null,t||"en",n||{},!1)};var d={number:c,ordinal:c,spellout:c,duration:function(e,t){var n=e[2],i=r.duration[n]||r.duration.default,s=new Intl.NumberFormat(t,i.seconds).format,o=new Intl.NumberFormat(t,i.minutes).format,a=new Intl.NumberFormat(t,i.hours).format,c=/^fi$|^fi-|^da/.test(String(t))?".":":";return function(e,t){if(e=+e,!isFinite(e))return s(e);var n=~~(e/60/60),r=~~(e/60%60),i=(n?a(Math.abs(n))+c:"")+o(Math.abs(r))+c+s(Math.abs(e%60));return e<0?a(-1).replace(a(1),i):i}},date:l,time:l,plural:u,selectordinal:u,select:function(e,t){var n=e[2];return function(e,t){return(n[e]||n.other)(t)}}};t.types=d},function(e,t){e.exports=class{getSandboxMode(e){return Promise.resolve("worker")}canLoadExtensionFromProject(e){return Promise.resolve(!1)}rewriteExtensionURL(e){return Promise.resolve(e)}canFetch(e){return Promise.resolve(!0)}canOpenWindow(e){return Promise.resolve(!0)}canRedirect(e){return Promise.resolve(!0)}canRecordAudio(){return Promise.resolve(!0)}canRecordVideo(){return Promise.resolve(!0)}canReadClipboard(){return Promise.resolve(!0)}canNotify(){return Promise.resolve(!0)}canGeolocate(){return Promise.resolve(!0)}canEmbed(e){return Promise.resolve(!0)}canDownload(e,t){return Promise.resolve(!0)}}},function(e,t,n){const r=n(2),i=n(3);e.exports=class{constructor(e){this.runtime=e}getInfo(){return{id:"coreExample",name:"CoreEx",blocks:[{func:"MAKE_A_VARIABLE",blockType:r.BUTTON,text:"make a variable (CoreEx)"},{opcode:"exampleOpcode",blockType:r.REPORTER,text:"example block"},{opcode:"exampleWithInlineImage",blockType:r.COMMAND,text:"block with image [CLOCKWISE] inline",arguments:{CLOCKWISE:{type:i.IMAGE,dataURI:'data:image/svg+xml,%3Csvg id="rotate-counter-clockwise" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%233d79cc;%7D.cls-2%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3Erotate-counter-clockwise%3C/title%3E%3Cpath class="cls-1" d="M22.68,12.2a1.6,1.6,0,0,1-1.27.63H13.72a1.59,1.59,0,0,1-1.16-2.58l1.12-1.41a4.82,4.82,0,0,0-3.14-.77,4.31,4.31,0,0,0-2,.8,4.25,4.25,0,0,0-1.34,1.73,5.06,5.06,0,0,0,.54,4.62A5.58,5.58,0,0,0,12,17.74h0a2.26,2.26,0,0,1-.16,4.52A10.25,10.25,0,0,1,3.74,18,10.14,10.14,0,0,1,2.25,8.78,9.7,9.7,0,0,1,5.08,4.64,9.92,9.92,0,0,1,9.66,2.5a10.66,10.66,0,0,1,7.72,1.68l1.08-1.35a1.57,1.57,0,0,1,1.24-.6,1.6,1.6,0,0,1,1.54,1.21l1.7,7.37A1.57,1.57,0,0,1,22.68,12.2Z"/%3E%3Cpath class="cls-2" d="M21.38,11.83H13.77a.59.59,0,0,1-.43-1l1.75-2.19a5.9,5.9,0,0,0-4.7-1.58,5.07,5.07,0,0,0-4.11,3.17A6,6,0,0,0,7,15.77a6.51,6.51,0,0,0,5,2.92,1.31,1.31,0,0,1-.08,2.62,9.3,9.3,0,0,1-7.35-3.82A9.16,9.16,0,0,1,3.17,9.12,8.51,8.51,0,0,1,5.71,5.4,8.76,8.76,0,0,1,9.82,3.48a9.71,9.71,0,0,1,7.75,2.07l1.67-2.1a.59.59,0,0,1,1,.21L22,11.08A.59.59,0,0,1,21.38,11.83Z"/%3E%3C/svg%3E'}}}]}}exampleOpcode(){const e=this.runtime.getTargetForStage();return e?e.getName():"no stage yet"}exampleWithInlineImage(){}}},function(e,t,n){const r=n(3),i=n(2),s=n(39),o=n(1),a=n(12),c=n(23),l=n(5),u=n(4),h=n(0),d=n(13),p="color",f="saturation",m="brightness",g="transparency";class b{constructor(e){this.runtime=e,this._penDrawableId=-1,this._penSkinId=-1,this._onTargetCreated=this._onTargetCreated.bind(this),this._onTargetMoved=this._onTargetMoved.bind(this),e.on("targetWasCreated",this._onTargetCreated),e.on("RUNTIME_DISPOSED",this.clear.bind(this))}static get DEFAULT_PEN_STATE(){return{penDown:!1,color:66.66,saturation:100,brightness:100,transparency:0,_shade:50,penAttributes:{color4f:[0,0,1,1],diameter:1}}}static get PEN_SIZE_RANGE(){return{min:1,max:1200}}static get STATE_KEY(){return"Scratch.pen"}_clampPenSize(e){return this.runtime.renderer&&this.runtime.renderer.useHighQualityRender||!this.runtime.runtimeOptions.miscLimits?Math.max(0,e):u.clamp(e,b.PEN_SIZE_RANGE.min,b.PEN_SIZE_RANGE.max)}_getPenLayerID(){const e=this.runtime.renderer;return this._penSkinId<0&&e&&(this._penSkinId=e.createPenSkin(),this._penDrawableId=e.createDrawable(d.PEN_LAYER),e.markDrawableAsNoninteractive&&e.markDrawableAsNoninteractive(this._penDrawableId),e.updateDrawableSkinId(this._penDrawableId,this._penSkinId)),this._penSkinId}_getPenState(e){let t=e._customState["Scratch.pen"];return t||(t=a.simple(b.DEFAULT_PEN_STATE),e.setCustomState(b.STATE_KEY,t)),t}_onTargetCreated(e,t){if(t){const n=t.getCustomState(b.STATE_KEY);n&&(e.setCustomState(b.STATE_KEY,a.simple(n)),n.penDown&&(e.onTargetMoved=this._onTargetMoved))}}_onTargetMoved(e,t,n,r){if(!r){const r=this._getPenLayerID();if(r>=0){const i=this._getPenState(e);this.runtime.renderer.penLine(r,i.penAttributes,t,n,e.x,e.y),this.runtime.requestRedraw()}}}_wrapColor(e){return u.wrapClamp(e,0,100)}_initColorParam(){return[{text:l({id:"pen.colorMenu.color",default:"color",description:"label for color element in color picker for pen extension"}),value:p},{text:l({id:"pen.colorMenu.saturation",default:"saturation",description:"label for saturation element in color picker for pen extension"}),value:f},{text:l({id:"pen.colorMenu.brightness",default:"brightness",description:"label for brightness element in color picker for pen extension"}),value:m},{text:l({id:"pen.colorMenu.transparency",default:"transparency",description:"label for transparency element in color picker for pen extension"}),value:g}]}_clampColorParam(e){return u.clamp(e,0,100)}_alphaToTransparency(e){return 100*(1-e)}_transparencyToAlpha(e){return 1-e/100}getInfo(){return{id:"pen",name:l({id:"pen.categoryName",default:"Pen",description:"Label for the pen extension category"}),blockIconURI:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48dGl0bGU+cGVuLWljb248L3RpdGxlPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjNTc1ZTc1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Im04Ljc1MyAzNC42MDItNC4yNSAxLjc4IDEuNzgzLTQuMjM3YzEuMjE4LTIuODkyIDIuOTA3LTUuNDIzIDUuMDMtNy41MzhMMzEuMDY2IDQuOTNjLjg0Ni0uODQyIDIuNjUtLjQxIDQuMDMyLjk2NyAxLjM4IDEuMzc1IDEuODE2IDMuMTczLjk3IDQuMDE1TDE2LjMxOCAyOS41OWMtMi4xMjMgMi4xMTYtNC42NjQgMy44LTcuNTY1IDUuMDEyIi8+PHBhdGggZD0iTTI5LjQxIDYuMTFzLTQuNDUtMi4zNzgtOC4yMDIgNS43NzJjLTEuNzM0IDMuNzY2LTQuMzUgMS41NDYtNC4zNSAxLjU0NiIvPjxwYXRoIGZpbGw9IiM0Yzk3ZmYiIGQ9Ik0zNi40MiA4LjgyNWMwIC40NjMtLjE0Ljg3My0uNDMyIDEuMTY0bC05LjMzNSA5LjNjLjI4Mi0uMjkuNDEtLjY2OC40MS0xLjEyIDAtLjg3NC0uNTA3LTEuOTYzLTEuNDA2LTIuODY4LTEuMzYyLTEuMzU4LTMuMTQ3LTEuOC00LjAwMi0uOTlMMzAuOTkgNS4wMWMuODQ0LS44NCAyLjY1LS40MSA0LjAzNS45Ni44OTguOTA0IDEuMzk2IDEuOTgyIDEuMzk2IDIuODU1TTEwLjUxNSAzMy43NzRhMjQgMjQgMCAwIDEtMS43NjQuODNMNC41IDM2LjM4MmwxLjc4Ni00LjIzNWMuMjU4LS42MDQuNTMtMS4xODYuODMzLTEuNzU3LjY5LjE4MyAxLjQ0OC42MjUgMi4xMDggMS4yODIuNjYuNjU4IDEuMTAyIDEuNDEyIDEuMjg3IDIuMTAyIi8+PHBhdGggZmlsbD0iIzU3NWU3NSIgZD0iTTM2LjQ5OCA4Ljc0OGMwIC40NjQtLjE0Ljg3NC0uNDMzIDEuMTY1bC0xOS43NDIgMTkuNjhjLTIuMTMgMi4xMS00LjY3MyAzLjc5My03LjU3MiA1LjAxTDQuNSAzNi4zOGwuOTc0LTIuMzE2IDEuOTI1LS44MDhjMi44OTgtMS4yMTggNS40NC0yLjkgNy41Ny01LjAxbDE5Ljc0My0xOS42OGMuMjkyLS4yOTIuNDMyLS43MDIuNDMyLTEuMTY1IDAtLjY0Ni0uMjctMS40LS43OC0yLjEyMi4yNS4xNzIuNS4zNzcuNzM3LjYxNC44OTguOTA1IDEuMzk2IDEuOTgzIDEuMzk2IDIuODU2IiBvcGFjaXR5PSIuMTUiLz48cGF0aCBmaWxsPSIjNTc1ZTc1IiBkPSJNMTguNDUgMTIuODNhLjkwNC45MDQgMCAxIDEtLjkwMy0uOTAyYy41IDAgLjkwNC40MDQuOTA0LjkwNHoiLz48L2c+PC9zdmc+",blocks:[{blockType:i.LABEL,text:l({id:"tw.pen.stageSelected",default:"Stage selected: less pen blocks",description:"Label that appears in the Pen category when the stage is selected"}),filter:[s.STAGE]},{opcode:"clear",blockType:i.COMMAND,text:l({id:"pen.clear",default:"erase all",description:"erase all pen trails and stamps"})},{opcode:"stamp",blockType:i.COMMAND,text:l({id:"pen.stamp",default:"stamp",description:"render current costume on the background"}),filter:[s.SPRITE]},{opcode:"penDown",blockType:i.COMMAND,text:l({id:"pen.penDown",default:"pen down",description:"start leaving a trail when the sprite moves"}),filter:[s.SPRITE]},{opcode:"penUp",blockType:i.COMMAND,text:l({id:"pen.penUp",default:"pen up",description:"stop leaving a trail behind the sprite"}),filter:[s.SPRITE]},{opcode:"setPenColorToColor",blockType:i.COMMAND,text:l({id:"pen.setColor",default:"set pen color to [COLOR]",description:"set the pen color to a particular (RGB) value"}),arguments:{COLOR:{type:r.COLOR}},filter:[s.SPRITE]},{opcode:"changePenColorParamBy",blockType:i.COMMAND,text:l({id:"pen.changeColorParam",default:"change pen [COLOR_PARAM] by [VALUE]",description:"change the state of a pen color parameter"}),arguments:{COLOR_PARAM:{type:r.STRING,menu:"colorParam",defaultValue:p},VALUE:{type:r.NUMBER,defaultValue:10}},filter:[s.SPRITE]},{opcode:"setPenColorParamTo",blockType:i.COMMAND,text:l({id:"pen.setColorParam",default:"set pen [COLOR_PARAM] to [VALUE]",description:"set the state for a pen color parameter e.g. saturation"}),arguments:{COLOR_PARAM:{type:r.STRING,menu:"colorParam",defaultValue:p},VALUE:{type:r.NUMBER,defaultValue:50}},filter:[s.SPRITE]},{opcode:"changePenSizeBy",blockType:i.COMMAND,text:l({id:"pen.changeSize",default:"change pen size by [SIZE]",description:"change the diameter of the trail left by a sprite"}),arguments:{SIZE:{type:r.NUMBER,defaultValue:1}},filter:[s.SPRITE]},{opcode:"setPenSizeTo",blockType:i.COMMAND,text:l({id:"pen.setSize",default:"set pen size to [SIZE]",description:"set the diameter of a trail left by a sprite"}),arguments:{SIZE:{type:r.NUMBER,defaultValue:1}},filter:[s.SPRITE]},{opcode:"setPenShadeToNumber",blockType:i.COMMAND,text:l({id:"pen.setShade",default:"set pen shade to [SHADE]",description:"legacy pen blocks - set pen shade"}),arguments:{SHADE:{type:r.NUMBER,defaultValue:1}},hideFromPalette:!0},{opcode:"changePenShadeBy",blockType:i.COMMAND,text:l({id:"pen.changeShade",default:"change pen shade by [SHADE]",description:"legacy pen blocks - change pen shade"}),arguments:{SHADE:{type:r.NUMBER,defaultValue:1}},hideFromPalette:!0},{opcode:"setPenHueToNumber",blockType:i.COMMAND,text:l({id:"pen.setHue",default:"set pen color to [HUE]",description:"legacy pen blocks - set pen color to number"}),arguments:{HUE:{type:r.NUMBER,defaultValue:1}},hideFromPalette:!0},{opcode:"changePenHueBy",blockType:i.COMMAND,text:l({id:"pen.changeHue",default:"change pen color by [HUE]",description:"legacy pen blocks - change pen color"}),arguments:{HUE:{type:r.NUMBER,defaultValue:1}},hideFromPalette:!0}],menus:{colorParam:{acceptReporters:!0,items:this._initColorParam()}}}}clear(){const e=this._getPenLayerID();e>=0&&(this.runtime.renderer.penClear(e),this.runtime.requestRedraw())}stamp(e,t){this._stamp(t.target)}_stamp(e){const t=this._getPenLayerID();t>=0&&(this.runtime.renderer.penStamp(t,e.drawableID),this.runtime.requestRedraw())}penDown(e,t){this._penDown(t.target)}_penDown(e){const t=this._getPenState(e);t.penDown||(t.penDown=!0,e.onTargetMoved=this._onTargetMoved);const n=this._getPenLayerID();n>=0&&(this.runtime.renderer.penPoint(n,t.penAttributes,e.x,e.y),this.runtime.requestRedraw())}penUp(e,t){this._penUp(t.target)}_penUp(e){const t=this._getPenState(e);t.penDown&&(t.penDown=!1,e.onTargetMoved=null)}setPenColorToColor(e,t){this._setPenColorToColor(e.COLOR,t.target)}_setPenColorToColor(e,t){const n=this._getPenState(t),r=o.toRgbColorObject(e),i=c.rgbToHsv(r);n.color=i.h/360*100,n.saturation=100*i.s,n.brightness=100*i.v,Object.prototype.hasOwnProperty.call(r,"a")?n.transparency=100*(1-r.a/255):n.transparency=0,n._shade=n.brightness/2,this._updatePenColor(n)}_updatePenColor(e){const t=c.hsvToRgb({h:360*e.color/100,s:e.saturation/100,v:e.brightness/100});e.penAttributes.color4f[0]=t.r/255,e.penAttributes.color4f[1]=t.g/255,e.penAttributes.color4f[2]=t.b/255,e.penAttributes.color4f[3]=this._transparencyToAlpha(e.transparency)}_setOrChangeColorParam(e,t,n,r){switch(e){case p:n.color=this._wrapColor(t+(r?n.color:0));break;case f:n.saturation=this._clampColorParam(t+(r?n.saturation:0));break;case m:n.brightness=this._clampColorParam(t+(r?n.brightness:0));break;case g:n.transparency=this._clampColorParam(t+(r?n.transparency:0));break;default:h.warn("Tried to set or change unknown color parameter: ".concat(e))}this._updatePenColor(n)}changePenColorParamBy(e,t){const n=this._getPenState(t.target);this._setOrChangeColorParam(e.COLOR_PARAM,o.toNumber(e.VALUE),n,!0)}setPenColorParamTo(e,t){const n=this._getPenState(t.target);this._setOrChangeColorParam(e.COLOR_PARAM,o.toNumber(e.VALUE),n,!1)}changePenSizeBy(e,t){this._changePenSizeBy(o.toNumber(e.SIZE),t.target)}_changePenSizeBy(e,t){const n=this._getPenState(t).penAttributes;n.diameter=this._clampPenSize(n.diameter+e)}setPenSizeTo(e,t){this._setPenSizeTo(o.toNumber(e.SIZE),t.target)}_setPenSizeTo(e,t){this._getPenState(t).penAttributes.diameter=this._clampPenSize(e)}setPenHueToNumber(e,t){this._setPenHueToNumber(o.toNumber(e.HUE),t.target)}_setPenHueToNumber(e,t){const n=this._getPenState(t),r=e/2;this._setOrChangeColorParam(p,r,n,!1),this._setOrChangeColorParam(g,0,n,!1),this._legacyUpdatePenColor(n)}changePenHueBy(e,t){this._changePenHueBy(o.toNumber(e.HUE),t.target)}_changePenHueBy(e,t){const n=this._getPenState(t),r=e/2;this._setOrChangeColorParam(p,r,n,!0),this._legacyUpdatePenColor(n)}setPenShadeToNumber(e,t){this._setPenShadeToNumber(o.toNumber(e.SHADE),t.target)}_setPenShadeToNumber(e,t){const n=this._getPenState(t);let r=o.toNumber(e);r%=200,r<0&&(r+=200),n._shade=r,this._legacyUpdatePenColor(n)}changePenShadeBy(e,t){this._changePenShadeBy(e.SHADE,t.target)}_changePenShadeBy(e,t){const n=this._getPenState(t),r=o.toNumber(e);this._setPenShadeToNumber(n._shade+r,t)}_legacyUpdatePenColor(e){let t=c.hsvToRgb({h:360*e.color/100,s:1,v:1});const n=e._shade>100?200-e._shade:e._shade;t=n<50?c.mixRgb(c.RGB_BLACK,t,(10+n)/60):c.mixRgb(t,c.RGB_WHITE,(n-50)/60);const r=c.rgbToHsv(t);e.color=100*r.h/360,e.saturation=100*r.s,e.brightness=100*r.v,this._updatePenColor(e)}}e.exports=b},function(e,t,n){const r=n(3),i=n(2),s=n(1),o=n(5),a=n(23),c=n(30),l=n(16),u=n(4),h=n(40),d=n(0),p="00001523-1212-efde-1523-785feabcd123",f="00004f0e-1212-efde-1523-785feabcd123",m="00001527-1212-efde-1523-785feabcd123",g="00001528-1212-efde-1523-785feabcd123",b="00001560-1212-efde-1523-785feabcd123",y="00001563-1212-efde-1523-785feabcd123",E="00001565-1212-efde-1523-785feabcd123",T=100,v=1,A=23,w=34,S=35,k=6,O=5,I=1,N=2,R=3,x=4,M={TILT:0,DISTANCE:0,LED:1},C={TILT:0,DISTANCE:1,LED:0};class P{constructor(e,t){this._parent=e,this._index=t,this._direction=1,this._power=100,this._isOn=!1,this._pendingTimeoutId=null,this._pendingTimeoutStartTime=null,this._pendingTimeoutDelay=null,this.startBraking=this.startBraking.bind(this),this.turnOff=this.turnOff.bind(this)}static get BRAKE_TIME_MS(){return 1e3}get direction(){return this._direction}set direction(e){this._direction=e<0?-1:1}get power(){return this._power}set power(e){const t=Math.max(0,Math.min(e,100));if(0===t)this._power=0;else{const e=100/t;this._power=30+70/e}}get isOn(){return this._isOn}get pendingTimeoutStartTime(){return this._pendingTimeoutStartTime}get pendingTimeoutDelay(){return this._pendingTimeoutDelay}turnOn(){const e=this._parent.generateOutputCommand(this._index+1,I,[this._power*this._direction]);this._parent.send(E,e),this._isOn=!0,this._clearTimeout()}turnOnFor(e){0!==this._power&&(e=Math.max(0,e),this.turnOn(),this._setNewTimeout(this.startBraking,e))}startBraking(){if(0===this._power)return;const e=this._parent.generateOutputCommand(this._index+1,I,[127]);this._parent.send(E,e),this._isOn=!1,this._setNewTimeout(this.turnOff,P.BRAKE_TIME_MS)}turnOff(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(0===this._power)return;const t=this._parent.generateOutputCommand(this._index+1,I,[0]);this._parent.send(E,t,e),this._isOn=!1}_clearTimeout(){null!==this._pendingTimeoutId&&(clearTimeout(this._pendingTimeoutId),this._pendingTimeoutId=null,this._pendingTimeoutStartTime=null,this._pendingTimeoutDelay=null)}_setNewTimeout(e,t){this._clearTimeout();const n=setTimeout((()=>{this._pendingTimeoutId===n&&(this._pendingTimeoutId=null,this._pendingTimeoutStartTime=null,this._pendingTimeoutDelay=null),e()}),t);this._pendingTimeoutId=n,this._pendingTimeoutStartTime=Date.now(),this._pendingTimeoutDelay=t}}class L{constructor(e,t){this._runtime=e,this._runtime.on("PROJECT_STOP_ALL",this.stopAll.bind(this)),this._extensionId=t,this._ports=["none","none"],this._motors=[null,null],this._sensors={tiltX:0,tiltY:0,distance:0},this._ble=null,this._runtime.registerPeripheralExtension(t,this),this._rateLimiter=new h(20),this._batteryLevelIntervalId=null,this.reset=this.reset.bind(this),this._onConnect=this._onConnect.bind(this),this._onMessage=this._onMessage.bind(this),this._checkBatteryLevel=this._checkBatteryLevel.bind(this)}get tiltX(){return this._sensors.tiltX}get tiltY(){return this._sensors.tiltY}get distance(){return this._sensors.distance}motor(e){return this._motors[e]}stopAllMotors(){this._motors.forEach((e=>{e&&e.turnOff(!1)}))}setLED(e){const t=[e>>16&255,e>>8&255,255&e],n=this.generateOutputCommand(k,x,t);return this.send(E,n)}setLEDMode(){const e=this.generateInputCommand(k,A,M.LED,0,C.LED,!1);return this.send(y,e)}stopLED(){const e=this.generateOutputCommand(k,x,[0,0,0]);return this.send(E,e)}playTone(e,t){const n=this.generateOutputCommand(O,N,[e,e>>8,t,t>>8]);return this.send(E,n)}stopTone(){const e=this.generateOutputCommand(O,R);return this.send(E,e,!1)}stopAll(){this.isConnected()&&(this.stopTone(),this.stopAllMotors())}scan(){this._ble&&this._ble.disconnect(),this._ble=new c(this._runtime,this._extensionId,{filters:[{services:[p]}],optionalServices:[f]},this._onConnect,this.reset)}connect(e){this._ble&&this._ble.connectPeripheral(e)}disconnect(){this._ble&&this._ble.disconnect(),this.reset()}reset(){this._ports=["none","none"],this._motors=[null,null],this._sensors={tiltX:0,tiltY:0,distance:0},this._batteryLevelIntervalId&&(window.clearInterval(this._batteryLevelIntervalId),this._batteryLevelIntervalId=null)}isConnected(){let e=!1;return this._ble&&(e=this._ble.isConnected()),e}send(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.isConnected()?n&&!this._rateLimiter.okayToSend()?Promise.resolve():this._ble.write(f,e,l.uint8ArrayToBase64(t),"base64"):Promise.resolve()}generateOutputCommand(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=[e,t];return n&&(r=r.concat(n.length).concat(n)),r}generateInputCommand(e,t,n,r,i,s){return[1,2,e,t,n,r,0,0,0,i,s?1:0]}_onConnect(){this.setLEDMode(),this.setLED(255),this._ble.startNotifications(p,m,this._onMessage),this._batteryLevelIntervalId=window.setInterval(this._checkBatteryLevel,5e3)}_onMessage(e){const t=l.base64ToUint8Array(e);switch(t[0]){case 1:case 2:{const e=t[0];0===t[1]?this._clearPort(e):this._registerSensorOrMotor(e,t[3]);break}default:{const e=t[1],n=this._ports[e-1];n===S&&(this._sensors.distance=t[2]),n===w&&(this._sensors.tiltX=t[2],this._sensors.tiltY=t[3]);break}}}_checkBatteryLevel(){this._ble.read(p,g,!1)}_registerSensorOrMotor(e,t){if(this._ports[e-1]=t,t===v)this._motors[e-1]=new P(this,e-1);else{const n=t===S?"DISTANCE":"TILT",r=this.generateInputCommand(e,t,M[n],1,C[n],!0);this.send(y,r),this._ble.startNotifications(f,b,this._onMessage)}}_clearPort(e){const t=this._ports[e-1];t===w&&(this._sensors.tiltX=this._sensors.tiltY=0),t===S&&(this._sensors.distance=0),this._ports[e-1]="none",this._motors[e-1]=null}}const D="motor",B="motor A",U="motor B",F="all motors",j="this way",z="that way",G="reverse",V="up",Y="down",_="left",H="right",W="any";class K{static get EXTENSION_ID(){return"wedo2"}static get TILT_THRESHOLD(){return 15}constructor(e){this.runtime=e,this._peripheral=new L(this.runtime,K.EXTENSION_ID)}getInfo(){return{id:K.EXTENSION_ID,name:"WeDo 2.0",blockIconURI:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAACXBIWXMAABYlAAAWJQFJUiTwAAABQVBMVEX///98h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V8h6V9h6V8h6V8h6V8h6VwhKxyhat8h6V8h6VwhKxwhKx8h6U9ecw+e88/fdJAf9VBgNlDhN9EhuJGgM9GjOxHgM9Hju9Ij/JKk/lLlfxMl/9fkNVtmtlwhKx4hqd5o9x6h6Z8h6V9iKV9iKZ+iKZ+iaaAi6iBjKmCjamEjqqGkKyIkq6Jkq6MlrCOmLKQmbGUnbaVnraWn7WWn7aYobmZormao7qcpbudpbqevOWjq76lrcGqxOmttMevtsi1u8y2zey3vcu6v9C9w9K+w8/FytfLz9fO0t3O3fLS1dvS1uDX2d/a5vXe4ejf4eTm5+jm6O7v8PTz9/z39/n///+zX1z3AAAAInRSTlMAEDBAUFdgcICHkJygr7DAwc/Q3ODv8PD19vf7+/v8/f7+PDte4QAAAe9JREFUeNrt11tvEkEYxvGB1oqIjFVaDxWU0VqpJ2zVxx5kVayKumKp9ihai7vA+/0/gDOZNNbkzdJM9qJJ53cBhGf2n73YmxWe53med3plijIvxLiUWSHyspARWSknhMjJYsZsOSEmzJYp6GNmGxcjFAGMCWgiByAnpgFkxwBIIQ+3abvZY0nOTU6Vgac3Zha1mZvm89bic6BSAVAtVwFcktBkCUDJ/pQynxGsM9fhqCA456sItomeqNkHdWNe1doDordAuE9JugB7f1Ws67Wt7j6uG49U7YCI3mNV55KFbPCK7mn3b+uecU91iGgP6JNT8CwC0n6qubp1Rw2I6A2+kVvwMrZJ66j5uqUWSMMSOQavgYy2eng0uIfXrkGs8sGmczA4QcFPCcFNNWsfm7njB+OVhOCgpg5tHjM4fIeEIB08W7A69H+wF5uLe30i6veG5sZ6dtjAK/BBxr9gCGxQ3ETQpW6AZkzfgXBoj3x2CUKjHQChaWOHoPWIYgRxyAVXwFrCSF1ig2i0GGuwfzfAr029rPNBtCLGD3yIjBb4dTf6heX9VIPRFl5+TDUYfUEj3eCfBlIM2q8XKQbt6hBkuQe3WrzfLsFEPngE1lIOLuOra3AXXLAEuJsUjItlRqV6dWq0C/5NwvM8zzuV/gL7cbih1u2EKwAAAABJRU5ErkJggg==",showStatusButton:!0,blocks:[{opcode:"motorOnFor",text:o({id:"wedo2.motorOnFor",default:"turn [MOTOR_ID] on for [DURATION] seconds",description:"turn a motor on for some time"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:D},DURATION:{type:r.NUMBER,defaultValue:1}}},{opcode:"motorOn",text:o({id:"wedo2.motorOn",default:"turn [MOTOR_ID] on",description:"turn a motor on indefinitely"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:D}}},{opcode:"motorOff",text:o({id:"wedo2.motorOff",default:"turn [MOTOR_ID] off",description:"turn a motor off"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:D}}},{opcode:"startMotorPower",text:o({id:"wedo2.startMotorPower",default:"set [MOTOR_ID] power to [POWER]",description:"set the motor's power and turn it on"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:D},POWER:{type:r.NUMBER,defaultValue:100}}},{opcode:"setMotorDirection",text:o({id:"wedo2.setMotorDirection",default:"set [MOTOR_ID] direction to [MOTOR_DIRECTION]",description:"set the motor's turn direction"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:D},MOTOR_DIRECTION:{type:r.STRING,menu:"MOTOR_DIRECTION",defaultValue:j}}},{opcode:"setLightHue",text:o({id:"wedo2.setLightHue",default:"set light color to [HUE]",description:"set the LED color"}),blockType:i.COMMAND,arguments:{HUE:{type:r.NUMBER,defaultValue:50}}},{opcode:"playNoteFor",text:o({id:"wedo2.playNoteFor",default:"play note [NOTE] for [DURATION] seconds",description:"play a certain note for some time"}),blockType:i.COMMAND,arguments:{NOTE:{type:r.NUMBER,defaultValue:60},DURATION:{type:r.NUMBER,defaultValue:.5}},hideFromPalette:!0},{opcode:"whenDistance",text:o({id:"wedo2.whenDistance",default:"when distance [OP] [REFERENCE]",description:"check for when distance is < or > than reference"}),blockType:i.HAT,arguments:{OP:{type:r.STRING,menu:"OP",defaultValue:"<"},REFERENCE:{type:r.NUMBER,defaultValue:50}}},{opcode:"whenTilted",text:o({id:"wedo2.whenTilted",default:"when tilted [TILT_DIRECTION_ANY]",description:"check when tilted in a certain direction"}),func:"isTilted",blockType:i.HAT,arguments:{TILT_DIRECTION_ANY:{type:r.STRING,menu:"TILT_DIRECTION_ANY",defaultValue:W}}},{opcode:"getDistance",text:o({id:"wedo2.getDistance",default:"distance",description:"the value returned by the distance sensor"}),blockType:i.REPORTER},{opcode:"isTilted",text:o({id:"wedo2.isTilted",default:"tilted [TILT_DIRECTION_ANY]?",description:"whether the tilt sensor is tilted"}),blockType:i.BOOLEAN,arguments:{TILT_DIRECTION_ANY:{type:r.STRING,menu:"TILT_DIRECTION_ANY",defaultValue:W}}},{opcode:"getTiltAngle",text:o({id:"wedo2.getTiltAngle",default:"tilt angle [TILT_DIRECTION]",description:"the angle returned by the tilt sensor"}),blockType:i.REPORTER,arguments:{TILT_DIRECTION:{type:r.STRING,menu:"TILT_DIRECTION",defaultValue:V}}}],menus:{MOTOR_ID:{acceptReporters:!0,items:[{text:o({id:"wedo2.motorId.default",default:"motor",description:"label for motor element in motor menu for LEGO WeDo 2 extension"}),value:D},{text:o({id:"wedo2.motorId.a",default:"motor A",description:"label for motor A element in motor menu for LEGO WeDo 2 extension"}),value:B},{text:o({id:"wedo2.motorId.b",default:"motor B",description:"label for motor B element in motor menu for LEGO WeDo 2 extension"}),value:U},{text:o({id:"wedo2.motorId.all",default:"all motors",description:"label for all motors element in motor menu for LEGO WeDo 2 extension"}),value:F}]},MOTOR_DIRECTION:{acceptReporters:!0,items:[{text:o({id:"wedo2.motorDirection.forward",default:"this way",description:"label for forward element in motor direction menu for LEGO WeDo 2 extension"}),value:j},{text:o({id:"wedo2.motorDirection.backward",default:"that way",description:"label for backward element in motor direction menu for LEGO WeDo 2 extension"}),value:z},{text:o({id:"wedo2.motorDirection.reverse",default:"reverse",description:"label for reverse element in motor direction menu for LEGO WeDo 2 extension"}),value:G}]},TILT_DIRECTION:{acceptReporters:!0,items:[{text:o({id:"wedo2.tiltDirection.up",default:"up",description:"label for up element in tilt direction menu for LEGO WeDo 2 extension"}),value:V},{text:o({id:"wedo2.tiltDirection.down",default:"down",description:"label for down element in tilt direction menu for LEGO WeDo 2 extension"}),value:Y},{text:o({id:"wedo2.tiltDirection.left",default:"left",description:"label for left element in tilt direction menu for LEGO WeDo 2 extension"}),value:_},{text:o({id:"wedo2.tiltDirection.right",default:"right",description:"label for right element in tilt direction menu for LEGO WeDo 2 extension"}),value:H}]},TILT_DIRECTION_ANY:{acceptReporters:!0,items:[{text:o({id:"wedo2.tiltDirection.up",default:"up"}),value:V},{text:o({id:"wedo2.tiltDirection.down",default:"down"}),value:Y},{text:o({id:"wedo2.tiltDirection.left",default:"left"}),value:_},{text:o({id:"wedo2.tiltDirection.right",default:"right"}),value:H},{text:o({id:"wedo2.tiltDirection.any",default:"any",description:"label for any element in tilt direction menu for LEGO WeDo 2 extension"}),value:W}]},OP:{acceptReporters:!0,items:["<",">"]}}}}motorOnFor(e){let t=1e3*s.toNumber(e.DURATION);return t=u.clamp(t,0,15e3),new Promise((n=>{this._forEachMotor(e.MOTOR_ID,(e=>{const n=this._peripheral.motor(e);n&&n.turnOnFor(t)})),setTimeout(n,t)}))}motorOn(e){return this._forEachMotor(e.MOTOR_ID,(e=>{const t=this._peripheral.motor(e);t&&t.turnOn()})),new Promise((e=>{window.setTimeout((()=>{e()}),T)}))}motorOff(e){return this._forEachMotor(e.MOTOR_ID,(e=>{const t=this._peripheral.motor(e);t&&t.turnOff()})),new Promise((e=>{window.setTimeout((()=>{e()}),T)}))}startMotorPower(e){return this._forEachMotor(e.MOTOR_ID,(t=>{const n=this._peripheral.motor(t);n&&(n.power=u.clamp(s.toNumber(e.POWER),0,100),n.turnOn())})),new Promise((e=>{window.setTimeout((()=>{e()}),T)}))}setMotorDirection(e){return this._forEachMotor(e.MOTOR_ID,(t=>{const n=this._peripheral.motor(t);if(n){switch(e.MOTOR_DIRECTION){case j:n.direction=1;break;case z:n.direction=-1;break;case G:n.direction=-n.direction;break;default:d.warn("Unknown motor direction in setMotorDirection: ".concat(e.DIRECTION))}n.isOn&&(n.pendingTimeoutDelay?n.turnOnFor(n.pendingTimeoutStartTime+n.pendingTimeoutDelay-Date.now()):n.turnOn())}})),new Promise((e=>{window.setTimeout((()=>{e()}),T)}))}setLightHue(e){let t=s.toNumber(e.HUE);t=u.wrapClamp(t,0,100);const n=360*t/100,r=a.hsvToRgb({h:n,s:1,v:1}),i=a.rgbToDecimal(r);return this._peripheral.setLED(i),new Promise((e=>{window.setTimeout((()=>{e()}),T)}))}playNoteFor(e){let t=1e3*s.toNumber(e.DURATION);t=u.clamp(t,0,3e3);const n=u.clamp(s.toNumber(e.NOTE),25,125);if(0!==t)return new Promise((e=>{const r=this._noteToTone(n);this._peripheral.playTone(r,t),setTimeout(e,t)}))}whenDistance(e){switch(e.OP){case"<":return this._peripheral.distance<s.toNumber(e.REFERENCE);case">":return this._peripheral.distance>s.toNumber(e.REFERENCE);default:return d.warn("Unknown comparison operator in whenDistance: ".concat(e.OP)),!1}}whenTilted(e){return this._isTilted(e.TILT_DIRECTION_ANY)}getDistance(){return this._peripheral.distance}isTilted(e){return this._isTilted(e.TILT_DIRECTION_ANY)}getTiltAngle(e){return this._getTiltAngle(e.TILT_DIRECTION)}_isTilted(e){return e===W?this._getTiltAngle(V)>=K.TILT_THRESHOLD||this._getTiltAngle(Y)>=K.TILT_THRESHOLD||this._getTiltAngle(_)>=K.TILT_THRESHOLD||this._getTiltAngle(H)>=K.TILT_THRESHOLD:this._getTiltAngle(e)>=K.TILT_THRESHOLD}_getTiltAngle(e){switch(e){case V:return this._peripheral.tiltY>45?256-this._peripheral.tiltY:-this._peripheral.tiltY;case Y:return this._peripheral.tiltY>45?this._peripheral.tiltY-256:this._peripheral.tiltY;case _:return this._peripheral.tiltX>45?256-this._peripheral.tiltX:-this._peripheral.tiltX;case H:return this._peripheral.tiltX>45?this._peripheral.tiltX-256:this._peripheral.tiltX;default:d.warn("Unknown tilt direction in _getTiltAngle: ".concat(e))}}_forEachMotor(e,t){let n;switch(e){case B:n=[0];break;case U:n=[1];break;case F:case D:n=[0,1];break;default:d.warn("Invalid motor ID: ".concat(e)),n=[]}for(const e of n)t(e)}_noteToTone(e){return 440*Math.pow(2,(e-69)/12)}}e.exports=K},function(e,t,n){(function(e,t){!function(n){"use strict";var r,i="function"==typeof(r=n.atob)?r:"function"==typeof e?function(t){return new e(t,"base64").toString("binary")}:"object"==typeof n.base64js?function(e){var t=n.base64js.b64ToByteArray(e);return Array.prototype.map.call(t,(function(e){return String.fromCharCode(e)})).join("")}:function(){throw new Error("You're probably in an old browser or an iOS webworker. It might help to include beatgammit's base64-js.")};n.atob=i,t&&t.exports&&(t.exports=i)}(window)}).call(this,n(18).Buffer,n(114)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){(function(t){!function(){"use strict";e.exports=function(e){return(e instanceof t?e:t.from(e.toString(),"binary")).toString("base64")}}()}).call(this,n(18).Buffer)},function(e,t,n){const r=n(3),i=n(2),s=n(12),o=n(1),a=n(5),c=n(4),l=n(14);let u={};try{u=n(117)}catch(e){}class h{constructor(e){this.runtime=e,this._concurrencyCounter=0,this._drumPlayers=[],this._instrumentPlayerArrays=[],this._instrumentPlayerNoteArrays=[],this._bufferSources=[],this._loadAllSounds(),this._onTargetCreated=this._onTargetCreated.bind(this),this.runtime.on("targetWasCreated",this._onTargetCreated),this._playNoteForPicker=this._playNoteForPicker.bind(this),this.runtime.on("PLAY_NOTE",this._playNoteForPicker)}_loadAllSounds(){const e=[];this.DRUM_INFO.forEach(((t,n)=>{const r="drums/".concat(t.fileName),i=this._storeSound(r,n,this._drumPlayers);e.push(i)})),this.INSTRUMENT_INFO.forEach(((t,n)=>{this._instrumentPlayerArrays[n]=[],this._instrumentPlayerNoteArrays[n]=[],t.samples.forEach(((r,i)=>{const s="instruments/".concat(t.dirName,"/").concat(r),o=this._storeSound(s,i,this._instrumentPlayerArrays[n]);e.push(o)}))})),Promise.all(e).then((()=>{}))}_storeSound(e,t,n){const r="".concat(e,".mp3");if(!u[r])return;const i=u[r];return fetch(i).then((e=>e.arrayBuffer())).then((e=>this._decodeSound(e))).then((e=>{n[t]=e}))}_decodeSound(e){const t=this.runtime.audioEngine;return t?t.decodeSoundPlayer({data:{buffer:e}}):Promise.reject(new Error("No Audio Context Detected"))}_buildMenu(e){return e.map(((e,t)=>{const n={};return n.text=e.name,n.value=String(t+1),n}))}get DRUM_INFO(){return[{name:a({id:"music.drumSnare",default:"(1) Snare Drum",description:"Sound of snare drum as used in a standard drum kit"}),fileName:"1-snare"},{name:a({id:"music.drumBass",default:"(2) Bass Drum",description:"Sound of bass drum as used in a standard drum kit"}),fileName:"2-bass-drum"},{name:a({id:"music.drumSideStick",default:"(3) Side Stick",description:"Sound of a drum stick hitting the side of a drum (usually the snare)"}),fileName:"3-side-stick"},{name:a({id:"music.drumCrashCymbal",default:"(4) Crash Cymbal",description:"Sound of a drum stick hitting a crash cymbal"}),fileName:"4-crash-cymbal"},{name:a({id:"music.drumOpenHiHat",default:"(5) Open Hi-Hat",description:"Sound of a drum stick hitting a hi-hat while open"}),fileName:"5-open-hi-hat"},{name:a({id:"music.drumClosedHiHat",default:"(6) Closed Hi-Hat",description:"Sound of a drum stick hitting a hi-hat while closed"}),fileName:"6-closed-hi-hat"},{name:a({id:"music.drumTambourine",default:"(7) Tambourine",description:"Sound of a tambourine being struck"}),fileName:"7-tambourine"},{name:a({id:"music.drumHandClap",default:"(8) Hand Clap",description:"Sound of two hands clapping together"}),fileName:"8-hand-clap"},{name:a({id:"music.drumClaves",default:"(9) Claves",description:"Sound of claves being struck together"}),fileName:"9-claves"},{name:a({id:"music.drumWoodBlock",default:"(10) Wood Block",description:"Sound of a wood block being struck"}),fileName:"10-wood-block"},{name:a({id:"music.drumCowbell",default:"(11) Cowbell",description:"Sound of a cowbell being struck"}),fileName:"11-cowbell"},{name:a({id:"music.drumTriangle",default:"(12) Triangle",description:"Sound of a triangle (instrument) being struck"}),fileName:"12-triangle"},{name:a({id:"music.drumBongo",default:"(13) Bongo",description:"Sound of a bongo being struck"}),fileName:"13-bongo"},{name:a({id:"music.drumConga",default:"(14) Conga",description:"Sound of a conga being struck"}),fileName:"14-conga"},{name:a({id:"music.drumCabasa",default:"(15) Cabasa",description:"Sound of a cabasa being shaken"}),fileName:"15-cabasa"},{name:a({id:"music.drumGuiro",default:"(16) Guiro",description:"Sound of a guiro being played"}),fileName:"16-guiro"},{name:a({id:"music.drumVibraslap",default:"(17) Vibraslap",description:"Sound of a Vibraslap being played"}),fileName:"17-vibraslap"},{name:a({id:"music.drumCuica",default:"(18) Cuica",description:"Sound of a cuica being played"}),fileName:"18-cuica"}]}get INSTRUMENT_INFO(){return[{name:a({id:"music.instrumentPiano",default:"(1) Piano",description:"Sound of a piano"}),dirName:"1-piano",releaseTime:.5,samples:[24,36,48,60,72,84,96,108]},{name:a({id:"music.instrumentElectricPiano",default:"(2) Electric Piano",description:"Sound of an electric piano"}),dirName:"2-electric-piano",releaseTime:.5,samples:[60]},{name:a({id:"music.instrumentOrgan",default:"(3) Organ",description:"Sound of an organ"}),dirName:"3-organ",releaseTime:.5,samples:[60]},{name:a({id:"music.instrumentGuitar",default:"(4) Guitar",description:"Sound of an accoustic guitar"}),dirName:"4-guitar",releaseTime:.5,samples:[60]},{name:a({id:"music.instrumentElectricGuitar",default:"(5) Electric Guitar",description:"Sound of an electric guitar"}),dirName:"5-electric-guitar",releaseTime:.5,samples:[60]},{name:a({id:"music.instrumentBass",default:"(6) Bass",description:"Sound of an accoustic upright bass"}),dirName:"6-bass",releaseTime:.25,samples:[36,48]},{name:a({id:"music.instrumentPizzicato",default:"(7) Pizzicato",description:"Sound of a string instrument (e.g. violin) being plucked"}),dirName:"7-pizzicato",releaseTime:.25,samples:[60]},{name:a({id:"music.instrumentCello",default:"(8) Cello",description:"Sound of a cello being played with a bow"}),dirName:"8-cello",releaseTime:.1,samples:[36,48,60]},{name:a({id:"music.instrumentTrombone",default:"(9) Trombone",description:"Sound of a trombone being played"}),dirName:"9-trombone",samples:[36,48,60]},{name:a({id:"music.instrumentClarinet",default:"(10) Clarinet",description:"Sound of a clarinet being played"}),dirName:"10-clarinet",samples:[48,60]},{name:a({id:"music.instrumentSaxophone",default:"(11) Saxophone",description:"Sound of a saxophone being played"}),dirName:"11-saxophone",samples:[36,60,84]},{name:a({id:"music.instrumentFlute",default:"(12) Flute",description:"Sound of a flute being played"}),dirName:"12-flute",samples:[60,72]},{name:a({id:"music.instrumentWoodenFlute",default:"(13) Wooden Flute",description:"Sound of a wooden flute being played"}),dirName:"13-wooden-flute",samples:[60,72]},{name:a({id:"music.instrumentBassoon",default:"(14) Bassoon",description:"Sound of a bassoon being played"}),dirName:"14-bassoon",samples:[36,48,60]},{name:a({id:"music.instrumentChoir",default:"(15) Choir",description:"Sound of a choir singing"}),dirName:"15-choir",releaseTime:.25,samples:[48,60,72]},{name:a({id:"music.instrumentVibraphone",default:"(16) Vibraphone",description:"Sound of a vibraphone being struck"}),dirName:"16-vibraphone",releaseTime:.5,samples:[60,72]},{name:a({id:"music.instrumentMusicBox",default:"(17) Music Box",description:"Sound of a music box playing"}),dirName:"17-music-box",releaseTime:.25,samples:[60]},{name:a({id:"music.instrumentSteelDrum",default:"(18) Steel Drum",description:"Sound of a steel drum being struck"}),dirName:"18-steel-drum",releaseTime:.5,samples:[60]},{name:a({id:"music.instrumentMarimba",default:"(19) Marimba",description:"Sound of a marimba being struck"}),dirName:"19-marimba",samples:[60]},{name:a({id:"music.instrumentSynthLead",default:"(20) Synth Lead",description:'Sound of a "lead" synthesizer being played'}),dirName:"20-synth-lead",releaseTime:.1,samples:[60]},{name:a({id:"music.instrumentSynthPad",default:"(21) Synth Pad",description:'Sound of a "pad" synthesizer being played'}),dirName:"21-synth-pad",releaseTime:.25,samples:[60]}]}get MIDI_INSTRUMENTS(){return[1,1,1,1,2,2,4,4,17,17,17,16,19,16,17,17,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,6,6,6,6,6,6,6,6,8,8,8,8,8,7,8,19,8,8,8,8,15,15,15,19,9,9,9,9,9,9,9,9,11,11,11,11,14,14,14,10,12,12,13,13,13,13,12,12,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,4,4,4,4,17,14,8,10,17,17,18,19,1,1,1,1,21,21,21,21,21,21,21,21]}get MIDI_DRUMS(){return[[1,-4],[1,0],[2,0],[0,0],[7,0],[0,2],[1,-6,4],[5,0],[1,-3,3.2],[5,0],[1,0,3],[4,-8],[1,4,3],[1,7,2.7],[3,-8],[1,10,2.7],[4,-2],[3,-11],[4,2],[6,0],[3,0,3.5],[10,0],[3,-8,3.5],[16,-6],[4,2],[12,2],[12,0],[13,0,.2],[13,0,2],[13,-5,2],[12,12],[12,5],[10,19],[10,12],[14,0],[14,0],[17,12],[17,5],[15,0],[15,0],[8,0],[9,0],[9,-4],[17,-5],[17,0],[11,-6,1],[11,-6,3]]}static get STATE_KEY(){return"Scratch.music"}static get DEFAULT_MUSIC_STATE(){return{currentInstrument:0}}static get MIDI_NOTE_RANGE(){return{min:0,max:130}}static get BEAT_RANGE(){return{min:0,max:100}}static get TEMPO_RANGE(){return{min:20,max:500}}static get CONCURRENCY_LIMIT(){return 30}_getMusicState(e){let t=e.getCustomState(h.STATE_KEY);return t||(t=s.simple(h.DEFAULT_MUSIC_STATE),e.setCustomState(h.STATE_KEY,t)),t}_onTargetCreated(e,t){if(t){const n=t.getCustomState(h.STATE_KEY);n&&e.setCustomState(h.STATE_KEY,s.simple(n))}}getInfo(){return{id:"music",name:a({id:"music.categoryName",default:"Music",description:"Label for the Music extension category"}),menuIconURI:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+PHBhdGggZmlsbD0iIzU3NWU3NSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTYuMDkgMTIuOTM3Yy4yMjggMS4xNDEtLjgzMyAyLjA2My0yLjM3MyAyLjA2My0xLjUzNSAwLTIuOTYyLS45MjItMy4xODYtMi4wNjMtLjIzLTEuMTQyLjgzMy0yLjA2OCAyLjM3Mi0yLjA2OC4zMjMgMCAuNjQxLjA0Mi45NDUuMTE3YTMuNSAzLjUgMCAwIDEgLjQ2OC4xNTFjLjQzNS0uMDEtLjA1Mi0xLjE0Ny0uOTE3LTYuMTE0LTEuMDY3LTYuMTUyIDEuNTMtLjkzNSA0LjM4NC0xLjM3N3MuMDM4IDIuNDEtMS44MjUgMS45MjJjLTEuODYyLS40OTMtMi4zMjUtMy41NzcuMTMyIDcuMzd6TTcuNDYgOC41NjNjLTEuODYyLS40OTMtMi4zMjUtMy41NzYuMTMgNy4zN0M3LjgxNiAxNy4wNzMgNi43NTQgMTggNS4yMiAxOHMtMi45NjEtLjkyNi0zLjE5LTIuMDY4Yy0uMjI0LTEuMTQyLjgzNy0yLjA2NyAyLjM3NS0yLjA2Ny41MDEgMCAuOTg3LjA5OCAxLjQyNy4yNzIuNDEyLS4wMjgtLjA3NC0xLjE4OS0uOTMtNi4xMTQtMS4wNjgtNi4xNTMgMS41MjgtLjkzNiA0LjM4LTEuMzc3IDIuODU0LS40NDcuMDM4IDIuNDEtMS44MjMgMS45MTd6Ii8+PC9zdmc+",blockIconURI:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHRpdGxlPm11c2ljLWJsb2NrLWljb248L3RpdGxlPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNMzIuMTggMjUuODc0QzMyLjYzNiAyOC4xNTcgMzAuNTEyIDMwIDI3LjQzMyAzMGMtMy4wNyAwLTUuOTIzLTEuODQzLTYuMzcyLTQuMTI2LS40NTgtMi4yODUgMS42NjUtNC4xMzYgNC43NDMtNC4xMzZhOCA4IDAgMCAxIDEuODkuMjM0Yy4zMzguMDg2LjYzNy4xOC45MzguMzAyLjg3LS4wMi0uMTA0LTIuMjk0LTEuODM1LTEyLjIzLTIuMTM0LTEyLjMwMiAzLjA2LTEuODcgOC43NjgtMi43NTIgNS43MDgtLjg4NS4wNzYgNC44Mi0zLjY1IDMuODQ0LTMuNzI0LS45ODctNC42NS03LjE1My4yNjMgMTQuNzM4em0tMTYuOTk4IDUuOTlDMTUuNjMgMzQuMTQ4IDEzLjUwNyAzNiAxMC40NCAzNmMtMy4wNyAwLTUuOTIyLTEuODUyLTYuMzgtNC4xMzYtLjQ0OC0yLjI4NCAxLjY3NC00LjEzNSA0Ljc1LTQuMTM1IDEuMDAzIDAgMS45NzUuMTk2IDIuODU1LjU0My44MjItLjA1NS0uMTUtMi4zNzctMS44NjItMTIuMjI4LTIuMTMzLTEyLjMwMyAzLjA2LTEuODcgOC43NjQtMi43NTMgNS43MDYtLjg5NC4wNzYgNC44Mi0zLjY0OCAzLjgzNHMtNC42NS03LjE1Mi4yNjIgMTQuNzM4eiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjx1c2UgeGxpbms6aHJlZj0iI2EiIGZpbGw9IiNmZmYiLz48cGF0aCBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIuMSIgZD0iTTI4LjQ1NiAyMS42NzVjLS4wMS0uMzEyLS4wODctLjgyNS0uMjU2LTEuNzAyLS4wOTYtLjQ5NS0uNjEyLTMuMDIyLS43NTMtMy43My0uMzk1LTEuOTgtLjc2LTMuOTItMS4xNDItNi4xMTMtLjczMi00LjIyMy0uNjkzLTYuMDUuMzQ0LTYuNTI3LjUtLjIzIDEuMDYtLjA4IDEuODQuMzUuNDE0LjIyNyAyLjE4MiAxLjM2NSAyLjA3IDEuMjk2IDEuOTk0IDEuMjQyIDMuNDY0IDEuNzc0IDQuOTMgMS41NDggMS41MjYtLjIzNyAyLjUwNC0uMDYgMi44NzYuNjE4LjM0OC42MzUuMDE1IDEuNDE2LS43MyAyLjE4LTEuNDcyIDEuNTE2LTMuOTc1IDIuNTE0LTUuODQ4IDIuMDIzLS44MjItLjIyLTEuMjM4LS40NjUtMi4zOC0xLjI2N2wtLjA5NS0uMDY2Yy4wNDcuNTkzLjI2NCAxLjc0LjcxNyAzLjgwMy4yOTQgMS4zMzYgMi4wOCA5LjE4NyAyLjYzNyAxMS42NzRsLjAwMi4wMTJjLjUyOCAyLjYzNy0xLjg3MyA0LjcyNC01LjIzNiA0LjcyNC0zLjI5IDAtNi4zNjMtMS45ODgtNi44NjItNC41MjgtLjUzLTIuNjQgMS44NzMtNC43MzQgNS4yMzMtNC43MzRhOC40IDguNCAwIDAgMSAyLjY1LjQzN3ptLTE2Ljk5NiA1Ljk5Yy0uMDEtLjMxOC0uMDktLjgzOC0uMjY2LTEuNzM3LS4wOS0uNDYtLjU5NS0yLjkzNy0uNzUzLTMuNzI3LS4zOS0xLjk2LS43NS0zLjg5LTEuMTMtNi4wNy0uNzMyLTQuMjIzLS42OTItNi4wNS4zNDQtNi41MjYuNTAyLS4yMyAxLjA2LS4wODIgMS44NC4zNS40MTUuMjI3IDIuMTgyIDEuMzY0IDIuMDcgMS4yOTUgMS45OTMgMS4yNDIgMy40NjIgMS43NzQgNC45MjYgMS41NDggMS41MjUtLjI0IDIuNTA0LS4wNjQgMi44NzYuNjE0LjM0OC42MzUuMDE1IDEuNDE1LS43MjggMi4xOC0xLjQ3NCAxLjUxNy0zLjk3NyAyLjUxMy01Ljg0NyAyLjAxNy0uODItLjIyLTEuMjM2LS40NjQtMi4zNzgtMS4yNjdsLS4wOTUtLjA2NWMuMDQ3LjU5My4yNjQgMS43NC43MTcgMy44MDIuMjk0IDEuMzM3IDIuMDc4IDkuMTkgMi42MzYgMTEuNjc1bC4wMDMuMDEzYy41MTcgMi42MzgtMS44ODQgNC43MzItNS4yMzQgNC43MzItMy4yODcgMC02LjM2LTEuOTkzLTYuODctNC41NC0uNTItMi42NCAxLjg4NC00LjczIDUuMjQtNC43My45MDUgMCAxLjgwMy4xNSAyLjY1LjQzNnoiLz48L2c+PC9zdmc+",blocks:[{opcode:"playDrumForBeats",blockType:i.COMMAND,text:a({id:"music.playDrumForBeats",default:"play drum [DRUM] for [BEATS] beats",description:"play drum sample for a number of beats"}),arguments:{DRUM:{type:r.NUMBER,menu:"DRUM",defaultValue:1},BEATS:{type:r.NUMBER,defaultValue:.25}}},{opcode:"midiPlayDrumForBeats",blockType:i.COMMAND,text:a({id:"music.midiPlayDrumForBeats",default:"play drum [DRUM] for [BEATS] beats",description:"play drum sample for a number of beats according to a mapping of MIDI codes"}),arguments:{DRUM:{type:r.NUMBER,menu:"DRUM",defaultValue:1},BEATS:{type:r.NUMBER,defaultValue:.25}},hideFromPalette:!0},{opcode:"restForBeats",blockType:i.COMMAND,text:a({id:"music.restForBeats",default:"rest for [BEATS] beats",description:"rest (play no sound) for a number of beats"}),arguments:{BEATS:{type:r.NUMBER,defaultValue:.25}}},{opcode:"playNoteForBeats",blockType:i.COMMAND,text:a({id:"music.playNoteForBeats",default:"play note [NOTE] for [BEATS] beats",description:"play a note for a number of beats"}),arguments:{NOTE:{type:r.NOTE,defaultValue:60},BEATS:{type:r.NUMBER,defaultValue:.25}}},{opcode:"setInstrument",blockType:i.COMMAND,text:a({id:"music.setInstrument",default:"set instrument to [INSTRUMENT]",description:"set the instrument (e.g. piano, guitar, trombone) for notes played"}),arguments:{INSTRUMENT:{type:r.NUMBER,menu:"INSTRUMENT",defaultValue:1}}},{opcode:"midiSetInstrument",blockType:i.COMMAND,text:a({id:"music.midiSetInstrument",default:"set instrument to [INSTRUMENT]",description:"set the instrument for notes played according to a mapping of MIDI codes"}),arguments:{INSTRUMENT:{type:r.NUMBER,defaultValue:1}},hideFromPalette:!0},{opcode:"setTempo",blockType:i.COMMAND,text:a({id:"music.setTempo",default:"set tempo to [TEMPO]",description:"set tempo (speed) for notes, drums, and rests played"}),arguments:{TEMPO:{type:r.NUMBER,defaultValue:60}}},{opcode:"changeTempo",blockType:i.COMMAND,text:a({id:"music.changeTempo",default:"change tempo by [TEMPO]",description:"change tempo (speed) for notes, drums, and rests played"}),arguments:{TEMPO:{type:r.NUMBER,defaultValue:20}}},{opcode:"getTempo",text:a({id:"music.getTempo",default:"tempo",description:"get the current tempo (speed) for notes, drums, and rests played"}),blockType:i.REPORTER}],menus:{DRUM:{acceptReporters:!0,items:this._buildMenu(this.DRUM_INFO)},INSTRUMENT:{acceptReporters:!0,items:this._buildMenu(this.INSTRUMENT_INFO)}}}}_isConcurrencyLimited(){return this.runtime.runtimeOptions.miscLimits&&this._concurrencyCounter>h.CONCURRENCY_LIMIT}playDrumForBeats(e,t){this._playDrumForBeats(e.DRUM,e.BEATS,t)}midiPlayDrumForBeats(e,t){let n=o.toNumber(e.DRUM);n=Math.round(n);const r=this.MIDI_DRUMS[n-35];n=r?r[0]:2,n+=1,this._playDrumForBeats(n,e.BEATS,t)}_playDrumForBeats(e,t,n){this._stackTimerNeedsInit(n)?(e=o.toNumber(e),e=Math.round(e),e-=1,e=c.wrapClamp(e,0,this.DRUM_INFO.length-1),t=o.toNumber(t),t=this._clampBeats(t),this._playDrumNum(n,e),this._startStackTimer(n,this._beatsToSec(t))):this._checkStackTimer(n)}_playDrumNum(e,t){if(null===e.runtime.audioEngine)return;if(null===e.target.sprite.soundBank)return;if(this._isConcurrencyLimited())return;const n=this._drumPlayers[t];if(void 0===n)return;n.isPlaying&&!n.isStarting&&n.take();const r=e.runtime.audioEngine,i=r.audioContext.createGain();i.gain.setValueAtTime(e.target.volume/100,r.currentTime),i.connect(r.getInputNode()),this._concurrencyCounter++,n.once("stop",(()=>{this._concurrencyCounter--})),n.play(),n.connect({getInputNode:()=>i})}restForBeats(e,t){if(this._stackTimerNeedsInit(t)){let n=o.toNumber(e.BEATS);n=this._clampBeats(n),this._startStackTimer(t,this._beatsToSec(n))}else this._checkStackTimer(t)}playNoteForBeats(e,t){if(this._stackTimerNeedsInit(t)){let n=o.toNumber(e.NOTE);n=c.clamp(n,h.MIDI_NOTE_RANGE.min,h.MIDI_NOTE_RANGE.max);let r=o.toNumber(e.BEATS);if(r=this._clampBeats(r),0===r)return;const i=this._beatsToSec(r);this._playNote(t,n,i),this._startStackTimer(t,i)}else this._checkStackTimer(t)}_playNoteForPicker(e,t){if(t!==this.getInfo().name)return;const n={runtime:this.runtime,target:this.runtime.getEditingTarget()};this._playNote(n,e,.25)}_playNote(e,t,n){if(null===e.runtime.audioEngine)return;if(null===e.target.sprite.soundBank)return;if(this._isConcurrencyLimited())return;const r=this._getMusicState(e.target).currentInstrument,i=this.INSTRUMENT_INFO[r].samples,s=this._selectSampleIndexForNote(t,i);if(void 0===this._instrumentPlayerArrays[r])return;if(void 0===this._instrumentPlayerArrays[r][s])return;const o=e.runtime.audioEngine;this._instrumentPlayerNoteArrays[r][t]||(this._instrumentPlayerNoteArrays[r][t]=this._instrumentPlayerArrays[r][s].take());const a=this._instrumentPlayerNoteArrays[r][t];a.isPlaying&&!a.isStarting&&a.take();const c=i[s],l=this._ratioForPitchInterval(t-c),u=o.audioContext,h=u.createGain();h.gain.setValueAtTime(e.target.volume/100,o.currentTime);const d=u.createGain();h.connect(d),d.connect(o.getInputNode());let p=this.INSTRUMENT_INFO[r].releaseTime;void 0===p&&(p=.01);const f=u.currentTime+n,m=f+p;d.gain.setValueAtTime(1,f),d.gain.linearRampToValueAtTime(1e-4,m),this._concurrencyCounter++,a.once("stop",(()=>{this._concurrencyCounter--})),a.play(),a.connect({getInputNode:()=>h}),a.outputNode.playbackRate.value=l,a.outputNode.stop(m)}_selectSampleIndexForNote(e,t){for(let n=t.length-1;n>=0;n--)if(e>=t[n])return n;return 0}_ratioForPitchInterval(e){return Math.pow(2,e/12)}_clampBeats(e){return c.clamp(e,h.BEAT_RANGE.min,h.BEAT_RANGE.max)}_beatsToSec(e){return 60/this.getTempo()*e}_stackTimerNeedsInit(e){return!e.stackFrame.timer}_startStackTimer(e,t){e.stackFrame.timer=new l,e.stackFrame.timer.start(),e.stackFrame.duration=t,e.yield()}_checkStackTimer(e){e.stackFrame.timer.timeElapsed()<1e3*e.stackFrame.duration&&e.yield()}setInstrument(e,t){this._setInstrument(e.INSTRUMENT,t,!1)}midiSetInstrument(e,t){this._setInstrument(e.INSTRUMENT,t,!0)}_setInstrument(e,t,n){const r=this._getMusicState(t.target);e=o.toNumber(e),e=Math.round(e),e-=1,n&&(e=(this.MIDI_INSTRUMENTS[e]||0)-1),e=c.wrapClamp(e,0,this.INSTRUMENT_INFO.length-1),r.currentInstrument=e}setTempo(e){const t=o.toNumber(e.TEMPO);this._updateTempo(t)}changeTempo(e){const t=o.toNumber(e.TEMPO)+this.getTempo();this._updateTempo(t)}_updateTempo(e){e=c.clamp(e,h.TEMPO_RANGE.min,h.TEMPO_RANGE.max);const t=this.runtime.getTargetForStage();t&&(t.tempo=e)}getTempo(){const e=this.runtime.getTargetForStage();return e?e.tempo:60}}e.exports=h},function(e,t,n){e.exports={"drums/1-snare.mp3":n(118),"drums/2-bass-drum.mp3":n(119),"drums/3-side-stick.mp3":n(120),"drums/4-crash-cymbal.mp3":n(121),"drums/5-open-hi-hat.mp3":n(122),"drums/6-closed-hi-hat.mp3":n(123),"drums/7-tambourine.mp3":n(124),"drums/8-hand-clap.mp3":n(125),"drums/9-claves.mp3":n(126),"drums/10-wood-block.mp3":n(127),"drums/11-cowbell.mp3":n(128),"drums/12-triangle.mp3":n(129),"drums/13-bongo.mp3":n(130),"drums/14-conga.mp3":n(131),"drums/15-cabasa.mp3":n(132),"drums/16-guiro.mp3":n(133),"drums/17-vibraslap.mp3":n(134),"drums/18-cuica.mp3":n(135),"instruments/1-piano/24.mp3":n(136),"instruments/1-piano/36.mp3":n(137),"instruments/1-piano/48.mp3":n(138),"instruments/1-piano/60.mp3":n(139),"instruments/1-piano/72.mp3":n(140),"instruments/1-piano/84.mp3":n(141),"instruments/1-piano/96.mp3":n(142),"instruments/1-piano/108.mp3":n(143),"instruments/2-electric-piano/60.mp3":n(144),"instruments/3-organ/60.mp3":n(145),"instruments/4-guitar/60.mp3":n(146),"instruments/5-electric-guitar/60.mp3":n(147),"instruments/6-bass/36.mp3":n(148),"instruments/6-bass/48.mp3":n(149),"instruments/7-pizzicato/60.mp3":n(150),"instruments/8-cello/36.mp3":n(151),"instruments/8-cello/48.mp3":n(152),"instruments/8-cello/60.mp3":n(153),"instruments/9-trombone/36.mp3":n(154),"instruments/9-trombone/48.mp3":n(155),"instruments/9-trombone/60.mp3":n(156),"instruments/10-clarinet/48.mp3":n(157),"instruments/10-clarinet/60.mp3":n(158),"instruments/11-saxophone/36.mp3":n(159),"instruments/11-saxophone/60.mp3":n(160),"instruments/11-saxophone/84.mp3":n(161),"instruments/12-flute/60.mp3":n(162),"instruments/12-flute/72.mp3":n(163),"instruments/13-wooden-flute/60.mp3":n(164),"instruments/13-wooden-flute/72.mp3":n(165),"instruments/14-bassoon/36.mp3":n(166),"instruments/14-bassoon/48.mp3":n(167),"instruments/14-bassoon/60.mp3":n(168),"instruments/15-choir/48.mp3":n(169),"instruments/15-choir/60.mp3":n(170),"instruments/15-choir/72.mp3":n(171),"instruments/16-vibraphone/60.mp3":n(172),"instruments/16-vibraphone/72.mp3":n(173),"instruments/17-music-box/60.mp3":n(174),"instruments/18-steel-drum/60.mp3":n(175),"instruments/19-marimba/60.mp3":n(176),"instruments/20-synth-lead/60.mp3":n(177),"instruments/21-synth-pad/60.mp3":n(178)}},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t){e.exports=null},function(e,t,n){const r=n(3),i=n(2),s=n(0),o=n(1),a=n(5),c=n(30),l=n(16),u=129,h=130,d="micro:bit extension stopped receiving data",p=61445,f="5261da01-fa7e-42ab-850b-7c80220097cc",m="5261da02-fa7e-42ab-850b-7c80220097cc";class g{constructor(e,t){this._runtime=e,this._ble=null,this._runtime.registerPeripheralExtension(t,this),this._extensionId=t,this._sensors={tiltX:0,tiltY:0,buttonA:0,buttonB:0,touchPins:[0,0,0],gestureState:0,ledMatrixState:new Uint8Array(5)},this._gestures={moving:!1,move:{active:!1,timeout:!1},shake:{active:!1,timeout:!1},jump:{active:!1,timeout:!1}},this._timeoutID=null,this._busy=!1,this._busyTimeoutID=null,this.reset=this.reset.bind(this),this._onConnect=this._onConnect.bind(this),this._onMessage=this._onMessage.bind(this)}displayText(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return this.send(u,t)}displayMatrix(e){return this.send(h,e)}get tiltX(){return this._sensors.tiltX}get tiltY(){return this._sensors.tiltY}get buttonA(){return this._sensors.buttonA}get buttonB(){return this._sensors.buttonB}get gestureState(){return this._sensors.gestureState}get ledMatrixState(){return this._sensors.ledMatrixState}scan(){this._ble&&this._ble.disconnect(),this._ble=new c(this._runtime,this._extensionId,{filters:[{services:[p]}]},this._onConnect,this.reset)}connect(e){this._ble&&this._ble.connectPeripheral(e)}disconnect(){this._ble&&this._ble.disconnect(),this.reset()}reset(){this._timeoutID&&(window.clearTimeout(this._timeoutID),this._timeoutID=null)}isConnected(){let e=!1;return this._ble&&(e=this._ble.isConnected()),e}send(e,t){if(!this.isConnected())return;if(this._busy)return;this._busy=!0,this._busyTimeoutID=window.setTimeout((()=>{this._busy=!1}),5e3);const n=new Uint8Array(t.length+1);n[0]=e;for(let e=0;e<t.length;e++)n[e+1]=t[e];const r=l.uint8ArrayToBase64(n);this._ble.write(p,m,r,"base64",!0).then((()=>{this._busy=!1,window.clearTimeout(this._busyTimeoutID)}))}_onConnect(){this._ble.read(p,f,!0,this._onMessage),this._timeoutID=window.setTimeout((()=>this._ble.handleDisconnectError(d)),4500)}_onMessage(e){const t=l.base64ToUint8Array(e);this._sensors.tiltX=t[1]|t[0]<<8,this._sensors.tiltX>32768&&(this._sensors.tiltX-=65536),this._sensors.tiltY=t[3]|t[2]<<8,this._sensors.tiltY>32768&&(this._sensors.tiltY-=65536),this._sensors.buttonA=t[4],this._sensors.buttonB=t[5],this._sensors.touchPins[0]=t[6],this._sensors.touchPins[1]=t[7],this._sensors.touchPins[2]=t[8],this._sensors.gestureState=t[9],window.clearTimeout(this._timeoutID),this._timeoutID=window.setTimeout((()=>this._ble.handleDisconnectError(d)),4500)}_checkPinState(e){return this._sensors.touchPins[e]}}const b="front",y="back",E="left",T="right",v="any",A="moved",w="shaken",S="jumped",k="A",O="B",I="any",N="on",R="off";class x{static get EXTENSION_NAME(){return"micro:bit"}static get EXTENSION_ID(){return"microbit"}static get TILT_THRESHOLD(){return 15}get BUTTONS_MENU(){return[{text:"A",value:k},{text:"B",value:O},{text:a({id:"microbit.buttonsMenu.any",default:"any",description:'label for "any" element in button picker for micro:bit extension'}),value:I}]}get GESTURES_MENU(){return[{text:a({id:"microbit.gesturesMenu.moved",default:"moved",description:"label for moved gesture in gesture picker for micro:bit extension"}),value:A},{text:a({id:"microbit.gesturesMenu.shaken",default:"shaken",description:"label for shaken gesture in gesture picker for micro:bit extension"}),value:w},{text:a({id:"microbit.gesturesMenu.jumped",default:"jumped",description:"label for jumped gesture in gesture picker for micro:bit extension"}),value:S}]}get PIN_STATE_MENU(){return[{text:a({id:"microbit.pinStateMenu.on",default:"on",description:"label for on element in pin state picker for micro:bit extension"}),value:N},{text:a({id:"microbit.pinStateMenu.off",default:"off",description:"label for off element in pin state picker for micro:bit extension"}),value:R}]}get TILT_DIRECTION_MENU(){return[{text:a({id:"microbit.tiltDirectionMenu.front",default:"front",description:"label for front element in tilt direction picker for micro:bit extension"}),value:b},{text:a({id:"microbit.tiltDirectionMenu.back",default:"back",description:"label for back element in tilt direction picker for micro:bit extension"}),value:y},{text:a({id:"microbit.tiltDirectionMenu.left",default:"left",description:"label for left element in tilt direction picker for micro:bit extension"}),value:E},{text:a({id:"microbit.tiltDirectionMenu.right",default:"right",description:"label for right element in tilt direction picker for micro:bit extension"}),value:T}]}get TILT_DIRECTION_ANY_MENU(){return[...this.TILT_DIRECTION_MENU,{text:a({id:"microbit.tiltDirectionMenu.any",default:"any",description:"label for any direction element in tilt direction picker for micro:bit extension"}),value:v}]}constructor(e){this.runtime=e,this._peripheral=new g(this.runtime,x.EXTENSION_ID)}getInfo(){return{id:x.EXTENSION_ID,name:x.EXTENSION_NAME,blockIconURI:"data:image/png;base64,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",showStatusButton:!0,blocks:[{opcode:"whenButtonPressed",text:a({id:"microbit.whenButtonPressed",default:"when [BTN] button pressed",description:"when the selected button on the micro:bit is pressed"}),blockType:i.HAT,arguments:{BTN:{type:r.STRING,menu:"buttons",defaultValue:k}}},{opcode:"isButtonPressed",text:a({id:"microbit.isButtonPressed",default:"[BTN] button pressed?",description:"is the selected button on the micro:bit pressed?"}),blockType:i.BOOLEAN,arguments:{BTN:{type:r.STRING,menu:"buttons",defaultValue:k}}},"---",{opcode:"whenGesture",text:a({id:"microbit.whenGesture",default:"when [GESTURE]",description:"when the selected gesture is detected by the micro:bit"}),blockType:i.HAT,arguments:{GESTURE:{type:r.STRING,menu:"gestures",defaultValue:A}}},"---",{opcode:"displaySymbol",text:a({id:"microbit.displaySymbol",default:"display [MATRIX]",description:"display a pattern on the micro:bit display"}),blockType:i.COMMAND,arguments:{MATRIX:{type:r.MATRIX,defaultValue:"0101010101100010101000100"}}},{opcode:"displayText",text:a({id:"microbit.displayText",default:"display text [TEXT]",description:"display text on the micro:bit display"}),blockType:i.COMMAND,arguments:{TEXT:{type:r.STRING,defaultValue:a({id:"microbit.defaultTextToDisplay",default:"Hello!",description:'default text to display.\n IMPORTANT - the micro:bit only supports letters a-z, A-Z.\n Please substitute a default word in your language\n that can be written with those characters,\n substitute non-accented characters or leave it as "Hello!".\n Check the micro:bit site documentation for details'})}}},{opcode:"displayClear",text:a({id:"microbit.clearDisplay",default:"clear display",description:"display nothing on the micro:bit display"}),blockType:i.COMMAND},"---",{opcode:"whenTilted",text:a({id:"microbit.whenTilted",default:"when tilted [DIRECTION]",description:"when the micro:bit is tilted in a direction"}),blockType:i.HAT,arguments:{DIRECTION:{type:r.STRING,menu:"tiltDirectionAny",defaultValue:v}}},{opcode:"isTilted",text:a({id:"microbit.isTilted",default:"tilted [DIRECTION]?",description:"is the micro:bit is tilted in a direction?"}),blockType:i.BOOLEAN,arguments:{DIRECTION:{type:r.STRING,menu:"tiltDirectionAny",defaultValue:v}}},{opcode:"getTiltAngle",text:a({id:"microbit.tiltAngle",default:"tilt angle [DIRECTION]",description:"how much the micro:bit is tilted in a direction"}),blockType:i.REPORTER,arguments:{DIRECTION:{type:r.STRING,menu:"tiltDirection",defaultValue:b}}},"---",{opcode:"whenPinConnected",text:a({id:"microbit.whenPinConnected",default:"when pin [PIN] connected",description:"when the pin detects a connection to Earth/Ground"}),blockType:i.HAT,arguments:{PIN:{type:r.STRING,menu:"touchPins",defaultValue:"0"}}}],menus:{buttons:{acceptReporters:!0,items:this.BUTTONS_MENU},gestures:{acceptReporters:!0,items:this.GESTURES_MENU},pinState:{acceptReporters:!0,items:this.PIN_STATE_MENU},tiltDirection:{acceptReporters:!0,items:this.TILT_DIRECTION_MENU},tiltDirectionAny:{acceptReporters:!0,items:this.TILT_DIRECTION_ANY_MENU},touchPins:{acceptReporters:!0,items:["0","1","2"]}}}}whenButtonPressed(e){return"any"===e.BTN?this._peripheral.buttonA|this._peripheral.buttonB:"A"===e.BTN?this._peripheral.buttonA:"B"===e.BTN&&this._peripheral.buttonB}isButtonPressed(e){return"any"===e.BTN?!!(this._peripheral.buttonA|this._peripheral.buttonB):"A"===e.BTN?0!==this._peripheral.buttonA:"B"===e.BTN&&0!==this._peripheral.buttonB}whenGesture(e){const t=o.toString(e.GESTURE);return"moved"===t?this._peripheral.gestureState>>2&1:"shaken"===t?1&this._peripheral.gestureState:"jumped"===t&&this._peripheral.gestureState>>1&1}displaySymbol(e){const t=o.toString(e.MATRIX).replace(/\s/g,"").split("").reduce(((e,t,n)=>"0"===t?e:e+Math.pow(2,n)),0);return null!==t&&(this._peripheral.ledMatrixState[0]=31&t,this._peripheral.ledMatrixState[1]=t>>5&31,this._peripheral.ledMatrixState[2]=t>>10&31,this._peripheral.ledMatrixState[3]=t>>15&31,this._peripheral.ledMatrixState[4]=t>>20&31,this._peripheral.displayMatrix(this._peripheral.ledMatrixState)),new Promise((e=>{setTimeout((()=>{e()}),100)}))}displayText(e){const t=String(e.TEXT).substring(0,19);t.length>0&&this._peripheral.displayText(t);const n=120*(6*t.length+6);return new Promise((e=>{setTimeout((()=>{e()}),n)}))}displayClear(){for(let e=0;e<5;e++)this._peripheral.ledMatrixState[e]=0;return this._peripheral.displayMatrix(this._peripheral.ledMatrixState),new Promise((e=>{setTimeout((()=>{e()}),100)}))}whenTilted(e){return this._isTilted(e.DIRECTION)}isTilted(e){return this._isTilted(e.DIRECTION)}getTiltAngle(e){return this._getTiltAngle(e.DIRECTION)}_isTilted(e){return e===v?Math.abs(this._peripheral.tiltX/10)>=x.TILT_THRESHOLD||Math.abs(this._peripheral.tiltY/10)>=x.TILT_THRESHOLD:this._getTiltAngle(e)>=x.TILT_THRESHOLD}_getTiltAngle(e){switch(e){case b:return Math.round(this._peripheral.tiltY/-10);case y:return Math.round(this._peripheral.tiltY/10);case E:return Math.round(this._peripheral.tiltX/-10);case T:return Math.round(this._peripheral.tiltX/10);default:s.warn("Unknown tilt direction in _getTiltAngle: ".concat(e))}}whenPinConnected(e){const t=parseInt(e.PIN,10);if(!isNaN(t))return!(t<0||t>2)&&this._peripheral._checkPinState(t)}}e.exports=x},function(e,t,n){const r=n(5),i=n(61),s=n(3),o=n(2),a=n(1),c=n(4),l=n(12),u=n(0),{fetchWithTimeout:h}=n(41),d="ALTO",p="TENOR",f="SQUEAK",m="GIANT",g="KITTEN",b="ar",y="zh-cn",E="da",T="nl",v="en",A="fr",w="de",S="hi",k="is",O="it",I="ja",N="ko",R="nb",x="pl",M="pt-br",C="pt",P="ro",L="ru",D="es",B="es-419",U="sv",F="tr",j="cy";class z{constructor(e){this.runtime=e,this._soundPlayers=new Map,this._stopAllSpeech=this._stopAllSpeech.bind(this),this.runtime&&this.runtime.on("PROJECT_STOP_ALL",this._stopAllSpeech),this._onTargetCreated=this._onTargetCreated.bind(this),this.runtime&&e.on("targetWasCreated",this._onTargetCreated),this._supportedLocales=this._getSupportedLocales()}get VOICE_INFO(){return{[d]:{name:r({id:"text2speech.alto",default:"alto",description:"Name for a voice with ambiguous gender."}),gender:"female",playbackRate:1},[p]:{name:r({id:"text2speech.tenor",default:"tenor",description:"Name for a voice with ambiguous gender."}),gender:"male",playbackRate:1},[f]:{name:r({id:"text2speech.squeak",default:"squeak",description:"Name for a funny voice with a high pitch."}),gender:"female",playbackRate:1.19},[m]:{name:r({id:"text2speech.giant",default:"giant",description:"Name for a funny voice with a low pitch."}),gender:"male",playbackRate:.84},[g]:{name:r({id:"text2speech.kitten",default:"kitten",description:"A baby cat."}),gender:"female",playbackRate:1.41}}}get LANGUAGE_INFO(){return{[b]:{name:"Arabic",locales:["ar"],speechSynthLocale:"arb",singleGender:!0},[y]:{name:"Chinese (Mandarin)",locales:["zh-cn","zh-tw"],speechSynthLocale:"cmn-CN",singleGender:!0},[E]:{name:"Danish",locales:["da"],speechSynthLocale:"da-DK"},[T]:{name:"Dutch",locales:["nl"],speechSynthLocale:"nl-NL"},[v]:{name:"English",locales:["en"],speechSynthLocale:"en-US"},[A]:{name:"French",locales:["fr"],speechSynthLocale:"fr-FR"},[w]:{name:"German",locales:["de"],speechSynthLocale:"de-DE"},[S]:{name:"Hindi",locales:["hi"],speechSynthLocale:"hi-IN",singleGender:!0},[k]:{name:"Icelandic",locales:["is"],speechSynthLocale:"is-IS"},[O]:{name:"Italian",locales:["it"],speechSynthLocale:"it-IT"},[I]:{name:"Japanese",locales:["ja","ja-hira"],speechSynthLocale:"ja-JP"},[N]:{name:"Korean",locales:["ko"],speechSynthLocale:"ko-KR",singleGender:!0},[R]:{name:"Norwegian",locales:["nb","nn"],speechSynthLocale:"nb-NO",singleGender:!0},[x]:{name:"Polish",locales:["pl"],speechSynthLocale:"pl-PL"},[M]:{name:"Portuguese (Brazilian)",locales:["pt-br"],speechSynthLocale:"pt-BR"},[C]:{name:"Portuguese (European)",locales:["pt"],speechSynthLocale:"pt-PT"},[P]:{name:"Romanian",locales:["ro"],speechSynthLocale:"ro-RO",singleGender:!0},[L]:{name:"Russian",locales:["ru"],speechSynthLocale:"ru-RU"},[D]:{name:"Spanish (European)",locales:["es"],speechSynthLocale:"es-ES"},[B]:{name:"Spanish (Latin American)",locales:["es-419"],speechSynthLocale:"es-US"},[U]:{name:"Swedish",locales:["sv"],speechSynthLocale:"sv-SE",singleGender:!0},[F]:{name:"Turkish",locales:["tr"],speechSynthLocale:"tr-TR",singleGender:!0},[j]:{name:"Welsh",locales:["cy"],speechSynthLocale:"cy-GB",singleGender:!0}}}static get STATE_KEY(){return"Scratch.text2speech"}static get DEFAULT_TEXT2SPEECH_STATE(){return{voiceId:d}}get DEFAULT_LANGUAGE(){return"en"}_getState(e){let t=e.getCustomState(z.STATE_KEY);return t||(t=l.simple(z.DEFAULT_TEXT2SPEECH_STATE),e.setCustomState(z.STATE_KEY,t)),t}_onTargetCreated(e,t){if(t){const n=t.getCustomState(z.STATE_KEY);n&&e.setCustomState(z.STATE_KEY,l.simple(n))}}getInfo(){let e="hello";return this.isSupportedLanguage(this.getEditorLanguage())&&(e=r({id:"text2speech.defaultTextToSpeak",default:"hello",description:"hello: the default text to speak"})),{id:"text2speech",name:r({id:"text2speech.categoryName",default:"Text to Speech",description:"Name of the Text to Speech extension."}),blockIconURI:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48dGl0bGU+RXh0ZW5zaW9ucy9Tb2Z0d2FyZS9UZXh0LXRvLVNwZWVjaC1CbG9jazwvdGl0bGU+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIuMTUiPjxwYXRoIGZpbGw9IiM0ZDRkNGQiIGQ9Ik0xNS41IDIxLjY3YzAtMS4wMTYtMS40OTQtMS41ODYtMi4zODctLjc4MmwtMi43IDIuMTYzQTUuOTYgNS45NiAwIDAgMSA2LjcgMjQuMzNoLS40Yy0xLjAzNSAwLTEuOC42OS0xLjggMS41NzN2NC4yMzVjMCAuODgzLjc2NSAxLjU3MiAxLjggMS41NzJoLjRjMS40NTggMCAyLjc1NC40MjMgMy44MiAxLjI4N2wyLjU5OCAyLjE2MWMuOTA4Ljc1IDIuMzgyLjE4OCAyLjM4Mi0uODc2eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yNS42NDQgMjAuNWMtMS42NjcgMS45MzctNC41MzkgMy40MjktNS45NzcgMy40MjlhMS4yNSAxLjI1IDAgMCAxLS41NTctLjEzN2MtLjM3Mi0uMTg2LS42MS0uNTQyLS42MS0xLjAzcTAtLjE1Ny4wNS0uMzA4Yy4wNzYtLjIzNi42MjQtLjk4Ni43MjctMS4xNzMuMjctLjQ4NC40NjItMS4wNzUuNTY2LTEuODY1QTguNSA4LjUgMCAwIDEgMjQgMy41aDRhOC41IDguNSAwIDEgMSAwIDE3eiIvPjwvZz48L3N2Zz4=",menuIconURI:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+RXh0ZW5zaW9ucy9Tb2Z0d2FyZS9UZXh0LXRvLVNwZWVjaC1NZW51PC90aXRsZT48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGZpbGw9IiM0ZDRkNGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9Ii4xNSIgc3Ryb2tlLXdpZHRoPSIuNSIgZD0iTTcuNzUgMTAuODM1YzAtLjUwOC0uNzQ3LS43OTMtMS4xOTQtLjM5bC0xLjM1IDEuMDhjLS41MS40MDgtMS4xNjkuNjQtMS44NTYuNjRoLS4yYy0uNTE3IDAtLjkuMzQ2LS45Ljc4N3YyLjExN2MwIC40NDIuMzgzLjc4Ny45Ljc4N2guMmMuNzI5IDAgMS4zNzcuMjEgMS45MS42NDNsMS4zIDEuMDhjLjQ1My4zNzYgMS4xOS4wOTUgMS4xOS0uNDM3eiIvPjxwYXRoIGZpbGw9IiMwZWJkOGMiIGQ9Ik0xMi43MDUgMTBjLS45MTQgMS4xMzEtMi4zOTggMS43MTQtMi44NzIgMS43MTQgMCAwLS4zMzMgMC0uMzMzLS4zMzMgMC0uMjk2LjU2Mi0uNDguNjktMS44MTNBNCA0IDAgMCAxIDEyIDJoMmE0IDQgMCAxIDEgMCA4eiIvPjwvZz48L3N2Zz4=",blocks:[{opcode:"speakAndWait",text:r({id:"text2speech.speakAndWaitBlock",default:"speak [WORDS]",description:"Speak some words."}),blockType:o.COMMAND,arguments:{WORDS:{type:s.STRING,defaultValue:e}}},{opcode:"setVoice",text:r({id:"text2speech.setVoiceBlock",default:"set voice to [VOICE]",description:"Set the voice for speech synthesis."}),blockType:o.COMMAND,arguments:{VOICE:{type:s.STRING,menu:"voices",defaultValue:d}}},{opcode:"setLanguage",text:r({id:"text2speech.setLanguageBlock",default:"set language to [LANGUAGE]",description:"Set the language for speech synthesis."}),blockType:o.COMMAND,arguments:{LANGUAGE:{type:s.STRING,menu:"languages",defaultValue:this.getCurrentLanguage()}}}],menus:{voices:{acceptReporters:!0,items:this.getVoiceMenu()},languages:{acceptReporters:!0,items:this.getLanguageMenu()}}}}getEditorLanguage(){return(r.setup().locale||navigator.language||navigator.userLanguage||this.DEFAULT_LANGUAGE).toLowerCase()}getCurrentLanguage(){const e=this.runtime.getTargetForStage();return e?(e.textToSpeechLanguage||this.setCurrentLanguage(this.getEditorLanguage()),e.textToSpeechLanguage):this.DEFAULT_LANGUAGE}setCurrentLanguage(e){const t=this.runtime.getTargetForStage();if(!t)return;this.isSupportedLanguage(e)&&(t.textToSpeechLanguage=this._getExtensionLocaleForSupportedLocale(e));const n=i.nameMap[e.toLowerCase()];n&&this.isSupportedLanguage(n)&&(t.textToSpeechLanguage=this._getExtensionLocaleForSupportedLocale(n)),t.textToSpeechLanguage||(t.textToSpeechLanguage=this.DEFAULT_LANGUAGE)}_getExtensionLocaleForSupportedLocale(e){for(const t in this.LANGUAGE_INFO)if(this.LANGUAGE_INFO[t].locales.includes(e))return t;u.error("cannot find extension locale for locale ".concat(e))}_getSpeechSynthLocale(){let e=this.LANGUAGE_INFO[this.DEFAULT_LANGUAGE].speechSynthLocale;return this.LANGUAGE_INFO[this.getCurrentLanguage()]&&(e=this.LANGUAGE_INFO[this.getCurrentLanguage()].speechSynthLocale),e}_getSupportedLocales(){return Object.keys(this.LANGUAGE_INFO).reduce(((e,t)=>e.concat(this.LANGUAGE_INFO[t].locales)),[])}isSupportedLanguage(e){return this._supportedLocales.includes(e)}getVoiceMenu(){return Object.keys(this.VOICE_INFO).map((e=>({text:this.VOICE_INFO[e].name,value:e})))}getLanguageMenu(){const e=this.getEditorLanguage(),t={};let n=i.menuMap[e];if(n){let r=[];i.spokenLanguages&&(r=i.spokenLanguages[e],n=n.concat(r)),n.forEach((e=>{t[e.code]=e.name}))}return Object.keys(this.LANGUAGE_INFO).map((e=>{let n=this.LANGUAGE_INFO[e].name;const r=t[e];return r&&(n=r),n=n.charAt(0).toUpperCase()+n.slice(1),{text:n,value:e}}))}setVoice(e,t){const n=this._getState(t.target);let r=e.VOICE,i=parseInt(r,10);isNaN(i)||(i-=1,i=c.wrapClamp(i,0,Object.keys(this.VOICE_INFO).length-1),r=Object.keys(this.VOICE_INFO)[i]),Object.keys(this.VOICE_INFO).includes(r)&&(n.voiceId=r)}setLanguage(e){this.setCurrentLanguage(e.LANGUAGE)}_stopAllSpeech(){this._soundPlayers.forEach((e=>{e.stop()}))}speakAndWait(e,t){let n=a.toString(e.WORDS),r=this._getSpeechSynthLocale();const i=this._getState(t.target);let s=this.VOICE_INFO[i.voiceId].gender,o=this.VOICE_INFO[i.voiceId].playbackRate;this.LANGUAGE_INFO[this.getCurrentLanguage()].singleGender&&(s="female",i.voiceId===p&&(o=.89),i.voiceId===m&&(o=.79)),i.voiceId===g&&(n=n.replace(/\S+/g,"meow"),r=this.LANGUAGE_INFO[this.DEFAULT_LANGUAGE].speechSynthLocale);let c="".concat("https://synthesis-service.scratch.mit.edu","/synth");return c+="?locale=".concat(r),c+="&gender=".concat(s),c+="&text=".concat(encodeURIComponent(n.substring(0,128))),h(c,{},1e4).then((e=>{if(200!==e.status)throw new Error("HTTP ".concat(e.status," error reaching translation service"));return e.arrayBuffer()})).then((e=>{const t={data:{buffer:e}};return this.runtime.audioEngine.decodeSoundPlayer(t)})).then((e=>{this._soundPlayers.set(e.id,e),e.setPlaybackRate(o);const t=this.runtime.audioEngine.createEffectChain();return t.set("volume",250),e.connect(t),e.play(),new Promise((t=>{e.on("stop",(()=>{this._soundPlayers.delete(e.id),t()}))}))})).catch((e=>{u.warn(e)}))}}e.exports=z},function(e,t,n){const r=n(3),i=n(2),s=n(1),o=n(0),{fetchWithTimeout:a}=n(41),c=n(61),l=n(5);e.exports=class{constructor(){this._viewerLanguageCode=this.getViewerLanguageCode(),this._supportedLanguages=[],this._randomLanguageCode="en",this._translateResult="",this._lastLangTranslated="",this._lastTextTranslated=""}static get STATE_KEY(){return"Scratch.translate"}getInfo(){return this._supportedLanguages=this._getSupportedLanguages(this.getViewerLanguageCode()),this._randomLanguageCode=this._supportedLanguages[Math.floor(Math.random()*this._supportedLanguages.length)].value,{id:"translate",name:l({id:"translate.categoryName",default:"Translate",description:"Name of extension that adds translate blocks"}),blockIconURI:"data:image/png;base64,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",menuIconURI:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAACXBIWXMAABYlAAAWJQFJUiTwAAABXFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAOvYwAAACOjo6EhIQOvYx4eHicnJwOvYytra0OvYykpKSfn5/BwcEOvYy0tLSvr6+pqakOvYy1tbXExMQOvYy+vr66urrCwsIOvYzLy8vFxcXAwMC9vb3GxsYOvYzKysrHx8cOvYy9vb20tLTLy8sOvYzR0dHPz88OvYzU1NTS0tIOvYza2trX19fV1dUOvYze3t7c3Nz////9/f36+vr4+Pj0+P/19fXx8fHp8v/u7u7s7Ozq6+7d6//n5+fl5eXS5f/i4uLf4eXg4ODb29vH3v/Z2dnV19y82P/R0dG10/+x0f/KzNSgx/+bxP+rv9uVwf+Rv/+1uMKPvv+huNmIt/h/tP+gpLFsqf9rqf9lpf+Wmqhho/9fov9coP9an/9Znv9Ynf9VnP9Smv9Rmf9Nl/+BhpdJkPMOvYx2fI5rcoZhZ31XXnVRayw6AAAAOXRSTlMAAgUHCgwOEBMbHSAgMTBBQENFTlBSU1ZgZHBwcnOBgI6QkpOgoK2usLS3vMDJydDX1+Dk5OXw8vIZ3wVeAAACCklEQVR42tXU7XPSMBzA8SAoDjYEFcUxrIN1PoHMbaJpC7UFbOfDUKdOUFHLfM6MmP//zoQuCWm90ze+8PsCcsnnfnc0APhvWlipKa0s0M06xljPKa6wbRtwLsPeLgCgNzGtBGSZLc4k3crQgyyjWQkrNj/vtfnKrgBaehNjXcKaGPjtrRhZY67MRmp5ASGtvT8ajdAX+rI/G8tgGYcpcIBEAw5zoasrEHpP0QfP+4gGHuQQlJhrpiUM+4o8D32GUEAmpZPwGTr4hJ5IyMprwkkIJwi9gwLy4rB3gNCkZzh9n3btfFhxMRGBvTeUTdD3F77Tmcvx144r8CFC6Dlsv35lw0j25eQRrJps4PuXd+nbPRfGcs/xL08fih6YcWhWj+CxdQfyHvFF9/CwG3sCydU77myS4z7mh0NChhKKTjYMutG/eOYqP/xByPQ38IILoelXEuKZ7pDplOzEYdUy3capBBBwTIZjMo7DxetrxdT8LU1JEJCff77OPTJrLwbT2lkFBmS8uxuQIArTTYxL85CQLvtAREDpqJQ/NDVDwDqelaPLZTsO7WUOcZhGl6kNK+qsjRSHeY2yzTJgZRpuJ8xiyui4jQyQ6Ri30uEyVbgUdpNJ89ZpOk+WbWHczAKlzA2HSn8JKJVamNIryl5y1e9AK3otWZ3SOlBKLK3fvl8Ef1XqROJf/Xv/Ao6e1+rnxxl1AAAAAElFTkSuQmCC",blocks:[{opcode:"getTranslate",text:l({id:"translate.translateBlock",default:"translate [WORDS] to [LANGUAGE]",description:"translate some text to a different language"}),blockType:i.REPORTER,arguments:{WORDS:{type:r.STRING,defaultValue:l({id:"translate.defaultTextToTranslate",default:"hello",description:"hello: the default text to translate"})},LANGUAGE:{type:r.STRING,menu:"languages",defaultValue:this._randomLanguageCode}}},{opcode:"getViewerLanguage",text:l({id:"translate.viewerLanguage",default:"language",description:"the languge of the project viewer"}),blockType:i.REPORTER,arguments:{}}],menus:{languages:{acceptReporters:!0,items:this._supportedLanguages}}}}_getSupportedLanguages(e){return c.menuMap[e].map((e=>({text:e.name,value:e.code})))}getViewerLanguage(){this._viewerLanguageCode=this.getViewerLanguageCode();const e=c.menuMap[this._viewerLanguageCode];let t=e.find((e=>e.code===this._viewerLanguageCode));if(!t&&c.scratchToGoogleMap[this._viewerLanguageCode]){const n=c.scratchToGoogleMap[this._viewerLanguageCode];t=e.find((e=>e.code===n))}let n=this._viewerLanguageCode;return t&&(n=t.name),n}getViewerLanguageCode(){const e=[l.setup().locale].concat(navigator.languages),t=Object.keys(c.menuMap);return(e.reduce(((e,n)=>e||(t.indexOf(n.toLowerCase())>-1?n:e)),"")||"en").toLowerCase()}getLanguageCodeFromArg(e){const t=s.toString(e).toLowerCase();return Object.prototype.hasOwnProperty.call(c.menuMap,t)?t:Object.prototype.hasOwnProperty.call(c.nameMap,t)?c.nameMap[t]:-1!==c.previouslySupported.indexOf(t)?t:"en"}getTranslate(e){if(/^\d+$/.test(e.WORDS))return Promise.resolve(e.WORDS);if(this._lastTextTranslated===e.WORDS&&this._lastLangTranslated===e.LANGUAGE)return this._translateResult;const t=this.getLanguageCodeFromArg(e.LANGUAGE);let n="".concat("https://trampoline.turbowarp.org/translate/","translate?language=");n+=t,n+="&text=",n+=encodeURIComponent(e.WORDS);const r=this;return a(n,{},1e4).then((e=>e.text())).then((t=>{const n=JSON.parse(t).result;return r._translateResult=n,r._lastTextTranslated=e.WORDS,r._lastLangTranslated=e.LANGUAGE,n})).catch((t=>(o.warn("error fetching translate result! ".concat(t)),e.WORDS)))}}},function(e,t,n){const r=n(42),i=n(3),s=n(2),o=n(12),a=n(1),c=n(5),l=n(70),u=n(216),h={MOTION:"motion",DIRECTION:"direction"},d={STAGE:"Stage",SPRITE:"this sprite"},p={OFF:"off",ON:"on",ON_FLIPPED:"on-flipped"};class f{constructor(e){this.runtime=e,this.detect=new u,this._lastUpdate=null,this.firstInstall=!0,this.runtime.ioDevices&&(this.runtime.on(r.PROJECT_LOADED,this.updateVideoDisplay.bind(this)),this.runtime.on(r.PROJECT_RUN_START,this.reset.bind(this)),this._loop())}static get INTERVAL(){return 33}static get DIMENSIONS(){return[480,360]}static get STATE_KEY(){return"Scratch.videoSensing"}static get DEFAULT_MOTION_STATE(){return{motionFrameNumber:0,motionAmount:0,motionDirection:0}}get globalVideoTransparency(){const e=this.runtime.getTargetForStage();return e?e.videoTransparency:50}set globalVideoTransparency(e){const t=this.runtime.getTargetForStage();t&&(t.videoTransparency=e)}get globalVideoState(){const e=this.runtime.getTargetForStage();return e?e.videoState:p.OFF}set globalVideoState(e){const t=this.runtime.getTargetForStage();t&&(t.videoState=e)}updateVideoDisplay(){this.setVideoTransparency({TRANSPARENCY:this.globalVideoTransparency}),this.videoToggle({VIDEO_STATE:this.globalVideoState})}reset(){this.detect.reset();const e=this.runtime.targets;for(let t=0;t<e.length;t++){const n=e[t].getCustomState(f.STATE_KEY);n&&(n.motionAmount=0,n.motionDirection=0)}}_loop(){const e=Math.max(this.runtime.currentStepTime,f.INTERVAL);this._loopInterval=setTimeout(this._loop.bind(this),e);const t=Date.now();null===this._lastUpdate&&(this._lastUpdate=t);if(t-this._lastUpdate>f.INTERVAL){const e=this.runtime.ioDevices.video.getFrame({format:l.FORMAT_IMAGE_DATA,dimensions:f.DIMENSIONS});e&&(this._lastUpdate=t,this.detect.addFrame(e.data))}}_stopLoop(){clearTimeout(this._loopInterval)}_buildMenu(e){return e.map(((e,t)=>{const n={};return n.text=e.name,n.value=e.value||String(t+1),n}))}_getMotionState(e){let t=e.getCustomState(f.STATE_KEY);return t||(t=o.simple(f.DEFAULT_MOTION_STATE),e.setCustomState(f.STATE_KEY,t)),t}static get SensingAttribute(){return h}get ATTRIBUTE_INFO(){return[{name:c({id:"videoSensing.motion",default:"motion",description:'Attribute for the "video [ATTRIBUTE] on [SUBJECT]" block'}),value:h.MOTION},{name:c({id:"videoSensing.direction",default:"direction",description:'Attribute for the "video [ATTRIBUTE] on [SUBJECT]" block'}),value:h.DIRECTION}]}static get SensingSubject(){return d}get SUBJECT_INFO(){return[{name:c({id:"videoSensing.sprite",default:"sprite",description:'Subject for the "video [ATTRIBUTE] on [SUBJECT]" block'}),value:d.SPRITE},{name:c({id:"videoSensing.stage",default:"stage",description:'Subject for the "video [ATTRIBUTE] on [SUBJECT]" block'}),value:d.STAGE}]}static get VideoState(){return p}get VIDEO_STATE_INFO(){return[{name:c({id:"videoSensing.off",default:"off",description:'Option for the "turn video [STATE]" block'}),value:p.OFF},{name:c({id:"videoSensing.on",default:"on",description:'Option for the "turn video [STATE]" block'}),value:p.ON},{name:c({id:"videoSensing.onFlipped",default:"on flipped",description:'Option for the "turn video [STATE]" block that causes the video to be flipped horizontally (reversed as in a mirror)'}),value:p.ON_FLIPPED}]}getInfo(){return this.firstInstall&&(this.globalVideoState=p.ON,this.globalVideoTransparency=50,this.updateVideoDisplay(),this.firstInstall=!1),{id:"videoSensing",name:c({id:"videoSensing.categoryName",default:"Video Sensing",description:"Label for the video sensing extension category"}),blockIconURI:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48dGl0bGU+RXh0ZW5zaW9ucy9Tb2Z0d2FyZS9WaWRlby1TZW5zaW5nLUJsb2NrPC90aXRsZT48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9Ii4xNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAxMCkiPjxjaXJjbGUgY3g9IjMyIiBjeT0iMTYiIHI9IjQuNSIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIuMjUiLz48Y2lyY2xlIGN4PSIzMiIgY3k9IjEyIiByPSI0LjUiIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgb3BhY2l0eT0iLjUiLz48Y2lyY2xlIGN4PSIzMiIgY3k9IjgiIHI9IjQuNSIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIuNzUiLz48Y2lyY2xlIGN4PSIzMiIgY3k9IjQiIHI9IjQuNSIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PHBhdGggZmlsbD0iIzRkNGQ0ZCIgZD0ibTIyLjY3MiA0LjQyLTYuMTcyIDRWNi4xYzAtMi4wMS0xLjU2My0zLjYtMy41LTMuNkg0LjFDMi4wNzYgMi41LjUgNC4wNzYuNSA2LjFWMTRjMCAxLjkyNyAxLjU4NCAzLjUxMiAzLjYgMy42SDEzYzEuOTAyIDAgMy41LTEuNjUzIDMuNS0zLjZ2LTIuMjgzbDYuMjU3IDMuNzU0LjA5Ny4wNzVjLjAyLjAyLjA5OC4wNTQuMTQ2LjA1NC4yNjcgMCAuNS0uMjE3LjUtLjVWNC44YzAgLjAzNy0uMDU2LS4wOTQtLjEyOS0uMjQzLS4xNDUtLjI0Mi0uNDMtLjI5OS0uNy0uMTM3WiIvPjwvZz48L3N2Zz4=",menuIconURI:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+RXh0ZW5zaW9ucy9Tb2Z0d2FyZS9WaWRlby1TZW5zaW5nLU1lbnU8L3RpdGxlPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCA1KSI+PGNpcmNsZSBjeD0iMTYiIGN5PSI4IiByPSIyIiBmaWxsPSIjMGViZDhjIiBvcGFjaXR5PSIuMjUiLz48Y2lyY2xlIGN4PSIxNiIgY3k9IjYiIHI9IjIiIGZpbGw9IiMwZWJkOGMiIG9wYWNpdHk9Ii41Ii8+PGNpcmNsZSBjeD0iMTYiIGN5PSI0IiByPSIyIiBmaWxsPSIjMGViZDhjIiBvcGFjaXR5PSIuNzUiLz48Y2lyY2xlIGN4PSIxNiIgY3k9IjIiIHI9IjIiIGZpbGw9IiMwZWJkOGMiLz48cGF0aCBmaWxsPSIjNGQ0ZDRkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIuMTUiIHN0cm9rZS13aWR0aD0iLjUiIGQ9Im0xMS4zMzYgMi4yMS0zLjA4NiAyVjMuMDVjMC0xLjAwNS0uNzgxLTEuOC0xLjc1LTEuOEgyLjA1Yy0xLjAxMiAwLTEuOC43ODgtMS44IDEuOFY3YzAgLjk2NC43OTIgMS43NTYgMS44IDEuOEg2LjVjLjk1IDAgMS43NS0uODI3IDEuNzUtMS44VjUuODU4bC4zNzkuMjI4IDIuNzk4IDEuNjg3Yy4wMS4wMS4wNDkuMDI3LjA3My4wMjdhLjI1LjI1IDAgMCAwIC4yNS0uMjVWMi40YzAgLjAxOC0uMDI4LS4wNDctLjA2NC0uMTIxLS4wNzMtLjEyMS0uMjE1LS4xNS0uMzUtLjA3WiIvPjwvZz48L3N2Zz4=",blocks:[{opcode:"whenMotionGreaterThan",text:c({id:"videoSensing.whenMotionGreaterThan",default:"when video motion > [REFERENCE]",description:"Event that triggers when the amount of motion is greater than [REFERENCE]"}),blockType:s.HAT,arguments:{REFERENCE:{type:i.NUMBER,defaultValue:10}}},{opcode:"videoOn",blockType:s.REPORTER,text:c({id:"videoSensing.videoOn",default:"video [ATTRIBUTE] on [SUBJECT]",description:"Reporter that returns the amount of [ATTRIBUTE] for the selected [SUBJECT]"}),arguments:{ATTRIBUTE:{type:i.NUMBER,menu:"ATTRIBUTE",defaultValue:h.MOTION},SUBJECT:{type:i.NUMBER,menu:"SUBJECT",defaultValue:d.SPRITE}}},{opcode:"videoToggle",text:c({id:"videoSensing.videoToggle",default:"turn video [VIDEO_STATE]",description:"Controls display of the video preview layer"}),arguments:{VIDEO_STATE:{type:i.NUMBER,menu:"VIDEO_STATE",defaultValue:p.ON}}},{opcode:"setVideoTransparency",text:c({id:"videoSensing.setVideoTransparency",default:"set video transparency to [TRANSPARENCY]",description:"Controls transparency of the video preview layer"}),arguments:{TRANSPARENCY:{type:i.NUMBER,defaultValue:50}}}],menus:{ATTRIBUTE:{acceptReporters:!0,items:this._buildMenu(this.ATTRIBUTE_INFO)},SUBJECT:{acceptReporters:!0,items:this._buildMenu(this.SUBJECT_INFO)},VIDEO_STATE:{acceptReporters:!0,items:this._buildMenu(this.VIDEO_STATE_INFO)}}}}_analyzeLocalMotion(e){const t=this.runtime.renderer._allDrawables[e.drawableID],n=this._getMotionState(e);return this.detect.getLocalMotion(t,n),n}videoOn(e,t){this.detect.analyzeFrame();let n=this.detect;return e.SUBJECT===d.SPRITE&&(n=this._analyzeLocalMotion(t.target)),e.ATTRIBUTE===h.MOTION?n.motionAmount:n.motionDirection}whenMotionGreaterThan(e,t){this.detect.analyzeFrame();return this._analyzeLocalMotion(t.target).motionAmount>Number(e.REFERENCE)}videoToggle(e){const t=e.VIDEO_STATE;this.globalVideoState=t,t===p.OFF?this.runtime.ioDevices.video.disableVideo():(this.runtime.ioDevices.video.enableVideo(),this.runtime.ioDevices.video.mirror=t===p.ON)}setVideoTransparency(e){const t=a.toNumber(e.TRANSPARENCY);this.globalVideoTransparency=t,this.runtime.ioDevices.video.setPreviewGhost(t)}}e.exports=f},function(e,t,n){const r=n(63),i=n(64),s=n(7),o=function(e,t,n,i){e.attribs.id||(e.attribs.id=s());const a={id:e.attribs.id,opcode:e.attribs.type,inputs:{},fields:{},next:null,topLevel:n,parent:i,shadow:"shadow"===e.name,x:e.attribs.x,y:e.attribs.y};t[a.id]=a;for(let n=0;n<e.children.length;n++){const i=e.children[n];let s=null,c=null;for(let e=0;e<i.children.length;e++){const t=i.children[e];if(!t.name)continue;const n=t.name.toLowerCase();"block"===n?s=t:"shadow"===n&&(c=t)}switch(!s&&c&&(s=c),i.name.toLowerCase()){case"field":{const e=i.attribs.name,t=i.attribs.id;let n="";n=i.children.length>0&&i.children[0].data?i.children[0].data:"",a.fields[e]={name:e,id:t,value:n};const r=i.attribs.variabletype;"string"==typeof r&&(a.fields[e].variableType=r);break}case"comment":a.comment=i.attribs.id;break;case"value":case"statement":{o(s,t,!1,a.id),c&&s!==c&&o(c,t,!1,a.id);const e=i.attribs.name;a.inputs[e]={name:e,block:s.attribs.id,shadow:c?c.attribs.id:null};break}case"next":if(!s||!s.attribs)continue;o(s,t,!1,a.id),a.next=s.attribs.id;break;case"mutation":a.mutation=r(i)}}};e.exports=function(e){if("object"==typeof e&&"object"==typeof e.xml)return function(e){const t={};for(let n=0;n<e.length;n++){const r=e[n];if(!r.name||!r.attribs)continue;const i=r.name.toLowerCase();"block"!==i&&"shadow"!==i||o(r,t,!0,null)}const n=[];for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&n.push(t[e]);return n}(i.parseDOM(e.xml.outerHTML,{decodeEntities:!0}))}},function(e,t){var n={amp:"&",apos:"'",lt:"<",gt:">",quot:'"',nbsp:" "},r=/&([a-z]+);/gi;e.exports=function(e){return e.replace(r,(function(e,t){return t=t.toLowerCase(),n.hasOwnProperty(t)?n[t]:e}))}},function(e,t){let n=0;const r={},i="object"==typeof window&&window.performance;class s{constructor(e){this.id=-1,this.totalTime=0,this.selfTime=0,this.arg=null,this.depth=e,this.count=0}}class o{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};this.records=[],this.increments=[],this.counters=[],this.nullFrame=new s(-1),this._stack=[new s(0)],this.onFrame=e,this.START=0,this.STOP=1}start(e,t){this.records.push(0,e,t,i.now())}stop(){this.records.push(1,i.now())}increment(e){this.increments[e]||(this.increments[e]=new s(-1),this.increments[e].id=e),this.increments[e].count+=1}frame(e,t){for(let n=0;n<this.counters.length;n++)if(this.counters[n].id===e&&this.counters[n].arg===t)return this.counters[n];const n=new s(-1);return n.id=e,n.arg=t,this.counters.push(n),n}reportFrames(){const e=this._stack;let t=1;for(let n=0;n<this.records.length;)if(0===this.records[n]){t>=e.length&&e.push(new s(t));const r=e[t++];r.id=this.records[n+1],r.arg=this.records[n+2],r.totalTime=this.records[n+3],r.selfTime=0,n+=4}else{if(1!==this.records[n])throw this.records.length=0,new Error("Unable to decode Profiler records.");{const r=this.records[n+1],i=e[--t];i.totalTime=r-i.totalTime,i.selfTime+=i.totalTime,e[t-1].selfTime-=i.totalTime,i.count=1,this.onFrame(i),n+=2}}for(let e=0;e<this.increments.length;e++)this.increments[e]&&this.increments[e].count>0&&(this.onFrame(this.increments[e]),this.increments[e].count=0);for(let e=0;e<this.counters.length;e++)this.counters[e].count>0&&(this.onFrame(this.counters[e]),this.counters[e].count=0);this.records.length=0}idByName(e){return o.idByName(e)}nameById(e){return o.nameById(e)}static idByName(e){return"number"!=typeof r[e]&&(r[e]=n++),r[e]}static nameById(e){for(const t in r)if(r[t]===e)return t;return null}static available(){return"object"==typeof window&&void 0!==window.performance}}o.START=0,o.STOP=1,e.exports=o},function(e,t,n){const r=n(14),i=n(20),s=n(32),o=n(46);let a=-1,c=-1,l=-1;class u{constructor(e){this.timer=new r,this.runtime=e,this.activeThread=null}static get WARP_TIME(){return 500}stepThreads(){const e=.75*this.runtime.currentStepTime;this.runtime.updateCurrentMSecs(),this.timer.start();let t=1/0,n=!1;const r=[];for(;this.runtime.threads.length>0&&t>0&&this.timer.timeElapsed()<e&&(this.runtime.turboMode||!this.runtime.redrawRequested);){null!==this.runtime.profiler&&(-1===c&&(c=this.runtime.profiler.idByName("Sequencer.stepThreads#inner")),this.runtime.profiler.start(c)),t=0;let e=!1;const s=this.runtime.threads;for(let r=0;r<s.length;r++){const o=this.activeThread=s[r];0!==o.stack.length&&o.status!==i.STATUS_DONE?(o.status!==i.STATUS_YIELD_TICK||n||(o.status=i.STATUS_RUNNING),o.status!==i.STATUS_RUNNING&&o.status!==i.STATUS_YIELD||(null!==this.runtime.profiler&&(-1===a&&(a=this.runtime.profiler.idByName("Sequencer.stepThread")),this.runtime.profiler.increment(a)),this.stepThread(o),o.warpTimer=null),o.status===i.STATUS_RUNNING&&t++,0!==o.stack.length&&o.status!==i.STATUS_DONE||(e=!0)):e=!0}if(n=!0,null!==this.runtime.profiler&&this.runtime.profiler.stop(),e){let e=0;for(let t=0;t<this.runtime.threads.length;t++){const n=this.runtime.threads[t];0!==n.stack.length&&n.status!==i.STATUS_DONE?(this.runtime.threads[e]=n,e++):(this.runtime.threadMap.delete(n.getId()),r.push(n))}this.runtime.threads.length=e}}return this.activeThread=null,r}stepThread(e){if(e.isCompiled)return void o(e);let t=e.peekStack();if(t||(e.popStack(),0!==e.stack.length))for(;t=e.peekStack();){const n=e.stack.length;let o=e.peekStackFrame().warpMode;if(o&&!e.warpTimer&&(e.warpTimer=new r,e.warpTimer.start()),null!==this.runtime.profiler&&(-1===l&&(l=this.runtime.profiler.idByName("execute")),this.runtime.profiler.increment(l)),null===e.target?this.retireThread(e):s(this,e),e.blockGlowInFrame=t,e.status===i.STATUS_YIELD){if(e.status=i.STATUS_RUNNING,o&&e.warpTimer.timeElapsed()<=u.WARP_TIME)continue;return}if(e.status===i.STATUS_PROMISE_WAIT)return;if(e.status===i.STATUS_YIELD_TICK)return;if(e.status===i.STATUS_DONE)return;for(e.stack.length!==n||e.peekStack()!==t||e.peekStackFrame().waitingReporter||e.goToNextBlock();!e.peekStack();){if(e.popStack(),0===e.stack.length)return void(e.status=i.STATUS_DONE);const t=e.peekStackFrame();if(o=t.warpMode,t.isLoop){if(!o||e.warpTimer.timeElapsed()>u.WARP_TIME)return}else t.waitingReporter||e.goToNextBlock()}}else e.status=i.STATUS_DONE}stepToBranch(e,t,n){t||(t=1);const r=e.peekStack(),i=e.target.blocks.getBranch(r,t);e.peekStackFrame().isLoop=n,i?e.pushStack(i):e.pushStack(null)}stepToProcedure(e,t){const n=e.target.blocks.getProcedureDefinition(t);if(!n)return;const r=e.isRecursiveCall(t);if(e.pushStack(n),e.peekStackFrame().warpMode&&e.warpTimer.timeElapsed()>u.WARP_TIME)e.status=i.STATUS_YIELD;else{const t=e.target.blocks.getBlock(n),s=e.target.blocks.getBlock(t.inputs.custom_block.block);let o=!1;if(s&&s.mutation){const e=s.mutation.warp;"boolean"==typeof e?o=e:"string"==typeof e&&(o=JSON.parse(e))}o?e.peekStackFrame().warpMode=!0:r&&(e.status=i.STATUS_YIELD)}}retireThread(e){e.stack=[],e.stackFrame=[],e.requestScriptGlowInFrame=!1,e.status=i.STATUS_DONE,e.isCompiled&&(e.procedures=null,e.generator=null)}}e.exports=u},function(e,t,n){const{IRGenerator:r}=n(44),{IROptimizer:i}=n(189),s=n(67);e.exports=e=>{const t=new r(e).generate();new i(t).optimize();const n={},o=e.target,a=e=>{if(e.cachedCompileResult)return e.cachedCompileResult;const n=new s(e,t,o).compile();return e.cachedCompileResult=n,n},c=a(t.entry);for(const e of Object.keys(t.procedures)){const r=a(t.procedures[e]);n[e]=r}return{startingFunction:c,procedures:n,executableHat:t.entry.executableHat}}},function(e,t){e.exports={stacked:["looks_changestretchby","looks_hideallsprites","looks_sayforsecs","looks_setstretchto","looks_switchbackdroptoandwait","looks_thinkforsecs","motion_align_scene","motion_glidesecstoxy","motion_glideto","motion_goto","motion_pointtowards","motion_scroll_right","motion_scroll_up","sensing_askandwait","sensing_setdragmode","sound_changeeffectby","sound_changevolumeby","sound_cleareffects","sound_play","sound_playuntildone","sound_seteffectto","sound_setvolumeto","sound_stopallsounds"],inputs:["motion_xscroll","motion_yscroll","sensing_loud","sensing_loudness","sensing_userid","sound_volume"]}},function(e,t,n){const{StackOpcode:r,InputOpcode:i,InputType:s}=n(15),o=n(0),{IntermediateStack:a,IntermediateInput:c,IntermediateScript:l,IntermediateRepresentation:u,IntermediateStackBlock:h}=n(10);class d{constructor(){this.variables=Object.create(null)}clear(){let e=!1;for(const t in this.variables)if(this.variables[t]!==s.ANY){e=!0;break}return this.variables=Object.create(null),e}clone(){const e=new d;for(const t in this.variables)e.variables[t]=this.variables[t];return e}mutate(e,t){let n=!1;for(const r in e.variables){const e=t(r);e!==this.variables[r]&&(this.variables[r]=e,n=n||!0)}for(const r in this.variables)if(!e.variables[r]){const e=t(r);e!==this.variables[r]&&(this.variables[r]=e,n=n||!0)}return n}or(e){return this.mutate(e,(t=>{var n,r;return(null!==(n=this.variables[t])&&void 0!==n?n:s.ANY)|(null!==(r=e.variables[t])&&void 0!==r?r:s.ANY)}))}after(e){return this.mutate(e,(t=>{var n;const r=e.variables[t];return r||(null!==(n=this.variables[t])&&void 0!==n?n:s.ANY)}))}overwrite(e){return this.mutate(e,(t=>{var n;return null!==(n=e.variables[t])&&void 0!==n?n:s.ANY}))}setVariableType(e,t){return this.variables[e.id]!==t&&(this.variables[e.id]=t,!0)}getVariableType(e){var t;return null!==(t=this.variables[e.id])&&void 0!==t?t:s.ANY}}e.exports={IROptimizer:class{constructor(e){this.ir=e,this.ignoreYields=!1,this.exitState=null}getInputType(e,t){const n=e.inputs;switch(e.opcode){case i.VAR_GET:return t.getVariableType(n.variable);case i.ADDON_CALL:break;case i.CAST_BOOLEAN:{const e=n.target.type;return e&s.BOOLEAN?e:s.BOOLEAN}case i.CAST_NUMBER:{const e=n.target.type;return e&s.NUMBER?e:s.NUMBER}case i.CAST_NUMBER_INDEX:{const e=n.target.type;return e&s.NUMBER_INDEX?e:s.NUMBER_INDEX}case i.CAST_NUMBER_OR_NAN:{const e=n.target.type;return e&s.NUMBER_OR_NAN?e:s.NUMBER_OR_NAN}case i.CAST_STRING:{const e=n.target.type;return e&s.STRING?e:s.STRING}case i.OP_ADD:{const e=n.left.type,t=n.right.type;let r=0;(function(){return!!(e&s.NUMBER_POS_INF&&t&s.NUMBER_NEG_INF)||(!!(e&s.NUMBER_NEG_INF&&t&s.NUMBER_POS_INF)||void 0)})()&&(r|=s.NUMBER_NAN);const i=function(){return!!(e&s.NUMBER_FRACT)||(!!(t&s.NUMBER_FRACT)||void 0)}();(function(){return!!(e&s.NUMBER_POS)||(!!(t&s.NUMBER_POS)||void 0)})()&&(r|=s.NUMBER_POS_INT|s.NUMBER_POS_INF,i&&(r|=s.NUMBER_POS_FRACT));(function(){return!!(e&s.NUMBER_NEG)||(!!(t&s.NUMBER_NEG)||void 0)})()&&(r|=s.NUMBER_NEG_INT|s.NUMBER_NEG_INF,i&&(r|=s.NUMBER_NEG_FRACT));(function(){return!!(e&s.NUMBER_POS_REAL&&t&s.NUMBER_NEG_REAL)||(!!(e&s.NUMBER_NEG_REAL&&t&s.NUMBER_POS_REAL)||(!!(e&s.NUMBER_ZERO&&t&s.NUMBER_ZERO)||(!!(e&s.NUMBER_ZERO&&t&s.NUMBER_NEG_ZERO)||(!!(e&s.NUMBER_NEG_ZERO&&t&s.NUMBER_ZERO)||void 0))))})()&&(r|=s.NUMBER_ZERO);return function(){if(e&s.NUMBER_NEG_ZERO&&t&s.NUMBER_NEG_ZERO)return!0}()&&(r|=s.NUMBER_NEG_ZERO),r}case i.OP_SUBTRACT:{const e=n.left.type,t=n.right.type;let r=0;(function(){return!!(e&s.NUMBER_POS_INF&&t&s.NUMBER_POS_INF)||(!!(e&s.NUMBER_NEG_INF&&t&s.NUMBER_NEG_INF)||void 0)})()&&(r|=s.NUMBER_NAN);const i=function(){return!!(e&s.NUMBER_FRACT)||(!!(t&s.NUMBER_FRACT)||void 0)}();(function(){return!!(e&s.NUMBER_POS)||(!!(t&s.NUMBER_NEG)||void 0)})()&&(r|=s.NUMBER_POS_INT|s.NUMBER_POS_INF,i&&(r|=s.NUMBER_POS_FRACT));(function(){return!!(e&s.NUMBER_NEG)||(!!(t&s.NUMBER_POS)||void 0)})()&&(r|=s.NUMBER_NEG_INT|s.NUMBER_NEG_INF,i&&(r|=s.NUMBER_NEG_FRACT));(function(){return!!(e&s.NUMBER_POS_REAL&&t&s.NUMBER_POS_REAL)||(!!(e&s.NUMBER_NEG_REAL&&t&s.NUMBER_NEG_REAL)||(!!(e&s.NUMBER_ZERO&&t&s.NUMBER_ZERO)||(!!(e&s.NUMBER_ZERO&&t&s.NUMBER_NEG_ZERO)||(!!(e&s.NUMBER_NEG_ZERO&&t&s.NUMBER_NEG_ZERO)||void 0))))})()&&(r|=s.NUMBER_ZERO);return function(){if(e&s.NUMBER_NEG_ZERO&&t&s.NUMBER_ZERO)return!0}()&&(r|=s.NUMBER_NEG_ZERO),r}case i.OP_MULTIPLY:{const e=n.left.type,t=n.right.type;let r=0;(function(){return!!(e&s.NUMBER_INF&&t&s.NUMBER_ANY_ZERO)||(!!(e&s.NUMBER_ANY_ZERO&&t&s.NUMBER_INF)||void 0)})()&&(r|=s.NUMBER_NAN);const i=function(){return!!(e&s.NUMBER_FRACT)||(!!(t&s.NUMBER_FRACT)||void 0)}();(function(){return!!(e&s.NUMBER_POS&&t&s.NUMBER_POS)||(!!(e&s.NUMBER_NEG&&t&s.NUMBER_NEG)||void 0)})()&&(r|=s.NUMBER_POS_INT|s.NUMBER_POS_INF,i&&(r|=s.NUMBER_POS_FRACT));(function(){return!!(e&s.NUMBER_POS&&t&s.NUMBER_NEG)||(!!(e&s.NUMBER_NEG&&t&s.NUMBER_POS)||void 0)})()&&(r|=s.NUMBER_NEG_INT|s.NUMBER_NEG_INF,i&&(r|=s.NUMBER_NEG_FRACT));(function(){return!!(e&s.NUMBER_ZERO&&t&s.NUMBER_ZERO)||(!!(e&s.NUMBER_NEG_ZERO&&t&s.NUMBER_NEG_ZERO)||(!!(e&s.NUMBER_ZERO&&t&s.NUMBER_POS_REAL)||(!!(e&s.NUMBER_NEG_ZERO&&t&s.NUMBER_NEG_REAL)||(!!(e&s.NUMBER_POS_REAL&&t&s.NUMBER_ZERO)||(!!(e&s.NUMBER_NEG_REAL&&t&s.NUMBER_NEG_ZERO)||(!!(e&s.NUMBER_FRACT&&t&s.NUMBER_FRACT)||void 0))))))})()&&(r|=s.NUMBER_ZERO);return function(){return!!(e&s.NUMBER_ZERO&&t&s.NUMBER_NEG_ZERO)||(!!(e&s.NUMBER_NEG_ZERO&&t&s.NUMBER_ZERO)||(!!(e&s.NUMBER_NEG_ZERO&&t&s.NUMBER_POS_REAL)||(!!(e&s.NUMBER_ZERO&&t&s.NUMBER_NEG_REAL)||(!!(e&s.NUMBER_POS_REAL&&t&s.NUMBER_NEG_ZERO)||(!!(e&s.NUMBER_NEG_REAL&&t&s.NUMBER_ZERO)||(!!(e&s.NUMBER_NEG_REAL&&t&s.NUMBER_POS_REAL)||(!!(e&s.NUMBER_POS_REAL&&t&s.NUMBER_NEG_REAL)||void 0)))))))}()&&(r|=s.NUMBER_NEG_ZERO),r}case i.OP_DIVIDE:{const e=n.left.type,t=n.right.type;let r=0;(function(){return!!(e&s.NUMBER_ANY_ZERO&&t&s.NUMBER_ANY_ZERO)||(!!(e&s.NUMBER_INF&&t&s.NUMBER_INF)||(!!(e&s.NUMBER_ANY_ZERO&&t&s.NUMBER_NAN)||void 0))})()&&(r|=s.NUMBER_NAN);(function(){return!!(e&s.NUMBER_POS&&t&s.NUMBER_POS)||(!!(e&s.NUMBER_NEG&&t&s.NUMBER_NEG)||void 0)})()&&(r|=s.NUMBER_POS);(function(){return!!(e&s.NUMBER_NEG&&t&s.NUMBER_ZERO)||(!!(e&s.NUMBER_POS&&t&s.NUMBER_NEG_ZERO)||(!!(e&s.NUMBER_NEG_REAL&&t&s.NUMBER_POS_REAL)||(!!(e&s.NUMBER_POS_REAL&&t&s.NUMBER_NEG_REAL)||void 0)))})()&&(r|=s.NUMBER_NEG_INF);(function(){return!!(e&s.NUMBER_POS&&t&s.NUMBER_ZERO)||(!!(e&s.NUMBER_NEG&&t&s.NUMBER_NEG_ZERO)||(!!(e&s.NUMBER_POS_REAL&&t&s.NUMBER_POS_REAL)||(!!(e&s.NUMBER_NEG_REAL&&t&s.NUMBER_NEG_REAL)||void 0)))})()&&(r|=s.NUMBER_POS_INF);(function(){return!!(e&s.NUMBER_POS&&t&s.NUMBER_NEG)||(!!(e&s.NUMBER_NEG&&t&s.NUMBER_POS)||void 0)})()&&(r|=s.NUMBER_NEG);(function(){return!!(e&s.NUMBER_ZERO&&t&s.NUMBER_POS)||(!!(e&s.NUMBER_NEG_ZERO&&t&s.NUMBER_NEG)||(!!(e&s.NUMBER_POS_REAL&&t&s.NUMBER_POS_REAL)||(!!(e&s.NUMBER_NEG_REAL&&t&s.NUMBER_NEG_REAL)||(!!(e&s.NUMBER_POS&&t&s.NUMBER_POS_INF)||(!!(e&s.NUMBER_NEG&&t&s.NUMBER_NEG_INF)||void 0)))))})()&&(r|=s.NUMBER_ZERO);return function(){return!!(e&s.NUMBER_NEG_ZERO&&t&s.NUMBER_POS)||(!!(e&s.NUMBER_ZERO&&t&s.NUMBER_NEG)||(!!(e&s.NUMBER_NEG_REAL&&t&s.NUMBER_POS_REAL)||(!!(e&s.NUMBER_POS_REAL&&t&s.NUMBER_NEG_REAL)||(!!(e&s.NUMBER_POS&&t&s.NUMBER_NEG_INF)||(!!(e&s.NUMBER_NEG&&t&s.NUMBER_POS_INF)||void 0)))))}()&&(r|=s.NUMBER_NEG_ZERO),r}}return e.type}analyzeInputBlock(e,t){const n=e.inputs;let r=this.analyzeInputs(n,t);const s=this.getInputType(e,t);switch(r=r||s!==e.type,e.type=s,e.opcode){case i.ADDON_CALL:r=t.clear()||r;break;case i.PROCEDURE_CALL:{r=this.analyzeInputs(n.inputs,t)||r;const e=this.ir.procedures[n.variant];r=e&&e.cachedAnalysisEndState?e.yields?t.overwrite(e.cachedAnalysisEndState)||r:t.after(e.cachedAnalysisEndState)||r:t.clear()||r;break}}return r}analyzeInputs(e,t){let n=!1;for(const r in e){const i=e[r];i instanceof c&&(n=this.analyzeInputBlock(i,t)||n)}return n}addPossibleExitState(e){null!==this.exitState?this.exitState.or(e):this.exitState=e.clone()}analyzeStackBlock(e,t){const n=e.inputs;let i=!1;switch(e.ignoreState&&(t=t.clone()),e.opcode){case r.VAR_SET:i=this.analyzeInputs(n,t)||i,i=t.setVariableType(n.variable,n.value.type)||i;break;case r.CONTROL_WHILE:case r.CONTROL_FOR:i=this.analyzeInputs(n,t)||i,i=this.analyzeLoopedStack(n.do,t,e,!0)||i;break;case r.CONTROL_REPEAT:i=this.analyzeInputs(n,t)||i,i=this.analyzeLoopedStack(n.do,t,e,!1)||i;break;case r.CONTROL_IF_ELSE:{i=this.analyzeInputs(n,t)||i;const e=t.clone();i=this.analyzeStack(n.whenTrue,e)||i,i=this.analyzeStack(n.whenFalse,t)||i,i=t.or(e)||i;break}case r.CONTROL_STOP_SCRIPT:i=this.analyzeInputs(n,t)||i,this.addPossibleExitState(t);break;case r.CONTROL_WAIT_UNTIL:i=t.clear()||i,i=this.analyzeInputs(n,t)||i;break;case r.PROCEDURE_CALL:{i=this.analyzeInputs(n,t)||i,i=this.analyzeInputs(n.inputs,t)||i;const e=this.ir.procedures[n.variant];i=e&&e.cachedAnalysisEndState?e.yields?t.overwrite(e.cachedAnalysisEndState)||i:t.after(e.cachedAnalysisEndState)||i:t.clear()||i;break}case r.COMPATIBILITY_LAYER:i=this.analyzeInputs(n,t)||i,this.analyzeInputs(n.inputs,t);for(const e in n.substacks){const r=t.clone();i=this.analyzeStack(n.substacks[e],r)||i,i=t.or(r)||i}break;default:i=this.analyzeInputs(n,t)||i}return i}analyzeStack(e,t){if(!e)return!1;let n=!1;for(const r of e.blocks){let e=this.analyzeStackBlock(r,t);r.ignoreState||(r.yields&&!this.ignoreYields&&(e=t.clear()||e),e&&(r.exitState?r.exitState.or(t):r.exitState=t.clone(),n=!0))}return n}analyzeLoopedStack(e,t,n,r){let i=!1;if(n.yields&&!this.ignoreYields)return i=t.clear(),r&&(i=this.analyzeInputs(n.inputs,t)||i),n.entryState=t.clone(),n.exitState=t.clone(),this.analyzeStack(e,t)||i;let s,a=0;do{if(a>1e4)return o.error("analyzeLoopedStack stuck in likely infinite loop; quitting",n,t),i=t.clear(),n.entryState=t.clone(),n.exitState=t.clone(),i=this.analyzeInputs(n.inputs,t)||i,this.analyzeStack(e,t)||i;a++;const c=t.clone();i=this.analyzeStack(e,c)||i,i=(s=t.or(c))||i,r&&(i=this.analyzeInputs(n.inputs,t)||i)}while(s);return n.entryState=t.clone(),i}optimizeInput(e,t){for(const n in e.inputs){const r=e.inputs[n];r instanceof c&&(e.inputs[n]=this.optimizeInput(r,t))}switch(e.opcode){case i.CAST_BOOLEAN:{const t=e.inputs.target.type;return(t&s.BOOLEAN)===t?e.inputs.target:e}case i.CAST_NUMBER:{const t=e.inputs.target.type;return(t&s.NUMBER)===t?e.inputs.target:e}case i.CAST_NUMBER_INDEX:{const t=e.inputs.target.type;return(t&s.NUMBER_INDEX)===t?e.inputs.target:e}case i.CAST_NUMBER_OR_NAN:{const t=e.inputs.target.type;return(t&s.NUMBER_OR_NAN)===t?e.inputs.target:e}case i.CAST_STRING:{const t=e.inputs.target.type;return(t&s.STRING)===t?e.inputs.target:e}}return e}optimizeStack(e,t){if(e)for(const n of e.blocks){n.entryState&&(t=n.entryState);for(const e in n.inputs){const r=n.inputs[e];r instanceof c?n.inputs[e]=this.optimizeInput(r,t):r instanceof a&&this.optimizeStack(r,t)}n.exitState&&(t=n.exitState)}}optimizeScript(e,t){if(e.isProcedure){if(t.has(e.procedureCode))return;t.add(e.procedureCode)}for(const n of e.dependedProcedures)this.optimizeScript(this.ir.procedures[n],t);this.exitState=null;const n=new d;this.analyzeStack(e.stack,n),this.addPossibleExitState(n),e.cachedAnalysisEndState=this.exitState,this.optimizeStack(e.stack,new d)}optimize(){this.optimizeScript(this.ir.entry,new Set)}},TypeState:d}},function(e,t){e.exports=class{constructor(e){if(0===e.trim().length)throw new Error("prefix cannot be empty");this.prefix=e,this.count=0}next(){return"".concat(this.prefix).concat(this.count++)}}},function(e,t,n){const r=n(68);e.exports=new class extends r{constructor(){super(),this._stackFrame={},this._startedBranch=null}get stackFrame(){var e;return null===(e=this.thread)||void 0===e?void 0:e.compatibilityStackFrame}startBranch(e,t){this._startedBranch=[e,t]}startProcedure(){throw new Error("startProcedure is not supported by this BlockUtility")}initParams(){throw new Error("initParams is not supported by this BlockUtility")}pushParam(){throw new Error("pushParam is not supported by this BlockUtility")}getParam(){throw new Error("getParam is not supported by this BlockUtility")}init(e,t,n){this.thread=e,this.sequencer=e.target.runtime.sequencer,this._startedBranch=null,e.stack[0]=t,e.compatibilityStackFrame=n}}},function(e,t){e.exports={supportsNullishCoalescing:(()=>{try{new Function("undefined ?? 3");return!0}catch(e){return!1}})()}},function(e,t){e.exports=class{constructor(e){this._type=e,this._onOpen=null,this._onClose=null,this._onError=null,this._handleMessage=null,this._ws=null}open(){if(!(this._onOpen&&this._onClose&&this._onError&&this._handleMessage))throw new Error("Must set open, close, message and error handlers before calling open on the socket");let e;switch(this._type){case"BLE":e="scratch/ble";break;case"BT":e="scratch/bt";break;default:throw new Error("Unknown ScratchLink socket Type: ".concat(this._type))}const t=(e,t)=>{t.onopen=t.onerror=null,t.close(),this._ws=e,this._ws.onopen=this._onOpen,this._ws.onclose=this._onClose,this._ws.onerror=this._onError,this._ws.onmessage=this._onMessage.bind(this)},n=new WebSocket("ws://127.0.0.1:20111/".concat(e)),r=new WebSocket("wss://device-manager.scratch.mit.edu:20110/".concat(e)),i=setTimeout((()=>{t(n,r),this._ws.onerror(new Event("timeout"))}),15e3);let s,o;n.onopen=e=>{clearTimeout(i),t(n,r),this._ws.onopen(e)},r.onopen=e=>{clearTimeout(i),t(r,n),this._ws.onopen(e)};const a=()=>{s&&o&&(clearTimeout(i),t(n,r),this._ws.onerror(s))};n.onerror=e=>{s=e,a()},r.onerror=e=>{o=e,a()}}close(){this._ws.close(),this._ws=null}sendMessage(e){const t=JSON.stringify(e);this._ws.send(t)}setOnOpen(e){this._onOpen=e}setOnClose(e){this._onClose=e}setOnError(e){this._onError=e}setHandleMessage(e){this._handleMessage=e}isOpen(){return this._ws&&this._ws.readyState===this._ws.OPEN}_onMessage(e){const t=JSON.parse(e.data);this._handleMessage(t)}}},function(e,t,n){const r=n(19),i=n(195),s=n(6),o=n(0),a=e=>e.replace(/[^-\w ]/g,""),c=(e,t)=>{let n;const r=e.findIndex((e=>e.family.toLowerCase()===t.family.toLowerCase()));return-1!==r&&(n=e[r],e.splice(r,1)),e.push(t),n};e.exports=class extends r{constructor(e){super(),this.runtime=e,this.fonts=[],this.restrictedFonts=new Set}restrictFont(e){if(!this.isValidSystemFont(e))throw new Error("Invalid font");this.restrictedFonts.add(e.toLowerCase());const t=this.fonts.length;this.fonts=this.fonts.filter((e=>e.system||this.isValidCustomFont(e.family))),this.fonts.length!==t&&(this.updateRenderer(),this.changed())}isValidSystemFont(e){return/^[-\w ]+$/.test(e)}isValidCustomFont(e){return/^[-\w ]+$/.test(e)&&!this.restrictedFonts.has(e.toLowerCase())}isValidFamily(e){return this.isValidSystemFont(e)&&this.isValidCustomFont(e)}getUnusedSystemFont(e){return s.caseInsensitiveUnusedName(a(e),this.fonts.map((e=>e.family)))}getUnusedCustomFont(e){return s.caseInsensitiveUnusedName(a(e),[...this.fonts.map((e=>e.family)),...this.restrictedFonts])}hasFont(e){return!!this.fonts.find((t=>t.family.toLowerCase()===e.toLowerCase()))}changed(){this.emit("change")}addSystemFont(e,t){if(!this.isValidSystemFont(e))throw new Error("Invalid system font family");const n=c(this.fonts,{system:!0,family:e,fallback:t});n&&!n.system&&this.updateRenderer(),this.changed()}addCustomFont(e,t,n){if(!this.isValidCustomFont(e))throw new Error("Invalid custom font family");c(this.fonts,{system:!1,family:e,fallback:t,asset:n}),this.updateRenderer(),this.changed()}getFonts(){return this.fonts.map((e=>({system:e.system,name:e.family,family:'"'.concat(e.family,'", ').concat(e.fallback),data:e.asset?e.asset.data:null,format:e.asset?e.asset.dataFormat:null})))}deleteFont(e){const[t]=this.fonts.splice(e,1);t.system||this.updateRenderer(),this.changed()}clear(){const e=this.fonts.some((e=>!e.system));this.fonts=[],e&&this.updateRenderer(),this.changed()}updateRenderer(){if(!this.runtime.renderer||!this.runtime.renderer.setCustomFonts)return;const e={};for(const t of this.fonts)if(!t.system){const n=t.asset.encodeDataURI(),r='@font-face { font-family: "'.concat(t.family,'"; src: url("').concat(n,'"); }');e['"'.concat(t.family,'", ').concat(t.fallback)]=r}this.runtime.renderer.setCustomFonts(e)}serializeJSON(){return 0===this.fonts.length?null:this.fonts.map((e=>{const t={system:e.system,family:e.family,fallback:e.fallback};if(!e.system){const n=e.asset;t.md5ext="".concat(n.assetId,".").concat(n.dataFormat)}return t}))}serializeAssets(){return this.fonts.filter((e=>!e.system)).map((e=>e.asset))}async deserialize(e,t,n){if(n||this.clear(),Array.isArray(e))for(const n of e)if(n&&"object"==typeof n)try{const e=n.system,r=n.family,s=n.fallback;if("boolean"!=typeof e||"string"!=typeof r||"string"!=typeof s||this.hasFont(r))continue;if(e)this.addSystemFont(r,s);else{const e=n.md5ext;if("string"!=typeof e)continue;const o=await i.getByMd5ext(this.runtime,t,this.runtime.storage.AssetType.Font,e);this.addCustomFont(r,s,o)}}catch(e){o.error("could not add font",e)}}}},function(e,t,n){const r=n(6);e.exports=class{static getByMd5ext(e,t,n,i){const s=r.splitFirst(i,"."),o=s[0],a=s[1].toLowerCase();if(t){let r=t.file(i);if(!r){const e=new RegExp("^([^/]*/)?".concat(i,"$"));r=t.file(e)[0]}if(r)return e.wrapAssetRequest((()=>r.async("uint8array").then((t=>e.storage.createAsset(n,a,t,o,!1)))))}return e.wrapAssetRequest((()=>e.storage.load(n,o,a)))}}},function(e,t){e.exports={name:"TurboWarp",url:"https://turbowarp.org/"}},function(e,t){e.exports=e=>"object"==typeof e&&null!==e?JSON.stringify(e,(()=>{const e=new WeakSet;return(t,n)=>{if("object"==typeof n&&null!==n){if(e.has(n))return Array.isArray(n)?"[...]":"{...}";e.add(n)}return n}})()):Object.is(e,-0)?"-0":"".concat(e)},function(e,t,n){const r=n(24);class i{constructor(){this.map=new Map,this.dirty=!1}get(e){return this.map.get(e)}has(e){return this.map.has(e)}set(e,t){if(this.map.has(e)){this.map.get(e).merge(t)&&(this.dirty=!0)}else this.map.set(e,t instanceof r?t:new r(t)),this.dirty=!0}delete(e){this.map.has(e)&&(this.map.delete(e),this.dirty=!0)}filter(e){for(const t of Array.from(this.map.keys())){e(this.map.get(t))||(this.map.delete(t),this.dirty=!0)}}empty(){return 0===this.map.size}get size(){return this.map.size}values(){return Array.from(this.map.values())}valueSeq(){return this.values()}shallowClone(){const e=new i;return e.map=this.map,e}}e.exports=i},function(e,t,n){const r=n(14);e.exports=class{constructor(e){this._projectTimer=new r({now:()=>e.currentMSecs}),this._projectTimer.start(),this._pausedTime=null,this._paused=!1,this.runtime=e}projectTimer(){return this._paused?this._pausedTime/1e3:this._projectTimer.timeElapsed()/1e3}pause(){this._paused=!0,this._pausedTime=this._projectTimer.timeElapsed()}resume(){this._paused=!1;const e=this._projectTimer.timeElapsed()-this._pausedTime;this._projectTimer.startTime+=e}resetProjectTimer(){this._projectTimer.start()}}},function(e,t,n){const r=n(9),i=n(0);e.exports=class{constructor(e){this.provider=null,this.runtime=e,this.stage=null}setProvider(e){this.provider=e}setStage(e){this.stage=e}postData(e){e.varUpdate&&this.updateCloudVariable(e.varUpdate)}requestCreateVariable(e){this.runtime.canAddCloudVariable()&&this.provider&&this.provider.createVariable(e.name,e.value)}requestUpdateVariable(e,t){this.provider&&this.provider.updateVariable(e,t)}requestRenameVariable(e,t){this.provider&&this.provider.renameVariable(e,t)}requestDeleteVariable(e){this.provider&&this.provider.deleteVariable(e)}updateCloudVariable(e){const t=e.name,n=this.stage.lookupVariableByNameAndType(t,r.SCALAR_TYPE);n&&n.isCloud?n.value=e.value:i.warn("Received an update for a cloud variable that does not exist: ".concat(t))}clear(){this.provider&&(this.provider.requestCloseConnection(),this.provider=null,this.stage=null)}}},function(e,t,n){const r=n(1),i={SPACE:"space",LEFT:"left arrow",UP:"up arrow",RIGHT:"right arrow",DOWN:"down arrow",ENTER:"enter",BACKSPACE:"backspace",DELETE:"delete",SHIFT:"shift",CAPS_LOCK:"caps lock",SCROLL_LOCK:"scroll lock",CONTROL:"control",ESCAPE:"escape",INSERT:"insert",HOME:"home",END:"end",PAGE_UP:"page up",PAGE_DOWN:"page down"},s=new Set(Object.values(i));e.exports=class{constructor(e){this._keysPressed=[],this.runtime=e,this.lastKeyPressed="",this._numeralKeyCodesToStringKey=new Map,this._usedKeys=new Set}_keyStringToScratchKey(e){switch(e=r.toString(e)){case" ":return i.SPACE;case"ArrowLeft":case"Left":return i.LEFT;case"ArrowUp":case"Up":return i.UP;case"Right":case"ArrowRight":return i.RIGHT;case"Down":case"ArrowDown":return i.DOWN;case"Enter":return i.ENTER;case"Backspace":return i.BACKSPACE;case"Delete":return i.DELETE;case"Shift":return i.SHIFT;case"CapsLock":return i.CAPS_LOCK;case"ScrollLock":return i.SCROLL_LOCK;case"Control":return i.CONTROL;case"Escape":return i.ESCAPE;case"Insert":return i.INSERT;case"Home":return i.HOME;case"End":return i.END;case"PageUp":return i.PAGE_UP;case"PageDown":return i.PAGE_DOWN}return e.length>1?"":e}_keyArgToScratchKey(e){if("number"==typeof e){if(e>=48&&e<=90)return String.fromCharCode(e);switch(e){case 32:return i.SPACE;case 37:return i.LEFT;case 38:return i.UP;case 39:return i.RIGHT;case 40:return i.DOWN}}return(e=r.toString(e)).length>1&&s.has(e)?e:(e.length>1&&(e=e[0])," "===e?i.SPACE:"\r"===e?i.ENTER:""===e?i.ESCAPE:e.toUpperCase())}postData(e){if(!e.key)return;const t=this._keyStringToScratchKey(e.key),n=1===t.length?t.toUpperCase():t;if(""===n)return;const r=this._keysPressed.indexOf(n);if(e.isDown?(this.lastKeyPressed=t,this.runtime.emit("KEY_PRESSED",n),r<0&&this._keysPressed.push(n)):r>-1&&this._keysPressed.splice(r,1),Object.prototype.hasOwnProperty.call(e,"keyCode")){const t=e.keyCode;if(this._numeralKeyCodesToStringKey.has(t)){const e=this._numeralKeyCodesToStringKey.get(t);if(e!==n){const t=this._keysPressed.indexOf(e);-1!==t&&this._keysPressed.splice(t,1)}}this._numeralKeyCodesToStringKey.set(t,n)}}getKeyIsDown(e){if("any"===e)return this._keysPressed.length>0;const t=this._keyArgToScratchKey(e);return this._usedKeys.add(t),this._keysPressed.indexOf(t)>-1}getLastKeyPressed(){return this.lastKeyPressed}hasUsedKey(e){return this._usedKeys.has(e)}}},function(e,t,n){const r=n(4),i=e=>Math.round(1e3*e)/1e3;e.exports=class{constructor(e){this._clientX=0,this._clientY=0,this._scratchX=0,this._scratchY=0,this._buttons=new Set,this.usesRightClickDown=!1,this._isDown=!1,this.runtime=e}_activateClickHats(e){this.runtime.startHats("event_whenthisspriteclicked",null,e),this.runtime.startHats("event_whenstageclicked",null,e)}_pickTarget(e,t){if(this.runtime.renderer){const n=this.runtime.renderer.pick(e,t);for(let e=0;e<this.runtime.targets.length;e++){const t=this.runtime.targets[e];if(Object.prototype.hasOwnProperty.call(t,"drawableID")&&t.drawableID===n)return t}}return this.runtime.getTargetForStage()}postData(e){if("number"==typeof e.x&&(this._clientX=e.x,this._scratchX=r.clamp(this.runtime.stageWidth*(e.x/e.canvasWidth-.5),-this.runtime.stageWidth/2,this.runtime.stageWidth/2)),"number"==typeof e.y&&(this._clientY=e.y,this._scratchY=r.clamp(-this.runtime.stageHeight*(e.y/e.canvasHeight-.5),-this.runtime.stageHeight/2,this.runtime.stageHeight/2)),void 0!==e.isDown){const t=void 0===e.button?0:e.button;e.isDown?this._buttons.add(t):this._buttons.delete(t);const n=this._isDown;if(this._isDown=e.isDown,n===this._isDown)return;if(e.wasDragged)return;if(!(e.x>0&&e.x<e.canvasWidth&&e.y>0&&e.y<e.canvasHeight))return;const r=this._pickTarget(e.x,e.y);if(r){const e=!n&&this._isDown,t=n&&!this._isDown;(r.draggable&&t||!r.draggable&&e)&&this._activateClickHats(r)}}}getClientX(){return this._clientX}getClientY(){return this._clientY}getScratchX(){return this.runtime.runtimeOptions.miscLimits?Math.round(this._scratchX):i(this._scratchX)}getScratchY(){return this.runtime.runtimeOptions.miscLimits?Math.round(this._scratchY):i(this._scratchY)}getIsDown(){return this._isDown}getButtonIsDown(e){return 2===e&&(this.usesRightClickDown=!0),this._buttons.has(e)}}},function(e,t){e.exports=class{constructor(e){this.runtime=e}postData(e){const t={};if(e.deltaY<0)t.KEY_OPTION="up arrow";else{if(!(e.deltaY>0))return;t.KEY_OPTION="down arrow"}this.runtime.startHats("event_whenkeypressed",t)}}},function(e,t){e.exports=class{constructor(){this._username=""}postData(e){this._username=e.username}getUsername(){return this._username}}},function(e,t,n){const r=n(1);e.exports=class{constructor(e){this.runtime=e,this._counter=0,this.runtime.on("RUNTIME_DISPOSED",this.clearCounter.bind(this))}getPrimitives(){return{control_repeat:this.repeat,control_repeat_until:this.repeatUntil,control_while:this.repeatWhile,control_for_each:this.forEach,control_forever:this.forever,control_wait:this.wait,control_wait_until:this.waitUntil,control_if:this.if,control_if_else:this.ifElse,control_stop:this.stop,control_create_clone_of:this.createClone,control_delete_this_clone:this.deleteClone,control_get_counter:this.getCounter,control_incr_counter:this.incrCounter,control_clear_counter:this.clearCounter,control_all_at_once:this.allAtOnce}}getHats(){return{control_start_as_clone:{restartExistingThreads:!1}}}repeat(e,t){const n=Math.round(r.toNumber(e.TIMES));void 0===t.stackFrame.loopCounter&&(t.stackFrame.loopCounter=n),t.stackFrame.loopCounter--,t.stackFrame.loopCounter>=0&&t.startBranch(1,!0)}repeatUntil(e,t){r.toBoolean(e.CONDITION)||t.startBranch(1,!0)}repeatWhile(e,t){r.toBoolean(e.CONDITION)&&t.startBranch(1,!0)}forEach(e,t){const n=t.target.lookupOrCreateVariable(e.VARIABLE.id,e.VARIABLE.name);void 0===t.stackFrame.index&&(t.stackFrame.index=0),t.stackFrame.index<Number(e.VALUE)&&(t.stackFrame.index++,n.value=t.stackFrame.index,t.startBranch(1,!0))}waitUntil(e,t){r.toBoolean(e.CONDITION)||t.yield()}forever(e,t){t.startBranch(1,!0)}wait(e,t){if(t.stackTimerNeedsInit()){const n=Math.max(0,1e3*r.toNumber(e.DURATION));t.startStackTimer(n),this.runtime.requestRedraw(),t.yield()}else t.stackTimerFinished()||t.yield()}if(e,t){r.toBoolean(e.CONDITION)&&t.startBranch(1,!1)}ifElse(e,t){r.toBoolean(e.CONDITION)?t.startBranch(1,!1):t.startBranch(2,!1)}stop(e,t){const n=e.STOP_OPTION;"all"===n?t.stopAll():"other scripts in sprite"===n||"other scripts in stage"===n?t.stopOtherTargetThreads():"this script"===n&&t.stopThisScript()}createClone(e,t){this._createClone(r.toString(e.CLONE_OPTION),t.target)}_createClone(e,t){let n;if(n="_myself_"===e?t:this.runtime.getSpriteTargetByName(e),!n)return;const r=n.makeClone();r&&(this.runtime.addTarget(r),r.goBehindOther(n))}deleteClone(e,t){t.target.isOriginal||(this.runtime.disposeTarget(t.target),this.runtime.stopForTarget(t.target))}getCounter(){return this._counter}clearCounter(){this._counter=0}incrCounter(){this._counter++}allAtOnce(e,t){t.startBranch(1,!1)}}},function(e,t,n){const r=n(1);e.exports=class{constructor(e){this.runtime=e,this.runtime.on("KEY_PRESSED",(e=>{this.runtime.startHats("event_whenkeypressed",{KEY_OPTION:e}),this.runtime.startHats("event_whenkeypressed",{KEY_OPTION:"any"})}))}getPrimitives(){return{event_whentouchingobject:this.touchingObject,event_broadcast:this.broadcast,event_broadcastandwait:this.broadcastAndWait,event_whengreaterthan:this.hatGreaterThanPredicate}}getHats(){return{event_whenflagclicked:{restartExistingThreads:!0},event_whenkeypressed:{restartExistingThreads:!1},event_whenthisspriteclicked:{restartExistingThreads:!0},event_whentouchingobject:{restartExistingThreads:!1,edgeActivated:!0},event_whenstageclicked:{restartExistingThreads:!0},event_whenbackdropswitchesto:{restartExistingThreads:!0},event_whengreaterthan:{restartExistingThreads:!1,edgeActivated:!0},event_whenbroadcastreceived:{restartExistingThreads:!0}}}touchingObject(e,t){return t.target.isTouchingObject(e.TOUCHINGOBJECTMENU)}hatGreaterThanPredicate(e,t){const n=r.toString(e.WHENGREATERTHANMENU).toLowerCase(),i=r.toNumber(e.VALUE);switch(n){case"timer":return t.ioQuery("clock","projectTimer")>i;case"loudness":return this.runtime.audioEngine&&this.runtime.audioEngine.getLoudness()>i}return!1}broadcast(e,t){const n=t.runtime.getTargetForStage().lookupBroadcastMsg(e.BROADCAST_OPTION.id,e.BROADCAST_OPTION.name);if(n){const e=n.name;t.startHats("event_whenbroadcastreceived",{BROADCAST_OPTION:e})}}broadcastAndWait(e,t){if(t.stackFrame.broadcastVar||(t.stackFrame.broadcastVar=t.runtime.getTargetForStage().lookupBroadcastMsg(e.BROADCAST_OPTION.id,e.BROADCAST_OPTION.name)),t.stackFrame.broadcastVar){const e=t.stackFrame.broadcastVar.name;if(!t.stackFrame.startedThreads&&(t.stackFrame.startedThreads=t.startHats("event_whenbroadcastreceived",{BROADCAST_OPTION:e}),0===t.stackFrame.startedThreads.length))return;const n=this;t.stackFrame.startedThreads.some((e=>-1!==n.runtime.threads.indexOf(e)))&&(t.stackFrame.startedThreads.every((e=>n.runtime.isWaitingThread(e)))?t.yieldTick():t.yield())}}}},function(e,t,n){const r=n(1),i=n(12),s=n(7),o=n(13),a=n(43),c=n(4);class l{constructor(e){this.runtime=e,this._onTargetChanged=this._onTargetChanged.bind(this),this._onResetBubbles=this._onResetBubbles.bind(this),this._onTargetWillExit=this._onTargetWillExit.bind(this),this._updateBubble=this._updateBubble.bind(this),this.runtime.on("PROJECT_STOP_ALL",this._onResetBubbles),this.runtime.on("targetWasRemoved",this._onTargetWillExit),this.runtime.on(l.SAY_OR_THINK,this._updateBubble)}static get DEFAULT_BUBBLE_STATE(){return{drawableId:null,onSpriteRight:!0,skinId:null,text:"",type:"say",usageId:null}}static get STATE_KEY(){return"Scratch.looks"}static get SAY_OR_THINK(){return"SAY"}static get SAY_BUBBLE_LIMIT(){return 330}static get EFFECT_GHOST_LIMIT(){return{min:0,max:100}}static get EFFECT_BRIGHTNESS_LIMIT(){return{min:-100,max:100}}_getBubbleState(e){let t=e.getCustomState(l.STATE_KEY);return t||(t=i.simple(l.DEFAULT_BUBBLE_STATE),e.setCustomState(l.STATE_KEY,t)),t}_onTargetChanged(e){this._getBubbleState(e).drawableId&&this._positionBubble(e)}_onTargetWillExit(e){const t=this._getBubbleState(e);t.drawableId&&t.skinId&&(this.runtime.renderer.destroyDrawable(t.drawableId,o.SPRITE_LAYER),this.runtime.renderer.destroySkin(t.skinId),t.drawableId=null,t.skinId=null,this.runtime.requestRedraw()),e.onTargetVisualChange=null}_onResetBubbles(){for(let e=0;e<this.runtime.targets.length;e++){this._getBubbleState(this.runtime.targets[e]).text="",this._onTargetWillExit(this.runtime.targets[e])}clearTimeout(this._bubbleTimeout)}_positionBubble(e){if(!e.visible)return;const t=this._getBubbleState(e),[n,r]=this.runtime.renderer.getCurrentSkinSize(t.drawableId);let i;try{i=e.getBoundsForBubble()}catch(t){i={left:e.x,right:e.x,top:e.y,bottom:e.y}}const s=this.runtime.renderer.getNativeSize(),o={left:-s[0]/2,right:s[0]/2,top:s[1]/2,bottom:-s[1]/2};t.onSpriteRight&&n+i.right>o.right&&i.left-n>o.left?(t.onSpriteRight=!1,this._renderBubble(e)):!t.onSpriteRight&&i.left-n<o.left&&n+i.right<o.right?(t.onSpriteRight=!0,this._renderBubble(e)):(this.runtime.renderer.updateDrawablePosition(t.drawableId,[t.onSpriteRight?Math.max(o.left,Math.min(o.right-n,i.right)):Math.min(o.right-n,Math.max(o.left,i.left-n)),Math.min(o.top,i.bottom+r)]),this.runtime.requestRedraw())}_renderBubble(e){if(!this.runtime.renderer)return;const t=this._getBubbleState(e),{type:n,text:r,onSpriteRight:i}=t;e.visible&&""!==r?(t.skinId?this.runtime.renderer.updateTextSkin(t.skinId,n,r,i,[0,0]):(e.onTargetVisualChange=this._onTargetChanged,t.drawableId=this.runtime.renderer.createDrawable(o.SPRITE_LAYER),t.skinId=this.runtime.renderer.createTextSkin(n,r,t.onSpriteRight,[0,0]),this.runtime.renderer.updateDrawableSkinId(t.drawableId,t.skinId)),this._positionBubble(e)):this._onTargetWillExit(e)}_formatBubbleText(e){return""===e?e:("number"==typeof e&&Math.abs(e)>=.01&&e%1!=0&&(e=e.toFixed(2)),e=String(e).substr(0,l.SAY_BUBBLE_LIMIT))}_updateBubble(e,t,n){const r=this._getBubbleState(e);r.type=t,r.text=this._formatBubbleText(n),r.usageId=s(),this._renderBubble(e)}getPrimitives(){return{looks_say:this.say,looks_sayforsecs:this.sayforsecs,looks_think:this.think,looks_thinkforsecs:this.thinkforsecs,looks_show:this.show,looks_hide:this.hide,looks_hideallsprites:()=>{},looks_switchcostumeto:this.switchCostume,looks_switchbackdropto:this.switchBackdrop,looks_switchbackdroptoandwait:this.switchBackdropAndWait,looks_nextcostume:this.nextCostume,looks_nextbackdrop:this.nextBackdrop,looks_changeeffectby:this.changeEffect,looks_seteffectto:this.setEffect,looks_cleargraphiceffects:this.clearEffects,looks_changesizeby:this.changeSize,looks_setsizeto:this.setSize,looks_changestretchby:()=>{},looks_setstretchto:()=>{},looks_gotofrontback:this.goToFrontBack,looks_goforwardbackwardlayers:this.goForwardBackwardLayers,looks_size:this.getSize,looks_costumenumbername:this.getCostumeNumberName,looks_backdropnumbername:this.getBackdropNumberName}}getMonitored(){return{looks_size:{isSpriteSpecific:!0,getId:e=>"".concat(e,"_size")},looks_costumenumbername:{isSpriteSpecific:!0,getId:(e,t)=>a("".concat(e,"_costumenumbername"),t)},looks_backdropnumbername:{getId:(e,t)=>a("backdropnumbername",t)}}}say(e,t){const n=e.MESSAGE;this._say(n,t.target)}_say(e,t){this.runtime.emit(l.SAY_OR_THINK,t,"say",e)}sayforsecs(e,t){this.say(e,t);const n=t.target,r=this._getBubbleState(n).usageId;return new Promise((t=>{this._bubbleTimeout=setTimeout((()=>{this._bubbleTimeout=null,this._getBubbleState(n).usageId===r&&this._updateBubble(n,"say",""),t()}),1e3*e.SECS)}))}think(e,t){this._think(e.MESSAGE,t.target)}_think(e,t){this.runtime.emit(l.SAY_OR_THINK,t,"think",e)}thinkforsecs(e,t){this.think(e,t);const n=t.target,r=this._getBubbleState(n).usageId;return new Promise((t=>{this._bubbleTimeout=setTimeout((()=>{this._bubbleTimeout=null,this._getBubbleState(n).usageId===r&&this._updateBubble(n,"think",""),t()}),1e3*e.SECS)}))}show(e,t){t.target.setVisible(!0),this._renderBubble(t.target)}hide(e,t){t.target.setVisible(!1),this._renderBubble(t.target)}_setCostume(e,t,n){if("number"==typeof t)e.setCostume(n?t:t-1);else{const i=e.getCostumeIndexByName(t.toString());-1!==i?e.setCostume(i):"next costume"===t?e.setCostume(e.currentCostume+1):"previous costume"===t?e.setCostume(e.currentCostume-1):isNaN(t)||r.isWhiteSpace(t)||e.setCostume(n?Number(t):Number(t)-1)}return[]}_setBackdrop(e,t,n){if("number"==typeof t)e.setCostume(n?t:t-1);else{const i=e.getCostumeIndexByName(t.toString());if(-1!==i)e.setCostume(i);else if("next backdrop"===t)e.setCostume(e.currentCostume+1);else if("previous backdrop"===t)e.setCostume(e.currentCostume-1);else if("random backdrop"===t){const t=e.getCostumes().length;if(t>1){const n=0,r=t-1,i=e.currentCostume,s=c.inclusiveRandIntWithout(n,r,i);e.setCostume(s)}}else isNaN(t)||r.isWhiteSpace(t)||e.setCostume(n?Number(t):Number(t)-1)}const i=e.getCostumes()[e.currentCostume].name;return this.runtime.startHats("event_whenbackdropswitchesto",{BACKDROP:i})}switchCostume(e,t){this._setCostume(t.target,e.COSTUME)}nextCostume(e,t){this._setCostume(t.target,t.target.currentCostume+1,!0)}switchBackdrop(e){this._setBackdrop(this.runtime.getTargetForStage(),e.BACKDROP)}switchBackdropAndWait(e,t){if(!t.stackFrame.startedThreads&&(t.stackFrame.startedThreads=this._setBackdrop(this.runtime.getTargetForStage(),e.BACKDROP),0===t.stackFrame.startedThreads.length))return;const n=this;t.stackFrame.startedThreads.some((e=>-1!==n.runtime.threads.indexOf(e)))&&(t.stackFrame.startedThreads.every((e=>n.runtime.isWaitingThread(e)))?t.yieldTick():t.yield())}nextBackdrop(){const e=this.runtime.getTargetForStage();this._setBackdrop(e,e.currentCostume+1,!0)}clampEffect(e,t){let n=t;switch(e){case"ghost":n=c.clamp(t,l.EFFECT_GHOST_LIMIT.min,l.EFFECT_GHOST_LIMIT.max);break;case"brightness":n=c.clamp(t,l.EFFECT_BRIGHTNESS_LIMIT.min,l.EFFECT_BRIGHTNESS_LIMIT.max)}return n}changeEffect(e,t){const n=r.toString(e.EFFECT).toLowerCase(),i=r.toNumber(e.CHANGE);if(!Object.prototype.hasOwnProperty.call(t.target.effects,n))return;let s=i+t.target.effects[n];s=this.clampEffect(n,s),t.target.setEffect(n,s)}setEffect(e,t){const n=r.toString(e.EFFECT).toLowerCase();let i=r.toNumber(e.VALUE);i=this.clampEffect(n,i),t.target.setEffect(n,i)}clearEffects(e,t){t.target.clearEffects()}changeSize(e,t){const n=r.toNumber(e.CHANGE);t.target.setSize(t.target.size+n)}setSize(e,t){const n=r.toNumber(e.SIZE);t.target.setSize(n)}goToFrontBack(e,t){t.target.isStage||("front"===e.FRONT_BACK?t.target.goToFront():t.target.goToBack())}goForwardBackwardLayers(e,t){t.target.isStage||("forward"===e.FORWARD_BACKWARD?t.target.goForwardLayers(r.toNumber(e.NUM)):t.target.goBackwardLayers(r.toNumber(e.NUM)))}getSize(e,t){return Math.round(t.target.size)}getBackdropNumberName(e){const t=this.runtime.getTargetForStage();return"number"===e.NUMBER_NAME?t.currentCostume+1:t.getCostumes()[t.currentCostume].name}getCostumeNumberName(e,t){return"number"===e.NUMBER_NAME?t.target.currentCostume+1:t.target.getCostumes()[t.target.currentCostume].name}}e.exports=l},function(e,t,n){const r=n(1),i=n(4),s=n(14);e.exports=class{constructor(e){this.runtime=e}getPrimitives(){return{motion_movesteps:this.moveSteps,motion_gotoxy:this.goToXY,motion_goto:this.goTo,motion_turnright:this.turnRight,motion_turnleft:this.turnLeft,motion_pointindirection:this.pointInDirection,motion_pointtowards:this.pointTowards,motion_glidesecstoxy:this.glide,motion_glideto:this.glideTo,motion_ifonedgebounce:this.ifOnEdgeBounce,motion_setrotationstyle:this.setRotationStyle,motion_changexby:this.changeX,motion_setx:this.setX,motion_changeyby:this.changeY,motion_sety:this.setY,motion_xposition:this.getX,motion_yposition:this.getY,motion_direction:this.getDirection,motion_scroll_right:()=>{},motion_scroll_up:()=>{},motion_align_scene:()=>{},motion_xscroll:()=>{},motion_yscroll:()=>{}}}getMonitored(){return{motion_xposition:{isSpriteSpecific:!0,getId:e=>"".concat(e,"_xposition")},motion_yposition:{isSpriteSpecific:!0,getId:e=>"".concat(e,"_yposition")},motion_direction:{isSpriteSpecific:!0,getId:e=>"".concat(e,"_direction")}}}moveSteps(e,t){const n=r.toNumber(e.STEPS);this._moveSteps(n,t.target)}_moveSteps(e,t){const n=i.degToRad(90-t.direction),r=e*Math.cos(n),s=e*Math.sin(n);t.setXY(t.x+r,t.y+s)}goToXY(e,t){const n=r.toNumber(e.X),i=r.toNumber(e.Y);t.target.setXY(n,i)}getTargetXY(e,t){let n=0,i=0;if("_mouse_"===e)n=t.ioQuery("mouse","getScratchX"),i=t.ioQuery("mouse","getScratchY");else if("_random_"===e){const e=this.runtime.stageWidth,t=this.runtime.stageHeight;n=Math.round(e*(Math.random()-.5)),i=Math.round(t*(Math.random()-.5))}else{e=r.toString(e);const t=this.runtime.getSpriteTargetByName(e);if(!t)return;n=t.x,i=t.y}return[n,i]}goTo(e,t){const n=this.getTargetXY(e.TO,t);n&&t.target.setXY(n[0],n[1])}turnRight(e,t){const n=r.toNumber(e.DEGREES);t.target.setDirection(t.target.direction+n)}turnLeft(e,t){const n=r.toNumber(e.DEGREES);t.target.setDirection(t.target.direction-n)}pointInDirection(e,t){const n=r.toNumber(e.DIRECTION);t.target.setDirection(n)}pointTowards(e,t){let n=0,s=0;if("_mouse_"===e.TOWARDS)n=t.ioQuery("mouse","getScratchX"),s=t.ioQuery("mouse","getScratchY");else{if("_random_"===e.TOWARDS)return void t.target.setDirection(Math.round(360*Math.random())-180);{e.TOWARDS=r.toString(e.TOWARDS);const t=this.runtime.getSpriteTargetByName(e.TOWARDS);if(!t)return;n=t.x,s=t.y}}const o=n-t.target.x,a=s-t.target.y,c=90-i.radToDeg(Math.atan2(a,o));t.target.setDirection(c)}glide(e,t){if(t.stackFrame.timer){const e=t.stackFrame.timer.timeElapsed();if(e<1e3*t.stackFrame.duration){const n=e/(1e3*t.stackFrame.duration),r=n*(t.stackFrame.endX-t.stackFrame.startX),i=n*(t.stackFrame.endY-t.stackFrame.startY);t.target.setXY(t.stackFrame.startX+r,t.stackFrame.startY+i),t.yield()}else t.target.setXY(t.stackFrame.endX,t.stackFrame.endY)}else{if(t.stackFrame.timer=new s,t.stackFrame.timer.start(),t.stackFrame.duration=r.toNumber(e.SECS),t.stackFrame.startX=t.target.x,t.stackFrame.startY=t.target.y,t.stackFrame.endX=r.toNumber(e.X),t.stackFrame.endY=r.toNumber(e.Y),t.stackFrame.duration<=0)return void t.target.setXY(t.stackFrame.endX,t.stackFrame.endY);t.yield()}}glideTo(e,t){const n=this.getTargetXY(e.TO,t);n&&this.glide({SECS:e.SECS,X:n[0],Y:n[1]},t)}ifOnEdgeBounce(e,t){this._ifOnEdgeBounce(t.target)}_ifOnEdgeBounce(e){const t=e.getBounds();if(!t)return;const n=this.runtime.stageWidth,r=this.runtime.stageHeight,s=Math.max(0,n/2+t.left),o=Math.max(0,r/2-t.top),a=Math.max(0,n/2-t.right),c=Math.max(0,r/2+t.bottom);let l="",u=1/0;if(s<u&&(u=s,l="left"),o<u&&(u=o,l="top"),a<u&&(u=a,l="right"),c<u&&(u=c,l="bottom"),u>0)return;const h=i.degToRad(90-e.direction);let d=Math.cos(h),p=-Math.sin(h);"left"===l?d=Math.max(.2,Math.abs(d)):"top"===l?p=Math.max(.2,Math.abs(p)):"right"===l?d=0-Math.max(.2,Math.abs(d)):"bottom"===l&&(p=0-Math.max(.2,Math.abs(p)));const f=i.radToDeg(Math.atan2(p,d))+90;e.setDirection(f);const m=e.keepInFence(e.x,e.y);e.setXY(m[0],m[1])}setRotationStyle(e,t){t.target.setRotationStyle(e.STYLE)}changeX(e,t){const n=r.toNumber(e.DX);t.target.setXY(t.target.x+n,t.target.y)}setX(e,t){const n=r.toNumber(e.X);t.target.setXY(n,t.target.y)}changeY(e,t){const n=r.toNumber(e.DY);t.target.setXY(t.target.x,t.target.y+n)}setY(e,t){const n=r.toNumber(e.Y);t.target.setXY(t.target.x,n)}getX(e,t){return this.limitPrecision(t.target.x)}getY(e,t){return this.limitPrecision(t.target.y)}getDirection(e,t){return t.target.direction}limitPrecision(e){const t=Math.round(e),n=e-t;return Math.abs(n)<1e-9?t:e}}},function(e,t,n){const r=n(1),i=n(4);e.exports=class{constructor(e){this.runtime=e}getPrimitives(){return{operator_add:this.add,operator_subtract:this.subtract,operator_multiply:this.multiply,operator_divide:this.divide,operator_lt:this.lt,operator_equals:this.equals,operator_gt:this.gt,operator_and:this.and,operator_or:this.or,operator_not:this.not,operator_random:this.random,operator_join:this.join,operator_letter_of:this.letterOf,operator_length:this.length,operator_contains:this.contains,operator_mod:this.mod,operator_round:this.round,operator_mathop:this.mathop}}add(e){return r.toNumber(e.NUM1)+r.toNumber(e.NUM2)}subtract(e){return r.toNumber(e.NUM1)-r.toNumber(e.NUM2)}multiply(e){return r.toNumber(e.NUM1)*r.toNumber(e.NUM2)}divide(e){return r.toNumber(e.NUM1)/r.toNumber(e.NUM2)}lt(e){return r.compare(e.OPERAND1,e.OPERAND2)<0}equals(e){return 0===r.compare(e.OPERAND1,e.OPERAND2)}gt(e){return r.compare(e.OPERAND1,e.OPERAND2)>0}and(e){return r.toBoolean(e.OPERAND1)&&r.toBoolean(e.OPERAND2)}or(e){return r.toBoolean(e.OPERAND1)||r.toBoolean(e.OPERAND2)}not(e){return!r.toBoolean(e.OPERAND)}random(e){return this._random(e.FROM,e.TO)}_random(e,t){const n=r.toNumber(e),i=r.toNumber(t),s=n<=i?n:i,o=n<=i?i:n;return s===o?s:r.isInt(e)&&r.isInt(t)?s+Math.floor(Math.random()*(o+1-s)):Math.random()*(o-s)+s}join(e){return r.toString(e.STRING1)+r.toString(e.STRING2)}letterOf(e){const t=r.toNumber(e.LETTER)-1,n=r.toString(e.STRING);return t<0||t>=n.length?"":n.charAt(t)}length(e){return r.toString(e.STRING).length}contains(e){const t=function(e){return r.toString(e).toLowerCase()};return t(e.STRING1).includes(t(e.STRING2))}mod(e){const t=r.toNumber(e.NUM1),n=r.toNumber(e.NUM2);let i=t%n;return i/n<0&&(i+=n),i}round(e){return Math.round(r.toNumber(e.NUM))}mathop(e){const t=r.toString(e.OPERATOR).toLowerCase(),n=r.toNumber(e.NUM);switch(t){case"abs":return Math.abs(n);case"floor":return Math.floor(n);case"ceiling":return Math.ceil(n);case"sqrt":return Math.sqrt(n);case"sin":return Math.round(1e10*Math.sin(Math.PI*n/180))/1e10;case"cos":return Math.round(1e10*Math.cos(Math.PI*n/180))/1e10;case"tan":return i.tan(n);case"asin":return 180*Math.asin(n)/Math.PI;case"acos":return 180*Math.acos(n)/Math.PI;case"atan":return 180*Math.atan(n)/Math.PI;case"ln":return Math.log(n);case"log":return Math.log(n)/Math.LN10;case"e ^":return Math.exp(n);case"10 ^":return Math.pow(10,n)}return 0}}},function(e,t,n){const r=n(4),i=n(1),s=n(12),o=!0;class a{constructor(e){this.runtime=e,this.waitingSounds={},this.stopAllSounds=this.stopAllSounds.bind(this),this._stopWaitingSoundsForTarget=this._stopWaitingSoundsForTarget.bind(this),this._clearEffectsForAllTargets=this._clearEffectsForAllTargets.bind(this),this.runtime&&(this.runtime.on("PROJECT_STOP_ALL",this.stopAllSounds),this.runtime.on("PROJECT_STOP_ALL",this._clearEffectsForAllTargets),this.runtime.on("STOP_FOR_TARGET",this._stopWaitingSoundsForTarget),this.runtime.on("PROJECT_START",this._clearEffectsForAllTargets)),this._onTargetCreated=this._onTargetCreated.bind(this),this.runtime&&e.on("targetWasCreated",this._onTargetCreated)}static get STATE_KEY(){return"Scratch.sound"}static get DEFAULT_SOUND_STATE(){return{effects:{pitch:0,pan:0}}}static get MIDI_NOTE_RANGE(){return{min:36,max:96}}static get BEAT_RANGE(){return{min:0,max:100}}static get TEMPO_RANGE(){return{min:20,max:500}}static get EFFECT_RANGE(){return{pitch:{min:-360,max:360},pan:{min:-100,max:100}}}static get LARGER_EFFECT_RANGE(){return{pitch:{min:-1e3,max:1e3},pan:{min:-100,max:100}}}_getSoundState(e){let t=e.getCustomState(a.STATE_KEY);return t||(t=s.simple(a.DEFAULT_SOUND_STATE),e.setCustomState(a.STATE_KEY,t),e.soundEffects=t.effects),t}_onTargetCreated(e,t){if(t){const n=t.getCustomState(a.STATE_KEY);n&&e&&(e.setCustomState(a.STATE_KEY,s.simple(n)),this._syncEffectsForTarget(e))}}getPrimitives(){return{sound_play:this.playSound,sound_playuntildone:this.playSoundAndWait,sound_stopallsounds:this.stopAllSounds,sound_seteffectto:this.setEffect,sound_changeeffectby:this.changeEffect,sound_cleareffects:this.clearEffects,sound_sounds_menu:this.soundsMenu,sound_beats_menu:this.beatsMenu,sound_effects_menu:this.effectsMenu,sound_setvolumeto:this.setVolume,sound_changevolumeby:this.changeVolume,sound_volume:this.getVolume}}getMonitored(){return{sound_volume:{isSpriteSpecific:!0,getId:e=>"".concat(e,"_volume")}}}playSound(e,t){this._playSound(e,t)}playSoundAndWait(e,t){return this._playSound(e,t,o)}_playSound(e,t,n){const r=this._getSoundIndex(e.SOUND_MENU,t);if(r>=0){const{target:e}=t,{sprite:i}=e,{soundId:s}=i.sounds[r];if(i.soundBank)return n===o?this._addWaitingSound(e.id,s):this._removeWaitingSound(e.id,s),i.soundBank.playSound(e,s)}}_addWaitingSound(e,t){this.waitingSounds[e]||(this.waitingSounds[e]=new Set),this.waitingSounds[e].add(t)}_removeWaitingSound(e,t){this.waitingSounds[e]&&this.waitingSounds[e].delete(t)}_getSoundIndex(e,t){const n=t.target.sprite.sounds.length;if(0===n)return-1;const i=this.getSoundIndexByName(e,t);if(-1!==i)return i;const s=parseInt(e,10);return isNaN(s)?-1:r.wrapClamp(s-1,0,n-1)}getSoundIndexByName(e,t){const n=t.target.sprite.sounds;for(let t=0;t<n.length;t++)if(n[t].name===e)return t;return-1}stopAllSounds(){if(null===this.runtime.targets)return;const e=this.runtime.targets;for(let t=0;t<e.length;t++)this._stopAllSoundsForTarget(e[t])}_stopAllSoundsForTarget(e){e.sprite.soundBank&&(e.sprite.soundBank.stopAllSounds(e),this.waitingSounds[e.id]&&this.waitingSounds[e.id].clear())}_stopWaitingSoundsForTarget(e){if(e.sprite.soundBank&&this.waitingSounds[e.id]){for(const t of this.waitingSounds[e.id].values())e.sprite.soundBank.stop(e,t);this.waitingSounds[e.id].clear()}}setEffect(e,t){return this._updateEffect(e,t,!1)}changeEffect(e,t){return this._updateEffect(e,t,!0)}_updateEffect(e,t,n){const s=i.toString(e.EFFECT).toLowerCase(),o=i.toNumber(e.VALUE),c=this._getSoundState(t.target);if(!Object.prototype.hasOwnProperty.call(c.effects,s))return;n?c.effects[s]+=o:c.effects[s]=o;const l=this.runtime.runtimeOptions.miscLimits,{min:u,max:h}=l?a.EFFECT_RANGE[s]:a.LARGER_EFFECT_RANGE[s];if(c.effects[s]=r.clamp(c.effects[s],u,h),this._syncEffectsForTarget(t.target),l)return Promise.resolve();this.runtime.requestRedraw()}_syncEffectsForTarget(e){e&&e.sprite.soundBank&&(e.soundEffects=this._getSoundState(e).effects,e.sprite.soundBank.setEffects(e))}clearEffects(e,t){this._clearEffectsForTarget(t.target)}_clearEffectsForTarget(e){const t=this._getSoundState(e);for(const e in t.effects)Object.prototype.hasOwnProperty.call(t.effects,e)&&(t.effects[e]=0);this._syncEffectsForTarget(e)}_clearEffectsForAllTargets(){if(null===this.runtime.targets)return;const e=this.runtime.targets;for(let t=0;t<e.length;t++)this._clearEffectsForTarget(e[t])}setVolume(e,t){const n=i.toNumber(e.VOLUME);return this._updateVolume(n,t)}changeVolume(e,t){const n=i.toNumber(e.VOLUME)+t.target.volume;return this._updateVolume(n,t)}_updateVolume(e,t){if(e=r.clamp(e,0,100),t.target.volume=e,this._syncEffectsForTarget(t.target),this.runtime.runtimeOptions.miscLimits)return Promise.resolve();this.runtime.requestRedraw()}getVolume(e,t){return t.target.volume}soundsMenu(e){return e.SOUND_MENU}beatsMenu(e){return e.BEATS}effectsMenu(e){return e.EFFECT}}e.exports=a},function(e,t,n){const r=n(1),i=n(14),s=n(43);e.exports=class{constructor(e){this.runtime=e,this._answer="",this._timer=new i,this._cachedLoudness=-1,this._cachedLoudnessTimestamp=0,this._questionList=[],this.runtime.on("ANSWER",this._onAnswer.bind(this)),this.runtime.on("PROJECT_START",this._resetAnswer.bind(this)),this.runtime.on("PROJECT_STOP_ALL",this._clearAllQuestions.bind(this)),this.runtime.on("STOP_FOR_TARGET",this._clearTargetQuestions.bind(this)),this.runtime.on("RUNTIME_DISPOSED",this._resetAnswer.bind(this))}getPrimitives(){return{sensing_touchingobject:this.touchingObject,sensing_touchingcolor:this.touchingColor,sensing_coloristouchingcolor:this.colorTouchingColor,sensing_distanceto:this.distanceTo,sensing_timer:this.getTimer,sensing_resettimer:this.resetTimer,sensing_of:this.getAttributeOf,sensing_mousex:this.getMouseX,sensing_mousey:this.getMouseY,sensing_setdragmode:this.setDragMode,sensing_mousedown:this.getMouseDown,sensing_keypressed:this.getKeyPressed,sensing_current:this.current,sensing_dayssince2000:this.daysSince2000,sensing_loudness:this.getLoudness,sensing_loud:this.isLoud,sensing_askandwait:this.askAndWait,sensing_answer:this.getAnswer,sensing_username:this.getUsername,sensing_userid:()=>{}}}getMonitored(){return{sensing_answer:{getId:()=>"answer"},sensing_mousedown:{getId:()=>"mousedown"},sensing_mousex:{getId:()=>"mousex"},sensing_mousey:{getId:()=>"mousey"},sensing_loudness:{getId:()=>"loudness"},sensing_timer:{getId:()=>"timer"},sensing_dayssince2000:{getId:()=>"dayssince2000"},sensing_current:{getId:(e,t)=>s("current",t)}}}_onAnswer(e){this._answer=e;const t=this._questionList.shift();if(t){const[e,n,r,i,s]=t;i&&!s&&this.runtime.emit("SAY",r,"say",""),n(),this._askNextQuestion()}}_resetAnswer(){this._answer=""}_enqueueAsk(e,t,n,r,i){this._questionList.push([e,t,n,r,i])}_askNextQuestion(){if(this._questionList.length>0){const[e,t,n,r,i]=this._questionList[0];r&&!i?(this.runtime.emit("SAY",n,"say",e),this.runtime.emit("QUESTION","")):this.runtime.emit("QUESTION",e)}}_clearAllQuestions(){this._questionList=[],this.runtime.emit("QUESTION",null)}_clearTargetQuestions(e){const t=this._questionList.length>0&&this._questionList[0][2]===e;this._questionList=this._questionList.filter((t=>t[2]!==e)),t&&(this.runtime.emit("SAY",e,"say",""),this._questionList.length>0?this._askNextQuestion():this.runtime.emit("QUESTION",null))}askAndWait(e,t){const n=t.target;return new Promise((t=>{const r=this._questionList.length>0;this._enqueueAsk(String(e.QUESTION),t,n,n.visible,n.isStage),r||this._askNextQuestion()}))}getAnswer(){return this._answer}touchingObject(e,t){return t.target.isTouchingObject(e.TOUCHINGOBJECTMENU)}touchingColor(e,t){const n=r.toRgbColorList(e.COLOR);return t.target.isTouchingColor(n)}colorTouchingColor(e,t){const n=r.toRgbColorList(e.COLOR),i=r.toRgbColorList(e.COLOR2);return t.target.colorIsTouchingColor(i,n)}distanceTo(e,t){if(t.target.isStage)return 1e4;let n=0,i=0;if("_mouse_"===e.DISTANCETOMENU)n=t.ioQuery("mouse","getScratchX"),i=t.ioQuery("mouse","getScratchY");else{e.DISTANCETOMENU=r.toString(e.DISTANCETOMENU);const t=this.runtime.getSpriteTargetByName(e.DISTANCETOMENU);if(!t)return 1e4;n=t.x,i=t.y}const s=t.target.x-n,o=t.target.y-i;return Math.sqrt(s*s+o*o)}setDragMode(e,t){t.target.setDraggable("draggable"===e.DRAG_MODE)}getTimer(e,t){return t.ioQuery("clock","projectTimer")}resetTimer(e,t){t.ioQuery("clock","resetProjectTimer")}getMouseX(e,t){return t.ioQuery("mouse","getScratchX")}getMouseY(e,t){return t.ioQuery("mouse","getScratchY")}getMouseDown(e,t){return t.ioQuery("mouse","getIsDown")}current(e){const t=r.toString(e.CURRENTMENU).toLowerCase(),n=new Date;switch(t){case"year":return n.getFullYear();case"month":return n.getMonth()+1;case"date":return n.getDate();case"dayofweek":return n.getDay()+1;case"hour":return n.getHours();case"minute":return n.getMinutes();case"second":return n.getSeconds()}return 0}getKeyPressed(e,t){return t.ioQuery("keyboard","getKeyIsDown",[e.KEY_OPTION])}daysSince2000(){const e=new Date(2e3,0,1),t=new Date,n=t.getTimezoneOffset()-e.getTimezoneOffset();let r=t.valueOf()-e.valueOf();return r+=60*(t.getTimezoneOffset()-n)*1e3,r/864e5}getLoudness(){if(void 0===this.runtime.audioEngine)return-1;if(null===this.runtime.currentStepTime)return-1;return this._timer.time()-this._cachedLoudnessTimestamp<this.runtime.currentStepTime||(this._cachedLoudnessTimestamp=this._timer.time(),this._cachedLoudness=this.runtime.audioEngine.getLoudness()),this._cachedLoudness}isLoud(){return this.getLoudness()>10}getAttributeOf(e){let t;if("_stage_"===e.OBJECT?t=this.runtime.getTargetForStage():(e.OBJECT=r.toString(e.OBJECT),t=this.runtime.getSpriteTargetByName(e.OBJECT)),!t)return 0;if(t.isStage)switch(e.PROPERTY){case"background #":case"backdrop #":return t.currentCostume+1;case"backdrop name":return t.getCostumes()[t.currentCostume].name;case"volume":return t.volume}else switch(e.PROPERTY){case"x position":return t.x;case"y position":return t.y;case"direction":return t.direction;case"costume #":return t.currentCostume+1;case"costume name":return t.getCostumes()[t.currentCostume].name;case"size":return t.size;case"volume":return t.volume}const n=e.PROPERTY,i=t.lookupVariableByNameAndType(n,"",!0);return i?i.value:0}getUsername(e,t){return t.ioQuery("userData","getUsername")}}},function(e,t,n){const r=n(1);e.exports=class{constructor(e){this.runtime=e}getPrimitives(){return{data_variable:this.getVariable,data_setvariableto:this.setVariableTo,data_changevariableby:this.changeVariableBy,data_hidevariable:this.hideVariable,data_showvariable:this.showVariable,data_listcontents:this.getListContents,data_addtolist:this.addToList,data_deleteoflist:this.deleteOfList,data_deletealloflist:this.deleteAllOfList,data_insertatlist:this.insertAtList,data_replaceitemoflist:this.replaceItemOfList,data_itemoflist:this.getItemOfList,data_itemnumoflist:this.getItemNumOfList,data_lengthoflist:this.lengthOfList,data_listcontainsitem:this.listContainsItem,data_hidelist:this.hideList,data_showlist:this.showList}}getVariable(e,t){return t.target.lookupOrCreateVariable(e.VARIABLE.id,e.VARIABLE.name).value}setVariableTo(e,t){const n=t.target.lookupOrCreateVariable(e.VARIABLE.id,e.VARIABLE.name);n.value=e.VALUE,n.isCloud&&t.ioQuery("cloud","requestUpdateVariable",[n.name,e.VALUE])}changeVariableBy(e,t){const n=t.target.lookupOrCreateVariable(e.VARIABLE.id,e.VARIABLE.name),i=r.toNumber(n.value)+r.toNumber(e.VALUE);n.value=i,n.isCloud&&t.ioQuery("cloud","requestUpdateVariable",[n.name,i])}changeMonitorVisibility(e,t){this.runtime.monitorBlocks.changeBlock({id:e,element:"checkbox",value:t},this.runtime)}showVariable(e){this.changeMonitorVisibility(e.VARIABLE.id,!0)}hideVariable(e){this.changeMonitorVisibility(e.VARIABLE.id,!1)}showList(e){this.changeMonitorVisibility(e.LIST.id,!0)}hideList(e){this.changeMonitorVisibility(e.LIST.id,!1)}getListContents(e,t){const n=t.target.lookupOrCreateList(e.LIST.id,e.LIST.name);if(t.thread.updateMonitor)return n._monitorUpToDate?n.value:(n._monitorUpToDate=!0,n.value.slice());let r=!0;for(let e=0;e<n.value.length;e++){const t=n.value[e];if("string"!=typeof t||1!==t.length){r=!1;break}}return r?n.value.join(""):n.value.join(" ")}addToList(e,t){const n=t.target.lookupOrCreateList(e.LIST.id,e.LIST.name);n.value.push(e.ITEM),n._monitorUpToDate=!1}deleteOfList(e,t){const n=t.target.lookupOrCreateList(e.LIST.id,e.LIST.name),i=r.toListIndex(e.INDEX,n.value.length,!0);i!==r.LIST_INVALID&&(i!==r.LIST_ALL?(n.value.splice(i-1,1),n._monitorUpToDate=!1):n.value=[])}deleteAllOfList(e,t){t.target.lookupOrCreateList(e.LIST.id,e.LIST.name).value=[]}insertAtList(e,t){const n=e.ITEM,i=t.target.lookupOrCreateList(e.LIST.id,e.LIST.name),s=r.toListIndex(e.INDEX,i.value.length+1,!1);s!==r.LIST_INVALID&&(i.value.splice(s-1,0,n),i._monitorUpToDate=!1)}replaceItemOfList(e,t){const n=e.ITEM,i=t.target.lookupOrCreateList(e.LIST.id,e.LIST.name),s=r.toListIndex(e.INDEX,i.value.length,!1);s!==r.LIST_INVALID&&(i.value[s-1]=n,i._monitorUpToDate=!1)}getItemOfList(e,t){const n=t.target.lookupOrCreateList(e.LIST.id,e.LIST.name),i=r.toListIndex(e.INDEX,n.value.length,!1);return i===r.LIST_INVALID?"":n.value[i-1]}getItemNumOfList(e,t){const n=e.ITEM,i=t.target.lookupOrCreateList(e.LIST.id,e.LIST.name);for(let e=0;e<i.value.length;e++)if(0===r.compare(i.value[e],n))return e+1;return 0}lengthOfList(e,t){return t.target.lookupOrCreateList(e.LIST.id,e.LIST.name).value.length}listContainsItem(e,t){const n=e.ITEM,i=t.target.lookupOrCreateList(e.LIST.id,e.LIST.name);if(i.value.indexOf(n)>=0)return!0;for(let e=0;e<i.value.length;e++)if(0===r.compare(i.value[e],n))return!0;return!1}}},function(e,t){e.exports=class{constructor(e){this.runtime=e}getPrimitives(){return{procedures_definition:this.definition,procedures_call:this.call,procedures_return:this.return,argument_reporter_string_number:this.argumentReporterStringNumber,argument_reporter_boolean:this.argumentReporterBoolean}}definition(){}call(e,t){const n=t.stackFrame,r=!!e.mutation.return;if(n.executed){if(r){const e=n.returnValue;return t.thread.peekStackFrame().params=null,delete n.returnValue,delete n.executed,e}return}const i=e.mutation.proccode,s=t.getProcedureParamNamesIdsAndDefaults(i);if(null===s)return r?"":void 0;const[o,a,c]=s;t.initParams();for(let n=0;n<a.length;n++)Object.prototype.hasOwnProperty.call(e,a[n])?t.pushParam(o[n],e[a[n]]):t.pushParam(o[n],c[n]);const l=t.runtime.getAddonBlock(i);if(l){const e=l.callback(t.thread.getAllparams(),t);return 1===t.thread.status&&(n.executed=!0),e}n.executed=!0,r&&(t.thread.peekStackFrame().waitingReporter=!0,n.returnValue=""),t.startProcedure(i)}return(e,t){t.stopThisScript(),t.thread.peekStackFrame()&&(t.stackFrame.returnValue=e.VALUE)}argumentReporterStringNumber(e,t){const n=t.getParam(e.VALUE);return null===n?"last key pressed"===String(e.VALUE).toLowerCase()?t.ioQuery("keyboard","getLastKeyPressed"):0:n}argumentReporterBoolean(e,t){const n=t.getParam(e.VALUE);if(null===n){const n=String(e.VALUE).toLowerCase();return!(!t.target.runtime.compilerOptions.enabled||"is compiled?"!==n)||("is turbowarp?"===n||0)}return n}}},function(e,t){e.exports={setupInitialState:e=>{const t=e.renderer;for(const n of e.targets){const e=n._getRenderedDirectionAndScale();if(t&&n.interpolationData){const r=n.drawableID;t.updateDrawablePosition(r,[n.x,n.y]),t.updateDrawableDirectionScale(r,e.direction,e.scale),t.updateDrawableEffect(r,"ghost",n.effects.ghost)}n.visible&&!n.isStage?n.interpolationData={x:n.x,y:n.y,direction:e.direction,scale:e.scale,costume:n.currentCostume,ghost:n.effects.ghost}:n.interpolationData=null}},interpolate:(e,t)=>{const n=e.renderer;if(n)for(const r of e.targets){const e=r.interpolationData;if(!e)continue;if(!r.visible)continue;const i=r.drawableID,s=r.x-e.x,o=r.y-e.y,a=Math.abs(s),c=Math.abs(o);if(a>.1||c>.1){const r=n._allDrawables[i].getAABB(),l=Math.min(240,Math.max(50,1.5*(r.width+r.height)));if(Math.sqrt(a**2+c**2)<l){const r=e.x+s*t,a=e.y+o*t;n.updateDrawablePosition(i,[r,a])}}const l=r.effects.ghost-e.ghost,u=Math.abs(l);if(u>0&&u<25){const e=r.effects.ghost+l*t;n.updateDrawableEffect(i,"ghost",e)}if(e.costume===r.currentCostume){let{direction:s,scale:o}=r._getRenderedDirectionAndScale(),a=!1;if(s!==e.direction&&(s%90!=0||e.direction%90!=0)){const n=s*Math.PI/180,r=e.direction*Math.PI/180;s=180*Math.atan2(Math.sin(n)*t+Math.sin(r)*(1-t),Math.cos(n)*t+Math.cos(r)*(1-t))/Math.PI,a=!0}const c=e.scale;if((o[0]!==c[0]||o[1]!==c[1])&&Math.sign(o[0])===Math.sign(c[0])&&Math.sign(o[1])===Math.sign(c[1])){const e=o[0]-c[0],n=o[1]-c[1],r=Math.abs(e),i=Math.abs(n);r<100&&i<100&&(o[0]=c[0]+e*t,o[1]=c[1]+n*t,a=!0)}a&&n.updateDrawableDirectionScale(i,s,o)}}}}},function(e,t){const n="function"==typeof requestAnimationFrame?requestAnimationFrame:e=>setTimeout(e,1e3/60),r="function"==typeof requestAnimationFrame?cancelAnimationFrame:clearTimeout,i=e=>{let t;const i=()=>{t=n(i),e()};return t=n(i),{cancel:()=>r(t)}};e.exports=class{constructor(e){this.runtime=e,this.running=!1,this.setFramerate(30),this.setInterpolation(!1),this.stepCallback=this.stepCallback.bind(this),this.interpolationCallback=this.interpolationCallback.bind(this),this._stepInterval=null,this._interpolationAnimation=null,this._stepAnimation=null,this._noopAnimation=null}setFramerate(e){this.framerate=e,this._restart()}setInterpolation(e){this.interpolation=e,this._restart()}stepCallback(){this.runtime._step()}interpolationCallback(){this.runtime._renderInterpolatedPositions()}noopCallback(){}_restart(){this.running&&(this.stop(),this.start())}start(){this.running=!0,0===this.framerate?(this._stepAnimation=i(this.stepCallback),this.runtime.currentStepTime=1e3/60):(this.interpolation?this._interpolationAnimation=i(this.interpolationCallback):this.framerate>=30&&navigator.userAgent.includes("Chrome")&&navigator.userAgent.includes("Windows")&&(this._noopAnimation=i(this.noopCallback)),this._stepInterval=setInterval(this.stepCallback,1e3/this.framerate),this.runtime.currentStepTime=1e3/this.framerate)}stop(){this.running=!1,clearInterval(this._stepInterval),this._interpolationAnimation&&(this._interpolationAnimation.cancel(),this._interpolationAnimation=null),this._stepAnimation&&(this._stepAnimation.cancel(),this._stepAnimation=null),this._noopAnimation&&(this._noopAnimation.cancel(),this._noopAnimation=null)}}},function(e,t,n){const{motionVector:r,scratchAtan2:i}=n(217),s=480,o=10/3;e.exports=class{constructor(){this.frameNumber=0,this.lastAnalyzedFrame=0,this.motionAmount=0,this.motionDirection=0,this.curr=null,this.prev=null,this._arrays=new ArrayBuffer(345600),this._curr=new Uint8ClampedArray(this._arrays,0,172800),this._prev=new Uint8ClampedArray(this._arrays,172800,172800)}reset(){this.frameNumber=0,this.lastAnalyzedFrame=0,this.motionAmount=this.motionDirection=0,this.prev=this.curr=null}addFrame(e){this.frameNumber++,this.prev=this.curr,this.curr=new Uint32Array(e.buffer.slice(0));const t=this._prev;this._prev=this._curr,this._curr=t;for(let e=0;e<this.curr.length;e++)this._curr[e]=255&this.curr[e]}analyzeFrame(){if(!this.curr||!this.prev)return void(this.motionAmount=this.motionDirection=-1);if(this.lastAnalyzedFrame===this.frameNumber)return;this.lastAnalyzedFrame=this.frameNumber;const{_curr:e,_prev:t}=this,n=17;let o=0,a=0,c=0;for(let i=9;i<351;i+=n)for(let l=9;l<471;l+=n){let u=0,h=0,d=0,p=0,f=0,m=(i-8)*s+l-8,g=m+n;const b=(i+8)*s+l+8;for(;m<=b;m+=463,g+=s)for(;m<=g;m+=1){const n=t[m]-e[m],r=e[m-1]-e[m+1],i=e[m-s]-e[m+s];u+=r*r,h+=r*i,d+=i*i,f+=r*n,p+=i*n}const{u:y,v:E}=r(u,h,d,f,p);-17<y&&y<n&&-17<E&&E<n&&(o+=y,a+=E,c++)}o/=c,a/=c,this.motionAmount=Math.round(100*Math.hypot(o,a)),this.motionAmount>10&&(this.motionDirection=i(a,o))}getLocalMotion(e,t){if(this.curr&&this.prev){if(t.motionFrameNumber!==this.frameNumber){const{_prev:n,_curr:a}=this;e.updateCPURenderAttributes();const c=e.getFastBounds(),l=Math.max(Math.floor(c.left+240),1),u=Math.min(Math.floor(c.right+240),479),h=Math.max(Math.floor(180-c.top),1),d=Math.min(Math.floor(180-c.bottom),359);let p=0,f=0,m=0,g=0,b=0,y=0;const E=[0,0,0];for(let t=h;t<d;t++)for(let r=l;r<u;r++)if(E[0]=r-240,E[1]=180-t,e.isTouching(E)){const e=t*s+r,i=n[e]-a[e],o=a[e-1]-a[e+1],c=a[e-s]-a[e+s];p+=o*o,f+=o*c,m+=c*c,b+=o*i,g+=c*i,y++}let{u:T,v:v}=r(p,f,m,b,g),A=0;y&&(A=y,y/=256,T/=y,v/=y),t.motionAmount=Math.round(.02*A*Math.hypot(T,v)),t.motionAmount>100&&(t.motionAmount=100),t.motionAmount>o&&(t.motionDirection=i(v,T)),t.motionFrameNumber=this.frameNumber}}else t.motionAmount=t.motionDirection=-1}}},function(e,t){const n=180/Math.PI,r={u:0,v:0},i=function(e){return(e+270)%360-180};e.exports={motionVector:function(e,t,n,i,s){let o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:r;const a=t*t-e*n;if(a){const r=-(s*t-i*n),c=-(t*i-e*s),l=8/a;o.u=r*l,o.v=c*l}else{const r=(t+e)*(t+e)+(n+t)*(n+t);if(r){const a=-(s+i)*(8/r);o.u=(t+e)*a,o.v=(n+t)*a}else o.u=0,o.v=0}return o},scratchDegrees:i,scratchAtan2:function(e,t){return i(Math.atan2(e,t)*n)}}},function(e,t,n){const r=n(3),i=n(2),s=n(1),o=n(5),a=n(7),c=n(219),l=n(16),u=n(4),h=n(40),d=n(0),p=129,f=130,m=131,g=225,b=32,y=96,E=0,T=128,v=2,A=175,w=163,S=179,k=148,O=1,I=0,N=152,R=157,x=0,M=0,C=1,P=50,L=0,D=32,B={29:"color",30:"ultrasonic",32:"gyro",16:"touch",8:"mediumMotor",7:"largeMotor",126:"none",125:"none"},U={touch:0,color:1,ultrasonic:1,none:0},F={touch:"button",color:"brightness",ultrasonic:"distance"};class j{constructor(e,t,n){this._parent=e,this._index=t,this._type=n,this._direction=1,this._power=50,this._position=0,this._commandID=null,this._coastDelay=1e3}get type(){return this._type}set type(e){this._type=e}get direction(){return this._direction}set direction(e){this._direction=e<0?-1:1}get power(){return this._power}set power(e){this._power=e}get position(){return this._position}set position(e){let t=e[0]+256*e[1]+256*e[2]*256+256*e[3]*256*256;t>2147483647&&(t-=4294967296),this._position=t}turnOnFor(e){if(0===this._power)return;const t=this._portMask(this._index);let n=e,r=this._power*this._direction;const i=P;let s=[];s[0]=A,r<0&&(r*=-1,n*=-1);const o=n<0?256-r:r;n=Math.abs(n);let a=i,c=i,l=n-2*i;l<0&&(a=Math.floor(n/2),l=0,c=n-a);const u=this._runValues(l);s=s.concat([x,t,p,255&o,p,a]).concat(u.concat([p,c,C]));const h=this._parent.generateCommand(T,s);this._parent.send(h),this.coastAfter(e)}coastAfter(e){if(0===this._power)return;const t=a();this._commandID=t,setTimeout((()=>{this._commandID===t&&(this.coast(),this._commandID=null)}),e+this._coastDelay)}coast(){if(0===this._power)return;const e=this._parent.generateCommand(T,[w,x,this._portMask(this._index),M]);this._parent.send(e,!1)}_runValues(e){return e<32767?[f,255&e,e>>8&255]:[m,255&e,e>>8&255,e>>16&255,e>>24&255]}_portMask(e){return Math.pow(2,e)}}class z{constructor(e,t){this._runtime=e,this._runtime.on("PROJECT_STOP_ALL",this.stopAll.bind(this)),this._extensionId=t,this._sensorPorts=[],this._motorPorts=[],this._sensors={distance:0,brightness:0,buttons:[0,0,0,0]},this._motors=[null,null,null,null],this._pollingInterval=150,this._pollingIntervalID=null,this._pollingCounter=0,this._bt=null,this._runtime.registerPeripheralExtension(t,this),this._rateLimiter=new h(40),this.reset=this.reset.bind(this),this._onConnect=this._onConnect.bind(this),this._onMessage=this._onMessage.bind(this),this._pollValues=this._pollValues.bind(this)}get distance(){let e=this._sensors.distance>100?100:this._sensors.distance;return e=e<0?0:e,e=Math.round(100*e)/100,e}get brightness(){return this._sensors.brightness}motor(e){return this._motors[e]}isButtonPressed(e){return 1===this._sensors.buttons[e]}beep(e,t){const n=this.generateCommand(T,[k,O,p,2,f,e,e>>8,f,t,t>>8]);this.send(n)}stopAll(){this.stopAllMotors(),this.stopSound()}stopSound(){const e=this.generateCommand(T,[k,I]);this.send(e,!1)}stopAllMotors(){this._motors.forEach((e=>{e&&e.coast()}))}scan(){this._bt&&this._bt.disconnect(),this._bt=new c(this._runtime,this._extensionId,{majorDeviceClass:8,minorDeviceClass:1},this._onConnect,this.reset,this._onMessage)}connect(e){this._bt&&this._bt.connectPeripheral(e,"1234")}disconnect(){this._bt&&this._bt.disconnect(),this.reset()}reset(){this._sensorPorts=[],this._motorPorts=[],this._sensors={distance:0,brightness:0,buttons:[0,0,0,0]},this._motors=[null,null,null,null],this._pollingIntervalID&&(window.clearInterval(this._pollingIntervalID),this._pollingIntervalID=null)}isConnected(){let e=!1;return this._bt&&(e=this._bt.isConnected()),e}send(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.isConnected()?t&&!this._rateLimiter.okayToSend()?Promise.resolve():this._bt.sendMessage({message:l.uint8ArrayToBase64(e),encoding:"base64"}):Promise.resolve()}generateCommand(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=[];r[2]=0,r[3]=0,r[4]=e,r[5]=255&n,r[6]=n>>8&&255,r=r.concat(t);const i=r.length-2;return r[0]=255&i,r[1]=i>>8&&255,r}_onConnect(){this._pollingIntervalID=window.setInterval(this._pollValues,this._pollingInterval)}_pollValues(){if(!this.isConnected())return void window.clearInterval(this._pollingIntervalID);const e=[];let t=0,n=0;if(this._pollingCounter%20==0)e[0]=N,e[1]=p,e[2]=D,e[3]=y,e[4]=g,e[5]=b,t=33,this._updateDevices=!0;else{let r=0;for(let t=0;t<4;t++)"none"!==this._sensorPorts[t]&&(e[r+0]=R,e[r+1]=x,e[r+2]=t,e[r+3]=L,e[r+4]=U[this._sensorPorts[t]],e[r+5]=g,e[r+6]=4*n,r+=7),n++;for(let t=0;t<4;t++)e[r+0]=S,e[r+1]=x,e[r+2]=t,e[r+3]=g,e[r+4]=4*n,r+=5,n++;t=4*n}const r=this.generateCommand(E,e,t);this.send(r),this._pollingCounter++}_onMessage(e){const t=e.message,n=l.base64ToUint8Array(t);if(n[4]===v)if(this._updateDevices){for(let e=0;e<4;e++){const t=B[n[e+5]];this._sensorPorts[e]=t||"none"}for(let e=0;e<4;e++){const t=B[n[e+21]];this._motorPorts[e]=t||"none"}for(let e=0;e<4;e++){const t=this._motorPorts[e];"none"===t||this._motors[e]||(this._motors[e]=new j(this,e,t)),"none"===t&&this._motors[e]&&(this._motors[e]=null)}this._updateDevices=!1}else if(!this._sensorPorts.includes(void 0)&&!this._motorPorts.includes(void 0)){let e=5;for(let t=0;t<4;t++){const r=new Uint8Array([n[e],n[e+1],n[e+2],n[e+3]]).buffer,i=new DataView(r).getFloat32(0,!0);"button"===F[this._sensorPorts[t]]?this._sensors.buttons[t]=i||0:F[this._sensorPorts[t]]&&(this._sensors[F[this._sensorPorts[t]]]=i||0),e+=4}for(let t=0;t<4;t++){const r=[n[e],n[e+1],n[e+2],n[e+3]];this._motors[t]&&(this._motors[t].position=r),e+=4}}}}const G=["A","B","C","D"],V=["1","2","3","4"];class Y{static get EXTENSION_ID(){return"ev3"}constructor(e){this.runtime=e,this._peripheral=new z(this.runtime,Y.EXTENSION_ID),this._playNoteForPicker=this._playNoteForPicker.bind(this),this.runtime.on("PLAY_NOTE",this._playNoteForPicker)}getInfo(){return{id:Y.EXTENSION_ID,name:"LEGO EV3",blockIconURI:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48dGl0bGU+ZXYzLWJsb2NrLWljb248L3RpdGxlPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS41IDMuNSkiPjxyZWN0IHdpZHRoPSIyOCIgaGVpZ2h0PSIyNS44MSIgeD0iLjUiIHk9IjMuNTkiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzdjODdhNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiByeD0iMSIvPjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIzMiIgeD0iMi41IiB5PSIuNSIgZmlsbD0iI2U2ZTdlOCIgc3Ryb2tlPSIjN2M4N2E1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHJ4PSIxIi8+PHBhdGggZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjN2M4N2E1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Ik0yLjUgMTQuNWgyNHYxM2gtMjR6Ii8+PHBhdGggZmlsbD0iI2U2ZTdlOCIgc3Ryb2tlPSIjN2M4N2E1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Ik0xNC41IDEwLjV2NCIvPjxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxMCIgeD0iNC41IiB5PSIyLjUiIGZpbGw9IiM0MTQ3NTciIHJ4PSIxIi8+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMTMuNSIgeT0iMjAuMTMiIGZpbGw9IiM3Yzg3YTUiIG9wYWNpdHk9Ii41IiByeD0iLjUiLz48cGF0aCBmaWxsPSIjN2M4N2E1IiBkPSJNOS4wNiAyMC4xM2gxLjVhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xLjVhMSAxIDAgMCAxIDAtMk0xOS45MyAyMi4xM2gtMS41MWEuNS41IDAgMCAxLS41LS41di0xYS41LjUgMCAwIDEgLjUtLjVoMS41YTEgMSAwIDAgMSAuMDEgMk04LjIzIDE3LjVINWEuNS41IDAgMCAxLS41LS41di0yLjVoNmwtMS44NSAyLjc4YS41MS41MSAwIDAgMS0uNDIuMjJNMTguMTUgMTguODVsLS41LjVhLjUuNSAwIDAgMC0uMTUuMzZWMjBhLjUuNSAwIDAgMS0uNS41aC0uNWEuNS41IDAgMCAxLS41LS41LjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjUuNS41IDAgMCAxLS41LjVIMTJhLjUuNSAwIDAgMS0uNS0uNXYtLjI5YS41LjUgMCAwIDAtLjE1LS4zNmwtLjUtLjVhLjUxLjUxIDAgMCAxIDAtLjcxbDEuNTEtMS40OWEuNDcuNDcgMCAwIDEgLjM1LS4xNWgzLjU4YS40Ny40NyAwIDAgMSAuMzUuMTVsMS41MSAxLjQ5YS41MS41MSAwIDAgMSAwIC43MU0xMC44NSAyMy40NWwuNS0uNWEuNS41IDAgMCAwIC4xNS0uMzZ2LS4yOWEuNS41IDAgMCAxIC41LS41aC41YS41LjUgMCAwIDEgLjUuNS41LjUgMCAwIDAgLjUuNWgyYS41LjUgMCAwIDAgLjUtLjUuNS41IDAgMCAxIC41LS41aC41YS41LjUgMCAwIDEgLjUuNXYuMjlhLjUuNSAwIDAgMCAuMTUuMzZsLjUuNWEuNS41IDAgMCAxIDAgLjdsLTEuNTEgMS41YS40Ny40NyAwIDAgMS0uMzUuMTVoLTMuNThhLjQ3LjQ3IDAgMCAxLS4zNS0uMTVsLTEuNTEtMS41YS41LjUgMCAwIDEgMC0uNyIgb3BhY2l0eT0iLjUiLz48cGF0aCBmaWxsPSIjZjE1YTI5IiBzdHJva2U9IiNjYzRjMjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTIxLjUgMjcuNWg1djRhMSAxIDAgMCAxLTEgMWgtNHoiLz48L2c+PC9zdmc+",showStatusButton:!0,blocks:[{opcode:"motorTurnClockwise",text:o({id:"ev3.motorTurnClockwise",default:"motor [PORT] turn this way for [TIME] seconds",description:"turn a motor clockwise for some time"}),blockType:i.COMMAND,arguments:{PORT:{type:r.STRING,menu:"motorPorts",defaultValue:0},TIME:{type:r.NUMBER,defaultValue:1}}},{opcode:"motorTurnCounterClockwise",text:o({id:"ev3.motorTurnCounterClockwise",default:"motor [PORT] turn that way for [TIME] seconds",description:"turn a motor counter-clockwise for some time"}),blockType:i.COMMAND,arguments:{PORT:{type:r.STRING,menu:"motorPorts",defaultValue:0},TIME:{type:r.NUMBER,defaultValue:1}}},{opcode:"motorSetPower",text:o({id:"ev3.motorSetPower",default:"motor [PORT] set power [POWER] %",description:"set a motor's power to some value"}),blockType:i.COMMAND,arguments:{PORT:{type:r.STRING,menu:"motorPorts",defaultValue:0},POWER:{type:r.NUMBER,defaultValue:100}}},{opcode:"getMotorPosition",text:o({id:"ev3.getMotorPosition",default:"motor [PORT] position",description:"get the measured degrees a motor has turned"}),blockType:i.REPORTER,arguments:{PORT:{type:r.STRING,menu:"motorPorts",defaultValue:0}}},{opcode:"whenButtonPressed",text:o({id:"ev3.whenButtonPressed",default:"when button [PORT] pressed",description:"when a button connected to a port is pressed"}),blockType:i.HAT,arguments:{PORT:{type:r.STRING,menu:"sensorPorts",defaultValue:0}}},{opcode:"whenDistanceLessThan",text:o({id:"ev3.whenDistanceLessThan",default:"when distance < [DISTANCE]",description:"when the value measured by the distance sensor is less than some value"}),blockType:i.HAT,arguments:{DISTANCE:{type:r.NUMBER,defaultValue:5}}},{opcode:"whenBrightnessLessThan",text:o({id:"ev3.whenBrightnessLessThan",default:"when brightness < [DISTANCE]",description:"when value measured by brightness sensor is less than some value"}),blockType:i.HAT,arguments:{DISTANCE:{type:r.NUMBER,defaultValue:50}}},{opcode:"buttonPressed",text:o({id:"ev3.buttonPressed",default:"button [PORT] pressed?",description:"is a button on some port pressed?"}),blockType:i.BOOLEAN,arguments:{PORT:{type:r.STRING,menu:"sensorPorts",defaultValue:0}}},{opcode:"getDistance",text:o({id:"ev3.getDistance",default:"distance",description:"gets measured distance"}),blockType:i.REPORTER},{opcode:"getBrightness",text:o({id:"ev3.getBrightness",default:"brightness",description:"gets measured brightness"}),blockType:i.REPORTER},{opcode:"beep",text:o({id:"ev3.beepNote",default:"beep note [NOTE] for [TIME] secs",description:"play some note on EV3 for some time"}),blockType:i.COMMAND,arguments:{NOTE:{type:r.NOTE,defaultValue:60},TIME:{type:r.NUMBER,defaultValue:.5}}}],menus:{motorPorts:{acceptReporters:!0,items:this._formatMenu(G)},sensorPorts:{acceptReporters:!0,items:this._formatMenu(V)}}}}motorTurnClockwise(e){const t=s.toNumber(e.PORT);let n=1e3*s.toNumber(e.TIME);return n=u.clamp(n,0,15e3),new Promise((e=>{this._forEachMotor(t,(e=>{const t=this._peripheral.motor(e);t&&(t.direction=1,t.turnOnFor(n))})),setTimeout(e,n)}))}motorTurnCounterClockwise(e){const t=s.toNumber(e.PORT);let n=1e3*s.toNumber(e.TIME);return n=u.clamp(n,0,15e3),new Promise((e=>{this._forEachMotor(t,(e=>{const t=this._peripheral.motor(e);t&&(t.direction=-1,t.turnOnFor(n))})),setTimeout(e,n)}))}motorSetPower(e){const t=s.toNumber(e.PORT),n=u.clamp(s.toNumber(e.POWER),0,100);this._forEachMotor(t,(e=>{const t=this._peripheral.motor(e);t&&(t.power=n)}))}getMotorPosition(e){const t=s.toNumber(e.PORT);if(![0,1,2,3].includes(t))return;const n=this._peripheral.motor(t);let r=0;return n&&(r=u.wrapClamp(n.position,0,360)),r}whenButtonPressed(e){const t=s.toNumber(e.PORT);if([0,1,2,3].includes(t))return this._peripheral.isButtonPressed(t)}whenDistanceLessThan(e){const t=u.clamp(s.toNumber(e.DISTANCE),0,100);return this._peripheral.distance<t}whenBrightnessLessThan(e){const t=u.clamp(s.toNumber(e.DISTANCE),0,100);return this._peripheral.brightness<t}buttonPressed(e){const t=s.toNumber(e.PORT);if([0,1,2,3].includes(t))return this._peripheral.isButtonPressed(t)}getDistance(){return this._peripheral.distance}getBrightness(){return this._peripheral.brightness}_playNoteForPicker(e,t){t===this.getInfo().name&&this.beep({NOTE:e,TIME:.25})}beep(e){const t=u.clamp(s.toNumber(e.NOTE),47,99);let n=1e3*s.toNumber(e.TIME);if(n=u.clamp(n,0,3e3),0!==n)return new Promise((e=>{const r=440*Math.pow(2,(t-69+12)/12);this._peripheral.beep(r,n),setTimeout(e,n)}))}_forEachMotor(e,t){let n;switch(e){case 0:n=[0];break;case 1:n=[1];break;case 2:n=[2];break;case 3:n=[3];break;default:d.warn("Invalid motor ID: ".concat(e)),n=[]}for(const e of n)t(e)}_formatMenu(e){const t=[];for(let n=0;n<e.length;n++){const r={};r.text=e[n],r.value=n.toString(),t.push(r)}return t}}e.exports=Y},function(e,t,n){const r=n(60);e.exports=class extends r{constructor(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,s=arguments.length>5?arguments[5]:void 0;super(),this._socket=e.getScratchLinkSocket("BT"),this._socket.setOnOpen(this.requestPeripheral.bind(this)),this._socket.setOnError(this._handleRequestError.bind(this)),this._socket.setOnClose(this.handleDisconnectError.bind(this)),this._socket.setHandleMessage(this._handleMessage.bind(this)),this._sendMessage=this._socket.sendMessage.bind(this._socket),this._availablePeripherals={},this._connectCallback=r,this._connected=!1,this._characteristicDidChangeCallback=null,this._resetCallback=i,this._discoverTimeoutID=null,this._extensionId=t,this._peripheralOptions=n,this._messageCallback=s,this._runtime=e,this._socket.open()}requestPeripheral(){this._availablePeripherals={},this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID),this._discoverTimeoutID=window.setTimeout(this._handleDiscoverTimeout.bind(this),15e3),this.sendRemoteRequest("discover",this._peripheralOptions).catch((e=>this._handleRequestError(e)))}connectPeripheral(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const n={peripheralId:e};t&&(n.pin=t),this.sendRemoteRequest("connect",n).then((()=>{this._connected=!0,this._runtime.emit(this._runtime.constructor.PERIPHERAL_CONNECTED),this._connectCallback()})).catch((e=>{this._handleRequestError(e)}))}disconnect(){this._connected&&(this._connected=!1),this._socket.isOpen()&&this._socket.close(),this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID),this._runtime.emit(this._runtime.constructor.PERIPHERAL_DISCONNECTED)}isConnected(){return this._connected}sendMessage(e){return this.sendRemoteRequest("send",e).catch((e=>{this.handleDisconnectError(e)}))}didReceiveCall(e,t){switch(e){case"didDiscoverPeripheral":this._availablePeripherals[t.peripheralId]=t,this._runtime.emit(this._runtime.constructor.PERIPHERAL_LIST_UPDATE,this._availablePeripherals),this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID);break;case"userDidPickPeripheral":this._availablePeripherals[t.peripheralId]=t,this._runtime.emit(this._runtime.constructor.USER_PICKED_PERIPHERAL,this._availablePeripherals),this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID);break;case"userDidNotPickPeripheral":this._runtime.emit(this._runtime.constructor.PERIPHERAL_SCAN_TIMEOUT),this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID);break;case"didReceiveMessage":this._messageCallback(t);break;default:return"nah"}}handleDisconnectError(){this._connected&&(this.disconnect(),this._resetCallback&&this._resetCallback(),this._runtime.emit(this._runtime.constructor.PERIPHERAL_CONNECTION_LOST_ERROR,{message:"Scratch lost connection to",extensionId:this._extensionId}))}_handleRequestError(){this._runtime.emit(this._runtime.constructor.PERIPHERAL_REQUEST_ERROR,{message:"Scratch lost connection to",extensionId:this._extensionId})}_handleDiscoverTimeout(){this._discoverTimeoutID&&window.clearTimeout(this._discoverTimeoutID),this._runtime.emit(this._runtime.constructor.PERIPHERAL_SCAN_TIMEOUT)}}},function(e,t,n){const r=n(5),i=n(3),s=n(2),o=n(1),a="SPACE",c="LEFT",l="RIGHT",u="UP",h="DOWN",d={[a]:"space",[c]:"left arrow",[u]:"up arrow",[l]:"right arrow",[h]:"down arrow"};e.exports=class{constructor(e){this.runtime=e,this.frameToggle=!1,setInterval((()=>{this.frameToggle=!this.frameToggle}),this.runtime.currentStepTime),this.keyPressed=this.keyPressed.bind(this),this.runtime.on("KEY_PRESSED",this.keyPressed),this._clearkeyPressBuffer=this._clearkeyPressBuffer.bind(this),this.runtime.on("PROJECT_STOP_ALL",this._clearkeyPressBuffer),this.sequences={},this.keyPressBuffer=[]}get KEY_TEXT_SHORT(){return{[a]:r({id:"makeymakey.spaceKey",default:"space",description:"The space key on a computer keyboard."}),[c]:r({id:"makeymakey.leftArrowShort",default:"left",description:"Short name for the left arrow key on a computer keyboard."}),[u]:r({id:"makeymakey.upArrowShort",default:"up",description:"Short name for the up arrow key on a computer keyboard."}),[l]:r({id:"makeymakey.rightArrowShort",default:"right",description:"Short name for the right arrow key on a computer keyboard."}),[h]:r({id:"makeymakey.downArrowShort",default:"down",description:"Short name for the down arrow key on a computer keyboard."})}}get DEFAULT_SEQUENCES(){return["".concat(c," ").concat(u," ").concat(l),"".concat(l," ").concat(u," ").concat(c),"".concat(c," ").concat(l),"".concat(l," ").concat(c),"".concat(u," ").concat(h),"".concat(h," ").concat(u),"".concat(u," ").concat(l," ").concat(h," ").concat(c),"".concat(u," ").concat(c," ").concat(h," ").concat(l),"".concat(u," ").concat(u," ").concat(h," ").concat(h," ")+"".concat(c," ").concat(l," ").concat(c," ").concat(l)]}getInfo(){return{id:"makeymakey",name:"Makey Makey",blockIconURI:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHN0eWxlPi5zdDJ7ZmlsbDpyZWR9LnN0M3tmaWxsOiNlMGUwZTB9LnN0NHtmaWxsOm5vbmU7c3Ryb2tlOiM2NjY7c3Ryb2tlLXdpZHRoOi41O3N0cm9rZS1taXRlcmxpbWl0OjEwfTwvc3R5bGU+PHBhdGggaWQ9IkxheWVyXzYiIGZpbGw9IiNmZmYiIGQ9Ik0zNSAyOEg1YTEgMSAwIDAgMS0xLTFWMTJjMC0uNi40LTEgMS0xaDMwYy41IDAgMSAuNCAxIDF2MTVjMCAuNS0uNSAxLTEgMSIvPjxnIGlkPSJMYXllcl80Ij48cGF0aCBkPSJNNCAyNWgzMnYyLjdINHptOS0xaC0yLjJhMSAxIDAgMCAxLTEtMXYtOS43YzAtLjYuNC0xIDEtMUgxM2MuNiAwIDEgLjQgMSAxVjIzYzAgLjYtLjUgMS0xIDEiIGNsYXNzPSJzdDIiLz48cGF0aCBkPSJNNi4xIDE5LjN2LTIuMmMwLS41LjQtMSAxLTFoOS43Yy41IDAgMSAuNSAxIDF2Mi4yYzAgLjUtLjUgMS0xIDFINy4xYTEgMSAwIDAgMS0xLTEiIGNsYXNzPSJzdDIiLz48Y2lyY2xlIGN4PSIyMi44IiBjeT0iMTguMiIgcj0iMy40IiBjbGFzcz0ic3QyIi8+PGNpcmNsZSBjeD0iMzAuNiIgY3k9IjE4LjIiIHI9IjMuNCIgY2xhc3M9InN0MiIvPjxwYXRoIGQ9Ik00LjIgMjdoMzEuOXYuN0g0LjJ6IiBjbGFzcz0ic3QyIi8+PC9nPjxnIGlkPSJMYXllcl81Ij48Y2lyY2xlIGN4PSIyMi44IiBjeT0iMTguMiIgcj0iMi4zIiBjbGFzcz0ic3QzIi8+PGNpcmNsZSBjeD0iMzAuNiIgY3k9IjE4LjIiIHI9IjIuMyIgY2xhc3M9InN0MyIvPjxwYXRoIGQ9Ik0xMi41IDIyLjloLTEuMmMtLjMgMC0uNS0uMi0uNS0uNVYxNGMwLS4zLjItLjUuNS0uNWgxLjJjLjMgMCAuNS4yLjUuNXY4LjRjMCAuMy0uMi41LS41LjUiIGNsYXNzPSJzdDMiLz48cGF0aCBkPSJNNy4yIDE4Ljd2LTEuMmMwLS4zLjItLjUuNS0uNWg4LjRjLjMgMCAuNS4yLjUuNXYxLjJjMCAuMy0uMi41LS41LjVINy43Yy0uMyAwLS41LS4yLS41LS41TTQgMjZoMzJ2Mkg0eiIgY2xhc3M9InN0MyIvPjwvZz48ZyBpZD0iTGF5ZXJfMyI+PHBhdGggZD0iTTM1LjIgMjcuOUg0LjhhMSAxIDAgMCAxLTEtMVYxMi4xYzAtLjYuNS0xIDEtMWgzMC41Yy41IDAgMSAuNCAxIDFWMjdhMSAxIDAgMCAxLTEuMS45eiIgY2xhc3M9InN0NCIvPjxwYXRoIGQ9Ik0zNS4yIDI3LjlINC44YTEgMSAwIDAgMS0xLTFWMTIuMWMwLS42LjUtMSAxLTFoMzAuNWMuNSAwIDEgLjQgMSAxVjI3YTEgMSAwIDAgMS0xLjEuOXoiIGNsYXNzPSJzdDQiLz48L2c+PC9zdmc+",blocks:[{opcode:"whenMakeyKeyPressed",text:r({id:"makeymakey.whenKeyPressed",default:"when [KEY] key pressed",description:"when a keyboard key is pressed"}),blockType:s.HAT,arguments:{KEY:{type:i.STRING,menu:"KEY",defaultValue:a}}},{opcode:"whenCodePressed",text:r({id:"makeymakey.whenKeysPressedInOrder",default:"when [SEQUENCE] pressed in order",description:"when a sequence of keyboard keys is pressed in a specific order"}),blockType:s.HAT,arguments:{SEQUENCE:{type:i.STRING,menu:"SEQUENCE",defaultValue:this.DEFAULT_SEQUENCES[0]}}}],menus:{KEY:{acceptReporters:!0,items:[{text:r({id:"makeymakey.spaceKey",default:"space",description:"The space key on a computer keyboard."}),value:a},{text:r({id:"makeymakey.upArrow",default:"up arrow",description:"The up arrow key on a computer keyboard."}),value:u},{text:r({id:"makeymakey.downArrow",default:"down arrow",description:"The down arrow key on a computer keyboard."}),value:h},{text:r({id:"makeymakey.rightArrow",default:"right arrow",description:"The right arrow key on a computer keyboard."}),value:l},{text:r({id:"makeymakey.leftArrow",default:"left arrow",description:"The left arrow key on a computer keyboard."}),value:c},{text:"w",value:"w"},{text:"a",value:"a"},{text:"s",value:"s"},{text:"d",value:"d"},{text:"f",value:"f"},{text:"g",value:"g"}]},SEQUENCE:{acceptReporters:!0,items:this.buildSequenceMenu(this.DEFAULT_SEQUENCES)}}}}buildSequenceMenu(e){return e.map((e=>this.getMenuItemForSequenceString(e)))}getMenuItemForSequenceString(e){let t=e.split(" ");return t=t.map((e=>this.KEY_TEXT_SHORT[e])),{text:t.join(" "),value:e}}whenMakeyKeyPressed(e,t){let n=e.KEY;d[e.KEY]&&(n=d[e.KEY]);return t.ioQuery("keyboard","getKeyIsDown",[n])&&this.frameToggle}keyPressed(e){e=(e=e.split(" ")[0]).toUpperCase(),this.keyPressBuffer.push(e),this.keyPressBuffer.length>100&&this.keyPressBuffer.shift();for(const e in this.sequences){const t=this.sequences[e].array;if(this.keyPressBuffer.length<t.length)continue;let n=!1;const r=this.keyPressBuffer.slice(-1*t.length);for(let e=0;e<t.length;e++)t[e]!==r[e]&&(n=!0);n||(this.sequences[e].completed=!0,setTimeout((()=>{this.sequences[e].completed=!1}),100))}}_clearkeyPressBuffer(){this.keyPressBuffer=[]}addSequence(e,t){Object.prototype.hasOwnProperty.call(this.sequences,e)||(this.sequences[e]={array:t,completed:!1})}whenCodePressed(e){const t=o.toString(e.SEQUENCE).toUpperCase(),n=t.split(" ");if(!(n.length<2))return this.addSequence(t,n),this.sequences[t].completed}}},function(e,t,n){const r=n(3),i=n(2),s=n(1),o=n(5),a=n(23),c=n(30),l=n(16),u=n(4),h=n(40),d=n(0),p="00001623-1212-efde-1623-785feabcd123",f="00001624-1212-efde-1623-785feabcd123",m=100,g=20,b=20,y=21,E=23,T=37,v=38,A=39,w=40,S=1,k=2,O=4,I={A:55,B:56,C:1,D:2},N={A:0,B:1,C:2,D:3};let R=N;const x="any",M="none",C="red",P="blue",L="green",D="yellow",B="white",U="black",F={[M]:255,[C]:9,[P]:3,[L]:5,[D]:7,[B]:10,[U]:0},j={HUB_PROPERTIES:1,HUB_ACTIONS:2,HUB_ALERTS:3,HUB_ATTACHED_IO:4,ERROR:5,PORT_INPUT_FORMAT_SETUP_SINGLE:65,PORT_INPUT_FORMAT_SETUP_COMBINED:66,PORT_INFORMATION:67,PORT_MODEINFORMATION:68,PORT_VALUE:69,PORT_VALUE_COMBINED:70,PORT_INPUT_FORMAT:71,PORT_INPUT_FORMAT_COMBINED:72,OUTPUT:129,PORT_FEEDBACK:130},z=3,G=5,V=1,Y=7,_=11,H=81,W=16,K=1,X=0,Z=127,q=0,Q=1,J=0,$=0,ee=1,te=0,ne=2,re=0,ie=0,se=1,oe=2,ae=3,ce=function(e){const t=new ArrayBuffer(4),n=new DataView(t);return n.setInt32(0,e),[n.getInt8(3),n.getInt8(2),n.getInt8(1),n.getInt8(0)]},le=function(e){const t=Uint8Array.from(e);return new DataView(t.buffer).getInt32(0,!0)};class ue{constructor(e,t){this._parent=e,this._index=t,this._direction=1,this._power=50,this._position=0,this._status=ie,this._pendingDurationTimeoutId=null,this._pendingDurationTimeoutStartTime=null,this._pendingDurationTimeoutDelay=null,this._pendingRotationDestination=null,this._pendingRotationPromise=null,this.turnOff=this.turnOff.bind(this)}get direction(){return this._direction}set direction(e){this._direction=e<0?-1:1}get power(){return this._power}set power(e){this._power=0===e?0:u.scale(e,1,100,10,100)}get position(){return this._position}set position(e){this._position=e}get status(){return this._status}set status(e){this._clearRotationState(),this._clearDurationTimeout(),this._status=e}get pendingDurationTimeoutStartTime(){return this._pendingDurationTimeoutStartTime}get pendingDurationTimeoutDelay(){return this._pendingDurationTimeoutDelay}get pendingRotationDestination(){return this._pendingRotationDestination}get pendingRotationPromise(){return this._pendingRotationPromise}set pendingRotationPromise(e){this._pendingRotationPromise=e}_turnOn(){const e=this._parent.generateOutputCommand(this._index,W,Y,[this.power*this.direction,u.clamp(this.power+10,0,100),q]);this._parent.send(f,e)}turnOnForever(){this.status=se,this._turnOn()}turnOnFor(e){e=Math.max(0,e),this.status=oe,this._turnOn(),this._setNewDurationTimeout(this.turnOff,e)}turnOnForDegrees(e,t){e=Math.max(0,e);const n=this._parent.generateOutputCommand(this._index,W^K,_,[...ce(e),this.power*this.direction*t,u.clamp(this.power+10,0,100),Z,q]);this.status=ae,this._pendingRotationDestination=this.position+e*this.direction*t,this._parent.send(f,n)}turnOff(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];const t=this._parent.generateOutputCommand(this._index,W,V,[X]);this.status=ie,this._parent.send(f,t,e)}_clearDurationTimeout(){null!==this._pendingDurationTimeoutId&&(clearTimeout(this._pendingDurationTimeoutId),this._pendingDurationTimeoutId=null,this._pendingDurationTimeoutStartTime=null,this._pendingDurationTimeoutDelay=null)}_setNewDurationTimeout(e,t){this._clearDurationTimeout();const n=setTimeout((()=>{this._pendingDurationTimeoutId===n&&(this._pendingDurationTimeoutId=null,this._pendingDurationTimeoutStartTime=null,this._pendingDurationTimeoutDelay=null),e()}),t);this._pendingDurationTimeoutId=n,this._pendingDurationTimeoutStartTime=Date.now(),this._pendingDurationTimeoutDelay=t}_clearRotationState(){null!==this._pendingRotationPromise&&(this._pendingRotationPromise(),this._pendingRotationPromise=null),this._pendingRotationDestination=null}}class he{constructor(e,t){this._runtime=e,this._runtime.on("PROJECT_STOP_ALL",this.stopAll.bind(this)),this._extensionId=t,this._ports=[],this._motors=[],this._sensors={tiltX:0,tiltY:0,color:M,previousColor:M},this._colorSamples=[],this._ble=null,this._runtime.registerPeripheralExtension(t,this),this._rateLimiter=new h(g),this._pingDeviceId=null,this.reset=this.reset.bind(this),this._onConnect=this._onConnect.bind(this),this._onMessage=this._onMessage.bind(this),this._pingDevice=this._pingDevice.bind(this)}get tiltX(){return this._sensors.tiltX}get tiltY(){return this._sensors.tiltY}get color(){return this._sensors.color}get previousColor(){return this._sensors.previousColor}boostColorForIndex(e){return Object.keys(F).find((t=>F[t]===e))||M}motor(e){return this._motors[e]}stopAllMotors(){this._motors.forEach((e=>{e&&e.turnOff(!1)}))}setLED(e){const t=[e>>16&255,e>>8&255,255&e],n=this.generateOutputCommand(this._ports.indexOf(E),W^K,H,[ee,...t]);return this.send(f,n)}setLEDMode(){const e=this.generateInputCommand(this._ports.indexOf(E),ee,0,!1);return this.send(f,e)}stopAll(){this.isConnected()&&this.stopAllMotors()}scan(){this._ble&&this._ble.disconnect(),this._ble=new c(this._runtime,this._extensionId,{filters:[{services:[p],manufacturerData:{919:{dataPrefix:[0,64],mask:[0,255]}}}],optionalServices:[]},this._onConnect,this.reset)}connect(e){this._ble&&this._ble.connectPeripheral(e)}disconnect(){this._ble&&this._ble.disconnect(),this.reset()}reset(){this._ports=[],this._motors=[],this._sensors={tiltX:0,tiltY:0,color:M,previousColor:M},this._pingDeviceId&&(window.clearInterval(this._pingDeviceId),this._pingDeviceId=null)}isConnected(){let e=!1;return this._ble&&(e=this._ble.isConnected()),e}send(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.isConnected()?n&&!this._rateLimiter.okayToSend()?Promise.resolve():this._ble.write(p,e,l.uint8ArrayToBase64(t),"base64"):Promise.resolve()}generateOutputCommand(e,t,n,r){const i=[0,j.OUTPUT,e,t,n,...r];return i.unshift(i.length+1),i}generateInputCommand(e,t,n,r){const i=[0,j.PORT_INPUT_FORMAT_SETUP_SINGLE,e,t].concat(ce(n)).concat([r]);return i.unshift(i.length+1),i}_onConnect(){this._ble.startNotifications(p,f,this._onMessage),this._pingDeviceId=window.setInterval(this._pingDevice,5e3),setTimeout((()=>{const e=[0,j.HUB_PROPERTIES,z,G];e.unshift(e.length+1),this.send(f,e,!1)}),500)}_onMessage(e){const t=l.base64ToUint8Array(e),n=t[2],r=t[3];switch(n){case j.HUB_PROPERTIES:switch(t[3]){case z:{const e=le([36,2,0,16]);le(t.slice(5,t.length))<e?(R=I,d.info("Move Hub firmware older than version 1.0.00.0224 detected. Using old port mapping.")):R=N;break}}break;case j.HUB_ATTACHED_IO:{const e=t[4],n=t[5];switch(e){case Q:this._registerSensorOrMotor(r,n);break;case J:this._clearPort(r)}break}case j.PORT_VALUE:{const e=this._ports[r];switch(e){case w:this._sensors.tiltX=t[4],this._sensors.tiltY=t[5];break;case T:this._colorSamples.unshift(t[4]),this._colorSamples.length>5?(this._colorSamples.pop(),this._colorSamples.every(((e,t,n)=>e===n[0]))?(this._sensors.previousColor=this._sensors.color,this._sensors.color=this.boostColorForIndex(this._colorSamples[0])):this._sensors.color=M):this._sensors.color=M;break;case v:case A:this.motor(r).position=le(t.slice(4,8));break;case y:case b:case E:break;default:d.warn("Unknown sensor value! Type: ".concat(e))}break}case j.PORT_FEEDBACK:{const e=t[4],n=this.motor(r);if(n){!(e&S)&&e&(k^O)&&n.status===ae&&(n.status=ie)}break}case j.ERROR:d.warn("Error reported by hub: ".concat(t))}}_pingDevice(){this._ble.read(p,f,!1)}_registerSensorOrMotor(e,t){this._ports[e]=t,t!==A&&t!==v||(this._motors[e]=new ue(this,e));let n=null,r=1;switch(t){case A:case v:n=ne;break;case T:n=te,r=0;break;case E:n=ee,this.setLEDMode(),this.setLED(255);break;case w:n=$;break;default:n=re}const i=this.generateInputCommand(e,n,r,!0);this.send(f,i)}_clearPort(e){const t=this._ports[e];t===w&&(this._sensors.tiltX=this._sensors.tiltY=0),t===T&&(this._sensors.color=M),this._ports[e]="none",this._motors[e]=null}}const de="A",pe="B",fe="C",me="D",ge="AB",be="ABCD",ye="this way",Ee="that way",Te="reverse",ve="up",Ae="down",we="left",Se="right",ke="any";class Oe{static get EXTENSION_ID(){return"boost"}static get TILT_THRESHOLD(){return 15}constructor(e){this.runtime=e,this._peripheral=new he(this.runtime,Oe.EXTENSION_ID)}getInfo(){return{id:Oe.EXTENSION_ID,name:"BOOST",blockIconURI:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACpQTFRF////6+zskJmy3+Hk6N/b+YZO/2Ya6dfO9/j5vsPSlZ62////fIel5ufo1AuBvgAAAAF0Uk5TAEDm2GYAAADNSURBVHja7dfRDoMgDIXhuQmbpbz/645JsspKOiM1u9j5E7gw8YtCSPSCEEII/VlE/aEjskeJ2LEXya6tYDLK79KOfgWm5AhOOU91HgftbJCoN46C+yJvkJ3XEKAJ6ujhBYo4BOaPblcRh0ERvUARh8A5xBhmQ2TW51uffQFDLIXciM0p1meaWCdgXLv3xfZ2eebvYO5VCWGMVVWvbIML89KA9cpmVptig1xqwHplMwso+YJuryy5bIpjZ4HZrZNA19w/OPE3gBBCCB3vCQkmeCf31OYLAAAAAElFTkSuQmCC",showStatusButton:!0,blocks:[{opcode:"motorOnFor",text:o({id:"boost.motorOnFor",default:"turn motor [MOTOR_ID] for [DURATION] seconds",description:"turn a motor on for some time"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:de},DURATION:{type:r.NUMBER,defaultValue:1}}},{opcode:"motorOnForRotation",text:o({id:"boost.motorOnForRotation",default:"turn motor [MOTOR_ID] for [ROTATION] rotations",description:"turn a motor on for rotation"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:de},ROTATION:{type:r.NUMBER,defaultValue:1}}},{opcode:"motorOn",text:o({id:"boost.motorOn",default:"turn motor [MOTOR_ID] on",description:"turn a motor on indefinitely"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:de}}},{opcode:"motorOff",text:o({id:"boost.motorOff",default:"turn motor [MOTOR_ID] off",description:"turn a motor off"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:de}}},{opcode:"setMotorPower",text:o({id:"boost.setMotorPower",default:"set motor [MOTOR_ID] speed to [POWER] %",description:"set the motor's speed without turning it on"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:be},POWER:{type:r.NUMBER,defaultValue:100}}},{opcode:"setMotorDirection",text:o({id:"boost.setMotorDirection",default:"set motor [MOTOR_ID] direction [MOTOR_DIRECTION]",description:"set the motor's turn direction without turning it on"}),blockType:i.COMMAND,arguments:{MOTOR_ID:{type:r.STRING,menu:"MOTOR_ID",defaultValue:de},MOTOR_DIRECTION:{type:r.STRING,menu:"MOTOR_DIRECTION",defaultValue:ye}}},{opcode:"getMotorPosition",text:o({id:"boost.getMotorPosition",default:"motor [MOTOR_REPORTER_ID] position",description:"the position returned by the motor"}),blockType:i.REPORTER,arguments:{MOTOR_REPORTER_ID:{type:r.STRING,menu:"MOTOR_REPORTER_ID",defaultValue:de}}},{opcode:"whenColor",text:o({id:"boost.whenColor",default:"when [COLOR] brick seen",description:"check for when color"}),blockType:i.HAT,arguments:{COLOR:{type:r.STRING,menu:"COLOR",defaultValue:x}}},{opcode:"seeingColor",text:o({id:"boost.seeingColor",default:"seeing [COLOR] brick?",description:"is the color sensor seeing a certain color?"}),blockType:i.BOOLEAN,arguments:{COLOR:{type:r.STRING,menu:"COLOR",defaultValue:x}}},{opcode:"whenTilted",text:o({id:"boost.whenTilted",default:"when tilted [TILT_DIRECTION_ANY]",description:"check when tilted in a certain direction"}),func:"isTilted",blockType:i.HAT,arguments:{TILT_DIRECTION_ANY:{type:r.STRING,menu:"TILT_DIRECTION_ANY",defaultValue:ke}}},{opcode:"getTiltAngle",text:o({id:"boost.getTiltAngle",default:"tilt angle [TILT_DIRECTION]",description:"the angle returned by the tilt sensor"}),blockType:i.REPORTER,arguments:{TILT_DIRECTION:{type:r.STRING,menu:"TILT_DIRECTION",defaultValue:ve}}},{opcode:"setLightHue",text:o({id:"boost.setLightHue",default:"set light color to [HUE]",description:"set the LED color"}),blockType:i.COMMAND,arguments:{HUE:{type:r.NUMBER,defaultValue:50}}}],menus:{MOTOR_ID:{acceptReporters:!0,items:[{text:"A",value:de},{text:"B",value:pe},{text:"C",value:fe},{text:"D",value:me},{text:"AB",value:ge},{text:"ABCD",value:be}]},MOTOR_REPORTER_ID:{acceptReporters:!0,items:[{text:"A",value:de},{text:"B",value:pe},{text:"C",value:fe},{text:"D",value:me}]},MOTOR_DIRECTION:{acceptReporters:!0,items:[{text:o({id:"boost.motorDirection.forward",default:"this way",description:"label for forward element in motor direction menu for LEGO Boost extension"}),value:ye},{text:o({id:"boost.motorDirection.backward",default:"that way",description:"label for backward element in motor direction menu for LEGO Boost extension"}),value:Ee},{text:o({id:"boost.motorDirection.reverse",default:"reverse",description:"label for reverse element in motor direction menu for LEGO Boost extension"}),value:Te}]},TILT_DIRECTION:{acceptReporters:!0,items:[{text:o({id:"boost.tiltDirection.up",default:"up",description:"label for up element in tilt direction menu for LEGO Boost extension"}),value:ve},{text:o({id:"boost.tiltDirection.down",default:"down",description:"label for down element in tilt direction menu for LEGO Boost extension"}),value:Ae},{text:o({id:"boost.tiltDirection.left",default:"left",description:"label for left element in tilt direction menu for LEGO Boost extension"}),value:we},{text:o({id:"boost.tiltDirection.right",default:"right",description:"label for right element in tilt direction menu for LEGO Boost extension"}),value:Se}]},TILT_DIRECTION_ANY:{acceptReporters:!0,items:[{text:o({id:"boost.tiltDirection.up",default:"up"}),value:ve},{text:o({id:"boost.tiltDirection.down",default:"down"}),value:Ae},{text:o({id:"boost.tiltDirection.left",default:"left"}),value:we},{text:o({id:"boost.tiltDirection.right",default:"right"}),value:Se},{text:o({id:"boost.tiltDirection.any",default:"any",description:"label for any element in tilt direction menu for LEGO Boost extension"}),value:ke}]},COLOR:{acceptReporters:!0,items:[{text:o({id:"boost.color.red",default:"red",description:"the color red"}),value:C},{text:o({id:"boost.color.blue",default:"blue",description:"the color blue"}),value:P},{text:o({id:"boost.color.green",default:"green",description:"the color green"}),value:L},{text:o({id:"boost.color.yellow",default:"yellow",description:"the color yellow"}),value:D},{text:o({id:"boost.color.white",default:"white",desription:"the color white"}),value:B},{text:o({id:"boost.color.black",default:"black",description:"the color black"}),value:U},{text:o({id:"boost.color.any",default:"any color",description:"any color"}),value:x}]}}}}motorOnFor(e){let t=1e3*s.toNumber(e.DURATION);return t=u.clamp(t,0,15e3),new Promise((n=>{this._forEachMotor(e.MOTOR_ID,(e=>{const n=this._peripheral.motor(e);n&&n.turnOnFor(t)})),setTimeout(n,t)}))}motorOnForRotation(e){let t=360*s.toNumber(e.ROTATION);const n=Math.sign(t);t=Math.abs(u.clamp(t,-36e4,36e4));const r=[];this._forEachMotor(e.MOTOR_ID,(e=>{r.push(e)}));const i=r.map((e=>{const r=this._peripheral.motor(e);return r?0===r.power?Promise.resolve():new Promise((e=>{r.turnOnForDegrees(t,n),r.pendingRotationPromise=e})):null}));return Promise.all(i).then((()=>{}))}motorOn(e){return this._forEachMotor(e.MOTOR_ID,(e=>{const t=this._peripheral.motor(e);t&&t.turnOnForever()})),new Promise((e=>{window.setTimeout((()=>{e()}),m)}))}motorOff(e){return this._forEachMotor(e.MOTOR_ID,(e=>{const t=this._peripheral.motor(e);t&&t.turnOff()})),new Promise((e=>{window.setTimeout((()=>{e()}),m)}))}setMotorPower(e){return this._forEachMotor(e.MOTOR_ID,(t=>{const n=this._peripheral.motor(t);if(n)switch(n.power=u.clamp(s.toNumber(e.POWER),0,100),n.status){case se:n.turnOnForever();break;case oe:n.turnOnFor(n.pendingDurationTimeoutStartTime+n.pendingDurationTimeoutDelay-Date.now())}})),new Promise((e=>{window.setTimeout((()=>{e()}),m)}))}setMotorDirection(e){return this._forEachMotor(e.MOTOR_ID,(t=>{const n=this._peripheral.motor(t);if(n){switch(e.MOTOR_DIRECTION){case ye:n.direction=1;break;case Ee:n.direction=-1;break;case Te:n.direction=-n.direction;break;default:d.warn("Unknown motor direction in setMotorDirection: ".concat(e.DIRECTION))}if(n)switch(n.status){case se:n.turnOnForever();break;case oe:n.turnOnFor(n.pendingDurationTimeoutStartTime+n.pendingDurationTimeoutDelay-Date.now())}}})),new Promise((e=>{window.setTimeout((()=>{e()}),m)}))}getMotorPosition(e){let t=null;switch(e.MOTOR_REPORTER_ID){case de:t=R.A;break;case pe:t=R.B;break;case fe:t=R.C;break;case me:t=R.D;break;default:return d.warn("Asked for a motor position that doesnt exist!"),!1}if(null!==t&&this._peripheral.motor(t)){let e=this._peripheral.motor(t).position;return t===R.A&&(e*=-1),u.wrapClamp(e,0,360)}return 0}_forEachMotor(e,t){let n;switch(e){case de:n=[R.A];break;case pe:n=[R.B];break;case fe:n=[R.C];break;case me:n=[R.D];break;case ge:n=[R.A,R.B];break;case be:n=[R.A,R.B,R.C,R.D];break;default:d.warn("Invalid motor ID: ".concat(e)),n=[]}for(const e of n)t(e)}whenTilted(e){return this._isTilted(e.TILT_DIRECTION_ANY)}isTilted(e){return this._isTilted(e.TILT_DIRECTION_ANY)}getTiltAngle(e){return this._getTiltAngle(e.TILT_DIRECTION)}_isTilted(e){return e===ke?Math.abs(this._peripheral.tiltX)>=Oe.TILT_THRESHOLD||Math.abs(this._peripheral.tiltY)>=Oe.TILT_THRESHOLD:this._getTiltAngle(e)>=Oe.TILT_THRESHOLD}_getTiltAngle(e){switch(e){case ve:return this._peripheral.tiltY>90?256-this._peripheral.tiltY:-this._peripheral.tiltY;case Ae:return this._peripheral.tiltY>90?this._peripheral.tiltY-256:this._peripheral.tiltY;case we:return this._peripheral.tiltX>90?this._peripheral.tiltX-256:this._peripheral.tiltX;case Se:return this._peripheral.tiltX>90?256-this._peripheral.tiltX:-this._peripheral.tiltX;default:d.warn("Unknown tilt direction in _getTiltAngle: ".concat(e))}}whenColor(e){return e.COLOR===x?this._peripheral.color!==M&&this._peripheral.color!==this._peripheral.previousColor:e.COLOR===this._peripheral.color}seeingColor(e){return e.COLOR===x?this._peripheral.color!==M:e.COLOR===this._peripheral.color}setLightHue(e){let t=s.toNumber(e.HUE);t=u.wrapClamp(t,0,100);const n=360*t/100,r=a.hsvToRgb({h:n,s:1,v:1}),i=a.rgbToDecimal(r);return this._peripheral._led=t,this._peripheral.setLED(i),new Promise((e=>{window.setTimeout((()=>{e()}),m)}))}}e.exports=Oe},function(e,t,n){const r=n(3),i=n(2),s=n(0),o=n(5),a=n(4),c=n(30),l=n(223),u=n(224),h={service:"d91714ef-28b9-4f91-ba16-f0d9a604f112",commandChar:"f4bf14a6-c7d5-4b6d-8aa8-df1a7c83adcb",responseChar:"b41e6675-a329-40e0-aa01-44d2f444babe"},d="Force and Acceleration extension stopped receiving data",p=1,f=2,m=3,g=4,b=5,y=6,E=7;class T{constructor(e,t){this._runtime=e,this._ble=null,this._device=null,this._runtime.registerPeripheralExtension(t,this),this._extensionId=t,this._sensors={force:0,accelerationX:0,accelerationY:0,accelerationZ:0,spinSpeedX:0,spinSpeedY:0,spinSpeedZ:0},this._timeoutID=null,this.reset=this.reset.bind(this),this._onConnect=this._onConnect.bind(this)}scan(){this._ble&&this._ble.disconnect(),this._ble=new c(this._runtime,this._extensionId,{filters:[{namePrefix:"GDX-FOR"}],optionalServices:[h.service]},this._onConnect,this.reset)}connect(e){this._ble&&this._ble.connectPeripheral(e)}disconnect(){this._ble&&this._ble.disconnect(),this.reset()}reset(){this._sensors={force:0,accelerationX:0,accelerationY:0,accelerationZ:0,spinSpeedX:0,spinSpeedY:0,spinSpeedZ:0},this._timeoutID&&(window.clearInterval(this._timeoutID),this._timeoutID=null)}isConnected(){let e=!1;return this._ble&&(e=this._ble.isConnected()),e}_onConnect(){const e=new u(this._ble,h);l.createDevice(e,{open:!0,startMeasurements:!1}).then((e=>{this._device=e,this._device.keepValues=!1,this._device.sensors.forEach((e=>{e.setEnabled(!0)})),this._device.on("measurements-started",(()=>{this._device.sensors.filter((e=>e.enabled)).forEach((e=>{e.on("value-changed",(e=>{this._onSensorValueChanged(e)}))})),this._timeoutID=window.setInterval((()=>this._ble.handleDisconnectError(d)),4500)})),this._device.start(80)}))}_onSensorValueChanged(e){switch(e.number){case p:this._sensors.force=a.clamp(2*e.value,-100,100);break;case f:this._sensors.accelerationX=e.value;break;case m:this._sensors.accelerationY=e.value;break;case g:this._sensors.accelerationZ=e.value;break;case b:this._sensors.spinSpeedX=this._spinSpeedFromGyro(e.value);break;case y:this._sensors.spinSpeedY=this._spinSpeedFromGyro(e.value);break;case E:this._sensors.spinSpeedZ=this._spinSpeedFromGyro(e.value)}window.clearInterval(this._timeoutID),this._timeoutID=window.setInterval((()=>this._ble.handleDisconnectError(d)),4500)}_spinSpeedFromGyro(e){const t=1e3/this._runtime.currentStepTime;return e=a.radToDeg(e),e/=t,e*=-1}getForce(){return this._sensors.force}getTiltFrontBack(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=this.getAccelerationX(),n=this.getAccelerationY(),r=this.getAccelerationZ();let i=n*n+r*r;return i=Math.sqrt(i),i<.35?i=t<0?90:-90:(i=t/i,i=Math.atan(i),i=-1*a.radToDeg(i)),e&&(i*=-1),i}getTiltLeftRight(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=this.getAccelerationX(),n=this.getAccelerationY(),r=this.getAccelerationZ();let i=t*t+r*r;return i=Math.sqrt(i),i<.35?i=n<0?90:-90:(i=n/i,i=Math.atan(i),i=-1*a.radToDeg(i)),e&&(i*=-1),i}getAccelerationX(){return this._sensors.accelerationX}getAccelerationY(){return this._sensors.accelerationY}getAccelerationZ(){return this._sensors.accelerationZ}getSpinSpeedX(){return this._sensors.spinSpeedX}getSpinSpeedY(){return this._sensors.spinSpeedY}getSpinSpeedZ(){return this._sensors.spinSpeedZ}}const v="pushed",A="pulled",w="shaken",S="started falling",k="turned face up",O="turned face down",I="front",N="back",R="left",x="right",M="any",C="x",P="y",L="z";class D{static get EXTENSION_NAME(){return"Force and Acceleration"}static get EXTENSION_ID(){return"gdxfor"}get AXIS_MENU(){return[{text:"x",value:C},{text:"y",value:P},{text:"z",value:L}]}get TILT_MENU(){return[{text:o({id:"gdxfor.tiltDirectionMenu.front",default:"front",description:"label for front element in tilt direction picker for gdxfor extension"}),value:I},{text:o({id:"gdxfor.tiltDirectionMenu.back",default:"back",description:"label for back element in tilt direction picker for gdxfor extension"}),value:N},{text:o({id:"gdxfor.tiltDirectionMenu.left",default:"left",description:"label for left element in tilt direction picker for gdxfor extension"}),value:R},{text:o({id:"gdxfor.tiltDirectionMenu.right",default:"right",description:"label for right element in tilt direction picker for gdxfor extension"}),value:x}]}get TILT_MENU_ANY(){return[...this.TILT_MENU,{text:o({id:"gdxfor.tiltDirectionMenu.any",default:"any",description:"label for any direction element in tilt direction picker for gdxfor extension"}),value:M}]}get PUSH_PULL_MENU(){return[{text:o({id:"gdxfor.pushed",default:"pushed",description:"the force sensor was pushed inward"}),value:v},{text:o({id:"gdxfor.pulled",default:"pulled",description:"the force sensor was pulled outward"}),value:A}]}get GESTURE_MENU(){return[{text:o({id:"gdxfor.shaken",default:"shaken",description:"the sensor was shaken"}),value:w},{text:o({id:"gdxfor.startedFalling",default:"started falling",description:"the sensor started free falling"}),value:S},{text:o({id:"gdxfor.turnedFaceUp",default:"turned face up",description:"the sensor was turned to face up"}),value:k},{text:o({id:"gdxfor.turnedFaceDown",default:"turned face down",description:"the sensor was turned to face down"}),value:O}]}constructor(e){this.runtime=e,this._peripheral=new T(this.runtime,D.EXTENSION_ID)}getInfo(){return{id:D.EXTENSION_ID,name:D.EXTENSION_NAME,blockIconURI:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABGdBTUEAALGPC/xhBQAABVNJREFUeNrtnH9MG1UcwMuIiWMaE7c5ptkUhyQaEzWLi8aE+BfRPxbjEowxipMlisxlTFAY9JAQoNfyG/wRGQyH9uj6AyiFzblRuohzxCmYjZ9tZaNlEGPUaNTEQZ/vW97Zs/bWwsKul3y/ySe8e+8Vvvn0vXv3jvY0NxJlHzuSSnihi9MJC1qdkagJyBlyr64+tUGjVGh5ow2SUTMgUTGBnE6YFxMp1XeSysYuUtnUHddAjpCrdCQqJlAiTypRFfKkEpUWKE1MFbA3On4EwrtbwRJSA2yWxJdAaUIv28fjEkm+KBAFytFziexvGyTv1neREr2JFBtM5J2GbpJL67K6LqLA65FtukAK622y566iWmtgn+kbFBiJV63f09F2PBD8Hbzwp1YvVJXXdj1S1ujYrtV1chxv/APaoM9e8wgKDCe/uS/4WipqrqCj43/bq+IGYQtt/4lC8pt6UaCUfaYL4q5gSfeBPVUjExUVnds4nXEJ+mabv0OBIrlHXeLom4n+N4Vp6Jv7yVkUKHKg5cyyQL3xTNT9t15wQt/9bU4UKPLmsS/Za4Xp6HeAhPHgCGzHEfgv2ce/JWz1/ZsQkqCRiUxCEmmfa7QvvAYFSimqsSxv9HnTQdnpy3cWQJ/CGguuwuEcODLAFhLBIy9Q8EKft1qdKDCcvZYRmMIBLW8MwDWfJiwqK21boR14zTqKAiNR0GQXR2FbhMXjKG2DPriVkyPn2JC4Gv+qCQuog7acjiEUKMcr3RdJicEU3A+XGUwZGhZQhrpi2kb7oMDrcfCjz9kljfE3rc78TGnNZ88ul43QhrezYrkrc7jGHByFUqCOtqHA2FbkUXLowxPksMEEQBnq8I403tJHgeoRWNhnJ64vngegjAJXQk7vV+R35x2EDGoAKEMdCoyV2v73QZwUqEOBsVLgOEGWBhNEeVCGOhS4Eo6cLCc/OzcDUF7d5ZB1lLz+6dfBOz35zQ5chWOV9XaTA/79CblIQYEyI0tWFscL5D2DiZTVmEl5vVU1AhUZWeGyKiJ8TlE9ApWXBahW4JpOw4qGaLLUL1BhWeoXqKAs9QuMLqtOVhYKZMexyEKBcgLZ8YrQNVtWAwoEZvsfhP3uqnDbd6JAr+NRsuhMXBVjPU+hQDwHosCbK3Cm72E4f60Jk/ZdKPBGmOh5AqcwTmEUiALx665RgFzjSiAkxOkFNX3hGnKOH4GiPE4FX/mHHFnOyguUPu6kVC+o56ET0tnCC/OKCYRHhkASaqZUJ1gVEwgP3uGqBAs8/kSND97heMFyyGxer1FnyJ9Tr84vRERs12CgQBSIAlEgBgpcC4HyoMAYdjb90eRxvNCHpqJHKiXth5nLozB1W1raXoBjyj2UBNQTPe4GYUPnzlWBwMtXfBMZGRk7UWLskQSykpOTHxJHIf05IpF4FyqKHltBVlZW1pNXZn3TINHt8bigjnErKgrFOjaqdlDup2xiddskEn0g8dTp0wVM4BbUxoLJSwtjo1SizWZ7AwROuT0DrP0+1LYcCeKq6/Z6z46PT3YzQSms/RY43r1nz+Mg0Ofz/8jaU1FdSGAa4PPP/UIlBdLT0x9jdUmU26Gcl5f3NAikU9nN2nagulCkgBS3x+sESQMDg0VwLOX8+WEDtF0aG7Owuu2oLRSbQUp7e/tLIMk/d/Uvp8vFZWZm7oIFhF4P6mj9NcpidV3dbibwTtQWikQ2JdOGh4drYRpTSBiLIFVyflyH2v4bt4EcoLW19cXJqamTs/65BXrO809MTvc2NjY+B22M9agrcmxg14FpMqSgvNim8yZ2nfcA417Kxnictv8ABNVN4ivCsdYAAAAASUVORK5CYII=",menuIconURI:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAppJREFUeNrtmF1r01AYx6OI4CfQG2+88BMIXnjhy5V3XoikHZq+bCsKszChsS9Lk5WONFnbbSKIm5frSdLVrhWldm4qEzoVX5CpeCFeidsnENGZs/OEhcFaxtYl67noA394esp5+uuTf05ODrNdSGrx2JBcwK4pg1ZTqnGGaTeSMkoLqrYmqjoeuTPrqEhNADSTCkJtAw4pmijlilhUNMe7l8qXsEhqCxk0vGdA0MCDBXy1+tUJkVrPsVV3vwCvVb7gwXs1M67qZkw1zPDUvEkVYDQ7YyYyaE1SSqekseIF4q2//NisSQVgsPje8hSJA/a8fL5xBMYCpY+dB+xDb3B81Pi9dW5CNf4FjA+dB+TKyzhBvBcfR0fteZAnFM2E76jw4K27j82kvLmeQQ5j1NwkIfQax1Xjjz0PchijBpArfwYfmmKmkBPkwn24QWCMGkBQUH+HAQzUq73d2ULdfZJs0WL9EohOwOuPGvj/i4MgyOnsoPJkEtQ07n/4CYeml/DNqQUcmahaPhVHjf0HbIapwCKOE7Bdy1p1rG3WMMmTqu44YFsw6fFy02ZVyrkAGJ6c24CZ3w0MyH1AMWuAbzZgZraD6QigXazljz1DfvzKuNJSddTbecB6oQ+/1L0tVZsOdQ5wDgXxos7uSE8L/V1AG7BduQzo/Hsx1HQAUEZIUHXXThbg1ELIaCNtA6Zz2nH4t24Kzn8YtwOsUKk18K+VVUvV2tKuLl0XkHpAQUVnm7wla+cY2sLD8SmPn5cYWsPri15muciyJEmHqASEAySPj6+STuoMrUG6d9jji3z3+qMXqYFiOX6AdC5sfyb5BIEcpAawh+PPE8hvPcHoCbY/dpL48IcnEDvN0BTQMdYXWSH6yfpu33Cq7jqUK06WtbQJQQAAAABJRU5ErkJggg==",showStatusButton:!0,blocks:[{opcode:"whenGesture",text:o({id:"gdxfor.whenGesture",default:"when [GESTURE]",description:"when the sensor detects a gesture"}),blockType:i.HAT,arguments:{GESTURE:{type:r.STRING,menu:"gestureOptions",defaultValue:w}}},{opcode:"whenForcePushedOrPulled",text:o({id:"gdxfor.whenForcePushedOrPulled",default:"when force sensor [PUSH_PULL]",description:"when the force sensor is pushed or pulled"}),blockType:i.HAT,arguments:{PUSH_PULL:{type:r.STRING,menu:"pushPullOptions",defaultValue:v}}},{opcode:"getForce",text:o({id:"gdxfor.getForce",default:"force",description:"gets force"}),blockType:i.REPORTER},"---",{opcode:"whenTilted",text:o({id:"gdxfor.whenTilted",default:"when tilted [TILT]",description:"when the sensor detects tilt"}),blockType:i.HAT,arguments:{TILT:{type:r.STRING,menu:"tiltAnyOptions",defaultValue:M}}},{opcode:"isTilted",text:o({id:"gdxfor.isTilted",default:"tilted [TILT]?",description:"is the device tilted?"}),blockType:i.BOOLEAN,arguments:{TILT:{type:r.STRING,menu:"tiltAnyOptions",defaultValue:M}}},{opcode:"getTilt",text:o({id:"gdxfor.getTilt",default:"tilt angle [TILT]",description:"gets tilt"}),blockType:i.REPORTER,arguments:{TILT:{type:r.STRING,menu:"tiltOptions",defaultValue:I}}},"---",{opcode:"isFreeFalling",text:o({id:"gdxfor.isFreeFalling",default:"falling?",description:"is the device in free fall?"}),blockType:i.BOOLEAN},{opcode:"getSpinSpeed",text:o({id:"gdxfor.getSpin",default:"spin speed [DIRECTION]",description:"gets spin speed"}),blockType:i.REPORTER,arguments:{DIRECTION:{type:r.STRING,menu:"axisOptions",defaultValue:L}}},{opcode:"getAcceleration",text:o({id:"gdxfor.getAcceleration",default:"acceleration [DIRECTION]",description:"gets acceleration"}),blockType:i.REPORTER,arguments:{DIRECTION:{type:r.STRING,menu:"axisOptions",defaultValue:C}}}],menus:{pushPullOptions:{acceptReporters:!0,items:this.PUSH_PULL_MENU},gestureOptions:{acceptReporters:!0,items:this.GESTURE_MENU},axisOptions:{acceptReporters:!0,items:this.AXIS_MENU},tiltOptions:{acceptReporters:!0,items:this.TILT_MENU},tiltAnyOptions:{acceptReporters:!0,items:this.TILT_MENU_ANY}}}}whenForcePushedOrPulled(e){switch(e.PUSH_PULL){case v:return this._peripheral.getForce()<-5;case A:return this._peripheral.getForce()>5;default:return s.warn("unknown push/pull value in whenForcePushedOrPulled: ".concat(e.PUSH_PULL)),!1}}getForce(){return Math.round(this._peripheral.getForce())}whenGesture(e){switch(e.GESTURE){case w:return this.gestureMagnitude()>30;case S:return this.isFreeFalling();case k:return this._isFacing(k);case O:return this._isFacing(O);default:return s.warn("unknown gesture value in whenGesture: ".concat(e.GESTURE)),!1}}_isFacing(e){void 0===this._facingUp&&(this._facingUp=!1),void 0===this._facingDown&&(this._facingDown=!1);let t=9;switch((this._facingUp||this._facingDown)&&(t-=5),this._facingUp=this._peripheral.getAccelerationZ()>t,this._facingDown=this._peripheral.getAccelerationZ()<-1*t,e){case k:return this._facingUp;case O:return this._facingDown;default:return!1}}whenTilted(e){return this._isTilted(e.TILT)}isTilted(e){return this._isTilted(e.TILT)}getTilt(e){return this._getTiltAngle(e.TILT)}_isTilted(e){return e===M?this._getTiltAngle(I)>15||this._getTiltAngle(N)>15||this._getTiltAngle(R)>15||this._getTiltAngle(x)>15:this._getTiltAngle(e)>15}_getTiltAngle(e){if(!this._peripheral.isConnected())return 0;switch(e){case I:return Math.round(this._peripheral.getTiltFrontBack(!0));case N:return Math.round(this._peripheral.getTiltFrontBack(!1));case R:return Math.round(this._peripheral.getTiltLeftRight(!0));case x:return Math.round(this._peripheral.getTiltLeftRight(!1));default:s.warn("Unknown direction in getTilt: ".concat(e))}}getSpinSpeed(e){switch(e.DIRECTION){case C:return Math.round(this._peripheral.getSpinSpeedX());case P:return Math.round(this._peripheral.getSpinSpeedY());case L:return Math.round(this._peripheral.getSpinSpeedZ());default:s.warn("Unknown direction in getSpinSpeed: ".concat(e.DIRECTION))}}getAcceleration(e){switch(e.DIRECTION){case C:return Math.round(this._peripheral.getAccelerationX());case P:return Math.round(this._peripheral.getAccelerationY());case L:return Math.round(this._peripheral.getAccelerationZ());default:s.warn("Unknown direction in getAcceleration: ".concat(e.DIRECTION))}}magnitude(e,t,n){return Math.sqrt(e*e+t*t+n*n)}accelMagnitude(){return this.magnitude(this._peripheral.getAccelerationX(),this._peripheral.getAccelerationY(),this._peripheral.getAccelerationZ())}gestureMagnitude(){return this.accelMagnitude()-9.8}spinMagnitude(){return this.magnitude(this._peripheral.getSpinSpeedX(),this._peripheral.getSpinSpeedY(),this._peripheral.getSpinSpeedZ())}isFreeFalling(){if(!this._peripheral.isConnected())return!1;return this.accelMagnitude()<.5+.3*this.spinMagnitude()}}e.exports=D},function(e,t,n){e.exports=function(){"use strict";function t(e,t,n,r,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,i)}function r(e){return function(){var n=this,r=arguments;return new Promise((function(i,s){var o=e.apply(n,r);function a(e){t(o,i,s,a,c,"next",e)}function c(e){t(o,i,s,a,c,"throw",e)}a(void 0)}))}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&s(e.prototype,t),n&&s(e,n),e}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}!function(t){var n,r=Object.prototype,i=r.hasOwnProperty,s="function"==typeof Symbol?Symbol:{},o=s.iterator||"@@iterator",a=s.asyncIterator||"@@asyncIterator",c=s.toStringTag||"@@toStringTag",l="object"==typeof e,u=t.regeneratorRuntime;if(u)l&&(e.exports=u);else{(u=t.regeneratorRuntime=l?e.exports:{}).wrap=T;var h="suspendedStart",d="suspendedYield",p="executing",f="completed",m={},g={};g[o]=function(){return this};var b=Object.getPrototypeOf,y=b&&b(b(M([])));y&&y!==r&&i.call(y,o)&&(g=y);var E=S.prototype=A.prototype=Object.create(g);w.prototype=E.constructor=S,S.constructor=w,S[c]=w.displayName="GeneratorFunction",u.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},u.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,c in e||(e[c]="GeneratorFunction")),e.prototype=Object.create(E),e},u.awrap=function(e){return{__await:e}},k(O.prototype),O.prototype[a]=function(){return this},u.AsyncIterator=O,u.async=function(e,t,n,r){var i=new O(T(e,t,n,r));return u.isGeneratorFunction(t)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(E),E[c]="Generator",E[o]=function(){return this},E.toString=function(){return"[object Generator]"},u.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},u.values=M,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(R),!e)for(var t in this)"t"===t.charAt(0)&&i.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=n)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,i){return a.type="throw",a.arg=e,t.next=r,i&&(t.method="next",t.arg=n),!!i}for(var s=this.tryEntries.length-1;s>=0;--s){var o=this.tryEntries[s],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var c=i.call(o,"catchLoc"),l=i.call(o,"finallyLoc");if(c&&l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var s=r;break}}s&&("break"===e||"continue"===e)&&s.tryLoc<=t&&t<=s.finallyLoc&&(s=null);var o=s?s.completion:{};return o.type=e,o.arg=t,s?(this.method="next",this.next=s.finallyLoc,m):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),R(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;R(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:M(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=n),m}}}function T(e,t,n,r){var i=t&&t.prototype instanceof A?t:A,s=Object.create(i.prototype),o=new x(r||[]);return s._invoke=function(e,t,n){var r=h;return function(i,s){if(r===p)throw new Error("Generator is already running");if(r===f){if("throw"===i)throw s;return C()}for(n.method=i,n.arg=s;;){var o=n.delegate;if(o){var a=I(o,n);if(a){if(a===m)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=f,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var c=v(e,t,n);if("normal"===c.type){if(r=n.done?f:d,c.arg===m)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=f,n.method="throw",n.arg=c.arg)}}}(e,n,o),s}function v(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function A(){}function w(){}function S(){}function k(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function O(e){var t;this._invoke=function(n,r){function s(){return new Promise((function(t,s){!function t(n,r,s,o){var a=v(e[n],e,r);if("throw"!==a.type){var c=a.arg,l=c.value;return l&&"object"==typeof l&&i.call(l,"__await")?Promise.resolve(l.__await).then((function(e){t("next",e,s,o)}),(function(e){t("throw",e,s,o)})):Promise.resolve(l).then((function(e){c.value=e,s(c)}),(function(e){return t("throw",e,s,o)}))}o(a.arg)}(n,r,t,s)}))}return t=t?t.then(s,s):s()}}function I(e,t){var r=e.iterator[t.method];if(r===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=n,I(e,t),"throw"===t.method))return m;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var i=v(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,m;var s=i.arg;return s?s.done?(t[e.resultName]=s.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,m):s:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function N(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function R(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function M(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,s=function t(){for(;++r<e.length;)if(i.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=n,t.done=!0,t};return s.next=s}}return{next:C}}function C(){return{value:n,done:!0}}}(function(){return this||"object"==typeof self&&self}()||Function("return this")());var h=new Uint8Array([88,0,0,0]),d=new Uint8Array([26,165,74,6,73,7,72,8,71,9,70,10,69,11,68,12,67,13,66,14,65]),p=new Uint8Array([24,255,1,0,0,0,0,0,0,0,0,0,0,0,0]),f=new Uint8Array([25,255,0,255,255,255,255]),m=new Uint8Array([27,255,0,0,0,0,0,0,0,0,0]),g={HEADER:h,INIT:d,DISCONNECT:new Uint8Array([84]),START_MEASUREMENTS:p,STOP_MEASUREMENTS:f,SET_MEASUREMENT_PERIOD:m,GET_INFO:new Uint8Array([85]),GET_STATUS:new Uint8Array([16]),GET_SENSOR_IDS:new Uint8Array([81]),GET_SENSOR_INFO:new Uint8Array([80,0]),GET_DEFAULT_SENSORS_MASK:new Uint8Array([86])},b=6,y=7,E=10,T=8,v=9,A=11,w=12,S=13,k=14,O=32,I=function(e){return 0!==e},N=function(){function e(){i(this,e),this._listenerMap=new Map}return o(e,[{key:"on",value:function(e,t){this._listenerMap.has(e)||this._listenerMap.set(e,[]),this._listenerMap.get(e).push(t)}},{key:"off",value:function(e,t){var n=this._listenerMap.get(e);if(n&&n.length){var r=n.reduce((function(e,n,r){return"function"==typeof n&&n===t?e=r:e}),-1);if(r>-1)return n.splice(r,1),this._listenerMap.set(e,n),!0}return!1}},{key:"unbind",value:function(){this._listenerMap.clear()}},{key:"emit",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=this._listenerMap.get(e);return!(!i||!i.length||(i.forEach((function(e){e.apply(void 0,n)})),0))}}]),e}(),R=function(){},x=function(){};function M(e){return Array.from(new Uint8Array(e)).map((function(e){return e.toString(16).padStart(2,"0")})).join(" ")}var C,P=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this.type=t.type,this.mode=t.mode,this.minValue=t.minValue,this.maxValue=t.maxValue,this.uncertainty=t.uncertainty,this.minPeriod=t.minPeriod,this.maxPeriod=t.maxPeriod,this.typicalPeriod=t.typicalPeriod,this.granularity=t.granularity},L=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this.number=t.number,this.name=t.name,this.unit=t.unit,this.id=t.id,this.mutalExclusionMask=t.mutalExclusionMask,this.measurementInfo=t.measurementInfo},D=function(){function e(t){var n;return i(this,e),(n=u(this,c(e).call(this))).number=t.number,n.name=t.name,n.unit=t.unit,n.specs=t,n.enabled=!1,n.values=[],n.value=null,n}return a(e,N),o(e,[{key:"clear",value:function(){this.value=null,this.values=[]}},{key:"setValue",value:function(e,t){this.value=e,t&&this.values.push(this.value),this.emit("value-changed",this)}},{key:"setEnabled",value:function(e){this.enabled!==e&&(this.enabled=e,this.emit("state-changed",this))}}]),e}(),B=function(){function e(t){var r;if(i(this,e),r=u(this,c(e).call(this)),"undefined"==typeof TextDecoder){var s=n(21);C=s.TextDecoder}else C=TextDecoder;return r.device=t,r.sensors=[],r.opened=!1,r.rollingCounter=0,r.collecting=!1,r.measurementPeriod=10,r.response=null,r.remainingResponseLength=0,r.defaultSensorsMask=0,r.keepValues=!0,r.minMeasurementPeriod=10,r.serialNumber="",r.orderCode="",r.name="",r}return a(e,N),o(e,[{key:"getBatteryLevel",value:function(){var e=r(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getStatus();case 2:return t=e.sent,e.abrupt("return",t.battery);case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"getChargingState",value:function(){var e=r(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getStatus();case 2:return t=e.sent,e.abrupt("return",t.chargingStatus);case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"open",value:function(){var e=r(regeneratorRuntime.mark((function e(){var t,n=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]&&n[0],e.prev=1,e.next=4,this._connect();case 4:return e.next=6,this._init();case 6:return e.next=8,this._getStatus();case 8:return e.next=10,this._getDeviceInfo();case 10:return e.next=12,this._getDefaultSensorsMask();case 12:return e.next=14,this._getAvailableSensors();case 14:this._onOpened(),t&&this.start(),e.next=21;break;case 18:e.prev=18,e.t0=e.catch(1),console.error(e.t0);case 21:case"end":return e.stop()}}),e,this,[[1,18]])})));return function(){return e.apply(this,arguments)}}()},{key:"close",value:function(){var e=r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._stopMeasurements();case 2:return e.next=4,this._sendCommand(g.DISCONNECT);case 4:return e.abrupt("return",this._disconnect());case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"enableDefaultSensors",value:function(){for(var e=1,t=0;t<32;++t){if((this.defaultSensorsMask&e)===e){var n=this.getSensor(t);n&&n.setEnabled(!0)}e<<=1}}},{key:"start",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.sensors.filter((function(e){return e.enabled}));0===t.length&&(this.enableDefaultSensors(),t=this.sensors.filter((function(e){return e.enabled}))),t.forEach((function(e){return e.clear()})),e&&(this.measurementPeriod=e),this._startMeasurements()}},{key:"stop",value:function(){this._stopMeasurements()}},{key:"getSensor",value:function(e){return this.sensors.find((function(t){return t.number===e}))}},{key:"_connect",value:function(){var e=r(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.device.setup({onClosed:function(){return t._onClosed()},onResponse:function(e){return t._handleResponse(e)}}));case 1:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"_disconnect",value:function(){var e=r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.device.close());case 1:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"_init",value:function(){return this.collecting=!1,this.rollingCounter=255,this.writeQueue=[],this._sendCommand(g.INIT)}},{key:"_handleResponse",value:function(e){if(R("command notified: ".concat(M(e.buffer))),this.remainingResponseLegnth>0){if(this.remainingResponseLegnth-=e.buffer.byteLength,this.response=new DataView((t=this.response.buffer,n=e.buffer.slice(0),(r=new Uint8Array(t.byteLength+n.byteLength)).set(new Uint8Array(t),0),r.set(new Uint8Array(n),t.byteLength),r.buffer)),this.remainingResponseLegnth>0)return}else this.response=e;var t,n,r,i=this.response.getUint8(1);if(i>this.response.buffer.byteLength)this.remainingResponseLegnth=i-this.response.buffer.byteLength;else if(R("handle command: ".concat(M(this.response.buffer))),this.response.getUint8(0)===O)this._processMeasurements(this.response);else{var s=this.response.getUint8(4),o=this.response.getUint8(5),a=new DataView(this.response.buffer,6);this._resolveWriteCommand(s,o,a),this.remainingResponseLegnth=0,this.response=null}}},{key:"_getSensorsWithMask",value:function(e){for(var t=[],n=1,r=0;r<32;++r){if((e&n)===n){var i=this.getSensor(r);i&&(t.push(i),R("available: [".concat(e,"] ").concat(t[t.length-1].number)))}n<<=1}return t}},{key:"_processMeasurements",value:function(e){var t=[],n=!0,r=0,i=0,s=e.getUint8(4);switch(s){case b:t=this._getSensorsWithMask(e.getUint16(5,!0)),r=e.getUint8(7,!0),i=9;break;case y:t=this._getSensorsWithMask(e.getUint32(5,!0)),r=e.getUint8(9,!0),i=11;break;case E:case T:t[0]=this.getSensor(e.getUint8(6)),r=e.getUint8(7,!0),i=8;break;case A:case v:t[0]=this.getSensor(e.getUint8(6)),r=e.getUint8(7,!0),i=8,n=!1;break;case w:case S:case k:R("Purposely Ignoring packet type: ".concat(s));break;default:R("Unknown packet type: ".concat(s))}for(var o=0;o<r;++o)for(var a=0;a<t.length;++a)n?t[a].setValue(e.getFloat32(i,!0),this.keepValues):t[a].setValue(e.getInt32(i,!0),this.keepValues),i+=4}},{key:"_resolveWriteCommand",value:function(e,t,n){var r=this.writeQueue.find((function(n){return n.command===e&&n.rollingCounter===t}));r&&(r.resolve(n),this.writeQueue=this.writeQueue.filter((function(e){return e!==r})))}},{key:"_onOpened",value:function(){R("opened"),this.opened=!0,this.emit("device-opened")}},{key:"_onClosed",value:function(){R("closed"),this.opened=!1,this.emit("device-closed")}},{key:"_decRollingCounter",value:function(){return this.rollingCounter-=1,this.rollingCounter}},{key:"_calculateChecksum",value:function(e){for(var t=e[1],n=-1*e[3],r=0;r<t;++r)n+=e[r],n&=255;return n<0||n>255?(R("Checksum failed!"),0):n}},{key:"_sendCommand",value:function(e){var t=new Uint8Array(g.HEADER.byteLength+e.byteLength);return t.set(new Uint8Array(g.HEADER),0),t.set(new Uint8Array(e),g.HEADER.byteLength),t[1]=t.length,t[2]=this._decRollingCounter(),t[3]=this._calculateChecksum(t),this._queueWriteCommand(t,0,t.length)}},{key:"_writeCommand",value:function(){var e=r(regeneratorRuntime.mark((function e(t,n,r){var i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r>0)){e.next=12;break}return e.prev=1,r>20?(i=t.subarray(n,n+20),r-=20,n+=20):(i=t.subarray(n,n+r),r=0),e.next=5,this.device.writeCommand(i);case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(1),R("Write Failure: ".concat(e.t0));case 10:e.next=0;break;case 12:case"end":return e.stop()}}),e,this,[[1,7]])})));return function(t,n,r){return e.apply(this,arguments)}}()},{key:"_queueWriteCommand",value:function(e,t,n){var r=this;R("command queued: ".concat(M(e)));var i=new Promise((function(t,n){r.writeQueue.push({command:e[4],rollingCounter:e[2],resolve:t,reject:n}),setTimeout((function(){r.writeQueue=r.writeQueue.filter((function(t){return t.command===e[4]&&t.rollingCounter!==e[2]})),n(new Error("write command timed out after 5s. Command: ".concat(e[4].toString(16)," Rolling Counter: ").concat(e[2].toString(16))))}),1e4)}));return this._writeCommand(e,t,n),i}},{key:"_getStatus",value:function(){var e=r(regeneratorRuntime.mark((function e(){var t,n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._sendCommand(g.GET_STATUS);case 2:return t=e.sent,n={masterFirmwareVersion:"".concat(t.getUint8(2),".").concat(t.getUint8(3)),bleFirmwareVersion:"".concat(t.getUint8(6),".").concat(t.getUint8(9)),battery:t.getUint8(10),chargingStatus:"".concat(t.getUint8(11))},e.abrupt("return",n);case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"_getAvailableSensors",value:function(){var e=r(regeneratorRuntime.mark((function e(){var t,n,r=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._sendCommand(g.GET_SENSOR_IDS).then((function(e){r.availableSensors=e.getUint32(0,!0),R("Get Available Sensors Returned ".concat(r.availableSensors))}));case 2:t=1,n=0;case 4:if(!(n<31)){e.next=12;break}if((this.availableSensors&t)!==t){e.next=8;break}return e.next=8,this._getSensorInfo(n);case 8:t<<=1;case 9:++n,e.next=4;break;case 12:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"_getDefaultSensorsMask",value:function(){var e=this;return this._sendCommand(g.GET_DEFAULT_SENSORS_MASK).then((function(t){e.defaultSensorsMask=t.getUint32(0,!0),R("Default Sensors:"),x(e)}))}},{key:"_getDeviceInfo",value:function(){var e=this;return this._sendCommand(g.GET_INFO).then((function(t){var n=new C("utf-8");e.orderCode=n.decode(new Uint8Array(t.buffer,6,16).filter(I)),e.serialNumber=n.decode(new Uint8Array(t.buffer,22,16).filter(I)),e.name=n.decode(new Uint8Array(t.buffer,38,32).filter(I)),R("Device Info:"),x(e)}))}},{key:"_getSensorInfo",value:function(){var e=r(regeneratorRuntime.mark((function e(t){var n,r=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(n=new Uint8Array(g.GET_SENSOR_INFO))[1]=t,e.abrupt("return",this._sendCommand(n).then((function(e){var t=e.getUint32(2,!0);if(t>0){var n=new C("utf-8"),i=new P({type:e.getUint8(6),mode:e.getUint8(7),minValue:e.getFloat64(108,!0),maxValue:e.getFloat64(116,!0),uncertainty:e.getFloat64(100,!0),minPeriod:e.getUint32(124,!0)/1e3,maxPeriod:((e.getUint32(132,!0)<<32)+e.getUint32(128,!0))/1e3,typicalPeriod:e.getUint32(136,!0)/1e3,granularity:e.getUint32(140,!0)/1e3}),s=new L({number:e.getUint8(0),name:n.decode(new Uint8Array(e.buffer,14,60).filter(I)),unit:n.decode(new Uint8Array(e.buffer,74,32).filter(I)),mutalExclusiveMask:e.getUint32(144,!0),measurementInfo:i,sensorId:t}),o=new D(s);R("Get Sensor Info Returned"),x(o),r.sensors.push(o),o.on("state-changed",(function(){R("Sensor Restart: ".concat(o.number)),o.enabled&&(r.measurementPeriod=o.specs.measurementInfo.typicalPeriod,r.sensors.forEach((function(e){if(o.number!==e.number&&e.enabled){var t=1<<e.number;(t&o.specs.mutalExclusiveMask)===t?e.enabled=!1:e.specs.measurementInfo.typicalPeriod>r.measurementPeriod&&(r.measurementPeriod=e.specs.measurementInfo.typicalPeriod)}}))),r._restartMeasurements()}))}})));case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"_restartMeasurements",value:function(){var e=r(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.collecting,!this.collecting){e.next=10;break}return e.prev=2,e.next=5,this._stopMeasurements();case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(2),console.error(e.t0);case 10:if(this.collecting||!t){e.next=19;break}return e.prev=11,e.next=14,this._startMeasurements();case 14:e.next=19;break;case 16:e.prev=16,e.t1=e.catch(11),console.error(e.t1);case 19:case"end":return e.stop()}}),e,this,[[2,7],[11,16]])})));return function(){return e.apply(this,arguments)}}()},{key:"_setMeasurementPeriod",value:function(e){var t=new Uint8Array(g.SET_MEASUREMENT_PERIOD),n=1e3*this.minMeasurementPeriod;return e<n&&(e=n),R("MeasurementPeriod: ".concat(e)),t[3]=255&e,t[4]=e>>8&255,t[5]=e>>16&255,t[6]=e>>24&255,this._sendCommand(t)}},{key:"_getEnabledChannelMask",value:function(){var e=0;return this.sensors.filter((function(e){return e.enabled})).forEach((function(t){e+=1<<t.number})),e}},{key:"_startMeasurements",value:function(){var e=this;return this._setMeasurementPeriod(1e3*this.measurementPeriod).then((function(){var t=e._getEnabledChannelMask();R("ChannelMask: ".concat(t));var n=new Uint8Array(g.START_MEASUREMENTS);return n[3]=255&t,n[4]=t>>8&255,n[5]=t>>16&255,n[6]=t>>24&255,e._sendCommand(n).then((function(t){0===t.getUint8(0)&&(e.collecting=!0,e.emit("measurements-started"))}))}))}},{key:"_stopMeasurements",value:function(){var e=this;return this._sendCommand(g.STOP_MEASUREMENTS).then((function(t){0===t.getUint8(0)&&(e.collecting=!1,e.emit("measurements-stopped"))}))}}]),e}(),U=function(){function e(t){i(this,e),this.webBluetoothNativeDevice=t,this.deviceCommand=null,this.deviceResponse=null}return o(e,[{key:"writeCommand",value:function(){var e=r(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.deviceCommand.writeValue(t));case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"setup",value:function(){var e=r(regeneratorRuntime.mark((function e(t){var n,r,i,s,o=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.onClosed,r=t.onResponse,this.webBluetoothNativeDevice.addEventListener("gattserverdisconnected",n),e.prev=2,e.next=5,this.webBluetoothNativeDevice.gatt.connect();case 5:return i=e.sent,e.next=8,i.getPrimaryService("d91714ef-28b9-4f91-ba16-f0d9a604f112");case 8:return s=e.sent,e.next=11,s.getCharacteristics();case 11:e.sent.forEach((function(e){switch(e.uuid){case"f4bf14a6-c7d5-4b6d-8aa8-df1a7c83adcb":o.deviceCommand=e;break;case"b41e6675-a329-40e0-aa01-44d2f444babe":o.deviceResponse=e,o.deviceResponse.addEventListener("characteristicvaluechanged",(function(e){var t=e.target.value;r(t)})),o.deviceResponse.startNotifications();break;default:R("No case found for ".concat(e.uuid))}})),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(2),console.error(e.t0);case 18:if(this.deviceCommand&&this.deviceResponse){e.next=20;break}throw new Error("Expected command and response characteristics not found.");case 20:case"end":return e.stop()}}),e,this,[[2,15]])})));return function(t){return e.apply(this,arguments)}}()},{key:"close",value:function(){var e=r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.webBluetoothNativeDevice.gatt.disconnect());case 1:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"godirectAdapter",get:function(){return!0}}]),e}(),F={createDevice:function(){var e=r(regeneratorRuntime.mark((function e(t){var n,r,i,s,o,a,c,l=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=l.length>1&&void 0!==l[1]?l[1]:{},r=n.open,i=void 0===r||r,s=n.startMeasurements,o=void 0===s||s,(a=t).godirectAdapter||(a=new U(t)),c=new B(a),!i){e.next=14;break}return e.prev=5,e.next=8,c.open(o);case 8:e.next=14;break;case 10:throw e.prev=10,e.t0=e.catch(5),console.error(e.t0),e.t0;case 14:return e.abrupt("return",c);case 15:case"end":return e.stop()}}),e,this,[[5,10]])})));return function(t){return e.apply(this,arguments)}}(),selectDevice:function(){var e=r(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.bluetooth){e.next=2;break}return e.abrupt("return",Promise.reject(new Error("No Web Bluetooth support.")));case 2:return e.next=4,navigator.bluetooth.requestDevice({filters:[{namePrefix:"GDX"}],optionalServices:["d91714ef-28b9-4f91-ba16-f0d9a604f112"]});case 4:return t=e.sent,e.abrupt("return",F.createDevice(t));case 6:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()};return F}()},function(e,t,n){const r=n(16);e.exports=class{constructor(e,t){let{service:n,commandChar:r,responseChar:i}=t;this.socket=e,this._service=n,this._commandChar=r,this._responseChar=i,this._onResponse=this._onResponse.bind(this),this._deviceOnResponse=null}get godirectAdapter(){return!0}writeCommand(e){const t=r.uint8ArrayToBase64(e);return this.socket.write(this._service,this._commandChar,t,"base64")}setup(e){let{onResponse:t}=e;return this._deviceOnResponse=t,this.socket.startNotifications(this._service,this._responseChar,this._onResponse)}_onResponse(e){const t=r.base64ToUint8Array(e),n=new DataView(t.buffer);return this._deviceOnResponse(n)}}},function(e,t,n){const r=n(5),i=n(2),s=n(3),o=n(1),a="data:image/svg+xml;base64,".concat(btoa('<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path fill="none" stroke="#fff" stroke-width="11.51815371" d="M24.457 7.707a18.41 18.41 0 0 0-.365 2.31c-.02.224 0 .507.06.852.061.405.092.689.092.851 0 .527-.345.79-1.034.79-.446 0-.74-.131-.881-.395-.02-.446-.01-1.054.03-1.824.04-.912.061-1.52.061-1.824-.02 0-.05-.02-.091-.06a98.522 98.522 0 0 0-5.32.364c-.04.264-.04.588 0 .973l.122 1.094c-.081.629-.122 1.56-.122 2.797.061.527.091 2.786.091 6.779v2.219c0 .344.051.587.152.73h1.885c.77-.102 1.155.222 1.155.972 0 .446-.213.76-.638.942-.264.102-.73.122-1.399.061-.405-.04-.881-.05-1.428-.03-.75.101-1.662.182-2.736.243-1.094.06-1.763-.091-2.006-.456-.162-.243-.162-.496 0-.76.283-.446 1.023-.669 2.219-.669.628 0 .942-.172.942-.516 0-.183-.01-.355-.03-.517 0-.507.01-.953.03-1.338.06-1.094.06-2.634 0-4.62-.081-2.878-.05-5.462.091-7.752l-.09-.09c-.63.04-1.805.03-3.527-.031-.081 0-.7.04-1.854.121.283 1.946.446 3.334.486 4.165l-.06.82c-.021.305-.274.457-.76.457-.386 0-.71-.73-.973-2.19-.122-.87-.244-1.752-.365-2.644 0-.142-.071-.385-.213-.73-.122-.364-.39-.97-.39-1.152 0-.641.593-.489 1.363-.61.06 0 .162.01.304.03.142.02.243.03.304.03H17.1a57.098 57.098 0 0 0 5.411-.486c.122-.06.304-.121.547-.182.426-.04.79.06 1.095.304.304.223.405.547.304.972z"/><path fill="none" stroke="#ff4c4c" stroke-width="5.75909785" d="M24.333 7.71q-.244 1.065-.365 2.311-.03.335.06.851.092.608.092.851 0 .79-1.034.79-.669 0-.881-.394-.03-.67.03-1.824.06-1.368.06-1.824-.03 0-.09-.061-2.827.122-5.32.365-.06.395 0 .973l.122 1.094q-.122.942-.122 2.796.091.79.091 6.78v2.218q0 .517.152.73h1.885q1.155-.152 1.155.973 0 .668-.638.942-.396.152-1.399.06-.608-.06-1.428-.03-1.125.152-2.736.243-1.642.092-2.006-.456-.244-.364 0-.76.425-.668 2.219-.668.942 0 .942-.517 0-.274-.03-.517 0-.76.03-1.337.091-1.642 0-4.62-.122-4.317.091-7.752l-.091-.091q-.942.06-3.526-.03-.122 0-1.854.12.425 2.919.486 4.165l-.06.821q-.031.456-.76.456-.578 0-.974-2.189-.182-1.307-.364-2.644 0-.213-.213-.73-.182-.547-.182-.82 0-.76 1.155-.943.09 0 .304.03.212.03.304.03h7.538q2.797-.12 5.411-.485.182-.092.547-.183.639-.06 1.095.304.456.335.304.973z"/><path fill="#fff" d="M24.31 7.714q-.243 1.064-.365 2.31-.03.335.061.852.091.608.091.85 0 .791-1.033.791-.67 0-.882-.395-.03-.669.03-1.824.061-1.368.061-1.824-.03 0-.09-.06-2.828.121-5.32.364-.061.396 0 .973l.121 1.094q-.121.943-.121 2.797.09.79.09 6.779v2.219q0 .517.153.73h1.884q1.156-.153 1.156.972 0 .669-.639.942-.395.152-1.398.061-.608-.06-1.429-.03-1.125.152-2.736.243-1.641.091-2.006-.456-.243-.365 0-.76.426-.669 2.22-.669.941 0 .941-.516 0-.274-.03-.517 0-.76.03-1.338.092-1.641 0-4.62-.121-4.317.092-7.752l-.092-.09q-.942.06-3.526-.031-.121 0-1.854.121.426 2.919.486 4.165l-.06.82q-.03.457-.76.457-.578 0-.973-2.19-.182-1.306-.365-2.644 0-.212-.213-.73-.182-.546-.182-.82 0-.76 1.155-.942.091 0 .304.03t.304.03h7.539q2.796-.121 5.41-.486.183-.091.548-.182.638-.061 1.094.304.456.334.304.972z"/></svg>'));e.exports=class{constructor(e){this.runtime=e}getInfo(){return{id:"tw",name:"TurboWarp",color1:"#ff4c4c",color2:"#e64444",color3:"#c73a3a",docsURI:"https://docs.turbowarp.org/blocks",menuIconURI:a,blockIconURI:a,blocks:[{opcode:"getLastKeyPressed",text:r({id:"tw.blocks.lastKeyPressed",default:"last key pressed",description:"Block that returns the last key that was pressed"}),blockType:i.REPORTER},{opcode:"getButtonIsDown",text:r({id:"tw.blocks.buttonIsDown",default:"[MOUSE_BUTTON] mouse button down?",description:"Block that returns whether a specific mouse button is down"}),blockType:i.BOOLEAN,arguments:{MOUSE_BUTTON:{type:s.NUMBER,menu:"mouseButton",defaultValue:"0"}}}],menus:{mouseButton:{items:[{text:r({id:"tw.blocks.mouseButton.primary",default:"(0) primary",description:"Dropdown item to select primary (usually left) mouse button"}),value:"0"},{text:r({id:"tw.blocks.mouseButton.middle",default:"(1) middle",description:"Dropdown item to select middle mouse button"}),value:"1"},{text:r({id:"tw.blocks.mouseButton.secondary",default:"(2) secondary",description:"Dropdown item to select secondary (usually right) mouse button"}),value:"2"}],acceptReporters:!0}}}}getLastKeyPressed(e,t){return t.ioQuery("keyboard","getLastKeyPressed")}getButtonIsDown(e,t){const n=o.toNumber(e.MOUSE_BUTTON);return t.ioQuery("mouse","getButtonIsDown",[n])}}},function(e,t,n){(function(t){const r=n(227),i=n(230),s=n(72),o=n(231),a=n(232),c=e=>{try{return new URL(e,location.href)}catch(e){return null}},l=e=>new Promise((n=>{const s=[],l=Object.assign({},t.Scratch||{},r);l.extensions={unsandboxed:!0,register:e=>{s.push(e),n(s)}},l.vm=e,l.renderer=e.runtime.renderer,l.canFetch=async t=>{const n=c(t);return!!n&&("blob:"===n.protocol||"data:"===n.protocol||e.securityManager.canFetch(n.href))},l.canOpenWindow=async t=>{const n=c(t);return!!n&&("javascript:"!==n.protocol&&e.securityManager.canOpenWindow(n.href))},l.canRedirect=async t=>{const n=c(t);return!!n&&("javascript:"!==n.protocol&&e.securityManager.canRedirect(n.href))},l.canRecordAudio=async()=>e.securityManager.canRecordAudio(),l.canRecordVideo=async()=>e.securityManager.canRecordVideo(),l.canReadClipboard=async()=>e.securityManager.canReadClipboard(),l.canNotify=async()=>e.securityManager.canNotify(),l.canGeolocate=async()=>e.securityManager.canGeolocate(),l.canEmbed=async t=>{const n=c(t);return!!n&&e.securityManager.canEmbed(n.href)},l.canDownload=async(t,n)=>{const r=c(t);return!!r&&("javascript:"!==r.protocol&&e.securityManager.canDownload(t,n))},l.fetch=async(e,t)=>{const n=e instanceof Request?e.url:e,r=a(e);if(r)return r;if(!await l.canFetch(n))throw new Error("Permission to fetch ".concat(n," rejected."));return fetch(e,t)},l.openWindow=async(e,t)=>{if(!await l.canOpenWindow(e))throw new Error("Permission to open tab ".concat(e," rejected."));const n="noreferrer";return t=t?"".concat(n,",").concat(t):n,window.open(e,"_blank",t)},l.redirect=async e=>{if(!await l.canRedirect(e))throw new Error("Permission to redirect to ".concat(e," rejected."));location.href=e},l.download=async(e,t)=>{if(!await l.canDownload(e,t))throw new Error("Permission to download ".concat(t," rejected."));const n=document.createElement("a");n.href=e,n.download=t,document.body.appendChild(n),n.click(),n.remove()},l.translate=o(e),t.Scratch=l,t.ScratchExtensions=i(l),e.emit("CREATE_UNSANDBOXED_EXTENSION_API",l)})),u=new s(((e,n)=>new Promise(((t,r)=>{l(n).then(t);const i=document.createElement("script");i.onerror=()=>{r(new Error("Error in unsandboxed script ".concat(e,". Check the console for more information.")))},i.src=e,document.body.appendChild(i)})).then((e=>(t.Scratch.extensions.register=()=>{throw new Error("Too late to register new extensions.")},e)))),1);e.exports={setupUnsandboxedExtensionAPI:l,load:(e,t)=>u.do(e,t)}}).call(this,n(8))},function(e,t,n){const r={ArgumentType:n(3),BlockType:n(2),BlockShape:n(228),TargetType:n(39),Cast:n(1),external:n(229)};e.exports=r},function(e,t,n){const r=n(69),i={HEXAGONAL:r.OUTPUT_SHAPE_HEXAGONAL,ROUND:r.OUTPUT_SHAPE_ROUND,SQUARE:r.OUTPUT_SHAPE_SQUARE};e.exports=i},function(e,t){const n=e=>{if(!(e.startsWith("http:")||e.startsWith("https:")||e.startsWith("data:")||e.startsWith("blob:")))throw new Error("Unsupported URL: ".concat(e))},r={importModule:e=>(n(e),import(e)),fetch:async e=>{n(e);const t=await fetch(e);if(!t.ok)throw new Error("HTTP ".concat(t.status," fetching ").concat(e));return t},dataURL:async e=>{const t=await r.fetch(e),n=await t.blob();return new Promise(((e,t)=>{const r=new FileReader;r.onload=()=>e(r.result),r.onerror=()=>t(r.error),r.readAsDataURL(n)}))},blob:async e=>(await r.fetch(e)).blob(),evalAndReturn:async(e,t)=>{const n=await r.fetch(e),i=await n.text(),s="".concat(i,"\nreturn ").concat(t,";");return new Function(s)()}};e.exports=r},function(e,t,n){const r=n(3),i=n(2),{argumentIndexToId:s,generateExtensionId:o}=n(71),a=e=>{if(""===e||" "===e||"w"===e)return{type:i.COMMAND,async:"w"===e};if("r"===e||"R"===e)return{type:i.REPORTER,async:"R"===e};if("b"===e)return{type:i.BOOLEAN,async:!1};if("h"===e)return{type:i.HAT,async:!1};throw new Error("Unknown ScratchX block type: ".concat(e))},c=(e,t)=>{const n={},i="string"==typeof(s=t)||"number"==typeof s||"boolean"==typeof s;var s;if(i&&"b"!==e&&(n.defaultValue=t),"s"===e)n.type=r.STRING,i||(n.defaultValue="");else if("n"===e)n.type=r.NUMBER,i||(n.defaultValue=0);else if("m"===e[0]){n.type=r.STRING;const t=e.split(/\.|:/)[1];n.menu=t}else{if("b"!==e)throw new Error("Unknown ScratchX argument type: ".concat(e));n.type=r.BOOLEAN}return n},l=(e,t,n)=>r=>{const i=[];for(let e=0;e<t;e++)i.push(r[s(e)]);return n?new Promise((t=>{e(...i,t)})):e(...i)},u=new Map;e.exports=e=>({register:(t,n,r)=>{const i=((e,t,n)=>{const r={id:o(e),name:t.displayName||e,blocks:[],color1:"#4a4a5e",color2:"#31323f",color3:"#191a21"},i={getInfo:()=>r,_getStatus:n._getStatus};t.url&&(r.docsURI=t.url);for(const e of t.blocks){if(1===e.length){r.blocks.push("---");continue}const t=e[0],o=e[1],u=e[2],h=e.slice(3);let d="";const p=[],f=o.split(/%([\w.:]+)/g);for(let e=0;e<f.length;e++){const t=f[e];if(e%2==1){c(t);const n=Math.floor(e/2).toString(),r=h[n],i=s(n);p[i]=c(t,r),d+="[".concat(i,"]")}else d+=t}const m=a(t),g={opcode:u,blockType:m.type,text:d,arguments:p};r.blocks.push(g);const b=n[u],y=p.length;i[u]=l(b,y,m.async)}const u=t.menus;if(u){const e={};for(const t of Object.keys(u)||{}){const n={items:u[t]};e[t]=n}r.menus=e}return i})(t,n,r);u.set(t,i),e.extensions.register(i)},getStatus:e=>{const t=u.get(e);return t?t._getStatus():{status:0,msg:"does not exist"}}})},function(e,t,n){const r=n(5);e.exports=e=>{const t=r.namespace(),n=(e,n)=>{if(e&&"object"==typeof e);else{if("string"!=typeof e)throw new Error("unsupported data type in translate()");e={default:e}}return t(e,n)},i=e=>"_".concat(e),s=()=>e?e.getLocale():"undefined"!=typeof navigator?navigator.language:"en";let o={};return n.setup=e=>{e&&(o=e),t.setup({locale:s(),missingTranslation:"ignore",generateId:i,translations:o})},Object.defineProperty(n,"language",{configurable:!0,enumerable:!0,get:()=>s()}),n.setup({}),e&&e.on("LOCALE_CHANGED",(()=>{n.setup(null)})),n}},function(e,t,n){const r=n(16);e.exports=e=>{try{const t=e.match(/^data:([/-\w\d]*);base64,/i);if(t){const n=t[1].toLowerCase(),i=e.substring(t[0].length),s=r.base64ToUint8Array(i);return new Response(s,{headers:{"content-type":n,"content-length":s.byteLength}})}}catch(e){}return null}},function(e,t,n){e.exports=function(){return n(234)('!function(n){var e={};function t(r){if(e[r])return e[r].exports;var a=e[r]={i:r,l:!1,exports:{}};return n[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}t.m=n,t.c=e,t.d=function(n,e,r){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:r})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var a in n)t.d(r,a,function(e){return n[e]}.bind(null,a));return r},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=7)}([function(n,e,t){const r=t(20);r.enable(),n.exports=r("vm")},function(n,e){n.exports={ANGLE:"angle",BOOLEAN:"Boolean",COLOR:"color",NUMBER:"number",STRING:"string",MATRIX:"matrix",NOTE:"note",IMAGE:"image",COSTUME:"costume",SOUND:"sound"}},function(n,e){n.exports={BOOLEAN:"Boolean",BUTTON:"button",LABEL:"label",COMMAND:"command",CONDITIONAL:"conditional",EVENT:"event",HAT:"hat",LOOP:"loop",REPORTER:"reporter",XML:"xml"}},function(n,e){n.exports={isWorker:!0,centralDispatchService:self}},function(n,e){var t="long",r="short",a="narrow",i="numeric",o="2-digit";n.exports={number:{decimal:{style:"decimal"},integer:{style:"decimal",maximumFractionDigits:0},currency:{style:"currency",currency:"USD"},percent:{style:"percent"},default:{style:"decimal"}},date:{short:{month:i,day:i,year:o},medium:{month:r,day:i,year:i},long:{month:t,day:i,year:i},full:{month:t,day:i,year:i,weekday:t},default:{month:r,day:i,year:i}},time:{short:{hour:i,minute:i},medium:{hour:i,minute:i,second:i},long:{hour:i,minute:i,second:i,timeZoneName:r},full:{hour:i,minute:i,second:i,timeZoneName:r},default:{hour:i,minute:i,second:i}},duration:{default:{hours:{minimumIntegerDigits:1,maximumFractionDigits:0},minutes:{minimumIntegerDigits:2,maximumFractionDigits:0},seconds:{minimumIntegerDigits:2,maximumFractionDigits:3}}},parseNumberPattern:function(n){if(n){var e={},t=n.match(/\\b[A-Z]{3}\\b/i),r=n.replace(/[^¤]/g,"").length;if(!r&&t&&(r=1),r?(e.style="currency",e.currencyDisplay=1===r?"symbol":2===r?"code":"name",e.currency=t?t[0].toUpperCase():"USD"):n.indexOf("%")>=0&&(e.style="percent"),!/[@#0]/.test(n))return e.style?e:void 0;if(e.useGrouping=n.indexOf(",")>=0,/E\\+?[@#0]+/i.test(n)||n.indexOf("@")>=0){var a=n.replace(/E\\+?[@#0]+|[^@#0]/gi,"");e.minimumSignificantDigits=Math.min(Math.max(a.replace(/[^@0]/g,"").length,1),21),e.maximumSignificantDigits=Math.min(Math.max(a.length,1),21)}else{for(var i=n.replace(/[^#0.]/g,"").split("."),o=i[0],s=o.length-1;"0"===o[s];)--s;e.minimumIntegerDigits=Math.min(Math.max(o.length-1-s,1),21);var c=i[1]||"";for(s=0;"0"===c[s];)++s;for(e.minimumFractionDigits=Math.min(Math.max(s,0),20);"#"===c[s];)++s;e.maximumFractionDigits=Math.min(Math.max(s,0),20)}return e}},parseDatePattern:function(n){if(n){for(var e={},s=0;s<n.length;){for(var c=n[s],l=1;n[++s]===c;)++l;switch(c){case"G":e.era=5===l?a:4===l?t:r;break;case"y":case"Y":e.year=2===l?o:i;break;case"M":case"L":l=Math.min(Math.max(l-1,0),4),e.month=[i,o,r,t,a][l];break;case"E":case"e":case"c":e.weekday=5===l?a:4===l?t:r;break;case"d":case"D":e.day=2===l?o:i;break;case"h":case"K":e.hour12=!0,e.hour=2===l?o:i;break;case"H":case"k":e.hour12=!1,e.hour=2===l?o:i;break;case"m":e.minute=2===l?o:i;break;case"s":case"S":e.second=2===l?o:i;break;case"z":case"Z":case"v":case"V":e.timeZoneName=1===l?r:t}}return Object.keys(e).length?e:void 0}}}},function(n,e){n.exports=function(n,e){if("string"==typeof n&&e[n])return n;for(var t=[].concat(n||[]),r=0,a=t.length;r<a;++r)for(var i=t[r].split("-");i.length;){var o=i.join("-");if(e[o])return o;i.pop()}}},function(n,e,t){"use strict";var r="zero",a="one",i="two",o="few",s="many",c="other",l=[function(n){return 1===+n?a:c},function(n){var e=+n;return 0<=e&&e<=1?a:c},function(n){return 0===Math.floor(Math.abs(+n))||1===+n?a:c},function(n){var e=+n;return 0===e?r:1===e?a:2===e?i:3<=e%100&&e%100<=10?o:11<=e%100&&e%100<=99?s:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length;return 1===e&&0===t?a:c},function(n){var e=+n;return e%10==1&&e%100!=11?a:2<=e%10&&e%10<=4&&(e%100<12||14<e%100)?o:e%10==0||5<=e%10&&e%10<=9||11<=e%100&&e%100<=14?s:c},function(n){var e=+n;return e%10==1&&e%100!=11&&e%100!=71&&e%100!=91?a:e%10==2&&e%100!=12&&e%100!=72&&e%100!=92?i:(3<=e%10&&e%10<=4||e%10==9)&&(e%100<10||19<e%100)&&(e%100<70||79<e%100)&&(e%100<90||99<e%100)?o:0!==e&&e%1e6==0?s:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length,r=+(n+".").split(".")[1];return 0===t&&e%10==1&&e%100!=11||r%10==1&&r%100!=11?a:0===t&&2<=e%10&&e%10<=4&&(e%100<12||14<e%100)||2<=r%10&&r%10<=4&&(r%100<12||14<r%100)?o:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length;return 1===e&&0===t?a:2<=e&&e<=4&&0===t?o:0!==t?s:c},function(n){var e=+n;return 0===e?r:1===e?a:2===e?i:3===e?o:6===e?s:c},function(n){var e=Math.floor(Math.abs(+n)),t=+(""+n).replace(/^[^.]*.?|0+$/g,"");return 1===+n||0!==t&&(0===e||1===e)?a:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length,r=+(n+".").split(".")[1];return 0===t&&e%100==1||r%100==1?a:0===t&&e%100==2||r%100==2?i:0===t&&3<=e%100&&e%100<=4||3<=r%100&&r%100<=4?o:c},function(n){var e=Math.floor(Math.abs(+n));return 0===e||1===e?a:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length,r=+(n+".").split(".")[1];return 0===t&&(1===e||2===e||3===e)||0===t&&e%10!=4&&e%10!=6&&e%10!=9||0!==t&&r%10!=4&&r%10!=6&&r%10!=9?a:c},function(n){var e=+n;return 1===e?a:2===e?i:3<=e&&e<=6?o:7<=e&&e<=10?s:c},function(n){var e=+n;return 1===e||11===e?a:2===e||12===e?i:3<=e&&e<=10||13<=e&&e<=19?o:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length;return 0===t&&e%10==1?a:0===t&&e%10==2?i:0!==t||e%100!=0&&e%100!=20&&e%100!=40&&e%100!=60&&e%100!=80?0!==t?s:c:o},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length,r=+n;return 1===e&&0===t?a:2===e&&0===t?i:0===t&&(r<0||10<r)&&r%10==0?s:c},function(n){var e=Math.floor(Math.abs(+n)),t=+(""+n).replace(/^[^.]*.?|0+$/g,"");return 0===t&&e%10==1&&e%100!=11||0!==t?a:c},function(n){var e=+n;return 1===e?a:2===e?i:c},function(n){var e=+n;return 0===e?r:1===e?a:c},function(n){var e=Math.floor(Math.abs(+n)),t=+n;return 0===t?r:0!==e&&1!==e||0===t?c:a},function(n){var e=+(n+".").split(".")[1],t=+n;return t%10==1&&(t%100<11||19<t%100)?a:2<=t%10&&t%10<=9&&(t%100<11||19<t%100)?o:0!==e?s:c},function(n){var e=(n+".").split(".")[1].length,t=+(n+".").split(".")[1],i=+n;return i%10==0||11<=i%100&&i%100<=19||2===e&&11<=t%100&&t%100<=19?r:i%10==1&&i%100!=11||2===e&&t%10==1&&t%100!=11||2!==e&&t%10==1?a:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length,r=+(n+".").split(".")[1];return 0===t&&e%10==1&&e%100!=11||r%10==1&&r%100!=11?a:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length,r=+n;return 1===e&&0===t?a:0!==t||0===r||1!==r&&1<=r%100&&r%100<=19?o:c},function(n){var e=+n;return 1===e?a:0===e||2<=e%100&&e%100<=10?o:11<=e%100&&e%100<=19?s:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length;return 1===e&&0===t?a:0===t&&2<=e%10&&e%10<=4&&(e%100<12||14<e%100)?o:0===t&&1!==e&&0<=e%10&&e%10<=1||0===t&&5<=e%10&&e%10<=9||0===t&&12<=e%100&&e%100<=14?s:c},function(n){var e=Math.floor(Math.abs(+n));return 0<=e&&e<=1?a:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length;return 0===t&&e%10==1&&e%100!=11?a:0===t&&2<=e%10&&e%10<=4&&(e%100<12||14<e%100)?o:0===t&&e%10==0||0===t&&5<=e%10&&e%10<=9||0===t&&11<=e%100&&e%100<=14?s:c},function(n){var e=+n;return 0===Math.floor(Math.abs(+n))||1===e?a:2<=e&&e<=10?o:c},function(n){var e=Math.floor(Math.abs(+n)),t=+(n+".").split(".")[1],r=+n;return 0===r||1===r||0===e&&1===t?a:c},function(n){var e=Math.floor(Math.abs(+n)),t=(n+".").split(".")[1].length;return 0===t&&e%100==1?a:0===t&&e%100==2?i:0===t&&3<=e%100&&e%100<=4||0!==t?o:c},function(n){var e=+n;return 0<=e&&e<=1||11<=e&&e<=99?a:c},function(n){var e=+n;return 1===e||5===e||7===e||8===e||9===e||10===e?a:2===e||3===e?i:4===e?o:6===e?s:c},function(n){var e=Math.floor(Math.abs(+n));return e%10==1||e%10==2||e%10==5||e%10==7||e%10==8||e%100==20||e%100==50||e%100==70||e%100==80?a:e%10==3||e%10==4||e%1e3==100||e%1e3==200||e%1e3==300||e%1e3==400||e%1e3==500||e%1e3==600||e%1e3==700||e%1e3==800||e%1e3==900?o:0===e||e%10==6||e%100==40||e%100==60||e%100==90?s:c},function(n){var e=+n;return e%10!=2&&e%10!=3||e%100==12||e%100==13?c:o},function(n){var e=+n;return 1===e||3===e?a:2===e?i:4===e?o:c},function(n){var e=+n;return 0===e||7===e||8===e||9===e?r:1===e?a:2===e?i:3===e||4===e?o:5===e||6===e?s:c},function(n){var e=+n;return e%10==1&&e%100!=11?a:e%10==2&&e%100!=12?i:e%10==3&&e%100!=13?o:c},function(n){var e=+n;return 1===e||11===e?a:2===e||12===e?i:3===e||13===e?o:c},function(n){var e=+n;return 1===e?a:2===e||3===e?i:4===e?o:6===e?s:c},function(n){var e=+n;return 1===e||5===e?a:c},function(n){var e=+n;return 11===e||8===e||80===e||800===e?s:c},function(n){var e=Math.floor(Math.abs(+n));return 1===e?a:0===e||2<=e%100&&e%100<=20||e%100==40||e%100==60||e%100==80?s:c},function(n){var e=+n;return e%10==6||e%10==9||e%10==0&&0!==e?s:c},function(n){var e=Math.floor(Math.abs(+n));return e%10==1&&e%100!=11?a:e%10==2&&e%100!=12?i:e%10!=7&&e%10!=8||e%100==17||e%100==18?c:s},function(n){var e=+n;return 1===e?a:2===e||3===e?i:4===e?o:c},function(n){var e=+n;return 1<=e&&e<=4?a:c},function(n){var e=+n;return 1===e||5===e||7<=e&&e<=9?a:2===e||3===e?i:4===e?o:6===e?s:c},function(n){var e=+n;return 1===e?a:e%10==4&&e%100!=14?s:c},function(n){var e=+n;return e%10!=1&&e%10!=2||e%100==11||e%100==12?c:a},function(n){var e=+n;return e%10==6||e%10==9||10===e?o:c},function(n){var e=+n;return e%10==3&&e%100!=13?o:c}];n.exports={af:{cardinal:l[0]},ak:{cardinal:l[1]},am:{cardinal:l[2]},ar:{cardinal:l[3]},ars:{cardinal:l[3]},as:{cardinal:l[2],ordinal:l[34]},asa:{cardinal:l[0]},ast:{cardinal:l[4]},az:{cardinal:l[0],ordinal:l[35]},be:{cardinal:l[5],ordinal:l[36]},bem:{cardinal:l[0]},bez:{cardinal:l[0]},bg:{cardinal:l[0]},bh:{cardinal:l[1]},bn:{cardinal:l[2],ordinal:l[34]},br:{cardinal:l[6]},brx:{cardinal:l[0]},bs:{cardinal:l[7]},ca:{cardinal:l[4],ordinal:l[37]},ce:{cardinal:l[0]},cgg:{cardinal:l[0]},chr:{cardinal:l[0]},ckb:{cardinal:l[0]},cs:{cardinal:l[8]},cy:{cardinal:l[9],ordinal:l[38]},da:{cardinal:l[10]},de:{cardinal:l[4]},dsb:{cardinal:l[11]},dv:{cardinal:l[0]},ee:{cardinal:l[0]},el:{cardinal:l[0]},en:{cardinal:l[4],ordinal:l[39]},eo:{cardinal:l[0]},es:{cardinal:l[0]},et:{cardinal:l[4]},eu:{cardinal:l[0]},fa:{cardinal:l[2]},ff:{cardinal:l[12]},fi:{cardinal:l[4]},fil:{cardinal:l[13],ordinal:l[0]},fo:{cardinal:l[0]},fr:{cardinal:l[12],ordinal:l[0]},fur:{cardinal:l[0]},fy:{cardinal:l[4]},ga:{cardinal:l[14],ordinal:l[0]},gd:{cardinal:l[15],ordinal:l[40]},gl:{cardinal:l[4]},gsw:{cardinal:l[0]},gu:{cardinal:l[2],ordinal:l[41]},guw:{cardinal:l[1]},gv:{cardinal:l[16]},ha:{cardinal:l[0]},haw:{cardinal:l[0]},he:{cardinal:l[17]},hi:{cardinal:l[2],ordinal:l[41]},hr:{cardinal:l[7]},hsb:{cardinal:l[11]},hu:{cardinal:l[0],ordinal:l[42]},hy:{cardinal:l[12],ordinal:l[0]},ia:{cardinal:l[4]},io:{cardinal:l[4]},is:{cardinal:l[18]},it:{cardinal:l[4],ordinal:l[43]},iu:{cardinal:l[19]},iw:{cardinal:l[17]},jgo:{cardinal:l[0]},ji:{cardinal:l[4]},jmc:{cardinal:l[0]},ka:{cardinal:l[0],ordinal:l[44]},kab:{cardinal:l[12]},kaj:{cardinal:l[0]},kcg:{cardinal:l[0]},kk:{cardinal:l[0],ordinal:l[45]},kkj:{cardinal:l[0]},kl:{cardinal:l[0]},kn:{cardinal:l[2]},ks:{cardinal:l[0]},ksb:{cardinal:l[0]},ksh:{cardinal:l[20]},ku:{cardinal:l[0]},kw:{cardinal:l[19]},ky:{cardinal:l[0]},lag:{cardinal:l[21]},lb:{cardinal:l[0]},lg:{cardinal:l[0]},ln:{cardinal:l[1]},lt:{cardinal:l[22]},lv:{cardinal:l[23]},mas:{cardinal:l[0]},mg:{cardinal:l[1]},mgo:{cardinal:l[0]},mk:{cardinal:l[24],ordinal:l[46]},ml:{cardinal:l[0]},mn:{cardinal:l[0]},mo:{cardinal:l[25],ordinal:l[0]},mr:{cardinal:l[2],ordinal:l[47]},mt:{cardinal:l[26]},nah:{cardinal:l[0]},naq:{cardinal:l[19]},nb:{cardinal:l[0]},nd:{cardinal:l[0]},ne:{cardinal:l[0],ordinal:l[48]},nl:{cardinal:l[4]},nn:{cardinal:l[0]},nnh:{cardinal:l[0]},no:{cardinal:l[0]},nr:{cardinal:l[0]},nso:{cardinal:l[1]},ny:{cardinal:l[0]},nyn:{cardinal:l[0]},om:{cardinal:l[0]},or:{cardinal:l[0],ordinal:l[49]},os:{cardinal:l[0]},pa:{cardinal:l[1]},pap:{cardinal:l[0]},pl:{cardinal:l[27]},prg:{cardinal:l[23]},ps:{cardinal:l[0]},pt:{cardinal:l[28]},"pt-PT":{cardinal:l[4]},rm:{cardinal:l[0]},ro:{cardinal:l[25],ordinal:l[0]},rof:{cardinal:l[0]},ru:{cardinal:l[29]},rwk:{cardinal:l[0]},saq:{cardinal:l[0]},sc:{cardinal:l[4],ordinal:l[43]},scn:{cardinal:l[4],ordinal:l[43]},sd:{cardinal:l[0]},sdh:{cardinal:l[0]},se:{cardinal:l[19]},seh:{cardinal:l[0]},sh:{cardinal:l[7]},shi:{cardinal:l[30]},si:{cardinal:l[31]},sk:{cardinal:l[8]},sl:{cardinal:l[32]},sma:{cardinal:l[19]},smi:{cardinal:l[19]},smj:{cardinal:l[19]},smn:{cardinal:l[19]},sms:{cardinal:l[19]},sn:{cardinal:l[0]},so:{cardinal:l[0]},sq:{cardinal:l[0],ordinal:l[50]},sr:{cardinal:l[7]},ss:{cardinal:l[0]},ssy:{cardinal:l[0]},st:{cardinal:l[0]},sv:{cardinal:l[4],ordinal:l[51]},sw:{cardinal:l[4]},syr:{cardinal:l[0]},ta:{cardinal:l[0]},te:{cardinal:l[0]},teo:{cardinal:l[0]},ti:{cardinal:l[1]},tig:{cardinal:l[0]},tk:{cardinal:l[0],ordinal:l[52]},tl:{cardinal:l[13],ordinal:l[0]},tn:{cardinal:l[0]},tr:{cardinal:l[0]},ts:{cardinal:l[0]},tzm:{cardinal:l[33]},ug:{cardinal:l[0]},uk:{cardinal:l[29],ordinal:l[53]},ur:{cardinal:l[4]},uz:{cardinal:l[0]},ve:{cardinal:l[0]},vo:{cardinal:l[0]},vun:{cardinal:l[0]},wa:{cardinal:l[1]},wae:{cardinal:l[0]},xh:{cardinal:l[0]},xog:{cardinal:l[0]},yi:{cardinal:l[4]},zu:{cardinal:l[2]},lo:{ordinal:l[0]},ms:{ordinal:l[0]},vi:{ordinal:l[0]}}},function(n,e,t){(function(n){const e=t(9),r=t(16),a=t(18),i=t(0),{isWorker:o}=t(3),s=t(21)(null);n.Scratch=n.Scratch||{},Object.assign(n.Scratch,e,{canFetch:()=>Promise.resolve(!0),fetch:function(n){function e(e,t){return n.apply(this,arguments)}return e.toString=function(){return n.toString()},e}(((n,e)=>fetch(n,e))),canOpenWindow:()=>Promise.resolve(!1),openWindow:()=>Promise.reject(new Error("Scratch.openWindow not supported in sandboxed extensions")),canRedirect:()=>Promise.resolve(!1),redirect:()=>Promise.reject(new Error("Scratch.redirect not supported in sandboxed extensions")),canRecordAudio:()=>Promise.resolve(!1),canRecordVideo:()=>Promise.resolve(!1),canReadClipboard:()=>Promise.resolve(!1),canNotify:()=>Promise.resolve(!1),canGeolocate:()=>Promise.resolve(!1),canEmbed:()=>Promise.resolve(!1),canDownload:()=>Promise.resolve(!1),download:()=>Promise.reject(new Error("Scratch.download not supported in sandboxed extensions")),translate:s});const c=new class{constructor(){this.nextExtensionId=0,this.initialRegistrations=[],this.firstRegistrationPromise=new Promise((n=>{this.firstRegistrationCallback=n})),a.waitForConnection.then((()=>{a.call("extensions","allocateWorker").then((async n=>{const[e,t]=n;this.workerId=e;try{await(n=>{if(!o)return new Promise(((e,t)=>{const r=document.createElement("script");r.onload=()=>e(),r.onerror=()=>{t(new Error("Error in sandboxed script: ".concat(n,". Check the console for more information.")))},r.src=n,document.body.appendChild(r)}));importScripts(n)})(t),await this.firstRegistrationPromise;const n=this.initialRegistrations;this.initialRegistrations=null,Promise.all(n).then((()=>a.call("extensions","onWorkerInit",e)))}catch(n){i.error(n),a.call("extensions","onWorkerInit",e,"".concat(n))}}))})),this.extensions=[]}register(n){const e=this.nextExtensionId++;this.extensions.push(n);const t="extension.".concat(this.workerId,".").concat(e),r=a.setService(t,n).then((()=>a.call("extensions","registerExtensionService",t)));return this.initialRegistrations&&(this.firstRegistrationCallback(),this.initialRegistrations.push(r)),r}};n.Scratch.extensions={register:c.register.bind(c)},n.ScratchExtensions=r(n.Scratch)}).call(this,t(8))},function(n,e){var t;t=function(){return this}();try{t=t||new Function("return this")()}catch(n){"object"==typeof window&&(t=window)}n.exports=t},function(n,e,t){const r={ArgumentType:t(1),BlockType:t(2),BlockShape:t(10),TargetType:t(12),Cast:t(13),external:t(15)};n.exports=r},function(n,e,t){const r=t(11),a={HEXAGONAL:r.OUTPUT_SHAPE_HEXAGONAL,ROUND:r.OUTPUT_SHAPE_ROUND,SQUARE:r.OUTPUT_SHAPE_SQUARE};n.exports=a},function(n,e){n.exports={OUTPUT_SHAPE_HEXAGONAL:1,OUTPUT_SHAPE_ROUND:2,OUTPUT_SHAPE_SQUARE:3}},function(n,e){n.exports={SPRITE:"sprite",STAGE:"stage"}},function(n,e,t){const r=t(14),a=n=>{if("string"!=typeof n)return!1;for(let e=0;e<n.length;e++){const t=n.charCodeAt(e);if(48===t||9===t)return!1}return!0};class i{static toNumber(n){if("number"==typeof n)return Number.isNaN(n)?0:n;const e=Number(n);return Number.isNaN(e)?0:e}static toBoolean(n){return"boolean"==typeof n?n:"string"==typeof n?""!==n&&"0"!==n&&"false"!==n.toLowerCase():Boolean(n)}static toString(n){return String(n)}static toRgbColorList(n){const e=i.toRgbColorObject(n);return[e.r,e.g,e.b]}static toRgbColorObject(n){let e;return"string"==typeof n&&"#"===n.substring(0,1)?(e=r.hexToRgb(n),e||(e={r:0,g:0,b:0,a:255})):e=r.decimalToRgb(i.toNumber(n)),e}static isWhiteSpace(n){return null===n||"string"==typeof n&&0===n.trim().length}static compare(n,e){let t=Number(n),r=Number(e);if(0===t&&a(n)?t=NaN:0===r&&a(e)&&(r=NaN),isNaN(t)||isNaN(r)){const t=String(n).toLowerCase(),r=String(e).toLowerCase();return t<r?-1:t>r?1:0}return t===1/0&&r===1/0||t===-1/0&&r===-1/0?0:t-r}static isInt(n){return"number"==typeof n?!!isNaN(n)||n===Math.floor(n):"boolean"==typeof n||"string"==typeof n&&n.indexOf(".")<0}static get LIST_INVALID(){return"INVALID"}static get LIST_ALL(){return"ALL"}static toListIndex(n,e,t){if("number"!=typeof n){if("all"===n)return t?i.LIST_ALL:i.LIST_INVALID;if("last"===n)return e>0?e:i.LIST_INVALID;if("random"===n||"any"===n)return e>0?1+Math.floor(Math.random()*e):i.LIST_INVALID}return(n=Math.floor(i.toNumber(n)))<1||n>e?i.LIST_INVALID:n}}n.exports=i},function(n,e){class t{static get RGB_BLACK(){return{r:0,g:0,b:0}}static get RGB_WHITE(){return{r:255,g:255,b:255}}static decimalToHex(n){n<0&&(n+=16777216);let e=Number(n).toString(16);return e="#".concat("000000".substr(0,6-e.length)).concat(e),e}static decimalToRgb(n){const e=n>>24&255;return{r:n>>16&255,g:n>>8&255,b:255&n,a:e>0?e:255}}static hexToRgb(n){n.startsWith("#")&&(n=n.substring(1));const e=parseInt(n,16);if(isNaN(e))return null;if(6===n.length)return{r:e>>16&255,g:e>>8&255,b:255&e};if(3===n.length){const n=e>>8&15,t=e>>4&15,r=15&e;return{r:n<<4|n,g:t<<4|t,b:r<<4|r}}return null}static rgbToHex(n){return t.decimalToHex(t.rgbToDecimal(n))}static rgbToDecimal(n){return(n.r<<16)+(n.g<<8)+n.b}static hexToDecimal(n){return t.rgbToDecimal(t.hexToRgb(n))}static hsvToRgb(n){let e=n.h%360;e<0&&(e+=360);const t=Math.max(0,Math.min(n.s,1)),r=Math.max(0,Math.min(n.v,1)),a=Math.floor(e/60),i=e/60-a,o=r*(1-t),s=r*(1-t*i),c=r*(1-t*(1-i));let l,u,d;switch(a){default:case 0:l=r,u=c,d=o;break;case 1:l=s,u=r,d=o;break;case 2:l=o,u=r,d=c;break;case 3:l=o,u=s,d=r;break;case 4:l=c,u=o,d=r;break;case 5:l=r,u=o,d=s}return{r:Math.floor(255*l),g:Math.floor(255*u),b:Math.floor(255*d)}}static rgbToHsv(n){const e=n.r/255,t=n.g/255,r=n.b/255,a=Math.min(Math.min(e,t),r),i=Math.max(Math.max(e,t),r);let o=0,s=0;if(a!==i){o=60*((e===a?3:t===a?5:1)-(e===a?t-r:t===a?r-e:e-t)/(i-a))%360,s=(i-a)/i}return{h:o,s:s,v:i}}static mixRgb(n,e,t){if(t<=0)return n;if(t>=1)return e;const r=1-t;return{r:r*n.r+t*e.r,g:r*n.g+t*e.g,b:r*n.b+t*e.b}}}n.exports=t},function(n,e){const t=n=>{if(!(n.startsWith("http:")||n.startsWith("https:")||n.startsWith("data:")||n.startsWith("blob:")))throw new Error("Unsupported URL: ".concat(n))},r={importModule:n=>(t(n),import(n)),fetch:async n=>{t(n);const e=await fetch(n);if(!e.ok)throw new Error("HTTP ".concat(e.status," fetching ").concat(n));return e},dataURL:async n=>{const e=await r.fetch(n),t=await e.blob();return new Promise(((n,e)=>{const r=new FileReader;r.onload=()=>n(r.result),r.onerror=()=>e(r.error),r.readAsDataURL(t)}))},blob:async n=>(await r.fetch(n)).blob(),evalAndReturn:async(n,e)=>{const t=await r.fetch(n),a=await t.text(),i="".concat(a,"\\nreturn ").concat(e,";");return new Function(i)()}};n.exports=r},function(n,e,t){const r=t(1),a=t(2),{argumentIndexToId:i,generateExtensionId:o}=t(17),s=n=>{if(""===n||" "===n||"w"===n)return{type:a.COMMAND,async:"w"===n};if("r"===n||"R"===n)return{type:a.REPORTER,async:"R"===n};if("b"===n)return{type:a.BOOLEAN,async:!1};if("h"===n)return{type:a.HAT,async:!1};throw new Error("Unknown ScratchX block type: ".concat(n))},c=(n,e)=>{const t={},a="string"==typeof(i=e)||"number"==typeof i||"boolean"==typeof i;var i;if(a&&"b"!==n&&(t.defaultValue=e),"s"===n)t.type=r.STRING,a||(t.defaultValue="");else if("n"===n)t.type=r.NUMBER,a||(t.defaultValue=0);else if("m"===n[0]){t.type=r.STRING;const e=n.split(/\\.|:/)[1];t.menu=e}else{if("b"!==n)throw new Error("Unknown ScratchX argument type: ".concat(n));t.type=r.BOOLEAN}return t},l=(n,e,t)=>r=>{const a=[];for(let n=0;n<e;n++)a.push(r[i(n)]);return t?new Promise((e=>{n(...a,e)})):n(...a)},u=new Map;n.exports=n=>({register:(e,t,r)=>{const a=((n,e,t)=>{const r={id:o(n),name:e.displayName||n,blocks:[],color1:"#4a4a5e",color2:"#31323f",color3:"#191a21"},a={getInfo:()=>r,_getStatus:t._getStatus};e.url&&(r.docsURI=e.url);for(const n of e.blocks){if(1===n.length){r.blocks.push("---");continue}const e=n[0],o=n[1],u=n[2],d=n.slice(3);let f="";const h=[],p=o.split(/%([\\w.:]+)/g);for(let n=0;n<p.length;n++){const e=p[n];if(n%2==1){c(e);const t=Math.floor(n/2).toString(),r=d[t],a=i(t);h[a]=c(e,r),f+="[".concat(a,"]")}else f+=e}const m=s(e),g={opcode:u,blockType:m.type,text:f,arguments:h};r.blocks.push(g);const b=t[u],x=h.length;a[u]=l(b,x,m.async)}const u=e.menus;if(u){const n={};for(const e of Object.keys(u)||{}){const t={items:u[e]};n[e]=t}r.menus=n}return a})(e,t,r);u.set(e,a),n.extensions.register(a)},getStatus:n=>{const e=u.get(n);return e?e._getStatus():{status:0,msg:"does not exist"}}})},function(n,e){n.exports={generateExtensionId:n=>{const e=n.replace(/[^a-z0-9]/gi,"").toLowerCase();return"sbx".concat(e)},argumentIndexToId:n=>n.toString()}},function(n,e,t){const r=t(19),a=t(0),{centralDispatchService:i}=t(3);n.exports=new class extends r{constructor(){super(),this._connectionPromise=new Promise((n=>{this._onConnect=n})),this.services={},this._onMessage=this._onMessage.bind(this,i),"undefined"!=typeof self&&(self.onmessage=this._onMessage)}get waitForConnection(){return this._connectionPromise}setService(n,e){return Object.prototype.hasOwnProperty.call(this.services,n)&&a.warn("Worker dispatch replacing existing service provider for ".concat(n)),this.services[n]=e,this.waitForConnection.then((()=>this._remoteCall(i,"dispatch","setService",n)))}_getServiceProvider(n){const e=this.services[n];return{provider:e||i,isRemote:!e}}_onDispatchMessage(n,e){let t;switch(e.method){case"handshake":t=this._onConnect();break;case"terminate":setTimeout((()=>self.close()),0),t=Promise.resolve();break;default:a.error("Worker dispatch received message for unknown method: ".concat(e.method))}return t}}},function(n,e,t){const r=t(0);n.exports=class{constructor(){this.callbacks=[],this.nextResponseId=0}call(n,e){for(var t=arguments.length,r=new Array(t>2?t-2:0),a=2;a<t;a++)r[a-2]=arguments[a];return this.transferCall(n,e,null,...r)}transferCall(n,e,t){try{const{provider:o,isRemote:s}=this._getServiceProvider(n);if(o){for(var r=arguments.length,a=new Array(r>3?r-3:0),i=3;i<r;i++)a[i-3]=arguments[i];if(s)return this._remoteTransferCall(o,n,e,t,...a);const c=o[e].apply(o,a);return Promise.resolve(c)}return Promise.reject(new Error("Service not found: ".concat(n)))}catch(n){return Promise.reject(n)}}_isRemoteService(n){return this._getServiceProvider(n).isRemote}_remoteCall(n,e,t){for(var r=arguments.length,a=new Array(r>3?r-3:0),i=3;i<r;i++)a[i-3]=arguments[i];return this._remoteTransferCall(n,e,t,null,...a)}_remoteTransferCall(n,e,t,r){for(var a=arguments.length,i=new Array(a>4?a-4:0),o=4;o<a;o++)i[o-4]=arguments[o];return new Promise(((a,o)=>{const s=this._storeCallbacks(a,o);i.length>0&&"function"==typeof i[i.length-1].func&&(i.pop(),i.pop()),r?n.postMessage({service:e,method:t,responseId:s,args:i},r):n.postMessage({service:e,method:t,responseId:s,args:i})}))}_storeCallbacks(n,e){const t=this.nextResponseId++;return this.callbacks[t]=[n,e],t}_deliverResponse(n,e){try{const[t,r]=this.callbacks[n];delete this.callbacks[n],e.error?r(e.error):t(e.result)}catch(n){r.error("Dispatch callback failed: ".concat(n))}}_onMessage(n,e){const t=e.data;let a;t.args=t.args||[],t.service?a="dispatch"===t.service?this._onDispatchMessage(n,t):this.call(t.service,t.method,...t.args):void 0===t.responseId?r.error("Dispatch caught malformed message from a worker: ".concat(JSON.stringify(e))):this._deliverResponse(t.responseId,t),a&&(void 0===t.responseId?r.error("Dispatch message missing required response ID: ".concat(JSON.stringify(e))):a.then((e=>n.postMessage({responseId:t.responseId,result:e})),(e=>n.postMessage({responseId:t.responseId,error:"".concat(e)}))))}_getServiceProvider(n){throw new Error("Could not get provider for ".concat(n,": _getServiceProvider not implemented"))}_onDispatchMessage(n,e){throw new Error("Unimplemented dispatch message handler cannot handle ".concat(e.method," method"))}}},function(n,e){const t="undefined"==typeof document,r=t?"[0m":"",a=t?"[90m":"",i=`${t?"[34m":""}debug${r}`,o=`${t?"[36m":""}info${r}`,s=`${t?"[33m":""}warn${r}`,c=`${t?"[31m":""}error${r}`,l=(n="")=>{const e=e=>l(n?`${n} ${e}`:e),t=n?[`${a}${n}${r}`]:[];return e.debug=e.log=console.debug.bind(console,...t,i),e.info=console.log.bind(console,...t,o),e.warn=e.warning=console.warn.bind(console,...t,s),e.error=console.error.bind(console,...t,c),e};l.enable=l.disable=()=>{},n.exports=l},function(n,e,t){const r=t(22);n.exports=n=>{const e=r.namespace(),t=(n,t)=>{if(n&&"object"==typeof n);else{if("string"!=typeof n)throw new Error("unsupported data type in translate()");n={default:n}}return e(n,t)},a=n=>"_".concat(n),i=()=>n?n.getLocale():"undefined"!=typeof navigator?navigator.language:"en";let o={};return t.setup=n=>{n&&(o=n),e.setup({locale:i(),missingTranslation:"ignore",generateId:a,translations:o})},Object.defineProperty(t,"language",{configurable:!0,enumerable:!0,get:()=>i()}),t.setup({}),n&&n.on("LOCALE_CHANGED",(()=>{t.setup(null)})),t}},function(n,e,t){"use strict";var r=t(23),a=t(24),i=t(6),o=t(5),s=t(4);function c(n,e){return Object.keys(e).forEach((function(t){n[t]=e[t]})),n}n.exports=function n(){var e=c({},s),t="en",l={},u=function(n){return n},d=null,f="warning",h={};function p(n,e,i){var o="string"==typeof n?n:n.default,s=b(o,"object"==typeof n&&n.id||u(o),i||t);return(s.format||(s.format=a(r(s.message),i||t,h)))(e)}p.rich=function(n,e,i){var o="string"==typeof n?n:n.default,s=b(o,"object"==typeof n&&n.id||u(o),i||t);return(s.toParts||(s.toParts=a.toParts(r(s.message,{tagsType:m}),i||t,h)))(e)};var m="<>";function g(n,e){var t=n[2];return function(n,e){var r="object"==typeof t?function(n,e){return Object.keys(n).reduce((function(t,r){return t[r]=n[r](e),t}),{})}(t,e):t;return"function"==typeof n?n(r):n}}function b(n,e,t){var r=o(t,l)||"en",a=l[r]||(l[r]={}),i=a[e];if("string"==typeof i&&(i=a[e]={message:i}),!i){var s=\'Translation for "\'+e+\'" in "\'+r+\'" is missing\';if("warning"===f)"undefined"!=typeof console&&console.warn(s);else if("ignore"!==f)throw new Error(s);var c="function"==typeof d?d(n,e,r)||n:d||n;i=a[e]={message:c}}return i}function x(n,e,r,a,s){"object"==typeof r&&"object"!=typeof a&&(s=a,a=r,r=0);var c=o(s||t,i),l=c&&i[c][n]||v;return a["="+ +e]||a[l(e-r)]||a.other}function v(){return"other"}return h[m]=g,p.setup=function(n){return(n=n||{}).locale&&(t=n.locale),"translations"in n&&(l=n.translations||{}),n.generateId&&(u=n.generateId),"missingReplacement"in n&&(d=n.missingReplacement),n.missingTranslation&&(f=n.missingTranslation),n.formats&&(n.formats.number&&c(e.number,n.formats.number),n.formats.date&&c(e.date,n.formats.date),n.formats.time&&c(e.time,n.formats.time)),n.types&&((h=n.types)[m]=g),{locale:t,translations:l,generateId:u,missingReplacement:d,missingTranslation:f,formats:e,types:h}},p.number=function(n,r,a){var i=r&&e.number[r]||e.parseNumberPattern(r)||e.number.default;return new Intl.NumberFormat(a||t,i).format(n)},p.date=function(n,r,a){var i=r&&e.date[r]||e.parseDatePattern(r)||e.date.default;return new Intl.DateTimeFormat(a||t,i).format(n)},p.time=function(n,r,a){var i=r&&e.time[r]||e.parseDatePattern(r)||e.time.default;return new Intl.DateTimeFormat(a||t,i).format(n)},p.select=function(n,e){return e[n]||e.other},p.custom=function(n,e,t,r){return n[1]in h?h[n[1]](n,e)(t,r):t},p.plural=x.bind(null,"cardinal"),p.selectordinal=x.bind(null,"ordinal"),p.namespace=n,p}()},function(n,e,t){"use strict";var r="{",a="}",i=",",o="#",s="<",c=">",l="</",u="/>",d="\'",f="offset:",h=["number","date","time","ordinal","duration","spellout"],p=["plural","select","selectordinal"];function m(n,e){var t=n.pattern,r=t.length,i=[],o=n.index,s=g(n,e);for(s&&i.push(s),s&&n.tokens&&n.tokens.push(["text",t.slice(o,n.index)]);n.index<r;){if(t[n.index]===a){if(!e)throw T(n);break}if(e&&n.tagsType&&t.slice(n.index,n.index+2)===l)break;i.push(v(n)),o=n.index,(s=g(n,e))&&i.push(s),s&&n.tokens&&n.tokens.push(["text",t.slice(o,n.index)])}return i}function g(n,e){for(var t=n.pattern,i=t.length,c="plural"===e||"selectordinal"===e,l=!!n.tagsType,u="{style}"===e,f="";n.index<i;){var h=t[n.index];if(h===r||h===a||c&&h===o||l&&h===s||u&&b(h.charCodeAt(0)))break;if(h===d)if((h=t[++n.index])===d)f+=h,++n.index;else if(h===r||h===a||c&&h===o||l&&h===s||u)for(f+=h;++n.index<i;)if((h=t[n.index])===d&&t[n.index+1]===d)f+=d,++n.index;else{if(h===d){++n.index;break}f+=h}else f+=d;else f+=h,++n.index}return f}function b(n){return n>=9&&n<=13||32===n||133===n||160===n||6158===n||n>=8192&&n<=8205||8232===n||8233===n||8239===n||8287===n||8288===n||12288===n||65279===n}function x(n){for(var e=n.pattern,t=e.length,r=n.index;n.index<t&&b(e.charCodeAt(n.index));)++n.index;r<n.index&&n.tokens&&n.tokens.push(["space",n.pattern.slice(r,n.index)])}function v(n){var e=n.pattern;if(e[n.index]===o)return n.tokens&&n.tokens.push(["syntax",o]),++n.index,[o];var t=function(n){var e=n.tagsType;if(!e||n.pattern[n.index]!==s)return;if(n.pattern.slice(n.index,n.index+2)===l)throw T(n,null,"closing tag without matching opening tag");n.tokens&&n.tokens.push(["syntax",s]);++n.index;var t=y(n,!0);if(!t)throw T(n,"placeholder id");n.tokens&&n.tokens.push(["id",t]);if(x(n),n.pattern.slice(n.index,n.index+2)===u)return n.tokens&&n.tokens.push(["syntax",u]),n.index+=2,[t,e];if(n.pattern[n.index]!==c)throw T(n,c);n.tokens&&n.tokens.push(["syntax",c]);++n.index;var r=m(n,e),a=n.index;if(n.pattern.slice(n.index,n.index+2)!==l)throw T(n,l+t+c);n.tokens&&n.tokens.push(["syntax",l]);n.index+=2;var i=y(n,!0);i&&n.tokens&&n.tokens.push(["id",i]);if(t!==i)throw n.index=a,T(n,l+t+c,l+i+c);if(x(n),n.pattern[n.index]!==c)throw T(n,c);n.tokens&&n.tokens.push(["syntax",c]);return++n.index,[t,e,{children:r}]}(n);if(t)return t;if(e[n.index]!==r)throw T(n,r);n.tokens&&n.tokens.push(["syntax",r]),++n.index,x(n);var d=y(n);if(!d)throw T(n,"placeholder id");n.tokens&&n.tokens.push(["id",d]),x(n);var p=e[n.index];if(p===a)return n.tokens&&n.tokens.push(["syntax",a]),++n.index,[d];if(p!==i)throw T(n,", or }");n.tokens&&n.tokens.push(["syntax",i]),++n.index,x(n);var g,b=y(n);if(!b)throw T(n,"placeholder type");if(n.tokens&&n.tokens.push(["type",b]),x(n),(p=e[n.index])===a){if(n.tokens&&n.tokens.push(["syntax",a]),"plural"===b||"selectordinal"===b||"select"===b)throw T(n,b+" sub-messages");return++n.index,[d,b]}if(p!==i)throw T(n,", or }");if(n.tokens&&n.tokens.push(["syntax",i]),++n.index,x(n),"plural"===b||"selectordinal"===b){var v=function(n){var e=n.pattern,t=e.length,r=0;if(e.slice(n.index,n.index+7)===f){n.tokens&&n.tokens.push(["offset","offset"],["syntax",":"]),n.index+=7,x(n);for(var a=n.index;n.index<t&&w(e.charCodeAt(n.index));)++n.index;if(a===n.index)throw T(n,"offset number");n.tokens&&n.tokens.push(["number",e.slice(a,n.index)]),r=+e.slice(a,n.index)}return r}(n);x(n),g=[d,b,v,M(n,b)]}else if("select"===b)g=[d,b,M(n,b)];else if(h.indexOf(b)>=0)g=[d,b,k(n)];else{var S=n.index,I=k(n);x(n),e[n.index]===r&&(n.index=S,I=M(n,b)),g=[d,b,I]}if(x(n),e[n.index]!==a)throw T(n,a);return n.tokens&&n.tokens.push(["syntax",a]),++n.index,g}function y(n,e){for(var t=n.pattern,l=t.length,u="";n.index<l;){var f=t[n.index];if(f===r||f===a||f===i||f===o||f===d||b(f.charCodeAt(0))||e&&(f===s||f===c||"/"===f))break;u+=f,++n.index}return u}function k(n){var e=n.index,t=g(n,"{style}");if(!t)throw T(n,"placeholder style name");return n.tokens&&n.tokens.push(["style",n.pattern.slice(e,n.index)]),t}function w(n){return n>=48&&n<=57}function M(n,e){for(var t=n.pattern,r=t.length,i={};n.index<r&&t[n.index]!==a;){var o=y(n);if(!o)throw T(n,"sub-message selector");n.tokens&&n.tokens.push(["selector",o]),x(n),i[o]=S(n,e),x(n)}if(!i.other&&p.indexOf(e)>=0)throw T(n,null,null,\'"other" sub-message must be specified in \'+e);return i}function S(n,e){if(n.pattern[n.index]!==r)throw T(n,"{ to start sub-message");n.tokens&&n.tokens.push(["syntax",r]),++n.index;var t=m(n,e);if(n.pattern[n.index]!==a)throw T(n,"} to end sub-message");return n.tokens&&n.tokens.push(["syntax",a]),++n.index,t}function T(n,e,t,r){var a=n.pattern,i=a.slice(0,n.index).split(/\\r?\\n/),o=n.index,s=i.length,c=i.slice(-1)[0].length;return t=t||(n.index>=a.length?"end of message pattern":y(n)||a[n.index]),r||(r=function(n,e){return n?"Expected "+n+" but found "+e:"Unexpected "+e+" found"}(e,t)),new I(r+=" in "+a.replace(/\\r?\\n/g,"\\n"),e,t,o,s,c)}function I(n,e,t,r,a,i){Error.call(this,n),this.name="SyntaxError",this.message=n,this.expected=e,this.found=t,this.offset=r,this.line=a,this.column=i}e=n.exports=function(n,e){return m({pattern:String(n),index:0,tagsType:e&&e.tagsType||null,tokens:e&&e.tokens||null},"")},I.prototype=Object.create(Error.prototype),e.SyntaxError=I},function(n,e,t){"use strict";var r=t(4),a=t(5),i=t(6);function o(n,e,t,r,a){var i=n.map((function(n){return function(n,e,t,r,a){if("string"==typeof n){var i=n;return function(){return i}}var c,l=n[0],u=n[1];if(e&&"#"===n[0]){l=e[0];var d=e[2],h=(r.number||f.number)([l,"number"],t);return function(n){return h(s(l,n)-d,n)}}"plural"===u||"selectordinal"===u?(c={},Object.keys(n[3]).forEach((function(e){c[e]=o(n[3][e],n,t,r,a)})),n=[n[0],n[1],n[2],c]):n[2]&&"object"==typeof n[2]&&(c={},Object.keys(n[2]).forEach((function(e){c[e]=o(n[2][e],n,t,r,a)})),n=[n[0],n[1],c]);var p=u&&(r[u]||f[u]);if(p){var m=p(n,t);return function(n){return m(s(l,n),n)}}return a?function(n){return String(s(l,n))}:function(n){return s(l,n)}}(n,e,t,r,a)}));return a?1===i.length?i[0]:function(n){for(var e="",t=0;t<i.length;++t)e+=i[t](n);return e}:function(n){return i.reduce((function(e,t){return e.concat(t(n))}),[])}}function s(n,e){if(e&&n in e)return e[n];for(var t=n.split("."),r=e,a=0,i=t.length;r&&a<i;++a)r=r[t[a]];return r}function c(n,e){var t=n[2],a=r.number[t]||r.parseNumberPattern(t)||r.number.default;return new Intl.NumberFormat(e,a).format}function l(n,e){var t=n[1],a=n[2],i=r[t][a]||r.parseDatePattern(a)||r[t].default;return new Intl.DateTimeFormat(e,i).format}function u(n,e){var t,r="selectordinal"===n[1]?"ordinal":"cardinal",o=n[2],s=n[3];if(Intl.PluralRules&&Intl.PluralRules.supportedLocalesOf(e).length>0)t=new Intl.PluralRules(e,{type:r});else{var c=a(e,i),l=c&&i[c][r]||d;t={select:l}}return function(n,e){return(s["="+ +n]||s[t.select(n-o)]||s.other)(e)}}function d(){return"other"}(e=n.exports=function(n,e,t){return o(n,null,e||"en",t||{},!0)}).toParts=function(n,e,t){return o(n,null,e||"en",t||{},!1)};var f={number:c,ordinal:c,spellout:c,duration:function(n,e){var t=n[2],a=r.duration[t]||r.duration.default,i=new Intl.NumberFormat(e,a.seconds).format,o=new Intl.NumberFormat(e,a.minutes).format,s=new Intl.NumberFormat(e,a.hours).format,c=/^fi$|^fi-|^da/.test(String(e))?".":":";return function(n,e){if(n=+n,!isFinite(n))return i(n);var t=~~(n/60/60),r=~~(n/60%60),a=(t?s(Math.abs(t))+c:"")+o(Math.abs(r))+c+i(Math.abs(n%60));return n<0?s(-1).replace(s(1),a):a}},date:l,time:l,plural:u,selectordinal:u,select:function(n,e){var t=n[2];return function(n,e){return(t[n]||t.other)(e)}}};e.types=f}]);',null)}},function(e,t,n){"use strict";var r=window.URL||window.webkitURL;e.exports=function(e,t){try{try{var n;try{(n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder)).append(e),n=n.getBlob()}catch(t){n=new Blob([e])}return new Worker(r.createObjectURL(n))}catch(t){return new Worker("data:application/javascript,"+encodeURIComponent(e))}}catch(e){if(!t)throw Error("Inline worker is not supported");return new Worker(t)}}},function(e,t,n){const r=n(19),i=n(17),s=n(9),o=n(48),a=n(7),c=n(0),l=n(6),u=n(73);e.exports=class extends r{constructor(e,t){super(),t||(t=new i(e)),this.runtime=e,this.id=a(),this.blocks=t,this.variables={},this.comments={},this._customState={},this._edgeActivatedHatValues={},this.extensionStorage={}}onGreenFlag(){}getName(){return this.id}updateEdgeActivatedValue(e,t){const n=this._edgeActivatedHatValues[e];return this._edgeActivatedHatValues[e]=t,n}hasEdgeActivatedValue(e){return Object.prototype.hasOwnProperty.call(this._edgeActivatedHatValues,e)}clearEdgeActivatedValues(){this._edgeActivatedHatValues={}}lookupOrCreateVariable(e,t){let n=this.lookupVariableById(e);if(n)return n;if(n=this.lookupVariableByNameAndType(t,s.SCALAR_TYPE),n)return n;const r=new s(e,t,s.SCALAR_TYPE,!1);return this.variables[e]=r,r}lookupBroadcastMsg(e,t){let n;if(e?n=this.lookupVariableById(e):t?n=this.lookupBroadcastByInputValue(t):c.error("Cannot find broadcast message if neither id nor name are provided."),n)return t&&n.name.toLowerCase()!==t.toLowerCase()&&c.error("Found broadcast message with id: ".concat(e,", but")+"its name, ".concat(n.name," did not match expected name ").concat(t,".")),n.type!==s.BROADCAST_MESSAGE_TYPE&&c.error("Found variable with id: ".concat(e,", but its type ").concat(n.type)+"did not match expected type ".concat(s.BROADCAST_MESSAGE_TYPE)),n}lookupBroadcastByInputValue(e){const t=this.variables;for(const n in t)if(t[n].type===s.BROADCAST_MESSAGE_TYPE&&t[n].name.toLowerCase()===e.toLowerCase())return t[n]}lookupVariableById(e){if(Object.prototype.hasOwnProperty.call(this.variables,e))return this.variables[e];if(this.runtime&&!this.isStage){const t=this.runtime.getTargetForStage();if(t&&Object.prototype.hasOwnProperty.call(t.variables,e))return t.variables[e]}}lookupVariableByNameAndType(e,t,n){if("string"==typeof e){"string"!=typeof t&&(t=s.SCALAR_TYPE),n=n||!1;for(const n in this.variables){const r=this.variables[n];if(r.name===e&&r.type===t)return r}if(!n&&this.runtime&&!this.isStage){const n=this.runtime.getTargetForStage();if(n)for(const r in n.variables){const i=n.variables[r];if(i.name===e&&i.type===t)return i}}return null}}lookupOrCreateList(e,t){let n=this.lookupVariableById(e);if(n)return n;if(n=this.lookupVariableByNameAndType(t,s.LIST_TYPE),n)return n;const r=new s(e,t,s.LIST_TYPE,!1);return this.variables[e]=r,r}createVariable(e,t,n,r){if(!Object.prototype.hasOwnProperty.call(this.variables,e)){const i=new s(e,t,n,!1);r&&this.isStage&&this.runtime.canAddCloudVariable()&&(i.isCloud=!0,this.runtime.addCloudVariable(),this.runtime.ioDevices.cloud.requestCreateVariable(i)),this.variables[e]=i}}createComment(e,t,n,r,i,s,a,l){if(!Object.prototype.hasOwnProperty.call(this.comments,e)){const u=new o(e,n,r,i,s,a,l);if(t){u.blockId=t;const n=this.blocks.getBlock(t);n?n.comment=e:c.warn("Could not find block with id ".concat(t," associated with commentId: ").concat(e))}this.comments[e]=u}}renameVariable(e,t){if(Object.prototype.hasOwnProperty.call(this.variables,e)){const n=this.variables[e];if(n.id===e){const r=n.name;if(n.name=t,this.runtime){if(n.isCloud&&this.isStage&&this.runtime.ioDevices.cloud.requestRenameVariable(r,t),n.type===s.SCALAR_TYPE){let e=!1;this.runtime.targets.forEach((n=>{e=n.blocks.updateSensingOfReference(r,t,this.isStage?"_stage_":this.getName())||e})),e&&this.runtime.requestBlocksUpdate()}const i=this.runtime.monitorBlocks;i.changeBlock({id:e,element:"field",name:n.type===s.LIST_TYPE?"LIST":"VARIABLE",value:e},this.runtime);const o=i.getBlock(n.id);o&&this.runtime.requestUpdateMonitor({id:e,params:i._getBlockParams(o)})}}}}deleteVariable(e){if(Object.prototype.hasOwnProperty.call(this.variables,e)){const t=this.variables[e].name,n=this.variables[e].isCloud;delete this.variables[e],this.runtime&&(n&&this.isStage&&(this.runtime.ioDevices.cloud.requestDeleteVariable(t),this.runtime.removeCloudVariable()),this.runtime.monitorBlocks.deleteBlock(e),this.runtime.requestRemoveMonitor(e))}}deleteMonitors(){let e;this.runtime.requestRemoveMonitorByTargetId(this.id),e=this.isStage?Object.keys(this.variables):Object.keys(this.runtime.monitorBlocks._blocks).filter((e=>this.runtime.monitorBlocks._blocks[e].targetId===this.id));for(const t of e)this.runtime.monitorBlocks.deleteBlock(t)}duplicateVariable(e,t){if(Object.prototype.hasOwnProperty.call(this.variables,e)){const n=this.variables[e],r=new s(t?e:null,n.name,n.type,n.isCloud);return r.type===s.LIST_TYPE?r.value=n.value.slice(0):r.value=n.value,r}return null}duplicateVariables(e){let t;return e&&(t=e.getAllVariableAndListReferences()),Object.keys(this.variables).reduce(((n,r)=>{const i=this.duplicateVariable(r,!e);if(n[i.id]=i,e&&t){const e=t[r];e&&this.mergeVariables(r,i.id,e)}return n}),{})}postSpriteInfo(){}getCustomState(e){return this._customState[e]}setCustomState(e,t){this._customState[e]=t}dispose(){this._customState={},this.runtime&&this.runtime.removeExecutable(this)}getAllVariableNamesInScopeByType(e,t){"string"!=typeof e&&(e=s.SCALAR_TYPE),t=t||!1;const n=Object.values(this.variables).filter((t=>t.type===e)).map((e=>e.name));if(t||this.isStage||!this.runtime)return n;const r=this.runtime.getTargetForStage().getAllVariableNamesInScopeByType(e);return n.concat(r)}mergeVariables(e,t,n,r){const i=n||this.blocks.getAllVariableAndListReferences()[e];u.updateVariableIdentifiers(i,t,r)}shareLocalVariableToStage(e,t){if(!this.runtime)return;const n=this.variables[e];if(!n)return void c.warn("Cannot share a local variable to the stage if it's not local.");const r=this.runtime.getTargetForStage(),i="StageVarFromLocal_".concat(e);let s=r.lookupVariableById(i);if(!s){const e=n.name,t=n.type,r="Stage: ".concat(e);s=this.runtime.createNewGlobalVariable(r,i,t)}this.mergeVariables(e,s.id,t,s.name)}shareLocalVariableToSprite(e,t,n){if(!this.runtime)return;if(this.isStage)return;const r=this.variables[e];if(!r)return void c.warn("Tried to call 'shareLocalVariableToSprite' with a non-local variable.");const i=r.name,o=r.type,a=t.lookupVariableByNameAndType(i,o);let l;if(a)l=a.id;else{const e=new s(null,i,o);l=e.id,t.variables[l]=e}this.mergeVariables(e,l,n)}resolveVariableSharingConflictsWithTarget(e,t){if(this.isStage)return;const n=this.blocks.getAllVariableAndListReferences(e);for(const e in n){if(!this.variables[e])continue;const r=n[e];t.isStage?this.shareLocalVariableToStage(e,r):this.shareLocalVariableToSprite(e,t,r)}}fixUpVariableReferences(){if(!this.runtime)return;if(this.isStage)return;const e=this.runtime.getTargetForStage();if(!e||!e.variables)return;const t=(t,n,r)=>{if(e.lookupVariableByNameAndType(n,r)){const e=l.unusedName("".concat(this.getName(),": ").concat(n),this.getAllVariableNamesInScopeByType(r));return this.renameVariable(t,e),e}return null},n=this.blocks.getAllVariableAndListReferences(),r=[];if(Object.keys(this.variables).length>0)for(const e in this.variables)Object.prototype.hasOwnProperty.call(this.variables,e)&&(n[e]||r.push(e));const i=Object.create(null),s=Object.create(null),o={},a=e=>{const t=o[e];return t||(o[e]=this.runtime.getAllVarNamesOfType(e),o[e])};for(const r in n){const o=n[r][0],c=o.referencingField.value,u=o.type;if(this.lookupVariableById(r)){if(Object.prototype.hasOwnProperty.call(this.variables,r)){const e=t(r,c,u);e&&n[r].map((t=>(t.referencingField.value=e,t)))}}else{const t=e.lookupVariableByNameAndType(c,u);if(t)i[r]||(i[r]=t.id);else{const t=a(u),n=l.unusedName(c,t);e.createVariable(r,n,u),s[r]||(s[r]=n)}}}for(const e in r){const n=r[e];t(n,this.variables[n].name,this.variables[n].type)}for(const e in i){const t=i[e],r=n[e];this.mergeVariables(e,t,r)}for(const e in s){const t=s[e];n[e].map((e=>(e.referencingField.value=t,e)))}}}},function(e,t,n){const r=n(74),i=n(77);e.exports=class{constructor(e){this._canvas=e||document.createElement("canvas"),this._context=this._canvas.getContext("2d"),this._measurements={x:0,y:0,width:0,height:0},this._cachedImage=null,this.loaded=!1}get canvas(){return this._canvas}get size(){return[this._measurements.width,this._measurements.height]}get viewOffset(){return[this._measurements.x,this._measurements.y]}loadString(e,t){this._cachedImage=null;const n=r(e,t);this._svgTag=n,this._measurements={width:n.viewBox.baseVal.width,height:n.viewBox.baseVal.height,x:n.viewBox.baseVal.x,y:n.viewBox.baseVal.y}}loadSVG(e,t,n){this.loadString(e,t),this._createSVGImage(n)}_createSVGImage(e){null===this._cachedImage&&(this._cachedImage=new Image);const t=this._cachedImage;t.onload=()=>{this.loaded=!0,e&&e()};const n=this.toString(!0);t.src=`data:image/svg+xml;utf8,${encodeURIComponent(n)}`,this.loaded=!1}toString(e){return i(this._svgTag,e)}draw(e){if(!this.loaded)throw new Error("SVG image has not finished loading");this._drawFromImage(e)}_drawFromImage(e){if(null===this._cachedImage)return;const t=Number.isFinite(e)?e:1,n=this._measurements;this._canvas.width=n.width*t,this._canvas.height=n.height*t,this._canvas.width<=0||this._canvas.height<=0||this._cachedImage.naturalWidth<=0||this._cachedImage.naturalHeight<=0||(this._context.clearRect(0,0,this._canvas.width,this._canvas.height),this._context.setTransform(t,0,0,t,0,0),this._context.drawImage(this._cachedImage,0,0))}}},function(e,t,n){const r=n(238),i=n(51),s=n(239),o=function(e){return Math.round(1e4*e)/1e4},a=function(e){let t=r.identity();const n=e.attributes&&e.attributes.transform&&e.attributes.transform.value;if(!n)return t;const i=n.split(/\)\s*/g);for(const e of i){if(!e)break;const n=e.split(/\(\s*/),i=n[0].trim(),o=n[1].split(/[\s,]+/g);for(let e=0;e<o.length;e++)o[e]=parseFloat(o[e]);switch(i){case"matrix":t=r.compose(t,{a:o[0],b:o[1],c:o[2],d:o[3],e:o[4],f:o[5]});break;case"rotate":t=r.compose(t,r.rotateDEG(o[0],o[1]||0,o[2]||0));break;case"translate":t=r.compose(t,r.translate(o[0],o[1]||0));break;case"scale":t=r.compose(t,r.scale(o[0],o[1]||o[0]));break;case"skewX":t=r.compose(t,r.skewDEG(o[0],0));break;case"skewY":t=r.compose(t,r.skewDEG(0,o[0]));break;default:s.error(`Couldn't parse: ${i}`)}}return t},c=function(e){const t=e.a,n=e.b,r=e.c,i=e.d,s=t*i-n*r;if(0!==t||0!==n){const e=Math.sqrt(t*t+n*n);return{x:e,y:s/e}}if(0!==r||0!==i){const e=Math.sqrt(r*r+i*i);return{x:s/e,y:e}}return{x:0,y:0}},l=function(e,t,n,r){n=-n*Math.PI/180;const i=r.a,s=-r.c,o=-r.b,a=r.d,c=i*a-s*o;if(0===c)return null;const l=Math.sin(n),u=Math.cos(n),h=Math.sin(2*n),d=u*u/e/e+l*l/t/t,p=h/e/e-h/t/t,f=l*l/e/e+u*u/t/t,m=d*a*a-p*a*o+f*o*o,g=-2*d*s*a+p*i*a+p*s*o-2*f*i*o,b=d*s*s-p*i*s+f*i*i,y=Math.sqrt(2)*Math.sqrt((m+b-Math.sqrt(m*m+g*g-2*m*b+b*b))/(-g*g+4*m*b)),E=1/Math.sqrt(m+b-1/y/y);let T=(m-1/y/y)/(1/E/E-1/y/y);T<0&&Math.abs(T)<1e-8&&(T=0),T=Math.sqrt(T),Math.abs(1-T)<1e-8&&(T=1);let v=Math.asin(T);T=g/(1/y/y-1/E/E);const A=-v;return Math.abs(Math.sin(2*A)-T)<Math.abs(Math.sin(2*v)-T)&&(v=A),{radiusX:y*c,radiusY:E*c,rotation:180*-v/Math.PI}},u=["circle","ellipse","image","line","path","polygon","polyline","rect","text","use"],h=["a","defs","g","marker","glyph","missing-glyph","pattern","svg","switch","symbol"],d=function(e,t){return Math.sqrt((e*e+t*t)/2)},p=function(e,t,n,s){const a=function(e,t,r,s,o,a){let c,l=i.get(e,t);if(null===l?a?(c=a,/%\s*$/.test(c)&&(l=a,c=parseFloat(l))):c=s?null:r?"":0:c=r?l:parseFloat(l),/%\s*$/.test(l)){return c/100*(o?1:n[/x|^width/.test(t)?"width":"height"])}return c},l=function(e,t,n,r,i,s,o){return t=a(e,t||"x",!1,r,i,s),n=a(e,n||"y",!1,r,i,o),!r||null!==t&&null!==n?{x:t,y:n}:null};let u=t.getElementsByTagName("defs");0===u.length?(u=i.create("defs"),t.appendChild(u)):u=u[0];const h=t.getElementById(e);if(!h)return;const p="radialgradient"===h.tagName.toLowerCase(),f=t.getElementById(e).cloneNode(!0);let m=r.toString(s);m=m.substring(8,m.length-1);const g=`${e}-${m}`;if(f.setAttribute("id",g),t.getElementById(g))return`url(#${g})`;const b="userSpaceOnUse"!==a(f,"gradientUnits",!0);let y,E,T,v;if(p)y=l(f,"cx","cy",!1,b,"50%","50%"),T=a(f,"r",!1,!1,b,"50%"),v=l(f,"fx","fy",!0,b);else if(y=l(f,"x1","y1",!1,b),E=l(f,"x2","y2",!1,b,"1"),y.x===E.x&&y.y===E.y){const e=f.getElementsByTagName("stop");return e.length&&e[e.length-1].attributes&&e[e.length-1].attributes["stop-color"]?e[e.length-1].attributes["stop-color"].value:null}if(b){const e=r.compose(r.translate(n.x,n.y),r.scale(n.width,n.height));y=r.applyToPoint(e,y),E&&(E=r.applyToPoint(e,E)),T&&(T=d(n.width,n.height)*T),v&&(v=r.applyToPoint(e,v))}if(p){y=r.applyToPoint(s,y);const e=c(s);T=d(e.x,e.y)*T,v&&(v=r.applyToPoint(s,v))}else{const e=(e,t)=>e.x*t.x+e.y*t.y,t=(e,t)=>({x:e*t.x,y:e*t.y}),n=(e,t)=>({x:e.x+t.x,y:e.y+t.y}),i=(e,t)=>({x:e.x-t.x,y:e.y-t.y});let o=Math.abs(y.x-E.x)<1e-8?n(y,{x:1,y:(y.x-E.x)/(E.y-y.y)}):n(y,{x:(E.y-y.y)/(y.x-E.x),y:1});o=r.applyToPoint(s,o),y=r.applyToPoint(s,y),E=r.applyToPoint(s,E);const a=i(o,y),c=i(E,y),l=Math.abs(a.x)<1e-8?{x:1,y:-a.x/a.y}:{x:-a.y/a.x,y:1},u=t(e(c,l)/e(l,l),l);E={x:y.x+u.x,y:y.y+u.y}}return p?(f.setAttribute("cx",o(y.x)),f.setAttribute("cy",o(y.y)),f.setAttribute("r",o(T)),v&&(f.setAttribute("fx",o(v.x)),f.setAttribute("fy",o(v.y)))):(f.setAttribute("x1",o(y.x)),f.setAttribute("y1",o(y.y)),f.setAttribute("x2",o(E.x)),f.setAttribute("y2",o(E.y))),f.setAttribute("gradientUnits","userSpaceOnUse"),u.appendChild(f),`url(#${g})`},f=(e,t)=>{const n=e&&e.match(/\((?:["'#]*)([^"')]+)/),r=n&&n[1];return r&&t?r.replace(`${t.location.href.split("#")[0]}#`,""):r},m=Object.create(null);let g=null,b=null,y=null;e.exports=function(e,t,n){const s=r.identity(),E=(s,T,v,A,w)=>{if(function(e){return e.tagName&&h.includes(e.tagName.toLowerCase())}(s)){s.attributes["stroke-width"]&&(v=s.attributes["stroke-width"].value),s.attributes&&(s.attributes.fill&&(A=s.attributes.fill.value),s.attributes.stroke&&(w=s.attributes.stroke.value));for(let e=0;e<s.childNodes.length;e++)E(s.childNodes[e],r.compose(T,a(s)),v,A,w);s.removeAttribute("transform"),s.removeAttribute("stroke-width"),s.removeAttribute("fill"),s.removeAttribute("stroke")}else if(function(e,t){return!!e.attributes&&(t=e.attributes["stroke-width"]?Number(e.attributes["stroke-width"].value):Number(t))&&e.tagName&&"path"===e.tagName.toLowerCase()&&e.attributes.d&&e.attributes.d.value}(s,v)){if(s.attributes["stroke-width"]&&(v=s.attributes["stroke-width"].value),s.attributes.fill&&(A=s.attributes.fill.value),s.attributes.stroke&&(w=s.attributes.stroke.value),T=r.compose(T,a(s)),r.toString(T)===r.toString(r.identity()))return s.removeAttribute("transform"),s.setAttribute("stroke-width",v),A&&s.setAttribute("fill",A),void(w&&s.setAttribute("stroke",w));const u=f(A,t),h=f(w,t);if(u||h){const r=n||((e,t)=>{const n=e.attributes.d.value;if(Object.prototype.hasOwnProperty.call(m,n))return m[n];if(!g){const e=t.document;g=e.createElement("span"),b=e.createElementNS(i.svg,"svg"),y=e.createElementNS(i.svg,"path"),g.className="scratch-svg-renderer-bbox",g.style.visibility="hidden",g.style.position="absolute",g.style.top="-10000px",g.style.left="-10000px",g.ariaHidden=!0,b.appendChild(y),g.appendChild(b),document.body.appendChild(g)}y.setAttribute("d",n);const r=b.getBBox();return m[n]=r,r})(s,t);if(u){const t=p(u,e,r,T);t&&(A=t)}if(h){const t=p(h,e,r,T);t&&(w=t)}}s.setAttribute("d",function(e,t){if(!t||r.toString(t)===r.toString(r.identity()))return e;const n=e&&e.match(/[mlhvcsqtaz][^mlhvcsqtaz]*/gi);let i,s,a,u=!1,h={x:0,y:0},d={x:0,y:0},p="";const f=function(e,t){let n=+i[e];return u&&(n+=h[t]),n},m=function(e){return{x:f(e,"x"),y:f(e+1,"y")}},g=function(e){const n=r.applyToPoint(t,e);return`${o(n.x)} ${o(n.y)} `};for(let e=0,r=n&&n.length;e<r;e++){const r=n[e],b=r[0],y=b.toLowerCase();i=r.match(/[+-]?(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?/g);const E=i&&i.length;switch(u=b===y,"z"!==s||/[mz]/.test(y)||(p+=`M ${h.x} ${h.y} `),y){case"m":case"l":{let e="m"===y;for(let t=0;t<E;t+=2)p+=e?"M ":"L ",h=m(t),p+=g(h),e&&(d=h,e=!1);a=h;break}case"h":case"v":{const e="h"===y?"x":"y";h={x:h.x,y:h.y};for(let t=0;t<E;t++)h[e]=f(t,e),p+=`L ${g(h)}`;a=h;break}case"c":for(let e=0;e<E;e+=6){const t=m(e);a=m(e+2),h=m(e+4),p+=`C ${g(t)}${g(a)}${g(h)}`}break;case"s":for(let e=0;e<E;e+=4){const t=/[cs]/.test(s)?{x:2*h.x-a.x,y:2*h.y-a.y}:h;a=m(e),h=m(e+2),p+=`C ${g(t)}${g(a)}${g(h)}`,s=y}break;case"q":for(let e=0;e<E;e+=4)a=m(e),h=m(e+2),p+=`Q ${g(a)}${g(h)}`;break;case"t":for(let e=0;e<E;e+=2)a=/[qt]/.test(s)?{x:2*h.x-a.x,y:2*h.y-a.y}:h,h=m(e),p+=`Q ${g(a)}${g(h)}`,s=y;break;case"a":for(let e=0;e<E;e+=7){h=m(e+5);const n=+i[e],r=+i[e+1],s=+i[e+2],a=+i[e+3];let u=+i[e+4];const d=l(n,r,s,t),f=c(t);d?((f.x>0&&f.y<0||f.x<0&&f.y>0)&&(u^=1),p+=`A ${o(Math.abs(d.radiusX))} ${o(Math.abs(d.radiusY))} ${o(d.rotation)} ${a} ${u} ${g(h)}`):p+=`L ${g(h)}`}break;case"z":p+="Z ",h=d}s=y}return p}(s.attributes.d.value,T)),s.removeAttribute("transform");const E=c(T);s.setAttribute("stroke-width",d(E.x,E.y)*v),A&&s.setAttribute("fill",A),w&&s.setAttribute("stroke",w)}else(function(e){return e.tagName&&u.includes(e.tagName.toLowerCase())})(s)&&(v&&!s.attributes["stroke-width"]&&s.setAttribute("stroke-width",v),A&&!s.attributes.fill&&s.setAttribute("fill",A),w&&!s.attributes.stroke&&s.setAttribute("stroke",w),T=r.compose(T,a(s)),r.toString(T)===r.toString(r.identity())?s.removeAttribute("transform"):s.setAttribute("transform",r.toString(T)))};E(e,s,1)}},function(e,t,n){window,e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";function r(e,t){return Array.isArray(t)?[e.a*t[0]+e.c*t[1]+e.e,e.b*t[0]+e.d*t[1]+e.f]:{x:e.a*t.x+e.c*t.y+e.e,y:e.b*t.x+e.d*t.y+e.f}}function i(e,t){return t.map((function(t){return r(e,t)}))}function s(e){return{a:parseFloat(e.a),b:parseFloat(e.b),c:parseFloat(e.c),d:parseFloat(e.d),e:parseFloat(e.e),f:parseFloat(e.f)}}n.r(t);var o=/^matrix\(\s*([0-9_+-.e]+)\s*,\s*([0-9_+-.e]+)\s*,\s*([0-9_+-.e]+)\s*,\s*([0-9_+-.e]+)\s*,\s*([0-9_+-.e]+)\s*,\s*([0-9_+-.e]+)\s*\)$/i;function a(e){var t=e.match(o);if(null===t||t.length<7)throw new Error("'"+e+"' is not a matrix");return{a:parseFloat(t[1]),b:parseFloat(t[2]),c:parseFloat(t[3]),d:parseFloat(t[4]),e:parseFloat(t[5]),f:parseFloat(t[6])}}function c(){return{a:1,c:0,e:0,b:0,d:1,f:0}}function l(e){var t=e.a,n=e.b,r=e.c,i=e.d,s=e.e,o=e.f,a=t*i-n*r;return{a:i/a,b:n/-a,c:r/-a,d:t/a,e:(i*s-r*o)/-a,f:(n*s-t*o)/a}}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h=function(e){return"number"==typeof e&&!isNaN(e)&&isFinite(e)},d=function(e){return null!=e&&"object"===(void 0===e?"undefined":u(e))};function p(e){return d(e)&&e.hasOwnProperty("a")&&h(e.a)&&e.hasOwnProperty("b")&&h(e.b)&&e.hasOwnProperty("c")&&h(e.c)&&e.hasOwnProperty("d")&&h(e.d)&&e.hasOwnProperty("e")&&h(e.e)&&e.hasOwnProperty("f")&&h(e.f)}function f(e){return void 0===e}function m(e){return{a:1,c:0,e:e,b:0,d:1,f:arguments.length>1&&void 0!==arguments[1]?arguments[1]:0}}function g(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=function(e,t){return{a:e.a*t.a+e.c*t.b,c:e.a*t.c+e.c*t.d,e:e.a*t.e+e.c*t.f+e.e,b:e.b*t.a+e.d*t.b,d:e.b*t.c+e.d*t.d,f:e.b*t.e+e.d*t.f+e.f}};switch((t=Array.isArray(t[0])?t[0]:t).length){case 0:throw new Error("no matrices provided");case 1:return t[0];case 2:return r(t[0],t[1]);default:var i=function(e){return Array.isArray(e)?e:Array.from(e)}(t),s=i[0],o=i[1],a=i.slice(2),c=r(s,o);return g.apply(void 0,[c].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(a)))}}function b(){return g.apply(void 0,arguments)}var y=Math.cos,E=Math.sin,T=Math.PI;function v(e,t,n){var r=y(e),i=E(e),s={a:r,c:-i,e:0,b:i,d:r,f:0};return f(t)||f(n)?s:g([m(t,n),s,m(-t,-n)])}function A(e){return v(e*T/180,arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0)}function w(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return f(t)&&(t=e),{a:e,c:0,e:0,b:0,d:t,f:0}}function S(e,t){return{a:1,c:e,e:0,b:t,d:1,f:0}}var k=Math.tan;function O(e,t){return{a:1,c:k(e),e:0,b:k(t),d:1,f:0}}function I(e,t){return O(e*Math.PI/180,t*Math.PI/180)}function N(e){return x(e)}function R(e){return x(e)}function x(e){return"matrix("+e.a+","+e.b+","+e.c+","+e.d+","+e.e+","+e.f+")"}n.d(t,"applyToPoint",(function(){return r})),n.d(t,"applyToPoints",(function(){return i})),n.d(t,"fromObject",(function(){return s})),n.d(t,"fromString",(function(){return a})),n.d(t,"identity",(function(){return c})),n.d(t,"inverse",(function(){return l})),n.d(t,"isAffineMatrix",(function(){return p})),n.d(t,"rotate",(function(){return v})),n.d(t,"rotateDEG",(function(){return A})),n.d(t,"scale",(function(){return w})),n.d(t,"shear",(function(){return S})),n.d(t,"skew",(function(){return O})),n.d(t,"skewDEG",(function(){return I})),n.d(t,"toCSS",(function(){return N})),n.d(t,"toSVG",(function(){return R})),n.d(t,"toString",(function(){return x})),n.d(t,"transform",(function(){return g})),n.d(t,"compose",(function(){return b})),n.d(t,"translate",(function(){return m}))}])},function(e,t,n){const r=n(29);r.enable(),e.exports=r("scratch-svg-render")},function(e,t){let n=null;e.exports=()=>(n||(n=document.createElement("iframe"),n.className="scratch-svg-renderer-sandbox",n.sandbox="allow-same-origin",n.style.position="absolute",n.style.top="-10000px",n.style.left="-10000px",n.style.width="0",n.style.height="0",n.style.opacity="0",n.style.visibility="hidden",n.style.pointerEvents="none",n.tabIndex=-1,n.ariaHidden=!0,document.body.appendChild(n),n.contentDocument.open(),n.contentDocument.write('\n <!DOCTYPE html>\n <html>\n <head>\n <meta charset="utf-8">\n <meta http-equiv="Content-Security-Policy" content="default-src \'none\'; style-src \'unsafe-inline\' data:; font-src data:; img-src data:">\n </head>\n <body></body>\n </html>\n '),n.contentDocument.close()),n.contentDocument.body)},function(e,t,n){let r;e.exports=function(){if(r)return r;r={"Sans Serif":n(242),Serif:n(243),Handwriting:n(244),Marker:n(245),Curly:n(246),Pixel:n(247),Scratch:n(248)};for(const e in r){const t=r[e];r[e]="@font-face {"+'font-family: "'.concat(e,'";src: url("data:font/woff2;base64,').concat(t,'");}')}if(!document.getElementById("scratch-font-styles")){let e="";for(const t in r)e+=r[t];const t=document.createElement("style");t.id="scratch-font-styles",t.textContent=e,document.body.insertBefore(t,document.body.firstChild)}return r}},function(e,t){e.exports="d09GMgABAAAAApYYABIAAAAG6AAAApWrAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGotAG4PVRhytAAZgP1RURkGDfwCULgiCdAmabREICpOcUJDzVgvlPAABNgIkA+UcBCAFjRQHgpEVDIF9W40ftg+eN8b23v0hip5OD4RDVVetaLVmXyO82wBBr/o2T1kENmR+ItD0NhHQOR1jeGDAlFSzupYBVeN2a6a/UMBtA5apqd+tD8n+//////////////+bSX48udnM/N0388suLE1aExTRKHpisJ8l5i65QlBw8xoILKZCWak1r/WqURYxEpqsqcYitajd8UfUYh5ll1e9Ikh9VfIDpdYwGNloQJ48r40p+f4k9muBpr6BWRlo7hcNrSUdUr0TAy1ZD4GOi9ZqXfITOcpwT85LKlAbn1AMTaCclqcbMZmo6jyEMzYNdhY3W98778WLbzE5DFXQ7DykwC4lzK8g7KCQ4FEErnYt3ajYh/sfYgEIJRIkYxCQh5HYqbdtxJaZnSO7wZRCZMt+behD7ZbKPRgY9mvqTWkfRCBDXwlz1ROabRGoHiWlveudZr/odrtdNs9h87uwKehwv+RGZxBVrNOD8Jj58GlAod1mj+5Bhgz3ZzG21ltQ6WnnHtyj82p6r2uldH1DbVBFloKkN0JkkE69ErgnVUHXGSwWh6NywEJ+m5tVi84bNMh+LE/Eff8F9PpaBE8VJn5YfVs8BxaUFRtPsfaE3p9hP0otz5eF0QR6Fmjs2WSOa9qJ8fitoHrzkVL+bt+p5N8/6g/ben1VJTqKNWpTo0ElX5klL5iJQDTBTFD6fJGCtnr1VoofKVAvcnMoRUBEBhAXJy8UanR9noL0Q0VABETA+fZLujmOUkcrkzSQB1eIgAi4ngz5GV4hGy2U0qdnlx4/jV/b18zzpp/BqACmBCiUAaTN3ep9rvtFk8J55H/pW0GXbEQbAh9S+dFfsAnbOvTd/PjuxqsRTAADBCNVU1IzM/CNKkCgoQ/mVRHpxmw85PdUSa/dw252FVNyR36UtaQC0gf9Lf3Kwc71M2qsqtN3FnLzKVYoHouiHSnm93ZQpcR9jo2ivbPf7s8y5I57T4z9NJ7Vwi9qZVdkX8wP7Rr32R0yK2hNS650tVHuOTg4wBoUSNUBWT24q+uKQrZ3dHHxxmB0BmHb2DUETxiOuDV+qhnrO0D+kB6V/8PB/+Vw/+IvHLyVkbHiWLp7Ejw4yJPyY7KOSUrg4DFZVpeX0iHPKOOVk8/PQSx/PwhKll8ry7Is2X/5K+SUUkop0mV+kMFB/vEgqWpukV8rRBUNOTbx/7zMCwhDbi8cAEARQmqyldmpeoNRmIRZWIRViC3tjjytLrdHra/DV/xF6J/37/+/GjX31Xvnt6BUyrpDgCGAyAgt3bPG8Lzd3v//xnLurjPW3TmcdcadOTtrnKzsiIwVmrQoGiiiJI0lIVpqK4WMhpFKZEaFlopydwMw3YLX3vuiv6j8IvLbv+/7e3/z4ESkKLRItbSAksIvWISkAiqSUgqIIj9vW9WT/75VFW6N+IgIrI6yExVFH0Oz0c0FEQkEQXBQUV38R2bNPlg4+dMng9sDsE0bwaQEBAMxMCJAIiVSCRUTEAzsGT07FuryW3/VLtx06dz2xZf9xbd98f3/nzr/954jwVt7z1i3GUJubayQdkujplTqKaMZ22O5yTCX61ufCPqZ+ZVW/mQ1N4pk2ZZpwR2IU6An3YX+n7+H3+x17iuI+QsELJHGE3H4+XavFeIDPZA00EatWpSrcAADFPuZhc/37CueFBYOh6u9amwyEZvQx2oJW4g8c9Lb1f7/tvXe+2QMlV0GfGAWBtYQ+6zpX/miQrzCws8QTupU6Uyq1PEuVR+/8lf6XndPz4cREu0RrHQi2BPyr5WBuHKCLHASOLMj4ZUcPH7gp0hFnVmw5E0f1MkHeHTs+73ESDrgNo4kPrK3IBcgZ/7/TuSGlf5+d4hJkMzlS7ZpyP4gok+nh7oDbhsN/eM336o6Vy3Jec5kkJaAe5nhCwDQgTDP/h5/6IvKS3OX2pz+72xkYgbbzk8Arogn88Cny391NShpJC0Y1oQP1gFC/wC3qYqclHW6Mv5/bX7/+5RSJAQoxAJJsPgV7fZ6LsNvg9Fbf4C2mYtIcxkG2z7q2Fz7gcs2EsygJI4+QvAIEbA4QtnEfkW0MWvR6Kqhjy56q97s9fROH8rXgAXjGMCwBWwIaTcPuAsxw1ATHEmSPKpb+gn63/emVueca957/2fCEZ7GSUCSVSRLbaVSq40jmUMUpYpAYFwSYFOJz1W1xiwVuWAmhhFiYLGarXeaf936j3mMESBARG9y40oChOQyjD71FbVOvXT5NvObbk//m2rPFs1C/zpqM7+bV7jjT9cagWeVIih53FqikQQjt4v///f99pnu8IcZ8DcAZs20MwgsSosK7HPAgRW3Irv3vjno1/+nlyPp9dIdnV9v9bp7k7VWsvZ8rLXWSrpJkiRJkiRJxsjIyEqSJEnS6/WSjCRJRpIkSTKSJCtJkmRlJEmSpAjIBASAgTVbzqem2yMpEUpgYi1a+yRoIqs0n+6JTqKRSAxpzfVEMWnmIfJ0oIc/cLe/1f69A/eAA0wtSwOLY1dq+BXQGgzdDegbRCZcX+InDouxnWD7gbWIoRmiyQGcrpANZsiYwkSsJmmTJo01TdvUkjQ13dqtM2fAbZgdpxzjlLs3O9P9O/e82IlxnL15AfwHgZlqZPeeewcmAAtKOoQRr2gcEp3qq356h9bV//Zu/+06V9tOO+OdnvYODSENIQ3bFFlCCGus+TNYtWfCirl+KdHJ2r2cpMiApIbNmKdlbpOHUHqTOIVtwgiUxI+pxld4Fhh4IBkhhFKw5bQ/hdRfLJprr+pi15/5Dr+8u4TblrR/Jc2MUyoKK6V8tI/HKR3BQByAF+C8BfBQ4PnX1M+LwQsIM8OQBYn64ic3hVStA4636Hx6V25LGzI6SGCr4fPxcjjyMhypRCrRWv3Y/9t0Dx66gB+QbVzqGZUlY9dKXHtB8/XYXK+E4WLYIpVxqSaZtey2d/vx7hrPG2O9ImIIJiEmwri9v3RVvTJVLJWUL0nACYJScVfT9u5M3ieyiKyNcS/8i7POdKhn/Q/v+3tcgtltT++y9P14ghEYjSYISTAKoVACIeQoLOSmbdgLDw99l971P7ObFyBpnSSgXSUYcct7B6EV963p4/Mk7ME0u6EJXcjRJnwT2rLwLGyqiB0AKhamQpU/4c/nVhW2b9SKVY1ZyZgJKUbEbr1767n2XClBPYGgCVEgFEQM8v7/KwpuY7GTNSXr3ASXqZza7utmdktgoCQmiCOZEzZQeVdrW2mUjdvTTFUXyHPn1+feSEkJLnGBQ7I1d36vrqSiTHiaPzdhQ4AOHJK9u0GQgtJSUaeoVRVX5n05TKBuJcvtpwWlUQaMIPAPYzb429txmpeaCAabiTCQAEZOJtn2rWmFIssLx80gHPz0W9qb1md6PsrsOZbsiUb/T+wLClGOiFFzfn4rGhV262sVcTAYLi8zp9TsoczE99f8Op6Yw93n8Ft3ynbECLEkrBBbLNQCA/Rft+3Np6tTCriCmkQC2QQCjCjgrNz7ezuZUPaSj/AYj0PIX0pDqL72TjiacSAUQhMKcAN2V+L//1dn/3uuZWeuDKyRYYpgGsosZtnhFcwr31Pr5yv9c75ev3dflXvulczVlQEVw0jXQGQ5ZFQMka+AuJA8F8izYQptaqe8kjBNujJEsiCRZYqNU7BMGjDNpJIphkxlKiTTWuZNKe37v3Tyav34+X+fpTYe+va+s3nnpoBcN8I/9YWjWfF2k770oQwISRSlGxNpOchIJH7ftJKOVq+dAjOzEZxLkRux22r1/rerleZSYIf8DJChqqtKPaOZvbmUkFMECBnykZwjD/+/UqX/xppjDatZW2SxmMWAdaNgNJZjvfy8JGNl21HUZdnkk6O43VFRCdlwDEtbWv8/1V7buRw8EcNdHi0+lBIkp6TUp9Q0DqkogRkMgYfBkMtP0l80l6sQoZTX/j8rwiHFVkW367ySU+y+ffpYuy/M0/NLfzrZOfRREBmnkfa3t9RLLcIiFHgcyvL/96Vabd/7HwFEgKYMih5AydUma6TsrHPMzD7dywZAyKWsucdp18teRtz73r8R7/3/A/g/IkBEACAVAXAASIpEgJQEUNIfAtSPAOgKgFQ2SDmzKaezDu2aKMuVR65RBmjJSXpIU4Od6RzGVQ/zbpLdk93jfPY9L9bTsKplLbt71dte9nZarHqxXPVm1Tz8/5XyPy9712sRzHeb1CavO80CNKc4IlUvxarFFiuC1RYIAPH0eZCamUjx1h4QZktf70IFrvS0IFTARgbEv7/e2aZq76iy6vIRSrQOUOTwlS9Vm5XI9QpJahQeIUzh+dqbvfTde1blVbfD9IpoHDICkRAjpu03qv3qM89hWlvl2WdnFCL8cI1CZNgEmVADxALR5Ph3QC0wCxKJIf//11pd8wRzUStxmD0k8xSX99f+DKaSaJe2KdJpJFK0/5ta0pU1X75L7KSje+FHoArKERpC5D/zRzqNvrQ71tjbnOuVpVlK03qJ7aSjhB5A4Q2wsCDaaPx/zfRtB7h4DMCsyNXqcPgjj1Q5xKLjOo7z2rkquQ8AIS3mcXW0XCUmhxBaDZ1AOi1dyaVdlbkqTZQtlr5suHUgLEqWbCkB5AUIGo3j7ftzI4eHXxtWL9x/YPmxijUpqAaRjZULS31cqItrfUSTA9bb79lKKZT4f/iTiQdmnXdpP9o4CTCe//1kIT2s/XJq3V4agiAatFrs0r/7RVaFcCsgneQwd+0u1IrIIiIhpNLHq68+S/0/keJ/z73PLOzwRsVYMSIiIiLiioi8/qhatarW+Hfi911aurClq/erqhUVETHGGGOMGBH73h2FuvV+CRhM9TRozcHMSx3G4Yu6IdP3DsXYUvThstRlLpRzdi18jJxRYYSoijKxPbfsp/x/AwmolVbKodQqQmR47xv7d81RNgv8zjnlFhhaocwKE3vBPyvFkl9sqwgysq4Uryc1YOR7t38yzf6wYbMpey1lcxNvYoPAVNMkVNp7Evx6jGk2qfnvGCtRM51RFBSUgxu979esxWBm7uxcRzJeXCqKCirQTZ9VXSWT9/ZvD1nz///GYk+7v+3/9nR1AUErVQQUlCWBLDOTxOf9ufpzk6nW3ddiYxAlYgwhIsWGHSxvP34gqK6YHd1mODjWF75OTbjEZv2vjE1mk0l23r+S+pvJEJA5AgQIOBw+TtmS3K2WwO8k+v+cNPOg+/+/uzvGFWWUiN6IEiUiItsiWrQL6TT+y0jwu6vMoWIxDxNMfLf8eP6eCG/768LFUIZSpIhICSIhSJDg830Xq/nx5/y/AbSv+/P2ricVwrDY4UawMjJOknMCVXBi6E8SLlZ1ByK37YLlb599iYJuzFANhRD5PaIEGDJgpgBzM5iD1JVLx1k4iN2OgahyG8TduIG0JmKQgmoEYrkipZtVrHRr1Uu6bRov3fYlgOxYCsguZYLsWQ3IqS0GOftIDIoo47dWoHb2yQFqj9tjkPasdQC1560HqL1YqECLzCIDtMgvgUBL2KIAWtYt2UDL+kUDtCQtRUBL1lIKtOz78ICWynoO1Bf6AlD/MeSAhuLgAA37QQYaroMONMJGMdAo2GSQUbTzgMbT0Q803oxhoPFxfAQak2MKaHwec0BjYfwBGstj2UkDjsahwQQcESyFI4Mpl2CZy7DSbVgw1p5z7bfYASsdvNFh2x2x17FnveGis746979476XpP+RtgCIJWXkoC6BjCiNz2Hgj3rgEUhPGyzpR4iRJ0yXTmCx7tnpzUAYq1aFaG+pt4KodNDvAdSdocQN33cN9j9AmgjeqGDXFrAW+qrMaWudwaG+mQns7D9rEImhfVkH7tg5qZyloV1RCB6OhQ0kJnUmOzmUgdLsheKN5UGMF8CYKoT5VQn2thjdfA7VQC++briWAPA0DGsmNFgujZdJopSy1URNt1UXb6VI7wdE+SGo/Y9TCmurDRP3sqTouOsEbnRaIzhlL3ZKNbjuaegsevYOMPkIEFhgZLLPDjXGM48hOapDIf/zVn5d8My7lVgCDD+EzEAaCU9h0qwc6mywWPVKpOYDRnfgHPQ7hDz3T+27rgvIrIapOT+p2Zq6tDmarNYLBlgQmO1M42vOEHpztDy4OBVfHghufB7dO/jc8P9Thq5v/w6O0n4bgRZqy2qOd2xFRHds9Ycii01R1AUp0kem3LmFwXRZs97awVHeMqBaath052as+tNQbQFgfxNL7a/OWrdu4kVKabO1jMibMWLCa1OaDwxbGhF0w+pz2EUhf6N9B9f9dBHbgsARAGPJDEamhMThQduCQQOty+6pGuYbpEoWpcTlYWhUXa8N4sDGGZ9uLljd27/a8tTeDdw5k88HhfD45XskXzdXxYz8S3ImamFjaFl74xwFp5yisesOrznvL68g+9TZ/X3jP0X6MzctfzJy172GSZMlTTHkqUplSGpImk0EqW9jztacSUkakZYwaN2HStBlz5i1YtAQEgSFQWAw43ceV7H5aezHx9HHjEiY2xrMXMfFScOsKJsICuMH/6Nn/74bHjf5Pwo2JlyuxYekd/jW30zgT0juGdQ66fEFhUY2rwVk4zCp/8NjAon8/3P/pwd1vEe+/7tfsAoDBAUM47uVAFQgKYFtn2jrRCw2fTbf2CUjsgVCzYIJ+2PfiIzwsIjzuJeyLqRKTfSEqHdinDzArFSCyIfrzD9s3drXwxV1NwmjGguIGMPqSuw8BFh4vVf+gHvVDX4JCfGjSMuD0CoIYF7tXyEGImwqL+AAZUlFBGAC6IXh0OD1jK8ctlT1jt34cC/rKg/vx6LTzxo+ogp7FdIadbt6pudFMDfv1P+d/Me1H6FLsmzKmevXKNjatBJlK2kPa1dQLhTooEyjZBtce5UEWzGLIxlb2X+hUeugKZClCh1UMnqMunQs2pmLVfUrVSPVEggSdqHVIyzpuIB0oKZAUUlFnUAv2B3RReqGPGuUCuft2JAK3uxLnggdEo3b6Bmf+LmC2K0y4hoURqBDM8HLGfZu9SOzhUEXFJnU82fHih/ulPXiyu+ndAeMbOt7uhvvGcICLmHwtFoQ1b6bbc8A3WEsjEMQIdD3wQMQ876iolL7oL9DVbdW4Ot5362+JDdvU+S5DmwIDpIvQXfhbDaWhACIho6CioWPg4BIQEhGTkJJTUFIpp2YWIlSYCOukyLXLbnvkK7DXPoWK7HfAQYccUe6oCpWOqXLKaY889sRT7Tp16fHCK6/1GfDGW+998J2//GMFMRIIIENSkDRE3cQjddMu51W9WDbtEYwqpmW7nh9ESZZXddv1wzjNy7Y/n18wihGS43ppVpR10027/eF4Ol8+ofgoGYB6ZB9zGRaIiEoQlyi5FFLKKBRFB4EgUFY2dg5OLl5BYWnjpkybNW/BohUQBIZAYXB4AolCY7A4PJFYqdZojVY7B5/DETQGiyeSyFQanQHEhHJpcEAh51xyzQ1f8ICHPEaisXgiCaTSuXyhWCpXqiysrHVOWNg4uHh4+fgFBNV8hu1J7H/dQ0/nKHogiAEMYYTC4AikJQAQBIZgcXgCk8XmcHl8gVCkNxhNZovVxj8CoUgskcrkCqUQLoMsZZSVnOQsF7lq/y4WhycQSWQKlcZksTlcHl8gFIl1vsRJWVE13TAt23H9IGzarteAaYkH0OPTlx9++vbqvpe3gmmnK9lDiIfKFbVb6tLvabt5w1c7VENq0JybeGPNWi1iecV/IZpI/rN8+BGeFFUYWElxPOEiEro7dUuH4JZ+DDA08qmxP/1d/h3ruCNYiUIkHc57iCiSdkEQaFh4RFKkUcuqHX1ouliJUocdUabcURUqt491H3+ApReult+uJ2f8ED8n4ntnmGmW2WXOGYR5fpdlbWcSk8gCk0Lo6BkYderSrUevPv0GDBoybKSMHz0n7YCFK/i9WeV6ikIbTBDWbsKVK7zUssAClcSj2h11+XqlVfWFM3u51UZzDyIAAAFEBAAeAkXYR43bntcT4Vx50ZCjhsu8yw8tduDJCxB6jvhhk+lS1bdtD044xjVkVjevf32al+e3hgvjdGzQU8SOFSir6riSh0pRqdKky1BLXCTtBiBwQc7AYThZMb0kIiLykYKIz7/pEzfQ27xkWSF9I72jgqxKQao06TLUEhdJuwEIXJATUWa22ePO8qhsw5rj2F3CFzx3jWsesQ1Ga6wLS8IJpp1hMWOPjSuiZ90nFHPH3P689HT302pma/a0vYps+iEo2FXUDt+TchkRo7WXNPym5KBLL+vXO/no8i5nUrO6WuYp29KS7cXXeY79kw2Xbl63n4kWOyXyF6qDUYwSpXHYw47yWXkZ3TArCcHpeBG9I1MkDtwLsqNsadmx58CRE+e6ukmklFJ2xFY/tmG7XHl2TPZekZBloKCioWPj4OKB8AkIJ/Ktc8taVnUzrhD1qiAKoQ3kjGZcc90NN93SEq/isKFdh05duvXEKDGOCZOmTPu0LaaWpN0ABIZMiJLt+RZYaImlHDlx5pKualaNqh2IzaBr6eGPuJs+wNfoCPECDgKloCDgD3gB9S3MwK9Qemxl4WZBbM3kWlQ4F2xjjswFelpmShTCjrJl9Yc48eQUcuVB6NwvDw5BtXyGRRw3OHFdDJLv2onmZhlCNATq4IrQIPLDIrjVwlpNyNFFcGSW70OyMA7zHckAJ5Rn+/JZOQTTEeaBe5urTjkTF3DJjbjjhxll54aazNtwXHCxw+r1nAtd8pl4ebABVzW5Efe8uE88RJt2vTFA/UEUOkhH4B5BiJjEXm5HMnZFEZOjk0rH4wRxEnUaXXXHPQ8802EwhrLxDsMxjRnzvvnhp7/+l5XDjxxhvcs57Hlb7A11ATPhsrt1fh79DohePYteZpX5On+QWfS3Jl7JeDNw3pvyNLYxOzUjT0QmC7BghH1363aOTHQzbvRvIcw5h56AJkAnPvsaP6T+RLeZW5iuX28PPTJwd0CRqO7Ls771wux5W7bGNmIYY3VSMNL1iJKInbFeFOV+fqJColLq8anb1cSpXD0trG4664abRoz2hMaCxjfx3d/5kncVAdTZigdCpntvvFU3XPYhboDnkXMMHzAzGm1ocmFyMS7NWgu/USMf+IC3IOSu34aPfTDsuh5+VxGHeGmx348KektRFTXLaWf7yn3VvmJfbbnw+t7nS/ECuxbzgt7W2vTzdd1Y19cl0g+z+ktv6IOJs7Kek7UOR0u0fIUkirJecpCdfzjB0iV+PxNZhKS0U/x3g1lvdmPp1ejvBmcSMSh0ozycBpQFo1xdva98QOkUb+M9PtSFYpVCF+Yw70mq3tN17RTD54y9AzFOyWHtWezp7pk066J6tGpPfV+5p7+vbk9EE/vyarzhFRpBGnsvrZsBgU3HrVmqVsxsc5UyvNV5dXxDiLs+79oXsJRIai0aEZi35KzP/hNFyvkgmxGHsY7NEmwHpqkIraGr/aG1jyZHmdwtMtvqGo2oHVj1PjxtCy+14DBsxGbbF3ayuCOvzSIcfsTwCQ2WW+CwOn+hbRnItk2h1VheYXcgb0+IQmwRgWPA0JLtwUzWBxPggxDXpvhIVFsi+1NcbFL/pHsPwsiikLzQzon6KE7tZgsClrD56FNH4ZI722ABHs5bKOAvRmeGMAYv3zQ85Y7LAy/jCF6qVmur9UVJTu2rLFsgL7RInnkg+0zhrCPMdQJtD96UYwEtBNEQzbAsdF15FEBlVbg6vEsfwFN/VdwNtLOGPvQAMTCxsHFw8UD4IVDHk9D2cfDguE/rbVjEIv04xw6+f/Q7O46YN36c4KxTdpNeeV1+tK+DKaaatpqk9kWlTzcHXm9/9PASf6tLrh5HPHua9ijIVFVVVVUvlHoAMIlUHaE9P3Ibz8wfXjsJ2cfzUdqsQ44/r0tovAN4wlhAYM9u0+ynmohH/KjnjKsXZjAkLCJbbQkAAldEgz070nVYuILfq0T93VRyOKcXrvzYV/D2AgXQ9W3xtKR9AQgMmaAlvBhYuIIfcF7Wrwbj+4wf6mc7G8oWEctovyw/AQz4/6s+XOZj+z9QflzPjmELdwA4er/oK6dn9JaIki0Gs6q169J2cuHaF0w9/XiTuSToqlJ9UAKeVK9PD7m0nQDcqh4U66e+p+Po3wa09hslfT1Qv1rn9sTvzxlNll9NNn0buddFWGHZ/26pDE9oKA07pF1LId1fs5oZt6S5OfG27f302Dd4WLmlVDoiCqKLL2ZXma/X8cCvnmHsVXtVYJDc4FcsNOmZHH6a+g+9/54nvbHnGFPKX4vs1yb3Dl2oYkin9B0FEsxL4vK0g33EBqaF6RMJur9fb6/l+koKVVJwMRXjBULp4GrGMPmJ3y1HC4EY7O13y/KPD/m+Wux4yoZ3TQThGaSVU75xexPi7lVl9WXmRkROXbUNtBCON7i7d0DsmWFdgY5a6/rVPC90Pvv0knJwww+9cs/w9gQU7l19r2saeM/H2dupXdDcZHPV0YIoUq0mcXMODsTXrL6Tp+nSXo0H6DwHAqedUptiXq4cKMiQXABOeAX9eNdnw2xYnC2N8cB6wk0sapcr3VHpVGInGNvBL5g1RW1tpNthJ91A9tBJGUwFT5+cHFaSdu0lVypmtIJShpxQAUtpZmpfr0+xU5fTF+9IBXro+9sLy0uLWUaYp7CLe9uu+//JqycD9vT40vfWS2/d9Gq0j+vTb/Dlaj9h/cRFYeqa+4b7RwoO9P8n6ug1osWCGUGkh4YHmHd3eUzh7YpTP+X6SfLx4IEo/0f22XHy5Q8/8hOlwIUZToI4A2Etr++mB3jUo/cT++/3wHuhWEVyjKTJnvbfXA3fWzinHHlMOln98IZI/POp7za33ky2C/p5SrFEK7Ar3YRUXyQ2ploqpthyA0OCdZVlCXqlFdbAU+Z6Axpk6HLkadbLFUZYfPoRjVFP+k9c+2yMTQZ++xHsSW92PwL7zl7ckX+F3eLfMuSXJbRULz1P3L73aETxVENAVyLb9yFj0IeM1AMT4EiAeNC33yFz2vZPCnuX8XtSuppJB5Wt64LSRaTAhJSB9hPWVjL2wseX6bzLI+iV/4avrFYQTh8pEui7B7Yw2N9T0IdluDvszTewn6y8h2ZL6Bns3YBdc3eNnw/I6cbHS9EMeICYftyFUun/H2FpPy0aLezH5zkTgs3HfRrSwkd5UnJ03G391tplgIVHp95duPcV1GNmD8xOYP+/N3Kj00wVOA9tmgZwZoKQhnpSR3rjoMluFQHgt/n1fLkinK0mw8qNHIfWCryEFIUwRGqmqDAs7dSNqzVMdgjH4q/wfeQYIyucZu4ztexs00DgWqnd3XCbh7u1r0c6+emyVo8wL86Fe6VPhAEjos0USf7WyZb5R4qVwzRiAXj4TMIANs4cyJoFkD3LgJxZQ3QDQwwTI8+kKMbkqMXblOgOs6PHnBjgujqYOw7lGYpDaUlJvw6O9nuqEVQESKUyBw+u7pxpnEwdSc5Rj5oLDh2XX2cBdUdyhXrVNESrpLE4q7lW4v4AuFEybpaOWxHQUgZuR8Wd6LgbA/di434QHiT4Bx4mNotHKVTxxMtq6PCKBXR6VYRurw96bfnFC+9Yyssi8km//bWNQZ/ZwZDPfc57e3zJsP3ho0MY893NPGTcYT8y4U9NMuO0M3z2s1+Z84e/+ebfIGAxaBgLQTAeJkKoTPJFrA0s8SX6XkvYaafVJ7WFvcMRGt+IhCUwMlEJO3udEvEH6ZzoFOmS7NQYmB1pdH/2BPTnHAlH74xE6pGsj1rfbE6eZ7M9Ws9nVwxezL6YvJyDKfVqjqXcmzmRDuNyOR9Myf2MuS2PM2tuXmfRPfmYJQ/lS6lbvLaVgwcWukgu1uoSebWiSuWjMPLFKfsPe/msh3a5X3pir/Zb31mEzMUUFyuLe1UpsrxfrLy49Kaqinrv7C9j2t/2r7HtP/qv+Pfv/V/W9P8HFg4cdlhKogZsyCVmYId64ufyJiZo9jQ/wXNFZydmnpk92d2dczT7e3xO5Gjb50IqenKKUtk/8AK+8M7AS8F1R3mUMRzVUcV4Ck9hiugfWH3QoFGVBwFVxUhjrUQJJSAgFRKSEXBQMFFRZaKFJgt9HAYGuBgEBDIxIhRiTCQTM1IiMjLFWFCgUlIysKaCUv6KEYwbXx4tPEc/sIewLIZTKCJrhbMwRFJO3iq2vKZ9EAqBpmiua7ZD0DwCVVCNGsUJNaQ5Rcmn9RpnXQLzCJHHiDyB0AbmKYRnYNohdIDppGv4pGvmgm7RbUDxmp8+KAageQPNW2jeQ/Mh0YoCLk4Nzv6lDiTtlk6Jjg+PLzO64Gqcts6GN7zgA4AlBaAkDaBEJVOrrixaW7EVS3Egmju8eXTFM57BBx+veI23qxjbLt7Fu3gXr+ID6iLIlxmoRZEvC1CLucrt7fJVfoDICVjOoCW4UAgX/oCgUOQmh6wwKFNCUgR4RRE0FXjFIbdcCIoncOoL73PLrYCDoBVfZKIr8ICycgjaBFmbkdky6Kt+qAniSoYPOogPefKCySNZc8kfcIzvSWhY8wbPcyqPuQgKXrow6S6jA3zroWEDaF6Fgk0XvuGtsKQOCD0Enveg4X0wfQgFH4HmE9BsA8dnHd/tdiClejmewLAXVF9AxZcXRd5bcWMW5gDDD1B2BBhHoehHUJ0A1UmoO93x9cmZeD4HFb/A39cvGJ1wZX4Ffz9D0d9Q9i80XALDZWj6D0T/d2XFlYgURax4JLAgSj2jX+CsIRgBVhnxE6jaOxZYB4IJGiuYOLCDOziusJREgGwnYDuDeDWwXdCODjsGWjFhxUElHlL2wzwBHglRTwQvCUZJcS+lJLWpI4NbCtxKg58KjGOQ8jowjoVZDublluQ176e6GsppIeUkME4uSak+qS2YNJhXBK8yaJVDrQKPKlGvCmHLwHgbttXgWj1mNWBQI/yae6Sl+dMKhZajWFs17S1MR4vS2f3TBVrdUOvBtl4YDYJxGbxG0GgURmO4NI6giZLJVs0KmLUSg1ZBazXUpkqme3rWY3UbUGljyR+tnc1QaAuKbYfWDqjtKtnd69nXW9nfljkIow7h2OHyONL7n7/+g8oJlWaR8hMwbqvkaZ/OMyg0h2Jn4XcZKb8C49clfe1Lf/sz0IEMdjBv+maGwOwmyt0qud33udPh/N0Pcx8aPYDRY2x7gmtPMesZBj1HoRdlXsO0N+j3tuRdF+Y9aP0DtQ+Y9hH9PpV87uJ8g34/oPUTar9ALAa2ROEAgAGVgGAE3mbjnAsuJJeKK821xz3Djc/9BV8s+TLgwYqvQh5GprGZRSTIFIUyGZOKjlT4NMS0pGzA7KgZ6HNkwrnkKsytOPfSPMrzrJxXdlRbb9GVpWVWVmk0WVun1abTBdHOhk18ZRPfmOPUFGcl56y5YMt19tzgyE3O3OLKbe65w0R3beiPkvv8+UsgDwXnf6zwrteSkUxEHWcKyO3ZIVP2nQK2C3oy+KlUQ88sH6gn92JIPbNXQehbezXym5mPnBqyUwalHw9Api6W6qKgtjS+uspDviSnveLXygS2364KX2t/DH1F1UDOj0BNuRWsDZ1CxgrWns7lC/j+dQM0qqAX0BYBpIHCYgFhVwv5RRbykCsEdOZB7gaUrV6ABha+hewlKWp9prPBzWezHc/IfGA/52vsuuu0Dudnz+nft/MoOOAKi6efY/01RawyI7kF9LZ4wH0JeClgoi4c4DDhcPe5CCksm1pSY4f0ey68wQ18j0YHaPjQGENjho95krBNtrRLhdZe0u56LKup6QhwBcKNEu508JjT8cYHOrw9Bn9ACGEIALEGhkAWBNEiODFl7imEw4QodqTwJDc9HA58+CVa4EAHOki9AmflY4hzamG5rAEU6oDmEPc8hNG4p9Aq6DxG4Qk8bbA8hecZLO3wdMDSCc1zEF3QdIPogaYXxAtoXoJ4DaIfxCCIIRDvQAyDGAExCs1HOoxBM06HCWgm6TAFzTQdZtBZQmcZhv/oiNCR3KZCD08CutUwEwM1TKEl9xJA11ejSGlUqY0m7UTsC/pJILRhCqOywEJWYuE2Pi18Wvi0iqSOAKNuX78KV66eevrqG2hgqCFPHl++kUbGGtvvkBwbhQLKgcKFVa8xwbzT14nnF3Z1GaTDw5aflAKsggCtSwDpllhgTnoaSc5o+hrOaPrqPdXQplZEt2yi6zZaabtdAtONWF42SnT1Ritt9wpoFiY0w3kV0YMSN8abrcVFtFTg5kACY/450XJ5wJ6XtJUFsMe6144rGqpPJukLuRQwvi6TeQwnD3MM8mtVb2iEMcmSI/NmWPK2bsCyLWDanqga3lTshpBDKFlf+QgDX9sftAEHrgd9A4J5I/h2u+2974fnlOkjkC3Esf0NPcedACG9KTu1h2wCA2cSRHUE1oU4JyD4I5DzZ4LYzhpS+v6RIINgo2CjYKM8qWBfMCwbNwSWxY10CbjHc3ocNRh4WGgQEkwR4lOCHDKz0swaCfJ4U071QhJegpC+Vk1UMmAhI3BlxnUxu1THlxsUARkBGQGZ2aZlpHgMQnNakw5ZayYvdSDkya5VsztpGEzEcwhN1phTGfOJSF5ISjdAcjghP8J2W3m4g3Tej65MniwmZazSy5nTpZ2N/OK8myC23+vMmXzJpkGC8I5RcmmWICskNwSs3Ez0hIfgUcHbunjQTXjII3CiwokKebKlmk6BQXoCJC8SRHtkBGQEZASqDBjSZ0ifYelnRMDKaKCXsQDJRIKYPzXBJ0+WfMnmc4FjXiUE9jkicGDPgT3GlPtC8ruAnD8BIX8DZpYC5fxLCP5jkIOHZQx4WHhYeFh4WHhYeFh4WHhYeFj4wpasACr5Pm6QYilSLmWMYmAVC7vY1Ev97jp06XRcdEsXt7j0So9+6TMoA4ZliFc8/OIzKiPGZcykTJiWqY4jCtAgaBA0CBoEDSpSORZgyqlLcy7ySAMSDBIMEgwSDBIMBRQKKBRQ8JvW011qH7kSuTog/l2qe3cuuuXbhXAC8TmtwroKaiNoT+ltf2/f3usxrb1FB+5HSgi8IvbzG3DqQqKbiT3aJpDulxPtUnxO7PWlBY4F4pTa9utPT3oH1HrVh4C5nPAuJ0FcpN7PYpSJnmqL/ffYWnoQsWQAf2y7qYMGrLfRUdtKgwk89zYFpUD8KNPHWojPnGwibQmKF9yldrWmNrabbdptm09xn2dm/4eB+RHctUivQdG7yflJrmfmHIobC+b3mtOgPna4/w0gOKDbnReQgG5/H7gAmLjLYQGKjHlI9O/Zff8fXogXr4WNly6E5R/cyp28xKtiyOq7CrZq9Ot5jT9HURNqUtPUvLS8buolT9Nqeq3EE/HS9si5/1ve/txwAT0xiFi5ZW4oDfVl+VpY3VQHpoNYuTpKujrczxPlofLw0nvIR3jmg2E5PsLH+SSDDLfxeodJVrCK1UyzjvVDUxRo9JsUUlf6L26G5ygj26sRYXLKLTYJF7/Kq5ACFKQQhSpcWOEUoUhFKVpxihdeRJGrjGUgipGWwOtfxRBLnMS9MlW8Cro2zPitDwnxoxTYxCUE6mXVxSbKM6Qa91DX4rcz36le7kgfzjPZ+pLbJQtXwXeQDyGiJfLgDn5FS8QOQgccJVTQ/5HyPY4U3rk4d98LHFVWnaQm+dxR3qW7bZeTr8fg8oh2m8oIQUL0oPBcXeK/zURfK9wXP7i5uahuSmoEvRkis9kROuLcof79DNH3z5rQstolhLzdIkjWgPN/fDyniVvQAjl+0tk5ifH0/ZXy4CfcchpHTTxerTSk0A2FD4D3EJtTPXQwMbu9kYbRNbSWLrakTOe/Hymk+LWByo7gfViGHVIfuED5gDyEYNd4O8/nDXyrHCILisOHy+2yslfBl0J1JrI10JfSEVQZ9baFW0J104iM+EgN9HZpXDG/nBWV9yj9t0zFG+XKfzjz8mhMQfUF4AZV135tOJ+EsZ5joYX+AxFUxM1Eme6Efvz8vuF//+BHyi6MigmgGn3h/6yHjX4f+df9r1KFrB3jesN+tP7dDHzj1xD1Up36FEAdLYj8u/pQfz81C3POEbPhTx4GfpQb8OcH4WVZCPe5V61RrqQr3+QHGZFN5H/ysFuuK2fW6I/3MQn6mO/4+AgQ9dP3xtgpCa5fHTxVTz1aFfuG/8cLP1L+TSCuZfeSGnJ1xnoZZJPNKT0GV7ykgPnA5buPHaNc7CB+yjkJWP+jT2tSx2VS/E5qZjFIntFFrBp0upb3TNpk+tXBfRPtRzt2rv9SIgtTP9n+/MmxI7vkPjLv7Jrd6DzAN5+neMpaKEVtpKPsm0Wyt5ka/62G3TRN63QIBhc/B5Qct2Yvnsj0TP8MzehMzHTDtBIT+NJ6d2ZnQYapw2Z1kdyN2Z7VN7gKWD2KOkdzOhdzNTdznxUoQFHEPC3SsujlaY9oDnKYox3jlJ215sxpOd0lWfKlKk8PMW0EbSKhtkwWaoNCC51d+R2jKjA0NJQC9M12vHufLJLaoaVdhmVetqD3eIELXu7lTW15ZwPyhkrkE2s7J6zwiq1kRVdm5VYxwFVetfaSrebqrN4a5lAng61eUzLy7SHXehns0MMy5701W8tF5Fwng+0+utgwZGu7Duts5M67T6M6BT6GAUh0oR524+rDy9eePwTaWbrBuzd2JLsVVe5XKEU5ag/u7bXHVkq7ScsjAjh+Dj45f5uiTBK6f5nadEDNaBYuvjaY3RMGmWszVLO3q+BqGnXw+XHyU5YV83n77Cx4mVpEBotbyt5tYnNDLW8lq1jdWsJA0VBcveOkVqUlw4EOQJnGwK3P9gKkjwhWyTnom7FmDDBKaxyRRhlhsMFiTCDZ2nYjVdGOdnHKuXeaM0Pv62V6WdQAZMyys/nBMjvHjQZ3TbhAvHGePeRZv3NrbkMRVZIFf3Yx4i4DmgQCJNQ38PDwX8hx7IBMsKkL1qmuo2h525Xcuwb9Mu2gvD9Ua+N6xN2UdrdClimKO1hwZxdDHlEMcsTpcf9qJHgop6f0POoJUG9w9Lmv7GXlac/6DcZQTWNVz9wbP1L+aHs3WTnwEVCbsPCnIxvf+ylIIei9DZaqeEzPGU02hD0e8f9xjROv7FW9zGuRbeLlRoeglgiGJOTfvPr1lA142+E1tGEI8519/wBPOkqsk1Cd1b2dAtrEd4GAX6Hhj+6Uz6XGlgI54oFwC+ZoNU3Dn8VpeCPQByIRFhExT6TgEVXe87X54xT6kYOouP1ZO4VHvBfJyJ/N1kAwMi+tumKUoxalebFGJ3oxjDh8Fst20iwlgiGS0pYOlqczkzEVMzBQeust/oYBx/51fItTnOM/+An3TCFs3GfFX0fMilnNOrFmtoeRLWxniF3Cw4exj4PGx2dwnFOMcp5LXDn7XOfWvyt4zzjjZ+TMTycC9zf60jHh+U2yb3gt9/gPPl4rvgilEfcF44QJ/7Aq1pISqWSJNMi+8mx5EYtMlKIRvZjE+gTPiDjEKYh45CT+2eEkJSoJSUtWCoJJVRptLyNPSVcGMmpjSVb/DfQItDlcsMw8lU4nQFcDSqcshs6Kiy9UU0PLtEqzJbhFu5BAvqZIUEHbX8zVyCtrAwgY7v6QrlJnfAEuhxcBOMOITRASksg8jRomibV+vg5FlFFDE52PabSHIaAlyjHGbJVzEtiOaFigo2C2kOgB56fbJ/5zxdyF0GX3BdKdesC8501GPrGM3WNitFAXMHnlyb7ELGEpy3usFqj0PvH3z9eUpiLVqUujvEjwI4Vzxy9IS9oT+u6fcnM/UvbBNzBd+Za+DGakHz/2En8q45lKtLIfzmjmr4mWZT1biWc/b8gP8tCnogxCGb8mlI99nu85yXl+5LqQ3OWxjNiXohStmJzwiKu3qZtIJ+AVXgtu8E6JS5ZWHxWeIJ61NL2hPt4JWctRTtkKkYOZoe7E4seVyZ7S4Cls9jozfD2rEpVOhbPyjherajWqXd0a1KimtagVKrWBSN4Gkb5ED/yvOjWpNb1ZggktjCiL7Vqo/iLTn9UPVa6zOnWKXrctdbclLW9Va9vQ5rY1OMcI7g7TCHS4Y53sTOe62OWuqcubGxDPdE/jW3kPz3xzQn32WS+Fwm9DvW3CpUemhz6f/udTkM8dqGCQLT0p1B0zXMwfn/3OHTwFXyYy3dm2ufEKaSvGAhRQQ4ftVmGEhasvHgQX3uBDEDg5S4hsbiiGcwTUnN/y2FDf9uBWyPXvaX7D//tVTkV+gDk+sMYOR1xI8VqT+bCMPzFhmFIlPoKlghteu25DdShjxYg71e+tqSesFEKDTVzXSgen2IkPoUcgJPoZQr2I882rnLOYYJr7j6HZ7+1WVu2IBgvEXqhaq9cANk5b3anLwePqI07zFpmuuOF+p774xDmJJKKL5TO/PNVDNekvO1U/81t+VxLJpZJWBpll23GBguWWVwGFlZzi6RE9o5yKKqumps5kpJ6G3+WO8txrrJmWIo5JHLe2Qv4QeYysqe2cZ2hACw061olOda7bumdSU5jadGY0i9kNeh9ll72Zz4IWsbilDLW8laxS9gsg3RNjzOe1Fe+a2ibAwTFZ3wP/+059bEMfhcJqvn4G+xpKQkGRUdPjyWBQ/Gq+gOsBgLSfEsBAzaLZvvt2QPBieykplKJPI5X2BtSDXZ0KH6v3DvbJuUpt7vnPMqF/gKVIuWk4EwqOzal6L7ecI5IfMjIymmWQVx6f/NejMLupMFnzT5gmU6JDNs4PAwkmEiEMo6ZZJ7fp4eSepRrGTTd6qayGIheWp16MKnfMspGGoP0H3Mv+h3vZuNhw3AKs3MjYUESQ0dAinh/oRVkBrEpyXnw8SEn0j0w0eHjoqmqrAegSDDMXawFfMbtJJsAsYNHck2AwUWnO/S/EkGJsSEfvVQVghRFAXcvqMbqnAmKEqgRtHg+cozJgvpfXaY8CpIlqV8XgfnIutFI1LVUq857FFZZIVhZdSrG3ZvHDhra6NLwxm2qTURJVvci+q98kAHytTun1cu8aPdg3YSGnNe8ubRHtG/pjQcRJB52n1ep1UK6hGJMJ3lwDwnAcyaW46yhWQtWqg21hg20OK90omy8M0uSm5qa/+K61bQPMq8OFsEbvZdE2fyRQK5Jq0EkpnzLHLoygVo/PZBo9wbPYMNJopbu/6RnbGySihi3f8yKbI/spEaPT8cgVSg3GaOaL3Bi3bu7iLkOFb0eWAWViC7POcIvO25Ni38NEC6uZ2vHBtAWTGbdiOJRmaKDymo822ED4wcYDxM3C+ykHCSqTDNPiNwf63tMwsr/Syl3Oc6aFc55bPgO7DBHI0hiYUMcFVmxw+1PR0kLTaZ5Sx4oNItoOfmbLvU6R/0xfgsfKB88ucMerzEUSfJKm9ZJyv2EybUdirI6VfAPaXTSsAcHmwuewV3GFGqvQrvPVOu3T2DoOlKfVozNxHSoX8y4IgNXxpEnXxBEHBQrmHehtXGCLHZSOhgPAjfGerOksBWEb1n1cogsdPiHfiVgjV3UEwiCJGOYh85nDUUX+ZkVwhCLTfC5AIAyiIyLKxi8VcTNKEtmYR3CmV/U08hKtXr0G1EqWIbkfZfEWcL0Q7QmgrAeXsq4WAwWkJTtoZy0hxBoMYjKiepdhBrKvVirJWGGNK5G5afocbCAeO50BP31qCyOIHgZ4QGu21Y0yctziJtdo5jIa8OnkHFcozWNT/iSiZ4JY1ysclPO2kbeqNbi0x4XmqQbkeXGHDg/iRdkaNUeqjQ7Ba5GY8t6wsI14RjN3bSeZ69UYpbfua32dWrxr5JNZWXBXgNKKk2Rjvqcla+4w0XAKnKbaUyXRxv20ORZegrme3RUudPP+W7MzCmfy9Ma5WJRbSSxJZpQN1n9A/zS3Yn4o2tmLG6v5ohSfmoJdZ706rOJqzRZScisLMJL0zEG1+krW1tOgBlTeqEiuFd3CobxTMcLq1AJbIpbadeE3iqvPJHYKmJ01bR3VUZjqOJSntKrsgyAzu8HlM1OSLrRiqsfNmBppGprpQEpT1pSGNp5Z4u5beds8khoeB7mGT6ocWXUkN4Uj22Sr5l9ynNyKO8ektoRNVgI2kS02iXXIg7PwUwF+Ig0BxkMq0ZW//Gqhwr7jMyvSqWleJu1Z7Y1lfDOZpc6sjc1qMwE+Y+MMImjRsKGZoM7QhLFUCRrk5WeYk9huoicdq0b8dNCwlnWLcaMbdCpr29Spq3DJwgncc1Dw0m4K0wenYaQy0vocUXh3yqWNhn39HGXOiq22OnzRst5SGVw0q/QaUp41nKU/5ZdMd+fKIXcabUcWzl/a+pLzutN91eo/M5MRme5n/HCQbzscu1WTjki58zZGbw5LlPX7upVfuZnITq4uTXQHZGYzUDNc8MAHf4IcayJvuOmWFretatb0iRn+8Z8VRDY1hJgMUxA0rO5gk6OWwcrMNkedRXYpsFiTZnuyIevSmlfpjUrHBIWERUTFjIubIBAlJC27RkZOIZtSjkJaFhgcgcZgBUKRWKeXumFaAlGEdHuYPP+0/d8lhcERKLS2Uk6ZLVYbWzt7B0cn32GwODyBSCJT+AKhSCyRyowxoYwLO+F0ohCUokpSe8vb/iwgKCQsIip20kNnn7dwtaxl4Fynk75CIFFoDBZnzp34jx1kMtcXKNQfepC9iSaD5DroYc9yoJH0ghe6lSMf5ahHO9kNKzoTrtdkY9BrtrvHbNUG6NVbYImljhiYWk2dUeeJvP1yxK/7wp78rxevydoJGr/N9DikBcZFgreMzjXKF8ZtwAj2p9Fmz+SNJATn+x9o/Y0S8OJ5SL2LKQZ3JNmC+/n4jM1IkE2dgQKfMM/LAc2cIlBYApla6xjG3HKPw+tcIE5tzH2htYs1EZWmZ7JT3vSEYS96zowlTI+47AiaaKVzX3WbSr396Kss3TF7F2zypepIkiGrDGXU0PqfdNsY8tyPTzG0VQc0jkjRiOWV0A035zrb/UsnJ1WoVi+lS1xRpKqZNEnjynnUgi0K8ZgLVlq1JSEfWfA3v2hEQotdvraD3Ow5mmpOdtVEEMZa4jKmei9f16RgmVbVvuytSSaJBOIzstrNSzbxIRr6TBeOQ5FqYficCsfsdoEulGal/IrzNag8f1RbZvInExrH5VNfMYpSJxELjiuT6yFRknQLeDOao7PLfV/hIYfZ6s8Q5kibTbb502VLjPrzceETHb608ukVKRdtr2HTvlkBYMXaequtsVaYKOsk2CBRslQZNhoxZoVVVps2Y62N/oC4w4aD1QQ8JZNTSpMpi1qwUOGwIkSKEi1GrK1y5dmnyIEc7JFxSJlyFdpzXNx/Jfwvt5aN5Lr/b3L1UYEco0hspE7OG7hsuVcxsvcqCjv0ci39JDybsT6veIw/wQU3dkFpDvF7q/Ah3H//7v9vai/oBeVLgvkYLt1YXpvfUpLuX88J500AzmbgwQvy86ZotViPrUx5AUSkHyMuhajHqnWmWxJiHKvIpbeoSFDhPDTMoZTL00e4NQt1isEy9y8YjGgamMZqpmf2ohLLWMXmfmveIZGMz/N4TaGb61EBNSyvBQ7NR/voMltO3vt8fxYIH/Ckty9hKyY2x/56LUlIpE2kopBvBKwrrJxVtMr2RLjkNqmcN+aBUrOaw7B0hp7oIv2CSi+cyjAbV6ZVzBcUyixbTtkESSYickYUEoYI5WfGvOWD2AUSo1j8iT12JsX1cqUE0tk5eyyFJ90YazMa50KMb/4XWVGt7b7reVxS5XzIJCiR33nh0pZo6YaN16q7LJe9Um0GlABb2GDHdmKnSSBa9PoTNnty7LZfsXse8f36a/RVIVxQ1TZPiXT+yydUNUJdQ7LcPYPVYw0Kx4Jr/e+bbdVqqfYKVdfqpDwNUV1EfbNw9a1HehMLZ/7STg1urEY2lpK4UId17KUEnR5w7fNqqqI1X0vSgYrXygLDE+laX+7aEv4h79f3ut5cmJcTeW9EBxrTr87rx72g9Ly5kYHk27ut3jP10igOzWE6xFHFw65+44V7NgG9oN2ZWWlr983L2m+no+ElXypk6Xb8Dk3/kyMGj3WbTGsbW1dGe+80ZTQUXC9+bE1zNr3a0v2Cmqk7rM1xyJHmaf4WalGpGXJmW0HyjI7EgmG6oFZtjc0N99yhjdUkqyJtbVG07vMeldHGbdBGbdoWSLRV29xTnNq+nTqpA0en+7s7i43+DEJ6vQoy2GpmPpAuRJlKUQt115ZZ7Iou6XJ/QtutXLS7thuC0/+7j4H27GVkAyGlHnTh3dbBV4X3Vk0Ggm8MPEQlSf9zAKCR77o3K+iYw6xaD/RwNyPdYz15bzTcMwn33L3foV7s5ZF3UQBBtmtb35u9E2x2Qu/1oe9i0Md91ped6Nt+sFneoH8H2aW6DOkd30oRBjC3yAU3dhPy/xC5udt2e0M6FD/Zh3rohhH2YXlvlGUPCn0+wDbD9QPHPWyBaR6+ERyRER8pNR+jgUZiEfdg5KWNGKVRGfXRWlLhoz/ex0R+krb72fj4CF6P3TiOS9dDN8clikfzmB7xlBdRcMmreDWv0eUSPZO4iyHXCJKRkjSk52ATWclBzq4pJ4Q8UPJTiKKUCNm9r20EpSlLBcKgVKUGtalLAxrJrOB9RAta0Yb2XeuXQvJQ6Ec73t9MiudP2Mx0cBj9yjzGLOis3AXxF3+cipc70nyFDS7jKs7gJgvv0LcDfsRdCEDhjdPNclbBwVo2bIaBfXdji/BgdG0mP2VZwXteULTZ9l6OQYbZzV4OcJhjP5w4yZnvI5zjolAS2QGmwmCAKHKZa9zkzsVQwDOAezzmYQ+e8ZKJtR2FkmzJrkAwuBT4LGRCJQwCWCUSk2SwQUSQGySFYQrRYUhCAhh1MNokeRNfMhhfkqCSH6oppS4twaV/QdGVd5kMYNdcjov3Q9aym1lwBrnki8KgUFr42ARYCSZcsxmhO7pgsyvMu0ZRVQEcM3pBHlnbYQpVEMI9F2VpQRDsre4U0vtigMIiVjM/4ffO+zsEaNMmjDvqpp31KBSt0UY4H88Qg0w42pJsDDIo9UU9VvMCkdCr08y51yBrfhoOKxw5ltQVHXUuXQwkuvBUw0ofeTrnRwhRJFYTaWRfEArAULU6umhr4gFGmGKBFTbYP2n0JDGUpGbSSmesQv1IrJkRlx2aA9EbVg1Z/5NkgWWspRbqi0o2FvqU/GRXuapU+6Qxg5o39uabOonaFHQohbDyXimcYjkfpZSXxtr6UwBspF4NaDhv4JEnjUVnMU1qRnNa1HL8Zg9gY+8hWlM7CWtPDzEqdAYPxTHTZeT/Q3TzC/vtpZvuPMmcGoXBAS44FGNeiic85Tlv814i6VRM9dRN47RM+/SVagePL5yu+bbSCc6PGTnEMz5TEz0Sh2PmR8Aszcqsv9uHJ3afrYnP/nyfkzmfH7Ga6xeD7+ZxXlx9UAQthA+mIEKZVmjMatH5MKMI4ajyAn2Z3rp2daxL3S+S1Eo0LZmUjaucDr1MEIlYVjnkFCKP/JsjpOigQpzVtgrCVFVjKrb3EyYIUoMF6A+y8aGpFlq1MAD6QFGndUyQAHSwJJsiJFxJ8wQGkiCUWXfBFzB8XRsSyBWhgval1QuPcgjzzUh22OBTb7gbXgQQRkwDkEEROeXL84SrhuZz8gxLSBhi/CqBwHYwGRcXDpgvYKzBEGhXCQUqVolKw7LKVbtRFFWPUiqopo7GCQP6FZYkL9fo4ht9DDIirOZVUYN8n5tEnccUUeZZYoX1ktsiX4ZjEP8Qe+uFfa1K3gbtO8D3neGE8zfv1Tdcc8djyb2QWEJJAPPQgGAyy2CpkP4fgiD2Lsdcco8YGcqSp0F6eV4xYcXh//Qtm0D7/pnwCXJyE/6LnxBR2yBJkI6pSRNZVCDDr7O8fUqb7qmXASOmzrEoIxqn9rmMZDRds/QfmPW60gboTLd094kmMbmpTGsGM7/C6qjVQIkNm9u8m6tPsJiFYZOI8dzLMSxjOSta2WoITcvG7tnQxjazpRG2hTgkPzs5oAaMAIBt/FsQB2A4IVYa5EE76LnUFSW62nVuzMdgb7cniKJDwQmW+5v7Vq0ZYX3ZCI943C+ectTzix6UvMKXoK4F1/fef5uY+7BOaupdFPzol6AADZhAsitmmQoelKCyMr+HBnRCHLJQhmaBdyP0YQrrKlJ5ZHdoe+JyhPPb3/dSRCEQlx4d8YR/IxGK6ObCBZH+nQfXvHYsPzVFqEYj2tGNQYxeKbQwjUXIxmIVmzsmGd531ylJr6H0kBWysPvlBPNqi0Ob4yasijnb+Ihp3vwwY4aD79VSnqrUpsHDttABvyAIouveDGQ4Y5nMTOaymOWsZTM72cthznKcy0HXwsQ0/M/f/Oe3sD+Pu0Pvwx2tYe/znYDMm6NXYPCuSEQQxVESpTOVKI/25inqIUWBGh0ujKXCjg9oYdfEb8AjPEiEOTjxQcOnOBClQp6SOOq09sA+78+Zie/d8cFaCj0HjlzgRt4U/TfoGH/6z8dMNIp3tkO3dL27Pe5l7yuurMpqqq+p1jrqLFJPEXTNPNF0sy0Ua7WNttvtoKNOu5ntoYbUR/ds7HvSvyTv++n6U/p1DTPaGFM2VZOZlukqUTvL0+/t+X6DZm2Cwrr1GjBszKQZcxYt/45b+/42j9mx59CxM5fttwm3HjyX/Nf8df/rKooiFONiUkyLebFd7FVaRdXV1VhL7Z96obr6Vl+DjTT+lA9FbeM8VyN+pCvzdRZxHjAGZqaxLTOP4njPwzaNBLloW41Ryazk2sawwpPlTpZN+RKP+pnXwT/ySnOaVwrjbSmcL7VudAfH2pEVjDI6UrgBFWOTGVZd57M1u6EWVlm4DkdES8215lLHZCrb0G7nu57laUnZuXNgP/CvhvLU1Ku0WRYbxXSfHMAw9T2ymKWrXkSLn+8Cg3GXG13VxuMOyjQryebYjqRxO2uTXbOteso9rAkxnXCnKgNqpJJejeQW9jgPA5qCGrqPEA4/W+UfZA42VsbGR5kmhQVYT95TWhWprIjiomJ/pVYEbTo3HSrjqSzumtIYVd1mt3LaYSHjdXBMy0xpMcrFM5wMVQNn1OxS1XHgVshPkdRYjNt8ONsKtMYL6QfBwOOqFS65wnzlFqCJr/6sDHkehhmpOdnn5U1b7p0sgywFyP/Vvd6umEUJ3AI2GuQwWitwKxAFpoaGrADzbDC8rSlKg4rEwj4Irw6YnVvRIshDOlT+aeurrdeGM2zgEBtt2yxqvihNb3CWTj3ylaekOGyXg5pcLN6ZAdpXYDcBTxbaS827s8yZxeTWZk08aLPdfMATGKmgYqOG8YLVKY/WTOfrNTaGsDBM1oXmsErhKKKPyeuARxE8ipI3LRYOG4uBjcXpsTHThpUVvkRQQQQVRFghFhGqu8GhDk5L0XX00kS3bSUwlZRSrWk5ak3Kd7AHvYYizaDg9QRGkatoqGJyPzs5sLURP1AZ/bBmSfkaw2xK+EKR16X+FFaqe1ZoAk+P/nGML1WqH5zXo8vBf8Oda3OIxCeB19n3VdV9WBMehdRbZMBTQ8oF3RPXdKHU87LckfrF6We9VrnVpoCC2SnmNaQn1tEbIgtWoih4HSnumCwaYdd19yITKzLT6lnln8NXod0U1aLVzJxcbM7UCB0GPS/GnE3mJ9WNG15MyJNG3Jo5umtSnU6VM6XKMsSl1KyGWNnutgUEOwybVRQ/wKA3tYVy2Apb04g7huh/X+iMxI8+pKJLLa1aSp2gvNc2lssiLoyUzJb0zLBjO2AbZbokcHo5R/OVSGHaUgvJ89abL+3UXXc/5d0iplJP0yj1mnLjeTWGm5F7Kt+25XUgxMJeOtu2FVF67m5RSJHE7eRUJil2gkHl+DQT2DGKQrNSSj4w3Up1HMv0yQwhPgyku+hUGWSOZ151gGEjkXwkCh1WkDDpK/CSlvxe5csQ0Xei20jeA7csB+Ej1FG1ZlfrtZV3h5RsqVzmgoM1pMH2Oc6fREs7ZfKDy6N7FZNW7U/KlnttAZM+Xy8KZBd7h7lqewIueol4aihMhsEl5ZGqCW9oz8VKjcHB5pbBczrsJa5YRVynzqctqGtPu21koGKysSX3ruMjieN+0VR3qOO1Q8iZMcclG4cLY9Zq+rP8gT7UyluzjlqDxlDs71M2l6TOZVTGrPkUVn3dw80MzYwMLIu5ZkoRPO1KwlvvYO3y2hY14dE4VLxe8qujNHSpwNWXXypiv7SLg5V+x8BITq/ZYUUmVhq5QWskq0MlUaahviFTGmOqMzjVsmNhqAV/kks7e1n7aVUHZslPhqvhwwQ+IS5S286t7Vy8UyzSgjWr7iVUFLtqIghjbYsrn4z5FAc2n1nLxak2c9dhMGB3msGj4r3i65oUkrAMq75FkcRgR9jB3JKFkoVSPiVdK7DDWX526fNJFSPqqPIw1TI2lmk5i7ZiK0UcYCObc+vUPQB33OnP3tlSQDIbSDAqjDLKKOMDn8kjlBhc8NktMw8aEcX0naBWhnKV5rkUcnwkfnUvXzq2TRtCX3IWzs3VPIxLozlepVkWo6FpekybaRHOvPqUTK9QPRfU8870uLIMlFGWH6YNYMhr2VHlvTFqO9HELdtjSPKVTzJX+3EJz+4zVrBLafYkwEqzkb1bVhIsKttAPGUopjem3MPEna5Ni2EiM+XpeFYzp2gbNjSDRzsbR3TNhtZe5OldAMV0kDTMcCkMF/4VT5asrm5Dhc9NFYDC2XDUrsiyYv5kNmUzzLJcuZVQLlQZkCSLa30PHYJNe+aNvjDJNVmRaWFhZsPdkfiNC96ioVmREuG0l/sTuAhdW6TtAaitJdhkqmRNCsOw8he9WxW72s6iM9RkzyxSypX0PXqxlrrAmwfTg5XSWNxYwA5RaPeVQWpiFwm56POb71mgakESV0OLX/Id8mPsVVtOLMn15d7Wzc9Va9So6kbMMTeecniVW/BVOx7VrerOsXCA0n4VIhw70nPmxlwpwRBOYeOeSIhw3LEIHcnpfMunjp5AnjsMOyV1TROGHcku6Xv0Ym3gxRjnQ1TX8ly/BnNIdLLzX6pFT3bJ4qP0ww616LAlteZy96dZMSvT047aaUU6HcguWVhhvCILLJtJoHuL6+lQGkGomhyUCsgoL24+42uPNrC5T1ssjWj7OYi7r7UKN3TZkwaTqd6yDadBowuysHLEHm6U/Nu85vohKnUCmi8KNQjIoGrNKMqiaFi1zOXJu+zscbRRsO0zkIrQzN1CVBuqMnhqPQ7sBe+oaSn6+Wtmx4xDuXO6I7tzwU7hBUivxlBXE+Pj2s1W4VXNEPyW9blwdlv19nd16jhM7L5Onqf5k53HtcsZ2790xluhQ4AZPg4Y+5IeWOQwS8qeUCdOOMXtehXe+1zpggCudyyEex6J5DGviWWAGbL50gqKzBXst1D8gO/85KDffVniL0uU+icEjjQdIoCqFkA0zrRCDpfaqh13OiKD1wcQUX8nlTNghOm8M8Y8ht2glvGTiPnJS0H4qYuVVNOJZsyxglnzrOeL+U3LnAe0zFumZcFjWr55IoLvnlLOj7OA+d+Xdtj/2Cgp+OtNTSx5RzP/z/zlxSf8OiR+JgUA+kZxCHrne2HoQwEKGi1AQ5+LY6B5F8RC3wvw0G+KyuUAaO8AJb/quKQdHk/Vioq3qMM2WnTtaa2iTmetunXOZW1Hl9xOqa55lErVD7WLcs4kFdU6jVRU+xxSUZ2zRHugbkSlIbc0y9Q1RSyyOcUtkZrLi+yFVdS0FldfVsXW5pUvrravMqPqZD1372qtVxavjhqxdI3UR0+ssZqz+ui729r1jt3euvWhoaArz1wUGbrzLG90Hz4rm5yPHqfG8nHTalq2N/2mb0fjN76dzaSZ+LxZN2u7mqBRPd8CmsgLLbBJvNhCmtxLLa7luNiSWr5XW26rdantaI12tvyHYE879yjta+2t3Q9nIEZxpL1vw462cbSOtU+sXzqz7asTTdTEflrwaBI0u5DRQnOL/Nno/KK4aLmw6CyGis5j3Cvb9bbowEfToa82zA9SoT+sYrdYK/G4aDvkpbYq79FW7UOyanxUutqjqO6afBttD/r+k/9vPeSH+B72O2GP+ZOsx/3dL530Fh67dUI7tSfnaPn21JzpMV2T8z2zt6bjwqjnxwf0k+cn9L/m5VVRN7/7zHdR/9P/FXzifhDs9VBVxK1qUYb9IBX0eOuvhRgxI6uQI27klcN417qUx8eUCroY44tiKrbSUDoQXQi3EP2ZWoZV/IVVxpNHl+W0SFkdde2Km14qQREVSZFT1EOuKRp3sXq3pUwwfx7fuUTJ3E6RQkjKioRmqlxKlVHerTnBB3Vk+bRhbQ8afZRcx6t9cUbn5LvzHfRfOSYbmwdkf7B7py5Kv9utdd8r0XP4tfXeJ/QzwGAMH3hlhNEYO+rawvOG6Cpt1VeN+sRGGgZlOJfGMTnYGu+PtF4ZH9g0907O8972qjhVVBlKr8lYkpWOQKGti+bo5i1WZCArUk1N2OoxUi65VjI9oolqiuWjeKLRdQr1bXvSVGnTLZ4FWY3V0UzDTvhh3uKUH1wA0hgxJMjtsRkJyb16QHwjBmdBP2hGJYwLJVS2FgUUXZU4L+vCt1CZ6uFQ8p+POZZBoGGt15qvBi3f13ntjm7brz1vaX9LrHSHyorTtlSEBYqppjFsza7W0xDCFG9HK26XofgJpVoCTncOKOdrAZPJKlmRaabNAhNsBuoM7fyMzrHHibVAEfoQKpkPRbu3yCRGTKvlTk6zPLVEunWkqDRkgYvMZnyYN6ogKggGKMEWCUzLBsVDFXLmVLDqhUJbhqgGRG+JLAEhV4tA6vTBxgRJwCPMVnqoPtTaigavWGPpCuURWW0rDjRPRT3P6PwUu0WxGZW0n+ALAlFefTIRDIfq8BoXBAvMHYsFHl04c477+R1wnhUb8chGORpJkhu9CeUrJVQoplqlDoxCHmHl4ITwPPSukJyzUQlpWQWYqoY2Ek9lC+VaY2EDJNGDSCj6FUtfdKVr3Sgsoed41EuUuRyPVNLKIDPPstV3gqSVa6X7rTSWA5b70hEIeOMfU1IZnSPDYuq/OlF/P04uHlEf1kn6jgQ2kgEmQIsCDL1pQt1VcGpIA4Sf2441dW0trvcurYgsTF3jbKoDqGqtTvakWDzgZs1EmftcilC3tjoMq9Wt+2SP7778zVx/mO+5by3yTz/5NUlLrYhFnfM3kfcy2uLhgOwi9M0+Bx2xdSzeyZUy6rxLrrjulnH3Ed6Nc+6P1LZrrXy7vfVxrEBTd3iCxgM27F4VDjwE3PHMPb8luMCo+ChK7ocYGcoPHpQwI9unQY+J3VO0DLHOW9cHxYqjgcV+MOiFCSRHn9U9+AkRpdFgzeAT6wUlZdlWVhAKMVhLURNWEZHBiKJcui748/yJBSs27B89TzG4SckgqetLO69zwuPKrQpeD/QmD1rI+CPML35JcjlU0cIQs99WAwaO+8sF4k3g6EY4MRH/YSSTSS7FI5osp5ZmOullmHFmWYbINoecl7yz973223KXPyJ2RPtzT3Kaq7a/l+++7Tble0mLSG+mCTsWLaeZ4w/O/NjWAv8fPf1etjH+vzNQxlT0pk6srxKV7pODtlSdHv6ZbTfb7DSFsN4dkLedC/1opz3RBqq0/lw0VaN4STgCuvPdC2wyKM4f1S5+Bb/5yS5KiLbflyADMjWFjC9gbNDVrm6l2N1/5owrh03BH2HNRTeHaT8/GKCNVg0LJsnG7V1a8rnTWyx37CJTcZip1MytIFup2Kik8OxdNFeqtO441jie3tVEdMYtqrHK/7Ysnz6myGNLbq9BEA3+8w9deeAhD+jItqqebK8OZBMZGV/DgNWM89Grbp4QTJr7SBZRxgnyKaQg99QwRp9envOYzmytZpgA9DDMt0X3VUCxUfWbrKvhm6pT8fV0KxuAyHzQZNZsa/pWN5xEkabxSIXiFz/lfCLUd7tOjKlbVlaHDT8q+ldiT9FsNV/dhvCojfvNpL8kabVIW1wvtJzhoI6Whu1Ap01Vc56odkzfyqdcmR5zM5lpU8ugxTvAM5dqoPnDu3z9zPldultDSS+smrFbr/leRMZ0rMr+Rb2Axuy3AVGR9kXKNM00WnTUYwMKB6dd62MO2J2qR6bDbY87My7ip1Ck61tAOg3jHGe8yyvXT8dRCPu+nd2tU3NkcbN2ngYL9DX/Z1iIpgAaChm7t1YIk2q7CrXuaj/yX+wdS4Zc0wkGAwmIUYD4HoBdUvyg3o4Y7l2R4N7F6QKK+UEWOrkfwpf9OMjQ05TCGMSgoX5GTbfmDfNkaq6gnh3S2C+D7iiAuX/I9V1IhkD9Msz4Ye0ISnZ3J6DhEEl3vWIQrWrQvAx6ukWerPVD5u29nNwNBw1cGRIGHsnqMZj/3RuebDGYv7N7ECT/Z0wvFRz9SgMdB3FGJvsYKoN7Uq28IivWelE23Os9c+vPPpzrnYsugi7iLwovDGkL+loI1oJ+FNfH2dMaqcIdLMMo3K1jjFaI/z1NIugiJK+x5gXzRzGyPHgl3P5wMw1+8Ga4/Q3uR+1GLcEY2FcsizGnnbx/Nnn2wyrnzmL5O2ote/dujDY2m7iSTmyztgOtuee2D5MxxNipQlUuHoUue2JBLRNZXxoYW3DwEvrT9V4ntaBH+DoNNx41oC80jNR6lSm/eRgamNYDLQMV09HvnGQYmha0DvhpEhONIdd8/hCnkrz9UcoRC7PR7DZfmo3mS7N9He2t1498P/L92t2/q9vlbnPcmHhvOe95A/JBh2AehA67zr7D3o6vYr1T2MZsOMvjtGqpl+YUD39ZX882vU+vK9qUSLMa9O1E0U4fUySzmf0qnHXD+On+EQftd63V7pSvvSIzNFhnOZ4o9El0RBPzhJMurLYe/gfPAusIZry5iaxfd3HqYWYqulc/FX5IGvGYJtufxf6Gkoa2q1wyw3eoyHz+wbI4TvKzJEPUPKPb8zFV0x/l7mbRHui+XS2ccV8tUdbdGNmR2Z5lVs7nDuVrm3rGZ8XnEp0Xue8Sa0fdz7hTjN1C++dFNecQPRxfyVFQ4l8caMdSftW4fFMTyjhvvoHxWjsgoXKEp2RQgdWqhMqRrwxK1i3i2jCA8gUCAMTyI+tP4sx/rexbqd0SJb+k7KiYv30aljjg+D2n3Y42yPV/gfF2bB+hEUqYEVkZnY8xb8TGOpJIJostbO+xd+azGpD6TpZyU8/+peqxaaX+K+Nqj6OHfBPsL1rq1b4HZgo4g0l647nub5PYRJyljIV0ORvbZ7BbYVOsXJXT5vWie0KSaeQlkHq9OJORVfy1RCqAhUixSkIFMompEhF/+X8jMQWNG6J2nEf0LZ2K7xPEAVaADz8rslEOO7GtaUX/P2ccy9hHEM/4JzgPE5FriU19EpOenGzP7hSmOOWpyulcTH2e5lpe5XYefk9dtNm8+vmbfMjE+vBCFvNPAGP490kwTXlDZahuuzoa6q2p1jq+r7lrtV1XvIfd2/0gwNAbFZ1+GeV6k/GjWjMtf25z+DXPfLM0ZFRfjPhos5avjd5gu5venrPAhprIL2s8gbTaEYmSTUOozGN7LUuXdPqZ+OsVOMJjR0tU3LoYcoKxwFxbhY0ODmKN06EqKtkGwlRW+gCeGgaUUN2AlmJDLtKaXNkbzjGUWmiW65tzp/jfHOR9uRQOmQZLaI1qsloq4AdarVpXAkxaVItHI8Cscd92BDiYBW7YYoqb+5VdRsxjfclAqGSgBCKFRNsgJuleMrK+TMkMVLwCFfRqid4MddDGLk78/4/1u/p1wTf3xn7v3XqH7WGhNyKz5f+AbK9WU7zRkPd3wJuau77pvl9aYNB5fDlVre1aXPzfQC3+TW7Q8v+f8L+kE7f/x503BVz++7PFwxaP/XMW9jPf8C6TPWc0KYd4mjxZsGXLzBH5LNhw4Cl4l0bESrJFiTYMD4BAEKbDrvwZSVk07AKj5rWNNvqif68wGl/VOHO4vK0bPvzD3FXjEFFkvUmbZnDyZ4VdvZQu/WXsr0T9dif8vB6h43F4SnlW225z/mbPoX5J+e0XvHbXy3zZy0vtBsjUa9nvJ+rNLrRn6p3J95PzUV/9ddCClLxZXOfTT/u7fpvXF/OmGOTDf2n/+Om3C8dEHQKC0j0PC5Zo/v6/xIBasP01tuLfToSeW3JoHm3PU5MzurCz53m1S7p8E3Z4lZSQbvpar8u6WQnfj9vQ5E3o/795Kews7JqqKNSQRRl9VFFHL4mFovudxMF7ruZ+/P/zdcy/Tiw1n25QtuQ3frITpRTEtjrODjFeVur4/9cbuPygu0++K/EbEQwQNkEpD+zjSQFMdNBGBc2F1SPd5nP+ev7/T+Dn2y/Sezv22OkLn/kx9w7gABlPdrWr5qrTYIsx1pXLf4pMIcXKVVuo0RIrbbfHPt866pRf/OJ3/7hSiTGBcTD5bMOKhJTmSGfOOIRbeRpy/RzC3FL92YNwq3nqINycnXX7LlSXKjYSvFQPn/koElL+gJMI4dUKz50VGFicn5N5MF5cvUWLoGAxNehKEMpG7jtjuhrV+YSWxpmETcnOHqxA8uTPuZ5SNIDrKr9eYLwF1MvKVqidw6rWqB0Zn5pdWF7rdPy1mv3f5EEowkgAEv/wt3+qj2DPkJr6YLVWKGHSdCeskWFRml9Ake/P4Jz41shhcrYlESFaxBPAvCE6vu5oxKxVmRpNaiLuDv+37eo1ER/DeXd0CdQdjGCJWR5PyRPfzSm2/xgUZwyjkN4RhIA4f4fAM4Y2XYwfwMi+Ff80OLQ3EM8Jji8NDX/Z/+iUjvH9N0PKLj6K9t0RxAq462mwN5yazFQ3MlKjvmrAdJHCmsI4SwUyYBJXJRKfB2tr2xHE2q3VMe9YfHVI0e3INc+hu0Gj17iDvmONTYCdbXd5TNtVzJOA6x/s1ae/e52eyIzfqglIKRsBKdNXSyYCVc6OvxAllCeqhmId3L0SkIp109WVLK+zdLzhVZInXr5gkTUD+Egj56lRIiw/omQqhqi3NNVT+v/Xm5oCxefruAgudccVgCQHc9d03H+aZMFUMEVxa3cav2ARbkv0Rqycz715aXabcM3mxdIHb2e+W6G68r8RNb+oPtBej3zoqS6vFn9Ic/dfqJkoDptNVN6Swv1gE9n0k+r2gG237rRltE2MupfUJ5873AeDZM/oSRwUis8ON4NtEbu+weo3q+9IBwE7M3yl+rwsj3ozVQceyrH/S4GAQUDBwCHkAY19snM6CLxvXDT4LBmRTnDjYgoRZPW973Xbf3bsH9ren45W7ZoH1a89/4Tb1vhllPlBEjeV8zluCJ83HeJNh3TTkbrRZGXk39uXbqHmKf3nLi6+l3IE6p/+xeVruKZUraquKG+eFVy9jIkXhpPEn31ZcPsyft5p5PQlLCFHPIhmKksVGCN+89yg45vf5cS9eXPmCr3eanfA++4lXXHYh+enrzHm/4k5SQK6tgFL/ego2G8NLS+RKmYyucnFdD+9K8MLMpougjB9A+tbXZu9JKbl4qtpqpcpEvKcQFZBR11LX09OXju9sQea9Sv/8H+8QCYJeyveHJWOZvlVNPvK7WQH2DwgpZzrkPMQhygO2VR/BtktbT82vKOHYvX3nRsuHAH0Q4IWTLt5FKD2HMTkKc9gZFzeuTvPcW2JADXo0E9GQqD2IQDe8kWaHggoBxNLxPpJgGbgT5GLTsCdW/xq78kWnBgz7MYSnGFdaBdwp58wjHyP0XzYG8FsF/UIC2Aom2Nm4xsWiAwlDKrFnuGWqG1SS/2bxC9oftO3BrRGdaD73X4XvapD37peGrwFHyViKM2vDgwHyhXtCfg0ukY+fkCoNFepLSwxKyux/p3yxIsfLvi9tJpCM2mJrb7dWbyXpg/zw/30SPcr2yOQwRBLnPEmke3sVarKLZ2+z1yJF0pnd2437fad2e8DKNr9vUvffe/N7x+LgIOC7OrMbis9ERrw3onlK/bqvbgZE3qGFDu++4bbf8RJPTfpQ+tMd9PrHwrKWOKIO/6EEkMimWxlt/2OqHJWnWvuekIXfbxngi/85J8A6hCJ8AukXXrU591zBGPNeRvnntdR3vlW1srk/ECsnimxZhzi3PM9yps55eWMmnm4jAW47OYjzp25KZiGOsxAHWahDjNR56YjyjsfyitMzifE6vMl1pzPce75mHLTV+BgPLNHdHmmpu5Rtt8D/57EcETdU9XsEqWePfXsrmdnPTdbyVKOS4+sUjogA4iekpqWJipKPVAP1eJaVA9udo5agFZ8Kvu11y8kIixoZDJtYmxGSdqMuZkns8ZNmjZlQkxCSlJ88x+GH85kH2fUq1A4jJEVw8HOhieMj3h5OLmx4wIShWZm2uDN8oL7+pcEZHQGMBSRKVRKOWswGfUaHT2KtTghIaNaRzBT06iaYRin7+4vav/47tNm5bu2bn2NfY9T/5tlUEcL7h84mnfGFc+thNc2FgsZvavePLXmoVb23X6zHu3gERBIpGr0E/FRZTir05cOHr2g9gqHM/hN/96bvpkF7mkyOJdT9AEfnmEe4DTzAKcaB35RkFBEHX3MccSTQKJIJIs8Cj+UpI/XJ+jj8+w9u4bsKDiLlqNAxZEhexbZ2fSx+riPltOX1Sfpk/bBfeo+VV9On7JP1CfsE/dlvjoEYq6tsqaQKgF4/qgDAc8YQWtedtxzKs2d7TR3tfPMb5dZgO+1nQ7eM8x3fmiksXeVDOqXhXCdDO7OVZmyfiUX4fxBkzl3t9vcAxfSzImBsNPxoSRYGIMAtP8xD+0f5hxk7olAy4xIHdiTCN1MFEfm3C3NJxdO3gPhk0a5HthlGowK9M+O/tkdmnH7x6Vuu8r7j08+TXnZAsdY507ZbY+93Hnw5AVlnxY9fQNDI2MTU4ixIZIYut1ZFqUohxWPvzyFt1t76Kee5NufHekdm3Bd7wvPNm5x++hsR79v53b1h9ZzaPvZctykXxnX/f1+Kar/oLoZaR79xIyZfKCYmTsWOwGqCb77jqyNFvJEXoojE+QeEHvy/0eRvHWDiHI2FtNITGZh5HynyZ3JU0a9Gslb/JssayQuUS0M8OyoofOnKbnW5W3XDOrNpaHPCXubIEqyomq6YdodTtegeBBgcmUlihdBChQR6pWbzqRGEzAELAFHwBMIBCKBRJDK4EZ8q9fvGOBb5L/OUz4snyqakqlx2u0r9hgcKNR9EUh0eoutTxGMYWU/jLJ2hJ0G5PSYmc/MM8lUqK+1yxCxeBqBQueqpQqls52Do9D3hqK5uj1HhMa+//s4MpvHAVj3RSNTaeVGg8nG6pP///TxPy4+Q4HWHGEyVo0TeHE6oppenCZ5VRal/u/fRmCdy9ga8Ussonow/Fn/uEdZRP6yydId0cd5tj+IrjhpS95SttQtDTEYA0Ye/2yaYqPIK3XhoufvubghPB55Y/OosCeCqG9eM7SnxUqUOuyIMiR56AnVTqrBkpug5KDaK9UoY0zxiVm+MMfCK3Dil4FOzmhmFISBcBARUE6/NcmpoJIqMlXllO8rbXXV00CeRppoxiqPpPuf/xUpoYy/YmUqatzc2zVpkz74IQxxSEOejKEMdVSpuz1rTkCCjvXk1Zw/bi+j5QY3m5dGE8b4sb/mfs2trv8EZAjMUF0CXAK5w0bA1AfYnyuANa3AB7tfPvhawgjP3RvmGWedc94FF11S67I6V9Rr0OiqJs2uuf5h3Bevu+6574GHHmnlMW08o4PndNPLS17TzyBDvGOYET4yziTTzPCZr8zzjR8s8ocl/iNCIkIIhIawEB4iQWSIIk26ssqrqLIMWbJVl6OWOnLV11C+xppqrpU22ukkRZoMv7uiOCB78xmt+4kjjPo+Vu7MRo4pU6YZeEKxN6L3htb7QK32DRnZnb/5Tl9ZNyp+fgYNyBNyFsCVzCeUN4GvIyB7GBiFRsEwagx4Zw+c1ACcAQrgclf1cYEIgN3a9P7/B2hnUQODy6155YCTQe27af631tMDMdUjpWl5kauVNKowyrjReIihxubSdUvwkStuOcEm5cFR00WdO0L+d5bx79ToPsA4RdhqjCBy7zL0U0uNSDAKETCqD+I/JjLkQVHBxAnRcyT+jybrcBFeio2LRCvxwxoWMIcTJZFLurJEx2mMeFyl7Mx1LuVMJF0rSTWJyTZQQ45WdZuaOA2QrQmcmFBTU/wOKzZRYNMvkdsHNK3GTQNwxKSMwNPj8ucmY/2a10qOUkW7GiMMEC3ii9TYaEJY5sCkV0Accvwlkmr6KNCvTJTVDCGQKHy45yFdg9qnGOw+CIBB6K+97SfPIHlGm2W9A7KFlVko4qAjfvO7y0o6pAPRXOUZ3vccfY6gcQ2hnrDom7zmHHJdtCTJKGhkWqgCOwGa8PC290ug4D4SW/ycVD7IVPCIyV3C8dp3/vKaLXu+44ZDXkLGEVfY8JnP1/NZpFjpMs4aBMHKhwzsQBFYyLBRY8EF/2qg+UrU79c7Gkm7hxs3uZtT9SLT7Ef9qr81agh39pn2Da7c/48RIz5bftqt7gCwHxanc5dvjNk2yJajVLladQ456nd/+K9DKg6ASu05j6edfIGk84z0eFI4fYvPPG83xEmGRwNSaKUR1hdCegXH/y1QdD+Z8/QqHyk4UDJWd7J163svGbVt3/+FZKZ5jzkZogpZypovosZJoaP/GgQBoPzIwk6Q4KHAR4MVVNCdd+vUZqyFQ7fJ2uRV0CqynYz1u2rNm+5K9SmBANFjR+9o97vRra7lHaDY/R2OJnZaHONSI1Q11D38Gy/v7I50HeCXlt++Avi5XRo2AfwUwA/vMM0C5sOu9X87NiDcNoBXXH787+ViF7NoAH9n9v83N1XreXN8fxEdA/zvjwD871eAvBbwp0sOdtRtM3MA/P6YgF+8esps5pWTVTNnAfjpjQH4xUU1lmpzpUIuk4hFAj6X86MAgF+9DoCfv/EzE4CfvxSAn98GgJ99c7bq/a894PvnDIBb/wiAWz/3VhgAN7s1AHDzI6Pzb+wBAAedE1AXih0QRnM/NC0/tYhfH53Y/88GDz90dYf6bHjWLS+qLl0+BUI9rXrWb2VUm3N8Un6NP/TnNuO5g+MPs58mjtflYep29U/Vo5xiz5hdXvnJD8mG9KeytHx6zvpT/duc2k1ncqam7rLaoCdMliNXnnwF+z5caDXxAlugmTebNqlP1V7REIb0DdwathXbum3LN6yi5kDNtgGKpv8v743aVG8qNjXtZGvbbN7UbqrafOxi3xZad+uJQ7j+65+tz5a35W8FW2FKUpqylKcilanKsgf8+n+ZPwgUBkdMPsWUU/ndQRowWpV0DtKr40Op/q9KLU/B/aZ3NHLd8+48Wzk7OXX4yKljx4eL1Ccjo/pAbPzyfP5RpykuagAAo4Pxfe3gDNd73K7dxt8HMN4FP4du3a5uXFK/ueTaokWPYSVxO0YAYU7ML3MUEGxJ///EYmEFxEbsysgFy1uknPUNxe2OGy9+goQrcWlLVprIOlIKvw40sMaV+S2UqX5XTsq7cgpKCV5GM6Jk5GLitCZqEskKN+EhPjArTtKbS2K/CiYl7rnLrFSZ8vYnS54iZarK36KMg/kr2rVmLCzbKpfZtGRn/L/2HQoOWeUQWUN3KHu4l/6nVuWEGrWd6ucsqlSr+7gGDR3cC25ko8fJsPw937h5kkyRoUq1ZFPNOM4eyjwunfEbQbZU0+TsyZ7txezH1YTcPTpurKaXokC6RJMXvhqFiqSZae7q17i2Ne/+BjZmjkohKetZ7/rWvX55ypSrkDLZnmrwuLO5fGo7JlaxWM3IKKho6COMONLICP1U30cpsGSphhspXeZaTnC8wx//m/lRP5ogCQ5pNilBAQZOGSF2IxAehAgaCHbcwUZZ8K6IxRg2aYrLqLM4mFggfFw86S7KQsXez+CckMjPZxFAZ8Gs+0kQkZBlgFFkP8OmpHqAUxWXam41PGp51fGp59cgoFFQk5BmYS0iWlVoE9UupkOlTlW6xHWr1iOhV40+Sf1qjWYrULDQbMzkAwPqDKo3pIFII7EmEs2kWsikyLVSaKPUTqWjUdj/b+MaXbLG38qeyBPlg5qj4Wp5gDGdcb0JMOdWm4RNIaaNPqFmMLO4z4QvpK8mc5R5swXaN4vvp/yQfiq/tEXjt+tP2l/Pkm+5y7/uzd9WP3qsBES9xBmSKtC/M8HiWl98CW0osaQgq2DrEINNaNswdmHtwznIs8NOjZoCOa60dIoIxHdDw9ZydFw9z8A3vtu56WLK1bQby53NxcHyB6CGfERAwo6VPk9uGcUP+qo5zaek8lWoYvyVQ1AEEgZHoWdkRmdsxqvx2amz02cnd0Y7453JznRntjPfWeyidzEYhYcQC/LtqvpYBV38p8k5DvSPGk7MBcJzTH7JwDOKfHAtkV6zA4TdwLVLMuhCz215FyN0kO+AO+5J4HNPk0GLV4VkzfTFr/AqJ7/rfDD5XS9seVPLjJ8TneZlHZO881J2o2bHJv6mPnHtzmknjAmTEl6OiVTKqyTkY5ekiyghD8J5PwnAk39gv3tC4eGj59I2s29xjXz+lcTSf0kmpF7YXFQJlwlrNoyAwugaIhgr1g0JsAR/P04WPo5ZnedkMaGQvZJaeP3Jq6nkS/s8uh3tnTdZc6pHVN8CSk9PWjIrDN+oUk6JK/VCv/thjWymL1JwTLgYm1Pec8qoLMSwpBYSo8IF4cQT9qj0ECgiRw1WL9I/pyxa3f+4VK1+yxSIMRQywpFfRW1IgQnILC2Vm/OlR7d3FNAhqnVscarMYGqKZeGVAxPsM4u+8GynXIwe0r6e2Ils0/11M5bSaCALr3x8Kel18BY0GEfnwQ+cIKGXTeOsHBRZjUBoRQIrCtbaWDDeRFKtCdejnbzPO0VAzUArF/+YVOe0cXaKALY4FCcmYRRnhBN3ST2F5NqeMyscHBiNc5NZjKbnZIkluSLMeIDaqPe4DkGUYq1oHqafF8tQK1MXCKi3RFYwJvpomRrOXsU0XFIMs6GQocx7DZ6GdowswGnj46H0x+5dYOAbcULY3Q0dMLwTj4T4x6TOyZIORuRb+4E6RZbQiSdvfWHNEM7Q1tr3BLmmvPJP3uytopzKU9iNAs7+Hev0MmLp6IjBGB8xV2wXhD2MuGYgtZkryAWTmcsmRHrsfbUe46dZ2hChHXPlDbRxNlCCZupw09w4L2UBWLaBSEJ7RNXLxB5sFCD5rafTO0xo9dmmxVMuHCKx/O1e2tS8JJdv/bvHtvhZtb0TGnpRwFM19KHg9kCVX5MqoGkV1KwKaV6FtVDNaLGa1VIV0fJ5Dkb5P6VQPHnrDS3xKzkOhiWx3hD0+37Nc8GM76+Df2sVG3SibaJUMU6ck+AkOSlOmpPhaJwsV3AjD3QhygrnR7oL9LbXvRvzaFQ+TscMFPJxzPfXz0sRwAwerFvatfWz9VYllrOS2NWLdSxH2U4s9gvX1Ym/Eix05rFpub2xANzUenoRG7BGllcjRj0yXy9LAv8vuJMN7tpuWdDEzp+QJaDDTHc7YU1Tg3cZ7YnuPV/lbgKRpWvDKyhE1s6iVU5CcoZ4H2Vz5q0vwc9lkQ33biwrq0cvycAqCH66wMrsxXRxF0WSiMZqlQ0PdLkKN6RWipaXQJYYe1I77tY6Et658z/J/nYv3he2y+DW1kqJyMnedptG3SRTlIvrm/7gE4MwLo2UaTmx5I1l4+LaVmd/ezJoRRZsmnbFKHF6YLJJlLDQiJIzwMZy0REObsnV2YEq6KSCRdoUyFjE1TMgJx8ebp2GApgyD3DEut18X8On1JafAggED7pNNhoiSM4mh5zzLTpTsfYKOjmscVywqO3RKYJwYGykS08pH+5u6xaJl1cqnkdEmmu5d6yNVbUEZt2Xd9G/lNfBowttMTSuCsPP/KVfy8u1O+Na7v2HvQJWo7Dlq2At5th+F1/XmKvdziNjS0OyNR/8sWkH0o8kKpMwG67zVj+H1nZ5N6+jSCPm4DKH8/8gZhEM9sAadmtnu6KxUtagI9uYgWpFSGEzyt7LapW0hMznW7Yv5b0RZnf+CJde6o9m++QOCuBunMuY3y0XKm+293rgnxhaTHOyJMrbRzBnT3Lf8w4wAgzUpMdh4nK2oMRR6jhuj5wnHZbTghLnUn//PH4CyBHFBXC5WFHiEjou90nNKyssVytKXEPHdXnBvBGMm+uv5RY4brfHcd6J47i7wnIP9L5OkXgQiYeReBSJx5F4EomnkXgW6bfPUaDuPF986+0GKhQNIyI+RxHfyyVzlk20F95gQzQo8lpwOFKjQ49ONbB3w+7fFNeg+AbRPDatHVk3sn5kwz6UsUGZGsQMm9cyutbRtY2ufR/K0aCcDT504aa52ORsdr46fVid/V1n/394eL5VAPlPvZ1bAEi//k9MWAQpNgl/DwH+5UHbO7CqDPh/Hg53VaobitA52vEM6/KHVE08e9mQRlfMjbxCtoMId7wcgikzQxdhrMkrLzIe6N1h0zI32ovtZXyhngg5i98IPnamublqa8mr/qqEIi1z8HZEkBfca+U5ckyd/DoYAhMEfi2muTNC+lk4/YJVxgeZ+VetqZDHrNTmuSjMyyCW0f9iYhPJaGKsVbi+0EhjuThQYTGd4rAYpQq+rkPMvGqWiIdYqXxtye6zqvBEdkhQbtVYpjxcBpLTHCZEuuQ14oaaGmdRgt6b5G5mbVxyoorJlDbulUkA7ldlilHXeLanNQZ1Hb1VImdINx33I+KGM0ETngvIFC0lpMisb8t7WjwjpLm1y2KjUbdBbKkv2CIemUy0kc6IUW1oOHplRoKAENUNBMwekbNLpB6qNHFO0xRzoWXNwhWHmjRWw9BccUqKj7wrE2I3Ew2yggUWxQhWR/aYIXwVJXSoIKoa8UobCgB2KC0NDIhHxbuQuFH86YcdeqF/k2FjXkilofaiNMNnyVPcC/HubKJ9GO/SeG6um2FOR9v21dDJ0WNafW8mI8M13mTijs+vgJdLUT69/inbz2ii+MMelb2czrKHlgPz5+wkIlAlQsIcdTdhYhzk5BMI4a1Z7MKeB18V7Rf54ewUt8qB5LqQIThmKLd1DgAMh8PkqgBWdupM/My3aL05Kql0g13jP6JAoqw2ksRsZecpgpQPzhJozYUJe1Y7ycpOP8XNofJMtHLBhbDyR3jx2KC1BN7BIjsuJphbQFVaX0t/gvyLB7KCiik080EMjGBa5ppXoEI2B+SkqSvsNpNSjOzk9z+CvtjkMVwVqLlIlIQhgqe0Ib+405tR9OE5CuyKOWNtyGGXDI7TkQcpSc4dp2x9sd47BJiQZmPti4+fZtVGqzwGwEXb8LeeoEBd6WVCDEL66vkClXJgJsRj8Xyxs9NLo+YSHwJWGp0d751mxBnRIfbI8GUyRi8DlMav5dpowt77HULivquTfxREy+xM6fqMnnbj1LKGw1wSYPY6h/eN8Vl/cJaPti8iEHW0SglSUBM0OZeBCeRgu7vR4+RkDzs5ACyJ5IiPHNVH5k4r6Bk4ZiIVOcAlMr4pb2ewVqQkoTMRTbSVrGZbgZAXtASHaKP111S6Ha0eaEigaV5sRfSqA4KvGyOlCN4xAaBmR1NEC0hJ1jDZZifDOTmgZnb85rM0I0CoWNV2tFcZaCwcxilhlsinU74ZD22AzhTFmN3ZlAGABoTgHGSJSBVJqW7ZbKrSbG976aTMd/96Hex2tLEa9Gl8TOPGgQMcZ8rfgukaBOSOQQo8RmQ8ZEfFwkl/88aXUKqQEgVyy4ZY8xgQqhgbLpjHtOSwTzMiJtDXtCcl+R2cXqoJmLk+VqkaJlvD7vQjn0ZSpqBMG8PjOxZdtPMiy6EEYlEI3gEdXtdtrZ6ANSr0YzivgT2fT9DQgYMeDsNhO6yHP36fRjopmzZHW6dYev+2P77SNMHd5XG0LGVlUAXnrtNJ3DLFmGUhFIW1eex3Wl7DqxDD82PMo6aq6cImZ7nLjXzTFOu6Zqt0dZJtp3Xftd6DO73ifl+329jWy1DF+2PWRyheHGPOTrv4VWLwA0bmBKcL0133pBzXFvfyuTJrHtoRj9M4okXDJ3vk66U2c9j80oWz9313mfp+yzWF/Yz6qG97+bBmxIjKXHRvFuhFI+fDzLNwx8O7XYwl26gC0SSfqEbastkWnPyh14VdTHvSJ7vYSoaQXrJjjZewvghg8sZNpxemySeUpZ99n+UZv9Gfut6kpOaeU6MvJsa2CA/kRpztMHT28Kq924PewoPfwuvPfLBWqeUF50p5OBxIKKWEUFISQqOEPudGY14rkCNdgcdjbO+nPBWtVZzTs5FRccPKAjdCnrnoM7Q9nANn8FSg/LXZr8Kqpi6Z/UW+jJfsyw/WC79oH7e3XjtFvBNSL2XFJ3nGyZ5fsUvx8nq28zsv9G31MKt9yZ7kW2+dJcJ+Od1m9bB5FoFc5zpmz7yeYQm1zikzhpiFUABJAlFzRUJKctA9ZLXxzOKFvSOocHydDmEXOBxC6oLd7fikRC1FkvRuJ5vgDStSJ012b2iPYcltw9MTi+HQFhVQZvdXJijVaCkiYQNvNq0Fk2TgQdLOrfFgAi0Aj0iIBhHpv9gpkrkmtEMusTmYLg6etubIna14kVwUbz9fdyC1bhQ0X06V9t6npTCVMQG60oWGNqOuqlG7KGXgnlfucUVYypdKLrm6DWbxqEY7F62u5ksMUpXi6cV2zUpTmrNnxlm+synKQ6pcgSHlJsAfi+WF2eukjd7P1pgZ5mo2M2rzkmnbVaGQsjcY7AXPdrBXG9byjdnO1t0GPU3WPYZU88kMqFDRVKTBpPEiVVvJ+rFF3n+OKylX3O7AZWwQ/SrLhEu+z9Ew1zDKcgHw7aTyfLMTWAPPaVC1ktN6LzqfvV2xJa64Qm7IUDwwDI1HNTQ59cnU8xvbK2osTk2arvnTssVVL2sh4mDgRI5WwLLngO3RT3glMiYyTxsILL/ey1g7gKNV9aO8vL69LNbwzOZ2cU9ET6NV6BTK6ru/a/GP8sfz8n9iPzz+6JQi+hcEiPQRUSOOJlA4Ivmkkz8aVELQn83Nj/98wXHTxRD3gqxKRkhjiIzxImKgol+v2NJrRXY973bs4/ku5M3IzkziWaa7xWtveilf0qs+mTZb2WzqqpScpZQnvKBUMSo7zfoF7Wq0ZVJY5hUvV0CFtMbjsdxq216MGuorGVrnFDMdMJ1SIc55xG4wJF7B0R0HQE+RHJNp0eikmE+ntsJe6ytKcv8/DdCn53QoAZHb8rw3ATZ5pxjtOzPQfIBC+G4vasEdVyd501hHy6xU8rQvpXMd0LuxrThzX/PBUnY3x9twBMmxtnTg7HLHLA2ehkxyvjOl0JmRNgeNs13+5CPBPqogE4tz+aNbxlQQ8SfXsdZKVtqqeOPUMwAnWZwCZsVstGaSAKN8iWJKFaFAPlI8H0kCJ03kmsDrS2oD55QS2iqFzEFVy1q4IqoQlRiA0lWjlkKQursakaIzFYUDCoiZBUA5Sk4qsefJUUoISkwiF/7iKXfVxrz68Jnm+qQN7qv6lKrzBA+NNObonV+kUBR+WUtmg5eSNShTMp/0XRjiTg7oy1ZmT3Q8Xi+EUHZXCfNk6c8W4esnNAx53BVLJCagjF2NXPIc/Q2ykoEkmUHIg1haoXe/PRTex0lcRQXcwlCEIcM9lJFLOAmP0AAIBDxckEGl7YGGpP4WFBki8p4D7wxT2Fug3IqIPru20N+qH9ZcV23i5AswqUjfbi1l7/fxd4CzyJNw06rhSuBDOEhIbeyfO3gDknQpbWE1AkLbBApLvIk0aZS0SCNTSOksAyFELDedF2CcLpMxGxoaLGZMhin8TwSSWYMT0bIgmI46xoC9FHFZlxomBHHKRvN1gTesc1Kvd8Sgz3daghNSAZgwXCZncXW8jXhLbJxpfat7J68SENqYZYsJY2KlKkPd7FXtYXSzsvsN3wFbtlZyTAzFKs48MD2W1OJ08bVr/YDxQ7pL5fwLRNv4ZKMDw2FRGbG8+mKyzpZ7DCItECpWbulV0rBWqu56CEjAduTSi80RS5ayMZofCMIqB1IBQF/cp5Y7Mo4NV33WYpW00R5zpA/7oTfjowO9TjD9McoMxGBMTt3SCkgeQgMFcs/TM/JpQHKxpZFaEz2HNlBpPbJ0AU3UugGUGbRz5mClC1MxejuWo/VwSpgpj7E7+v6uLSnk054u50Z5FUwyINOVh0W8QlDxuRh6cLwFDik5mT4pBQsTQ8nMCnyzXmRSCEcu4yT43T+VpAM2PE5g+pSyjvVwnKksWVOYpr5f+ZBSJGyLkmw5gh0bTVKjAzKhVGHMcXREQjqPMici2E9PdgpshyHDA5yhINjpoRoaAJa9m4O5PRIxMazUlaIzNIFGYLbTXC+9tQiOemPVcnC5gvkJTZjVZYosFg0/KUSRLiRGTBHT5O1zoYl2ZEudt9XHg022QyiyLK35ERrsZZIwBZSzAlZKbEUDXpEp10U9nJ5A9ini9PNd5NVLk7xUGJcuy/RmT5EHgu+Rx2c36ySLhDd/9YmRlpOhnQyU4OA0nVGcJOQdjcinL+BMUTGozdbNQHObHQvac3hI0/rUwCSz2JRO41zd2FloVaAp6RckScl0y3gC6DT8LF6FaauoZ5X7YAa2UCaIcLmEwAnSNA/S08wwpZvgdonYm0GdhBaA8CWskkWCsJZZInKkRMEht3s3nIiQp6CCE3mRPJryFXVtWPt6SMRC66FkMPeYkBfFpOQnYkhHeasPhCOr2lr5DSlWVJBc0Y8blmnSx4GS/GrPcSOuPitJ8AymRTL1TQwlKeFFOaHR21QrArSzb5LSPIY5duf1soUobLLDw3NyT05/A9JCIcr8TOth74ZSYolCdfNB6Hq7+AA0FpoB5nEMAwNZkbLfa6aY5dcVZhWthsw8Rqw+d42IGfG3BlULr3NgCuUpoiuE4gTxlc8kXb7HyrCbJi0pAK43lnDCjDAgHhw6X3BszEYzGnBuYbiASnjgQ3WrNwsOIIrBppe7hYB3kMLlelscO7mKuAkU5BScoC4tieF+/HgrzjKLIz+bH4Ivor6U/c5qyQkqHqcphEXrHevCJEwRgZAVnSUM54mYFgMwIfEgmrodsHE5hHqYKr8hyPFA61MnWjaOl8wJWeuBnDxxXDcM5A8fP3mq3g+WWTT+3rjQhEmVw+eiHgdsEUz3Y923tj6qBCuQ6FLpPWXqX53RSEPvaqa5hVm0pj9vaUidp9WGHMVtEs0W1GjZCn6wcU9NvcGINOBG3tAwJmldwvjZ+tKziocMrZQbC6VIQT+YMZBv5AV6FYljLtzPtwh98a7ANfnFPLJWzOab+B/LKjgWurRKogDzGqBIE+BPBLVzlGwWn9mhGqVYXbFzdR9T4MwYijeMDmRtNOvaWK+mCu7hNnn5acn5estEWJw6tKSRQluUXUDZHONENagGW37CMb1vpfpKK0g1tB0NIvvoZ2kn7SBRGuoLsaoGzTX2ZSUzu9hgeO+i27NMreXQtw6bMOJaT/RxEs3wGGzVsrPlt1s45GGvwrlsDSKhDzDKqma8ujlHCdaVHvO1gT/ONjwdf6hGyMNOJ0/+po0kKdT3c/9gQSaYQqJ5ioVi4a/M754T1k5IdVzLk0afUloYzNbiRzZB3Sh5R7FORrJrwzk8PhxompwmZIpCVYGpKp/uzFzE1UrzYLLc/KlgbLyOTTT8Y+p/n839bPdatbCdzjyFoqTiLnRdlE4pT3wgckHJcY+JIKGFcG1wjJcVnqk0LaKAOSQfj+T0az21+z08LQ+btYfTSMJYq8pDaA2w/ZLyLUr50y8fPHrk6t07m54jbx+8gpajovLnHrx2uzubCoHfM0q6Cq0tkvwhTVpKjYocFM5xKlXxTbhQF1CqbNKjeqhBoyFlO/XFdEnJlnBuyHUau0TYlnDQDuRcx4zuZACxymlCQ751iMDElbYwjH/URrBllAQHWLxhx6asTMHwPuOPnaFRM656mst6BvRrguvbkK6UXWZLR7Xifczng62h4GFIz3/2R5LTy64l0T1/XdEW48scXLwSToLXTgli3/KfpN6Dz8gOpBPbMK1Z3DrIL1hy+NoEk7dBKzCiNFmmyuPkWwHnsAVYbGd/pNK4+XJGD9u6laHkfHSfC9YSHW7M12DMbtK2DIptGGxhb+zYDFnXsaWaOU3zJRVVcqTdUNiAPkOiCfknwDPx7nSqzdYDQNNecKa2LN1/UJ9vBJFn3UDb9zHMTP81hWBjeKGRYxJPmFc22E4LSkctC5GTODvUDjQbLhtcc15emSqXeSH/yHg3cFNj1mOXuFbobl3T9CMf+GPEsHJyjHvtz8MkhGmqOKU200iz0Y8vn4CdoGTYDR0YdHuT2FJ9zTbXHVD8gca7qS7jGK9SEBgd8vN2nEwlKGknGH1XZZwK6tnKXSbYIAQdpomNIN7NMoQNL77kW4pN94o5MgoemO4mE1ujDafrCQo2cs8QgijwEasGOf7ZY3nBVdABk6mHHiNu+z7oaHe7ILkaXot28shnM3SQWff9abjbNQ46aKfaacupf8y0nHFD94XJem1z0OTpmqO9tbkAErALyH3kK5BWS7hEDSET82kILyLw07X26VSlwRjY4VxpeBsRHdiYtfpsUNgcAW6eto0UCMMZ4K+fJM4WXqQxZlcrZfN18cJ03S7QV1XsFYoVfkKPxdMTzSAnbFFUT2ILrfSygNO13lnF8Me2FoFOyMSkhvctm3ItHpLleCv7R/Suaw3GwH5zr64FdCr8FZXa4sWmWOcokQQaXBZBay6TXtY6Ys++PzvJq2O+qQLdcRjUdIbmeTa+iXegZLfrzPcKW6Wqo3xx/WqK+sDI8hNiGMi6mGKa7SjJwLBvrBQnZz9VPrvqikIe7GJJu+TryTmdSBIIFTUhOoTGJ5I5eGYmSuOMM8GYZibAL1qS/PlFrPIFJJsKBJx1BR85sNAg1mMBipk1TBXHse475xRznDkWGydekkClnHPbTG8z/kD5oOgox8l11xUagk4ZlwBBZJ1mrMOqVuxW8RJs4p4EEry97GeKLsA3N+5kh3hQsJXlgUEaskgMUG5bxsNpQ7CnME4ANp4AOuaP0zClGtDJ2hKpUXVEI6/kXKQrv4pvwRfOcHqUZVzJC3/EIuwYxWcmUiQe+nOs5n/zGzn4uZBvM78hEjAQApOa7E4lXQGS/D92dCua0A1sLmKLahIXx38hs9HZwj0Z7Uv0iGuwpD6tuuQvKXOYE0fIHGXw6dMekJJaAN3taoTHYEzZgsurjj2llc8YfLoZBXm4xxq5hmPbJPZWBoo+AbDjadA5C2lFIc3hHcKcc9PkWSQwmIZgyweInxSI0DTXcdKeRSuVKYAItXGaXc1l5SkxQMmQ68I/soILtApyiGuIZY5ocouABkCJatoPLDSd6JNK5kIvJUjiOyFdBbn5eoaWJip0rli07wVgr+hcTUJeP458oqNgsC/yDx54q0OekPa+Mwh/lTxsrNPCixtHEH2UU+sMPnuEequ6udADhAw48IRusYHubQdHsv87byMjdUwzbe3joj8FSUcuNuS0LDaCNiODzOIQ7APmZRLDVGhW58pSnnQ14OFoDezRjEZa7OY7OMQKpm87e3HNQmLWeQOk5CANVRkNKlzFbwIAVwD3Ov6uy0TgC+AKIOQvElxEI/QeHt0dMoryXPquw+KzU8RwUsn7yeo0+RKVZmn6DWhF5o1tfoanLj+G61YdwEju/WEVOX96rX7CLoI47tpO+vVVX4GfCkEGRC0IDYYJVyFeEcBJ4HMtgvQfmqTijzUVHNbmS6ZZRW6UNDTFa2GRrg9WC1DxygW2bNyHVLMYuZxCSjeclQIqQNtbPwsZOqIXfzjqMIXdLviZdlH7mq3EZ6ExNLHFO4ADuGAfO5PjqDPAE/BbanFuMvunCJ2hODvxBmQEn1AEk1ACsPUtAilhMzeNZgFbaLgNVgbML4HJMli28Kf5QJdxjkqv4gdAAFp6XA/NqV50V5XNVdNhptWS7G5/4nvJP7kadjUYUMEAPrGZmnFoFndr372uD+mfTSyuVKlPxx+AizUqf36SbsXLkOpkEcHoUYrD6YZeQ8G6VgvjMjsTyxIQ2uEQ0tEt84NdAz2M7ffFybfPZ0nUL32mF9rqke0NXyS1PHJ4rMLwmfc+kuAdQj6XzLDjIl7YwdEj5w3sozHnS3qaCWyY0GxGXw5RRz0SA6Q+di5eWX1RlL2EXE+pF3y+Ml7/pM9JQZ2Shk5Hp5y/VDg4MJTBuN26rpscNXXLdqIWM00rHCADT7YEJYE/8WTKQKNJOIN1CjbgEd1atcAMKLCJzp7Tb3zLKVeynZynUVq99vTQNR/HHpSP2z23qkQxbDGXB7oxycUopP3KBEJz1r5uI66j6V52avp258wtE2idx/ay2RAC3R26cCOp6Re/C7cKFygUpLFRJs6xMDhUec1pJP/yPdLLElJNj+/inz7w4Op/0zj7AYi7bi7h0YvXHMR5+/+MN/5D6L3TqVE3/8+RCUmRHpKy+MMDbSYVtTuSrM9iDCp5jcA4UkgbcceQoqBUlCWd7OhcSzUOWxo+fTrytZ0gl0JV4opSYhBVrZuqATp4LFBUZW7zLD9f7+8v5/gdL/iqCjbyIV3HdJg01Y6AvDf/VHFFerJfabBILAjFXNPTbxKjpDFjq9N9i+66/YvVOxUbCBeGy/K2b0rfTG0llb+79yEkpYEzDO000ZffclVtSKfGuqJHtlPTd1CsMijXsDthn7pB7i5+Ds2Ord64wqjIlkARakOsXZVtm/M7l+ZwELm5DrS1R1qDWbxOdu+ZjVmzt7D4xibnnvFhVvH821p2am4TCXC0rzjH4ZCT5Tj3NG7uFqbjocZZs002u67Ukkf3mVyuDNbc0NzU2wrz0DqvhnXmMgXRsEvVGEZqq7mcqgqbL4U7mYUCbkGzFSKz+QuRc3151mZNgEXHiuPau/puvircmLvqAemNDL30e+D3yK9V2GojHc8eRYiY0gWL/T0akNORjSfbIWSYNYMz17l120N5aXYFerUqCjFibYl8/c6/hLdjhimh1qFSFmG9cpOUdlkkiEUMYO4Fi/CDAAXo5jjvkEwW3pbqoP78G48afUR9v+FUiGNtp/oYe0WqN8M7hsvhqfX+/fbwXuLWyY2DjXZNkVjvFRT4666r2HH2byvg37/7Frm8iBLwnSWcHfkIGUB3EmVnhWD/K7qDfX/7DgjifvDjneMQpl5fCl3OvHYGq8v/yri53KqTrq9huiG7IQn5TvBBmfacOK4EJJ+fXnKSbgdS3m1F/hfK6i29YIOKuMPiujh8TLUGOlVnkJuJ5JlQrKhBTZZ238flxw70Y3Y9ovO2r20FRNrDyN7pbGFxxNopUW6teih3o9hnQ4CyEy3eXy2+fBU07CKgZH4gbTpKDMFCFWo5V92I8EadXDmJFOQzq+l5PpM2+gn1JR4ZOp8HYJB09jMgIZ2HE/Pk0VMYqBsLvCglA3zcclgxACCvAzDgZh1juNjqn8X9HpMJtuI9aAN4rwXL4k3HiTVo/pSLlFXiWnLWFJWGaBbBufJzYKRFzhamwikGAaX8O0vsA/TKyWKDhMpbvDVVF+/fQLEikpeP3CJaccRKJOase5WWZrJJMyhtHsY9EwXaBKof45GPaoItPxAXpEkQZgglrSUehTsk9nTgZE/kuugmSNR9Fvd+zKfZymAMXcbTlZpcp6Mt8MPhreVcoPtuWwhVDOSjc70iBMBhUIDlqmIBIuBUUsHMGfcJdh/OGO5KKUFeoM2zWnYIA7aeBIoQu2VlHcbihnUUJAV+0FIunYJbdtxDO2Botmm4DWnnK9Jwfc4C3tHSH5vyrTrCQTAcoR2QdXcHZH6Y5ex7DyQxvTjCkKQtvKHJ1MBB+c3lD/cqu2TAOSyKg3oiWqSNI65SV0XGQbIJ2mAO8xVeyzUAanljwQjx+bnE1cjFjtxhhXXIXVY6/yMaiXp5tsICpBHOmxtCpGyOP0SENJD7B3OYFWvjdRtnUzmwKbWY5BknifCiTyQkKqLD+Lkr+iwnzCG5OQlZmFtyUPqAyzQYKF0lT0rpArB7lSKcNuTgCMdMcIK3URCMdxOjDudN6vEiItFWPuRlnwgthD9GxXC1Ww5WFCla2pfX0YuzujtKpiQgJ3rbbDx5bz0yoUwBsuKlTCaBBkuATb6+uKGjTfMfglAT86LePp8YDqUQY2iFtTf0R0RrQRZvW0/IzBDiRQe0G1EVGb2SdSgrvLtQpmliUKF1qIlPW/4jYPrI+O3h0BGcC6+OuEF1B0M+QWmEoKoYRLJDV61u9s4JGoyckIJVfDcft7uaYSbwkwrDNpMYX0GBM0b+2RpbB/JnB4rvfL7oAgXze/STBxGFZZxYHlU/cn48YBeLFewNSUbc2KTsSm1NMvH49XQSPnj1c31XqwCvOt+motbbM7dkqwtP0Q9adYcXXjrV74s/i+LU6CIVz7M8y3pFNDsRfI5qseUk7TDk2TWl8LUxYiEldAYEqklG3sDNCEa/usPESSQOzwuOGYDF8WfMlR0YMMK9eBS9iioHJhwUaXAD8kYEPuze8grwjBgajaffdp95yJVjVRYSWydEYS2jq0wQgffuuYR02E1oo/MYRSmBA3FkkiqGsxdTVjU0gjtF0VAwBsroEhzOW0Dr6c0pCMLtiCF2n6t4UqDBul3tC4Y0C+nm1gkIvMg0RFc+JsBjKFogwHFKn3JNA6k8EHXXZhaZ0Zgr0YmGKwfxx4zMfOwr7X3DBkAChYAuuvo+W27/7YLnpTb1cdj504gYJR+TGd9S6BsRLW+O0nVoPfA3OzgRk/RmEazA26YoOtdo+KEvkWdPUXLrrTc+TeJHDvroXTFWotpCbsK41WxXe/ON44E8FonaHbqMHf7VqUxth+Sm2hPyF1FFK/B0turIQ+Nn6nNBzQae2L9pa2hBHk11sevQAHQ+19TgEcXE5A2LHcOyeQREV0D6dIwaABYoosbmGHKFKUGSwAP3U9rfEL9oHEDjizoicgSHIg0OQXYIGBWhqABmPu1BrKxwUBnPKEU3kqZ4F+p5tRtyxzLkcEPO9as4sfEhoJlqKHM4VQMbRjl9fAOFvyg8ZIUcFCvaJrYaxCZvYT+jwh/VE4rrSAwAUEAtuBDvrApfU8GO+8VropEbrBNq9W0VhJH13MnQIEdawOdg6hBnvfK3qn+tzSFdaz5qWqvohexXSUKi9gHQEsgJdJiR1uoKP3bMSBfKwAc8qJ3slYeAPs9F0nLNobonPZqALhMHL4BVZGfsTWztg7CtmAKaGaP4xkcvu2B7YTtjm818TrAAxlx7FPPsnWcbxT7jxNr46dXEQtQMwUfWSaf5D3HPdIuTVbqME9FlH5PCvSEHTsp11ULPbFBqF4MuM0642U/043WEBdhD4ZzNKZROkNkOUxvx0SKqt58o53R2oqVbpktMAPk/7cYJNtZTJHTeGWjBJNl3VTOYwOVYPagolKn76ZmLRvIWonTcxsPrpdR7J3tcERCsh0RODCgFm7VE3wys4mnmXvHT39/1kwNv5xfznGHZPcSm3jeqYFJa5p5t7slyjXc1HYPj90sy5r523w/lWRpT/vRn/0ytFbZBnMRdtA+OtaLbfB2cq54ODjiEkvzjPmcf7625AohDfxxHJ1V7ep8xAMuK2dmrJtxp1RkeV8Yk71fvoZH9Rt2OFiEzFgmxmevX6rh2D+3BwXhlwm6Dl9qviePURi4ASlDjzredGMN80vkhf88E4ccDQ2wo8fSwuGdYPkIg4zTNmmjZxGcSlGWmTMf9eiln8aBMKTjhX0sEwhFI34sMlsFQOyYFwoqRlCOCyKqJwXCG2VMJ3UhC/YlewZgMc5SIlC3JeQRCivEhGSJ1Vw6oK6qacMlbYJqVhoLv0BMiPPcFr0alJ5dbX6DnJnoDJGGYPX0wYCOYMlJAJN7IxP0EOgCD39MEXgHTCY1XVM4qTA8PVrxeZaQeG+hWazQLsTtKWhK3NtCaQp+5O1qx/WusdFSWiXir1GuBGxwspoKEJRuBH9UmXSxyQiMChfmhUSSva/FoH0l2bxsmiGXpuvQppEkmuV7KuO/e/x7YnokYMJxgy5mSlvS0x0q0M2vYvfG60KY9wRluJinuucCJO4iQ5TE917LLCYr+1nOUb1WNVeJZXW2uaeEMgzX2O4TeSIWPw41fQ4JDcAta7sls0D9C5OJEWw9egBCkZbunha6J8vHqEgjFC0dMsBU515pWfMExt1hQ0Ni5abT6Hr9lp6rqxkxf8g7saOfP/FC4oCDHpthRqlAIGBP6erUducqsniEWPqHURTnaOtoiDhnfPCZ5sFyaXBO8ztBocQISFt9CJE4ulPEL3UKJUJLooDsdDAfcsxl/33goaFmS5KMrdIAKGZCf7S3aGfirK1FNZO1cBYbHNsjthYvCVD2kFtiZmmJ/5AQ5AouhKWnT+/gKOtsq5ypSvRswUC2Nladf0XTiJEp5pabX9B4kOsu7CZBaw35YMHVInsQL2E61LgKPq6sZLxuK2RJ5SSJSAglGEWgGPlRSZrbrND5DKvGwIwvVvSZxjNZWvRG4BYWC4rKh7gKh59PLFKwvEti5oBPP0rqSFtM2AOQyXDZXZQJ29cZkX/GdnNx4Ysz2h902nBxV1PF6h6+YSyfEWouf9NHxz5hZHjYkwZYyRkpJYSNedz/8AaGmU8RywagPeyAmoIznNVKYQeiYvBWSn0h13APd5vK96m3nUmatlZlSQP92kw/3OUKIKWsdjAKG7R7omXwOJOtJmkFisaNmLg3dtIbN9XmxrH3WZK2lZ7+gHgu/1J27TrlDdm+kEnTquW5xUCmSZB19Y6fFDztJWEnYQ9NLizW0jgexHHOdID7tgKNo/ijyQhzR2eeogvXWod5zYPmeuOUsLODp29DWDdD4LzJrdhhH6xBy43aFIfWygAVvycgkjbqWce6w+b6snXNjCTD0cmNb+pd8AEgmdeBrMvBdndlBGF/TJVhoNDih1Cjb0MyHc/ppEVi1sbiRLB27gUKOjHBb26qA07VxjtXAcODjmK+5S+Q8LNqVE94tJRxLRXzlIoV1GzkpXZ1jsAPDZasoSs7B5l4ZjQakUmg0KghSpwKLTi2AxbP6Gdv0ya8iP3gfvmxwjTgZ5iFNah5shPumHAfjAO5JyKsS6OjT8UKsaSLY3M6V2oR/s7vrEdzHlnRtgK4tsQWRDU9cKMgszzNRsFE3j37gScTOo5ASPcdGe0ptPNXhAW3EYE5svl/ssBCEI4tWeyEhWYp2hrvGkBSWfL+xTSVvtiR14HYZKR1ZyrCERL7mz/1e9MfKuyO7ugKgELeNyX5wxzfqvYY4P8WlNpdu/+GurcVk/VTmUKZkTE726+nYFpY0q/7brZfbkPhforkDjsc7DNLF3oPEPfQHeEqpcoJ0fKlhqwnP6iRKMp12Ac6cZp8LIWOQAIB6amcfEzT5vDQLURFKKZSUt5D8RtnVzfH7gWDgeDMmot1JGtblnFHN0BTTlYKKz+hjpHwUk/5GrqwIHlj+MkFhofMxccBQmzDbZJl6wPxNoFG2ANJuxTDbpg9qSyreoJOq/ccYAc9Ev4Fx1eJiH0hFWcjbdDGCtBzyMfasfNEacEjnw25cnp++dcOi/+ytSoKS3SI2CUBMKrHVfpXbXX33tn8Fxp8dNoLBHOrSgkfE+S2uX4AEWaZMnD1SWdxsgLTUIWNzlIVkl+HGuKgZrvBglOJrOiPhFlWyy9Rr0UFtqkO1jIhk0zc3U4O2mSN5mXMg1MKJ3rR6LpBgXPoKxAjlOkgAoQiKsEZXr5yHhslY9o7OTHVg/RJMHvOjnEqZV9LVncOth7gYTxMqd6LaVl1x71PLxwhsOFoGJxxtf+iKuVXr8/Q7aYq4zl/4KnRQhBxAzYaNLzGqBemmvGHmnBxEgYiRce63DjBLXbaNjtgLxuySgIfFkqgb4b88CyWuAy9rBvdSG8DNU3gkMMAIcB8YK+sO+TBccz5YaQ7A6/z1kj9q4j96gbAqdx0yxNKMgJdCi9joYOaIeO0dx1YoYUzPPwYkw+ufZGzUVrbjhpSAyTFXxk5g+j4ufrF992H+HuL3MQC52mqTFwKRzC0obOpymJpqmpgV2um9IIWPHC0sG9wvatlElXTAIQzrfTroqcLJ2ra9ozpR+51UPCKznlReZngRPTUn/6gmCP6Cz3njxRplgYsqDYluUcVbbpWqBrIWypmlse24AClQX5u+NLIgJOHg1EmmkQkF6L+UmnpfTvS2s1evF2G3xAozJdzRzcKZtZnMOgjrDkj4MxxoaukjdBEgn9xwgRWFsa2dgm2TPA3ZskHZ4CQLer1MabpviuTo/BVwOZM4u/q02odJTTngXsPu6q1hiEwOV0WDriealKcDp4g5O9rokjVFBNAFqavsaOX1CQCWnhDFTkeVHd2snYNSbki+86hlHYuBI72EwivR4rV/OIitk/IETBud2T5p3ogeCG3GuYWvPaToCWorYg5qtPEivGshep6Ce80/7x7SWF8oHeoAQrOVHaEmtRXuAFlVJDWmB4o2+ARkIwgtcXAh8cc9ZK5tWRPbku42mtcivEmoVrud5cLmj1oNTm+zMHYqgPutIDo7Yuxn19KbhW/tnPTEGqNp2qyD9lJGFxEfVcy7RFLr3Gl/PmjLKQ7VFrCchFeT9YSnzt3848JaQjsdMvPE7KYbc9/0juyCyIoyzNyzi65MHhfLCTZZlc1iZ5C+3WhS5nC5jdgeGLsl4GBGXKIiBJdDQgnsVMWbrQ2p6CGS5Nf1EbZy+i6zq9iCPIHMMBe4JhSHjrVSeLbVrOPDYKDd3/R0n8BvTUvlGjn3in4dQVLWxvh41QqpkPVoZqdilNt65B4HsgeSdQi2iej9VSY54WIe/43Rv1Xm11L96uRe4JPKI39zihRLCdacyAnCQ3twQ9SqS99zbRpW8ZG/0KOjQHBv4zwniyktsJsKCioX108UlL1fwSKSUPz+RA8jVTXLPzyjZgKvUpY7eurk8eR4H+aTIvctQbKecHQbj2E1YDUroE1Iuzqda0ngvHracFLVWA3vTeX4XCm+pNC3IY9V38a749ws7dsbH2eG5Z/RgN3Wr7KpXh4M1vNS++U5suvOfkDrG3byrKwI/jG3fRzJQZcIPtpBL7IwTR1aeyPd5aCl0cvVIkSSlMJPadIHPNaUTimhUCXTfIg4CHN5SI0WGJtqq+4/0/e9jLMLqUrLmjfoAncjuRzpLX5Kk17is3bZrCsXnjRgKGPIbk3+us3HLUZ52HxCrxtQSXEyzkFZF/URkX5302jhm4g4LLOOUbWQk37Zn6piD1zfq03iWVAVKc0srWQPmVWJrboiDN0NWPqYaNYVo6GWsp83eqTHyH309eEmlJYG6eqjz2OVtNExFXQNzkH71tm6C3kYihBNbgAnWF75wjQDKShykNUWg+ku4UlMSXLG5z3HLBuzPzwRNjprCPOOqsz2jJWMpX7EARsAL5WyqgabGoZSMlHLUBUhHhsRTzoeVqqxgH1BhuLfuU7G/ZEjaUq3CqCXTNXZ/biXz90Ucq8uX146pTITqG0s681fHymJLQMZ4+uthseqydJqnGsl8NCrRzevT2ZJE7hn9fLDlWhTOk+0eCPdbLFzOgSOSHDGRboqsXmQl10fQNawQx89ymRPXby07DcomfusZk7haAvPD4v16RvL+/HN8lUp44u4/YDAdvSQWZDbE3PqUK7xOJA7O+h56b4PhjMzzzqBL9TIozBBq04/FayYIQl+IoO8pF1WxtU0YYUeAy16PqieCxqCDldFiHr1y6H+JctyQ4DOas4lfsoHOZVEy9VVfo69cifSjQVCkXfqpWs3awxmVaurW55bs2BbQTtoJ2WXtRZodBxJ+3m+DNvh/kMDDqj/lJTnRPfbPUl/3erLkybPXzXr2+iEW/l5ZQXyA30FvjUgj13vEswubVbAW/mUADOg4Q10H5Hpw9dBtcZf3EAHAPzX7LHvsdsDJEemrZbEBX0III6EsetRhFtq5OxHoXnx7M4iovRRG+El75sAfBO1C9VC8l6ApW2lVthQzHjRoGgXTfaW4EEpZYjFH4QE+k+jbFbMy2rKl7BQugF1vUUZDsgYinkRTIPs0wixbKKYhqjsYYYsqmxcj6+deNxpZ79+I17k/IGjTS3SU/Hz/xcKr/ZgOzxhTzkf5YVlcKx8gEBRVpxg//v5q5jVLQs9llyTp/3xUrCP+LvoRge2LZoh/rhGlMNEBgDQtVFXggj6AKur+N+20nwLFIO27NMpnuK2HNisshb4cj9fmyymSPyRJMoaaYk0RcVpr7yqMeAJcUyuniQKGBNi3hVL0K9C/LnRW4F3FxXWVa5e3CCojNIwWlxMQWrG44JcP7QAiQUSkrjnRvD1FjNnqcWmX0jMZNdluAL6UN8wlWjeV/apHxZT0lXM2YDQVtE3QSxpx05YbTTXj3ZCSjFe/00MahB3J7cllCfxAyW4qFIHcav1VIKt/lIa5AsWR4GSTjJ4skYkT0hKB6deoDduDkHS8/Tsp200qsL9QqLBf34jgwFZtrY57bRO4DUOHbqYB7yw0Vhc4JOd1EU9NBHyByJsS6g85ypsWIkQ9JLaEO0I/9hFEb1M/TkKt8rj2LO0UCAfgsHgiPROWF1ZkwLfMF3nxh+OilmoGOhnsO/gze4Q4ovJc+RYSaMZVcXlmmz7rfNam+bxozUDl59GV+JnKTGuzMy1wKTJ1lIFuHWFUoYyvrob1Lb1uVsyLi2XcHQq2fy9p+1VvfSNQyVcajP6DV569j+13oSyGNk6EWX0MbSvHRkmb6j4Mvnjfg0NcP68NnR2s/r+hjcdCvvSBgorDhQSCOYWIpsMcbmu32hBbr8yh6Ry5KwOlIIW1QMw1mW+RQpenkvKAhlEhCFcsrm1Z5kojjPkZCOxMPJuwP8UJOjXojWwMBhZAjBrypKYH/LAApV8qwlO6frJjnJzktmfnNjqbzRWL6X9sic8BuZ5t/ThiUYhhXr5031GPmNuDWArm1PlyEFXazVFSEJth574xdhNNSpEmvpPhOx+H88ErTGcIW0jJ1H9UOR9rFEFElSUba3jajmBw4RnblpxKBowUZCirdht3dGloXe6M8BR+6e5c4rEfB4O2QmNdUeG5cj1B68pwIiu+wd5QH5lQ3FK4TihhxLC8W7fhG/cfIrwNLQ+GICPzUtq39tVSlKv9JgK2nbIOsHsoMPM9kmOUucqQNBsWOKmPgrB18HinSr6cQVTEMeF5KnajSy0uI+7+QSglic85Noxlz7IQBwpf/gdiXi7wT0ahp6L+sFHI85Krx+6PiUbdS6j0jPhCi+erpQGjKYJdLEENZQprQz2B9iBj4Ec/rksazOJEdPFuATfzI1TUV9X+gEIH31Li+nyjrx1R9SlCLsPmge/iskigOzkF34kgtYQnJ4YXAXbH7dWZTj1wTOiIKXOc3vRpR/Sr03ePOMIaNyX5HPM8upzuqdGVDTXqUnfk77BG5PecIL2Zb2rHeBto1FPRAy+RjfgInlnGRLAr8kfqe11WeTwwLA1QdU6K/CKsYeuYkoJ6qv+eIJt0HvUjPETll4cdwggoX9KrpwARZqH2dA/swLmQ6rPLyKsDkWNRJFLw1bDQiJ2hDWOGKY9o5rD9a8FPM/COkUQAR0nEfWdFv3U6fDWp+FBkkHaeW+A7u8b0agMk1cuq+RUSz7s66SelGtFdo2k79eN4sAHIrJ6uKFSsh0nIYriDo/gfiy2rz6WyUOnnBjG3+kQOFmOvpAfeh+7/4a+yYZBUoS7GJdcjkrVJ8PQ4WF4s9i3NDEoQ1SYADt2v54UooJPW6pLnlehvYSgLK6suuta8bV6E6L1dqLWOYhlPEPhiaNui1iL8XwnVj+3noq0f9Tm85S97aIoE8pyYwTAqm4+MZ810UyuaynDy7D8iB/9k+wcG2ifh71VO5EpGKr8Yc2Ohg7wQPIrXeRvXz8mOdyqx7y92RwI1yvPsc2NMWlZ4o+cLZt8OD1JSMxSdB9cpYAzxBDLuLPxDRBHfSow5jf/+mPkO0blbGtFLuqbN7B9WLmrIANDWFEKVhGWauI2QVajDWL6mg7gkIRAS8ownBt9sYVlLdjc7z+6LdA/4yQQLn1wgY9Ee/eiFHnEGjuxVRFezHWU+41HcFSyumXWB4KEfUu8tIm04NWSiwd04xovmlqUGdnL/tqvtcvwg8mKk8KXzfIWdCEBA2DyrBL4RCh81ytDtxJ0TJv3ke8EZyC7RYzeQKe4pVEcrHaO7aSlSZC+LZuQUb2z2X3OnZfv8TlD2yEv3Y55eU1Twzk7Ru1ySFKrmKJg1pdNKYhlHO8pIq00VyEDESm2Z0Objw6n4KqtB8DEvqfleY3zmiO/2IKXd+9OurfjuJBAtjBCBIMxpRqRtELCw9ByJA3VnU7TDuqX+vQL3eSulpXaNidtfzrTEDcM3oEbZf3JeTO7nko7N4TW3loKCjTY/a0yCZriYgp0iDJdaLE4CXZNuqVAbDYTjW0K4WESS5j3tT+AumirLQp6zKOcmsP3+WCm+KoYhxqFFoA8VemlrLC6cAlT7J0N8ik0WX93BTbqGWgLz/vOW0Ao87R2fwPJFWZB6jmD8ftLCKRWcJUxDdgrwnge5cq0N57twehWszI8tKGbsGJqsyjK/x97N7zIy05X7OlMS2Sh+r26JRvT2DLtkdD/ddBxtey96yitSN5ilKMWW9xNs3XhES70SFY6/PelnJT9b0FuLkluokWRwtxWbV4egg6bfBKgxGHOnNg30plGg0OyPCWDDdKv62hkxTs5KkRe55jcTFL/iYX7k4TVcYlW9Uno7KH+nqNqWke3s7bA1lhX36S9t0BOPG0n+8G2KWOAgES3IJSd4uM4+9zUENVEWOcMch3DlAStrHT6fEHL4JVy/lnvwaNH3l8II/fwOw+jgL/mYcsU+OGS1j7C3mVoLAvQKl3Tn3TSnXSHYPNsZO2IeZKIsKWtqitFymWYSFgLDklNZZuxfw0HiMOU07DSmVXZXUbhpxXzOJq6Vydji8QJ8RA6hbbJwO85EGwWSRaGTCKX4P8vxL4APD2ysN1V7XI8LZS0DsdqCHyHr5P5MVEq9sNy+WnSU8N70lCr+7GP6YZe4iD3rEdeAwecka4u4p6QbZey2onQvlHYmpZq/5yAlYar20DmcIESfI3EJJg1jeokovwbePCA1JA2oOHgRmwcrloEBaUVvIcYYq5YaHyUmuFwkiMXbzWEcB7hcD4TmRA6twWEfLmWMqR0rEnSADxurJii7iOi1GMSEKo/IBwfVSls5/khhxzzCUBDQ4Z3SB8RthVAzxpSG8boLCZiVfyYn4j5ZvEUC23equNwiNbzmXYYIYe/sSzrcifjJaZIw9MdoSoVlqlML+6fC6WjR+CHEfoEO4GvTRV5xk4XjKc55z1lratDx3q0XLHuXcIOpRtIfLbI64BaVdcFn6n/44tOq4QdN0iBDb133AE7cd0hw7cMA084bIAILMOhQasoOpIZZLgNI65kvy+2ttkBVCtlPt1Mvgsb0nxSvFD6lLikdpBEU7bDBupgWx2AUMKn16CpTPXD1ZHVwdcREBwfOrZdnGLTLX7k8UYjsUcPw0JduhrsCSkgWAtebnNYpQUPMnaygl1IQG2rFjsFTrFqolfvbdIUcErYPXhmtkAr4A8XtrqSIGXOLj8Gab5xAMC8TGQ2OaRitkKb7YguQ3nyPSmBzchAk7wZHQKz5JlIZvsfQCkBlwzBsb4YEtgrWaIEtwd6LL3a+/WmK0xEyPsDw6Z3GTdi1+uraEi6IPEQ9VDyyUb/4lWn/WyrAGG10zE1/JbdNwwCkDTl9xO2dUPC2d8XvKBhq5YuVWE7Uk1aFwU22uCyRQO+O7BAfJ3T12t4AOi93VTXwVROU12ylmV8aXTRKLV4F7bE2lWwa0Uvj6mLKVrHjno3iadCJOade38oPWbRqTe1bp/LoXv6uOb+wPQX0x9ZJcaSvoEcdypfDJx+M7NJHydgQIG8/MezPYIssQxT4TwBii75KiHhU1GS+1aK5KqHBqgaVMosV5WJ/nqWlZhj3Nt2SBl51wg7kxaamXNq3R1GsWacqj2L9vIz5Vx2N5kijbVuCiT0ZjYgb1+z3tU+UzqGynqD0eXiCzMjC3KNMT8nBsDU2VW5ShZ+CGqHt0jbux4qjRu2HgTtr3xOZqpPHlZOroGyWbrgR9gnmROhO97hwaP7hTRZ7rLuSp0GrfoUDzFepYZ0NYKRXOeeheZEwi6m4n3wXrAh5pZuP4JBHBR5DllI2CrNATTohWD5kv1P5riLqlf5hlqI8lVwigwbXNh3o4lcNcQ2DtLOiKdcTTLQQNmMARvPmHey+u3xYb1m5S3O8El9+iDgiSlvz6F3gTCb7UBu0qgeEEY5Rzd20MLViJRp2Gg0qPCkvQMY8fs0kEhZurqSrDfbbsnNDWh5Pz/YZUmViah70AGRlsAo3ARMBH4jRpYC5v0Jbf+D79ct2/hwfDS7skDiYE9JgMUvz4xSZR4sTqCiG+LTxTphan4V5i4pDGvj93mpr75HNoZer56pqTR3l7bwZ/QH47WeGj2lstyCSi6ap09XtGuXQrVudyUHeP00fXf3hWia76C6JDpx1571Xk4C/uxso3o2/WmO7rwL1NDAtAG2T+Dh4Y5fVAbnb21qbcaoVcWe1pB6qOF+rX/PF8QKf2uXqZwolR17DnR4sIkx7Rke2bMiC7uY/YvrK8K0X27ZKe7m7mqHL0g0F1jrlkr3/Du144EMBtLtrqyATK1En660+Wm8q9ktY+uioj26gD17u89ZPFk5A0RJWaF5z0OoN0flA5lvR8ukrpSR+pegHl+xCrp/JtiSY/6RzxRao6Aa2wq1opoAWlh645KOwXu6chMVVq0mVe2qo/sSgZC1eZdp2ZtraOwkf8HNj0+i3s9tgGxk85YJzv33aYlW6nNYM59NSNKifDqVcBygS2Pr20w+GrGICdmHqHdI9/OqYP05qTPyftiRZQZKlelacqFcTeavuYWFSvdZTmE9r/NlZ8suLnRUfi27XaLDV9vd9GHRLfW0DvaUErQtczo9OrlyNgRU0SXK3zq1J27UMIL8UKA29I5ylZHVFO/+U63TO1mqf1i/iFQz8jpYj7zV0W0bFuaDbM3T/Lvi9jMjtXu3EDcef3wrz+V1C6MwQGnHZnfJI7d2N6dlzRPgqaw22pEx21gGQ53zcIAs88427vHcvt4QzOvn9jl3koR0TV4kuCRf/2jhui5LCSp0nrpZqTvLFxDnNi/AxfNAC97qZPo8Abcumn0oCUvt6QIbvebuxk6VGLrs9z398l/WKAvX9fwENzSZN041Fu5dzsl8+QH+zdAkv1RmjMQqabGFN76Vrfbue8oyDUlu6T145bm57TnKP+v89OpGm2I/j5nrW+3uRSugbr/T3lbdWun0haIdWtPLLE3ukJqeTwnNSTrt6mcL4uhamteQjnkhcVCM+mRFukbJh5mJWigzWRzORqVnIcyMRzUyyy72gYfg1QtLorM03frIOVf6WfyGcuLRILoviQpXVOTYOLR2JZeqwficIasfh0A5DtdPLD2SZuEA4HGDw4yWCJlXfcVXkpiK+RcTj75Yf1ObHhDV46KLrEtDWghJekQ8Lpsnu9lr7PJAnqWe6UAfh8QB/2hWbRdQFxfjwWdRdjd0/TSqA2a+q0A4vXL/QR77ivPWXYqk5zpn5JNmFmr+WBlh8WXNs0dgZVRyZ6FA5GY51jEf6CM/qx/L/GZqKxkOFqOdxrx8kdaqHQUxy2fEFlaPPHDPET+PT5dLJNX1oRkClkX160I9ZeyebYc+P1t6o2A9H831mmDuno7sGr851nkbznX9slIXlTQcIZGEamw0Az7Kx3FTQRR2v7NxdFvXdfmXUqLpYykpLLhqrrN0Nvp/0+dxU/u4PPYxmfmahH4+IzzZVc4u4G2qsc75obee78xT+8fH9N3+C9Eo5Mk4Pjuf1Z2jx2PtBWolG//AY+W9h3VjcMFzRWC+dhsHKaKwUAFcq2FT8AJDBN4g136TGQcMD0PV680IIv35WSnUZDYt7xvqR2GOqrSJMNLuN+zQlV3rdYn5ABgHNKyHMdZ/igsJ6vorhSQYDRq7AD1kP1rcaq18pnxRdVAK119/eMD/JCmaZLEwi34wAaKJgwn1zoC7OGFaWHL6QGFs/1TgmmuBE7WYtcmYT+omw8IW6UCcPqWZevg1dq4MtEeq1lvsregg2hffLP6uSf2I3CpF2zdI4kA2Fivs02CxLn5IhQ7SNf4Jy5x08Yzlh0bRCpdeg9AXrjYRlwMyA0NZlf9RRUlyoDJRDiBWshuELqpZH9xV0a6J1oA687d6aB1CRSWbpJphMZmXnpD+WgoVNF1XZL65do2N8jczWZGufc8Rc/2jOGMEi1K+fNx5KG/frIUvIRuU7xXU7Pg7x2dKwn20Z5MrBlruWiex9Tr9LjO7t0j/OJcCvSzjC0DJ13Y91cRX8mWRnZ5SDYu+IZiSUrqquK6mGxbO7oY6aRm3Yv4sW8/07DFYS4JwjZuIDSkuLJcFlRA9RjGLpRuPoOCo6BW8r3W7+TMFHIkqDljGuSPD8xqWfnONi5ERHB1YfnFCNNn4c9FU2d2twih7Z6oo4NPrFxkXKNLsyHOAUPe2EH8hW+0Xu5cGxOfTjmFlmR/7pzx5a2USfP7XGkwloh3dOD0ecBzhqn9hu0pJdbAv2kBpzhZiPLlhfKQ2y4CZFsOh04JNMPsAP6dd9Y1jGBem9MYjUWyUVa+VU3wGikoE5akIiBQN28AFAU3RMsA+vVi0rXNwbbPmXgr94UGTbDYLShyBDIRa4FaEayB4Qum5FoKDTHZ9Flo2mpBny1j+IHEnlNXUBLVmeQfepTbUFOF9XWybh7LumdfRzIONKY3nXmjpnfy5EjTrv5TmiD07XeMRxJ4IZCyiEG8pJG9s3Tp5u6pZ3CgpeKQl+iTQlg7u+U6NZVcUCu79KypbwyRW0ghxzjB/tEgOzj+PhC31TtNtR5PM/ElGvJ3YIP98ZHo/8kkw5WM+F/ydLVdsDmpZ5pfHSmJGWwd8R8A9rSy71Nxc3+j3H6Ez1y4fn7vpJ17aF7nwMjaVdzY+iG5zPAElROtXu81PcefQG8XGpSP/+omNb6RTKIYsWeCWt85J6h35hVbbcrgRF6S0HnruoX1v7x1On3t479F96eydZrc7cfFZggc02r4YL4fmi8NpUhrkN62iFsHEN3fzcSZM5eQ8vYX/i+vMhp319sAPoVgdsacygoVCDkrrRsGC+h+ZTHxkSrR4IY6e8TZPJkg0KkIf7nn8q3Fe2Vrfd5qpZ6C28UafqawnEiTCDWS4CCkN5ME35XVWIJJ5IgN16xBowOmMZaF+Rkh1wZek3Nqg9YTwL4ucGt5sQRCAv47Txztt/qSS9kQaRNveJo6dLGnTPKLYPkE4X5fz07cmnGSUtqc4tj4mmkxCcixlboBkNlSyLRrNcsn/hJWb72p/H0e5Gyk+iOVInjVqvy7jPCw0QHZ4qwgfwefxvXPOiIm7RUkc/G4m+BMFLLFXO+F/uJq1Z/wr6oCdL9ItR4tQzDCBms+53WV8Doheg0EW4e9U6iXcmf7c/0ua3v38jtdfYDaSV495OhunmSfldfthMOTPR2hxNORwzXdv9v3Cv+bfITQvob56Skuzoa2MrhefcPZ0/Fy0apeZLRmEfVfLi2u7vV+fUS3Ngowg84bfhEdA2vrvuMKDYPUdymccWEmF+mBe8OeeVP+x/i+qtsVLPloTvyRNGWGjI/Rgk2cE4sn33j/QV1AfK793Zj8Pk//IGK8T4+RsdhJyU6YUou9Mwa+LO5asP5HSQoeQv57NGfXSkEiuqE5lDmgBlYDVVTWFufsxGwH9WfRu4LNfYfa3cTSV/fXAHZTKx3F4SFmdkWf8jmeD+UIH/o4p6AWVUAl0PEhyousNSPrblw+iba5EJKKPIO1A9hJPMQf8WJZFMXwSUW2WAsRjk52GwrvVPq3d5Pb3oT1uGLEkRj8vWeAqtIbw2ijW4u2k3tKgORCAT0Eda/Wfbt6W/A509D5/TIY51CHMufh5q0w9MvzZio/Yokx7mQ+EeU5a2X8qHjowmHWeT7Mvc16W6E6FtmRowrz20B7IB2Mzr3R1vTS59mVHrFZU+8o5jYU6+f3UaPIE+y0psaAGT/YJ56vkurJR7krPCcwWDyD9Jr77IXtSqqTxWGqy1X5sbpTo3mJ9Llhxb2NInyrylz/kKzRQoXtTc77cO3c5pXD/5ZFfVeqTk1VaEsyOHGWaqxxkv89YuMjfgW9gFm4wNLBkfV/uC8cashwRqsDyNHr3QyezQ6cGsycGBo8P9R7G5Afvyb6o362DfR34TSDlk/gB8e1lskK/oCzT5lP+/uzffCfm1rML3qqabo/hKHgVqpYUUpXOI+BPv5rpsKhbAh9Zcoq5z6E7Nt/Rr8qg7LHM1cNnRQR6rKSSy8nt72vvyfHp3cXQpBzaLScwNs8uobIytC/Z/x6qeNbj+4m0HnVeksTzPmDL+Bl+HOa2PDZCaX0BeqzdPSMPR2w+DKRMw3EeY6ifjJi75j22isAsSA7N0X92Hj32p17tezYio46f+OvJ4/tPnTxw4lRQJ38ivHe51vC8TElB1CzrO3yBnscHZg2xUmlWS61Wl95nDI0S3AUQ/T6YUmmecYkHXOV9yLDYhZVsq2XrFzj3yN1To30SvNGo6SJJ4V1IFjD8j+gV+kZJLuxadH2dEdOxiBYroGoymo1iqUBdOYOs65ySbH6TfR+L+7fRmS8R2T+Fp5WiLANV6WOfBF9Q9DfEykbKm8FooQnYBH6jZs/TAB2BXhAqLsKId1KJRnGcsSC8c/QRlo+2WXLaTGGeP0RKmjy/+Pykqg7eMVgwAIAIVoLTTMDI3hS5vGS/U1MC9/quWbZhhdaIS2oQrSQG0cSCv1UFSpRP0whoLt7qkiwPyQ5EiPlO8tl/jg6DaIx5qQJp3IsbzrL87KD1VldUVowpyX9mfYYB1j50sNmLuKYV5ngr2rEhcQG1t6TdRWBj2KDJULgSVkrW8KkjSGAry3Bh9efYUt7CEmjAnxsigCET0VnKEkxR8dsa6X2CiYAtvdomRIVrmzJ7/DYek/6vqgCjJAE4MjV0K+pOTDEfVQkQ09/Pah8Ip5de0NFDGOewJ4ICB++ZB2MadJEC73xJlIKO06RsdBuz31yKQH3e7R3gJrH+N1JL+3Z+CjS8lAeSU0LV1Swz2h18w2+MCkSXGWUMIwLlK6zauyAW3wdL9wMh+dMUEI7WHjPoOFvlSxuHcT97HwdP1eg68TwvS00fogijs1dszKANDFXJS3qHKXSfr/petvsUN+HE3KI9+IS8mOIPX2xrVPcQ6BwXKdLR1L24JX8yev8N07Z9H4btdXhY568vqT91fYCaE/+GqDA7hCmw0wMOeEc8Oueg7XuW4lsQ8D9LH1IVdv2C85+Y4codNioRJ8SWx15i9lJH8fFfF91ux3oGNjO21VIFIsIwYfrRlI35Wtt86dlazlxtA85QhBJiAQ4yJdQD7nb4G2S3NHHOOKxax45ndHdbNl5jaPqUt2xlCtBjt9wiNdq6SXbV0Wrr7T2UtPSR/lE8eSZBYn9ym0g1ibPUnfxMAcDLG1uyydffpUy5f9SnfPLGJXtKiVaz156zxmedSkta6oiwlJbL/u9sWEpiRXmcSyY8z8xTqsARFi6/DfmLuk5Klig8vGoseMq4iopqEZG+mtAFitHtZTO+HV/DSWnuysfDfPe0FQfV0dLFYZS64LCwTMs1gY9A02qtoS0wKDlJp0wqDPbhphwYGqN/xql430/1TzMScQlzwEI3+47i30lvmo4flsu6XDDmGqbFbKp+dPphoh5BStZkHn/Y74zMhv8Pu6ll39UecA4BUkdfWwwWnWHzInSrcXno2i9/Gs4TsiVwUlUXKFWvEuoXMl0TyGyInvZ7qsGe293FLUX1MZlpqElfN7DZMyWYJS68NiDh4ViNQb3jutkrSJHGj12taGd3z8fYXmcB1Ve7QYFULaj56u2d3loKxhFAW1TjCk26TqBnT3lV7nnzC/7DV47nzHQ3J6mL7+NGrAbK9kquCn1E2LWk1AeUQe0d0kI1JQ5LkrZXrQwdGFyAjQsSD2Nue8nRXphRSaJsCpqMw9ASbNMuFt6xqHds9cyx00TL2DHQek3L0QRuXuU3An+qznSSSLxPk3cPK7wjtIOe65CdYIvXQ6lZbLc3ge9p3bWENLRb7fBsFOz55t2QqaTJJE3juyT24fnkgvZb846W+03wwYZeClLkUoHqwP7sR+2oLyR5R8O33F429h71TUGuWqGgQTOOESelhhCDeeVUoWcvY0NulSC7JJeREJl0knIPEih+cQzFPlz5pkcrMQSwRSLlQVwTyEHKt1U7BwJbho4Mxj4g2Ub/DV93wQoeSpJbJcJ2xKw+opL/qQDQdvgHErRJQNsUBdELwjJJqY2k1FFOKe47ml1NBQ9iYyjkQGoDNhf7Qve98rB5SMr9BiPKSSYOFItJCCESDui+Wx5FNtEjJXMpCNm5h3jQO5Z+j3cMrA6/C1JQiQA4S4ByiNrA4WzLPCoVkXLCSQ/QEaO0NnRg8AOtCBmRGMnsiAgBGV7DPcO4mMwENxuUd2o+/6EQsaraA1HuS4QVnVyB1i0N8c/n2bbiGxoE90XWXztgB0DY4xR/syeQ2tiGQ89sR+9s8kmosQjvzUBIV5NKd5ONLhPCCdRIUVKTfN4JM3bPA49Ykoo2prp1B8keYpR4lEA227YSytHlPAufLvy/FOiHOBOOR3ej1Mjf3u3zMpkyg7z8P+DD+877MAW6X/UG5yj/khUbp+PJDCSY73XQliCEyduubU26MfF/Z84DJ079rfc7dT4m265YR71IpNrJukvAbC13/DlBYWwf/PORaXzGsyN25E8HMeidL/r7lI1l630oCwYtKZfmo8F8HEZJWweZs9gAo5JYjcBa68OZLN2TQir0uewsLvrOcy+paIpO/bHTZ59Bx1lIOecfE+dPL1fyKUvFOkV/ski7kiOu7+t803zngYbx1k3Ykpxp0caeqqBiFQJgTno58a8LNW2992LL/uBjaAhmc2KBXE/c10VqbPDOys9VzQNClL0dTtJfWR5T8u23nn/26DFt3paFQJYpLLQOFduCCTf5hyBXRQHDICPCJaE/dLzoObwBWgemQpFSnwGsa/o8xGEul4FZbzl1zI519EiNebOOB4QvnIPd2jZT5V6bqI5XDeQguC8w0HwmBR3B3opHdE6mBazo4Ra2HSx2F6yiAQXqHyr0Wyz5elI3oANapJhYtsbjhykoeaV9i1nlWY/DUh/PUQ+31en/0bl9q2P7xZSPMllsaDoT25PT9eydh/Qrt/QGiF4A6NkXWFZ6uiLO1NPCdnE1bQUF3RmPL3pkfjrYoMenn9CuJt97vygqeNEZp5M940baAAmnV4rxOXGA0fGxh/4VfnJWSaEiObAS+Gluk8XmhOF5vt16PLX9pCcuS2beTw2MkbVn0ltZqTc3KBSqk0XuP2/MNCkFVxvLy0r2DbJscVKVi7k21APfproo//apY/vYJTchR3PxPpyeeJDn25RP0Vy/N+Jc8iu49Wme7Y3MHLZ9XVsiz8ZU92T8HFth1kS1pOriuk0eLHVLpTzcjvp43lDTdDCnwByGghinUKXPNT6J2CNLDgXAKk7n9HKa3PXWyukQx5w0GqVcv+2WiG2ykuZh6boivPPQgIU/h/Ec4S8ZTOZ9uEwE2JcJfrskP4umgD57GygyV6PzEJ3fB83hKPLsOtAOQ/mNyyS6btmzOXo6FqsOrCCwMsf9KRkE711FRX4PVi5VgSgdG0Tw8NS8p8hp7kA3sGFcirXfl+3zDwM+aQUv+ZlDrux0PuSOjr80Xk2rmim7Vq7OQ2WyyXw8L8lshVZLmDraqu6fBs6iicCDBXh5PWFgmcnbWtdp6EGeSmfy0dlO/s9CynU693Kqly0aAu7PZKAKcrNGyGd7lVKNjybZDdd3vXM2opNqSzlniRy2qG+znDoHG8nefA/FP1RBa9qJXlUr2Nhd0eJI22cjC4X65OMTUeEp4pvijfnEa9brDhoa6gCSkVO0/5DkFhO5JLu1C58D5nS67iJUMv0wDwZnyAcC33lgEIay5LrOSVsh10EI9ZxHsqeuewg+WyFK6HmY3qBed5sp6vRGneffgL/fqC5nYSxpqPFyIfoLMJtWfESzlrsbfQUJAA8WAqGFx7S2eFbaTG5iFbTFtzKtOT0IqGLAyq+xvoKex+mH6uVPJgUQIq4XM3ZdYqH+HjelFz8Bg1pApU5CYbqx24dg6SRYuvdzNPeHOzCLpiUP4y/6h7QmeVz0ul8ck7zuuGhycr/ndwH8d1MAef3GJk+faXSEJzvaz+jmdTkQbi2vFck72uRS5TdiCcaZKyJaaVdJFy7EcoH8h6/K/XhasaXJ5c/XEd6denwdQ5je609+jcWtn5D00pKTm43HsQkaIyeMP5JtA3TNp0IbdYm6pWNEyqWRpsYR+IQZdxuzFMqe10aJ5IsjE8GX/ZlmDKBdL+3cXOfi2aF7G9Iz7kxPZzLz50UBrvb5KE+YOLAVwvWI7E02m60FQsHD73RYeOL+cIc9UXGFZpVC6sWfH2d+lxzwwNHmd1gywcDDb1eUwn8gKzy4A/49rBhS5anV7gG5VCit4HubrBRwN/wOzPQGdvRYWFH2LtuSCUWwfzNjY3pw9/KdtnbZB8PAR4mmmaf5p+f983KLFvyeJ0dqXw4cPy35Fmb6SBfSz7FvsjKDgjoBjXYCBb881A0aGALN54DmHYpySvvWp6SO2eyL20oD1rdIHDOTz1ds646dbWeoZ83rip9tYypnY3tbfu2JRl885OxSiw3fTKVgih4I9h+S0MxNdpbkDxHfRVwkM6/XhzkbxiMOOTsZENZaGszl/i9INh+j32MmAomlsEZRM1pSI08C99fM5SE5VW5Io0pIa3QOPUuDUt5vSqmXQBFax4102jtHvVra6rrVeatZIuOvNdezFk5yMwSYzJKqLx2B8BFfpBr1uZkT9U1RNaDSpKgRwXVEIVRnhhzVRgDZGp3S6SkpPmQSQeZx1SUDjJTDku0NQPSZqR5noaZoh9AGS1KzBdx+TbxrNJaeW86npEHd+pccucVOadU2DfOVFEPDun9MmIRuHfDcZmPGkdGXNEmKzCnTuujEeWoYw8xTKcOpPmvvfJDtp1p1Q8lyU1AnlTuTrUq/4DlbYJRkLRGj+eznx84FGTRmI6wR8F2aZb/Pa8mSgvH4klEqoXE1uI74nWhfVw0sm5/cr68aGY1m5pe1GdqkdZgAtTJLS6SW0cpcvyYafvZ2ZD6d0nC8U61YHavBYCaw3X4rdg9C8ZeDxveZfuk4ow6XV3D7iuzGk2j+E/ljgNAJ31X+4mn/VUEg91zrWMqmClZW+l8HzO5ccpKSzDlx7XAUc7WY64LryJ5NOU7q2pRg7j5uiP8HcgAJbl2G7yxDT6BSu9FlSYVob0MAJMK06DpZzOqaXa4ktsgbDjN6cUNSbmBXFE2AFuwgpsG29k41YK8gZp1f0NEjl+WcB9T94xP9cT3I7527ChC6UY9JUzdLlYpV7WX3ErJi18SKB742JGT5RHA8IwjmFafCwLydCMuYasdFuONike2FIpsLt5mW8zE3f1GPB5m8yOvB1UOLM7u5mRp94NfmY2R3qlFWO0NTui3/VIXo/XCxk+NvbftzioQMyoRmdaV4Qb926mxDfeEZQ0Cw5Hh8SmobU7BQRt0s1Jk2x5QFkkboBmqU64FLP23dO7dv97mF2+1TXOk9RaVHG+uq4qWRIpcPixcGFZ4XwJXgRxT6cOvCoAL/EFwFJs6cYJLdVA51btg+u61Isrk+tVzZCvuREtWy5XxPj141JmgeGNNqcHRtmXZyLHZuG5WBk1s6rxCtDa+EqINwVBChhqgDCFQAjks/hW68IvsUDkbs+yzoi7a9xbpI+6hxt+kUebFuQZd6Qt574v5YsBSXGNbpB+LYj39KM4ObJBlzPJbULkxeiMu8GrdiWDPhlsEwIZqb3VV6bp2iJuQgzXLNazK3mvLiR5gFGtPtGrKdLjcUoptD8oLMOTntemEBsjkkMwyflTE2PTsmaoaKDZFzDQ15A8WG2BkXytDc+qKQStQ0BoiT+3QLx2WiXKKcU9m0lEZwuaEhc2+m27YDw23T5tPmUyHfr6JmNeWopVS7to91TjV2O3Ysvm34RKX4z7IArlFrPWLl2xOJjvxKZUMpv7E7US2zWqRc/H9myjShT8z2KComBKKKWtgpfMVEkT1beYmBv6VzDx4ShTHtHE9b6pYSFb+KmTl0yR7XPw7yHuvur7igO/vndhlPsLzq2jj0Y6jr+3zn+PFTyJDfUhE6M37MVaEfPjxfUvvtvNd70HlDd6uqv1FyaL5QfX0FNG40lCY3la/XLXtkPyypF4Hi29Xr8Ykx3/A+RB/5xHBXUvkIeEvJyNtSLHHMruTST/fYtwKfHi5zRP3jaq+ri7/vUw3Qeat/Uz/hN801ObYNWS7AAXDnpLlGPvM51xGfvXRW9vhcdGvqRCp+34p9xH3Yz97fjKi/a00rfl29aOnpRmqodwopvNSe6cumGW2CyWadsy3ulJs4x3r5dAcMh3cG/Ic+xlvS5abUcC4DQlP7TfD4019bsCxsliq5R53s3+jsquhWJThZHbkwovsfn7RdyliaEqeMqfXpgIDnuXpfQFFbS182cXZMYWe7gauwoSNXnBafUNAEuNsE+q7qBMku0gqUWTbJVzo9mfEudle2kxg8nPomBFqyVMl9pLBbE0qTUhKqOr9OF+FYnW/Fk5QaXCmOSaULBA5c5C39rKKJD5a7B9T6QZZVjWvTG2m50ZZL+t9WwTG43mhd0C7IQ2I4QlO1nWlaKUF6M8cRnpamaVXW7mEB6vksK6qk8eE/imRxg3I4F67QWTHoQKGDpdlBnqe4sedsc5NhtFqq1dcKHr1Ph0FmrrTZ5Lz/yNduBB+bMy7xEibq+YgQMy+MWNV1lfu03/xn/oFS4nEqOEKFwyudFzApFNuxbS1B5E/5I9yqkZt+E3/+TMdN5tekQjjhlh59sx0szTLdnvF+3c7qm8/uC8ft/af/uOabz/HUNy1oF6myko8KcXo+ZFRXBBpbfPNhQpas2p9CBYtogA4RnjeWGs5dIffpr2uurqsDXSZaNK0dm5Dhq9mFyzsGyhhpAJhzH2nrL2eu/W32eKocCuE4FGI5yE/goL8uQart2+jqqOhVxbtYHTkQAuhWykpiSzNXsfvIYYc6lJZCqVbWefXa1ogTCK1sf/8UxMZnqzh96ppoICt7fnnDxenJtKZJCj9aOTXBNCmtprzWpwciHAv4F7lm3Ia8zFFHuonKsIvRKVSwMN2sU5jQeHiMZ6Cjcm8xWImrRrJVJlypqsMwZKZHWeYujB8IgyYRvBwbmFIrB7XOccugekU5YAdb5c2ZdGJZMUybvtPBc1NJ3brpK/xJL9ZWLQ6JChVRzSfknsJEHRfxJWitSxbQ1FQVOy+cR3Z1KtZCHLLMKKRzTWFM1wU0Pt+IIGkg+ltBmdi/S/SjqcLyYXSbaf/W0mpVJvaPc3xxY2+gMXB1PSTTZeyZjra/9WM09WLpwZyq+hfqZyv3WRyHjpp5seNipUsasqdz4JRGk8mAm05rgnruZzm6apymg6JTwYFPVE7vu1TqoY9I9tOyBNX4vloUPb461yjL1XQh5KEqvOdF8MfuXDRo/aKcu7BeX5yth9YtCQyVsB6+DvwmhOFX16oWFUDqF3sCTdsyr5HBj4aqHggSDRZEc98h0D+MSvkLA7Pqx420x3zGlebSnVaqLlynLUCjJ9Ao3Wj0pNRxNuqv8ei6S9wiQ/FKbOiLf1QWn1TRXUi3DlgoP3qMmIEG3EWaujVF0MiI+nCggPpZZBTKI/jf0yBk/sjycWe5Z9JiD68pT/tXyg5WYiJO8YfTDT6j21uT9YxAHP9fQU2tvJiQUK/WXUFiyrKf3Q8RNO3eGvUv/zd8+KTZjnyDcVBgNA4IjKZBfOJ+PHrsenbByyWlyMnkXldenTt78ipW8QslhUMPXwcmCx/A7uGinRV44RdQI6280eyReECdZXaMAcKWXECiTKaDdlTIphKsOQkVUsw9ZFjqA34IUOIIllGKKkWqiC500GTDG/faHLNYUVjY9HtN5Vrb6U1OD6DQtxjUOyj00ZdozDUY5LZLENgN8loArzW8tlY8zcuVTEtmrkV4nYfD62tlsZYnnlZ74Qz3SDUd7IC/r9sIdHf5bSP9+ug6l7Mhl5qOdwjUTNA/E9b1NsTkOt19lxyYSm0QJWU+fcXcWcSqmoZDi60Vd8IuSlaR+etEIp/Qk8GHlrWUITlzph0lQeoOfIiuroRvgHIvkv+mlmz/luU9e1vnZpaPrFwq2HaJeSUwfeDxEghqt+If6uBrNNCtF1h5sFHA0gF9r2+OnJVmPpGw43EIdROO2Mnit7z++s/jHfbKJ8xUBwy7Ugx9fa4RqOsEjX6HzvqeTvteblriN1yxso/7fyMIVq0lqbs6rKl37dFoJOr+kvW3aM4crV0j48mcvYj+6aC83WISphJQliAyx556KoIWV8v7X6ykZm2lAQjLysXCqWg0E4MZMVP6jIJ25f4i3FWfK6YWPRR5nqVQkKhAMQ1QwegQkSLgTLAJwWNVykormBuxaGqqiisY47VDNULtwidCqLqSLWitFCTtdT06OB2w2BpikbqApxclrnsljTGCwR9M9fYb+Xa4oHiJvVVkinJNbyvbaNayPBNfRQmEXajB6bRZGQeG2B1/EcgGOKwZMtk0Fnua+tWIHZeYPqvAeq8h1wq2XGL5rBDy9gLbNs5LXxHxmBEoCHBgWlM94d4ocoqdjDmFDIHK9eWxb1aUpZZlIlkndmQbCFVBh87o2wjv3WfPndRdHeD8TXt0AQb9esnI1N0PRuYV+7m6hhKNBi3GM9qm1QuWbR5Kea1cteyFmJPIcNflvwkA+GnjmS2XvtZcLEx+41cV/EK2HPAK5fv2kjZWlvvbKY+db5vmSu8x7D27b/fJUGuVUfl9LOetacX0TYGtbVtzXSJJohPxy9avnVlbuW5memZiZg2wE7oEYBq2nUA6OQZdF9/yvd/cCpOuz4YiUAFLq+viGZ8FzKVE5KAqXce2/116Ymf21Jd1GmjbO6949DSdi6v5Z50h1Sph02ggTl3SLegq+RO1xZHPiOlOjU1LqSt8bcQG4r6PVx+BFP6ba9EpbMpQimI5M3sq2YEieEDGt9XeekXDbp/Yuw5NMZLFxM/YNHVKC6n9LS0GY7hBoZ+V465PKkVtNlUsXcy2wYOe0skVTRyw1Ngi+TsQlXl5LgLLItv4HBMzcY8ax6U6YFicIxA4JBrF8hwQeEt8Up0lh/I2UeImfWc0FpsmhXMZv1MVLhN88dbPIq3bvu6kDWWESeM/XNXT3l/OyCg0ba7M4lK+5tXgEbGS2lnjveq40V/XBrgMtBkGnSQBcU652S9BDyHYRBITAWeSiOzMAf4d/tuTCA7hlzICR6fg5ZR5w+3OT+wG3fsM3J9/FfJwYAlXOzeRMGvjWcdfOen2qdRWnUP+wHIYQyppYUdZb2aCi9mRbU0G/5J6ob0BwRWY85P71Mn+E7rl6QnVRkIdSpPQdP5UUFMvZgIw24rd1dZZ0a6Kd7/tmye6F4WecpySaO0ETjhsxZZMVXIfMezSBNJElCpVjV+nC7pcOs/9QCCwy4DoBQGnTiI+fgqWBjmE8ZtOuhtwTaIG3uF/9mR72XTmSV1XT7dK5wrpZJpx9MoVej8pHhJrGOWxN0GnWacIaI11NpYoUcdHjTF5WW3lPwfGh+/u1w7ob5/fpo/d8pwUcqAd0z7XI4Nmn3Gsd9uuq565QBAIlP7vPM0cGuxrE/UaOyxrlDeD4yx30d/epoh0Vooa7DQltT5KLvDBKeGTCjMRknmroCMx09qUYiJ273WK+gI+wtYkyYTn7q5/NU/nlcx9huw/Iz59GojW85ePLrBqkpXFxtkubjGRghdV13PRx1l0dyoPCKy/FnFjvsLxAkAOeuUYny0UH+xcKKdeLyyEr/XKSrh07ExDg3qoKGbviCja9xvcUqOWi2Ma0yVcKybylS6uaOKB5YamgYwPsQKtdcTa20atfWXxtfy72qwpWmow51L+S5S7jpgxCIIg6H2oUe/1+EHPk5P6En4cOy/ac/NGNar66s25qd2xXEQBizRqWZ2AoY/Vl++3lWh52VLofQfCX2rHUSDg1G7izaeQ9ra6G1ZPmqPURv6lRFbq0mWaKdbSn6FvvQG/QKxPQRE/bWlukyC9f3XQBpfc26UIz18yKFUpUk701f1ULmLsnf+Efz0NJDfLhmtDkjiFieZ21ruBQhOA8nsZyVll2am0X2/6pZkTJXog4OllQkwU/T7VY/ymk+ngtXbUMBJ5EwZ7jEQcDZa8TT9UgjK2AJ++VFSil3wJ2FLySW7PS/r8r9xcvk4mEOnkfME1kfAaFHYTgTiGgD1BIB5DLrtL565XgUD7X2e//gtfwJhaNblZP0W3hn46eN17ffz63k+0Qnp/7eTk6imGDe7j12fpsZ28UC+19wk3xYSbaHInIVEWZFMOmgPq/0Ax8TiWP6FAWxYPvSYSXBfyhhmslWcj/0YgxrUWhEQ+qqe8HlzyUXkdU1sZc/ZCB7eOzKLGE2oTH6N8B6X+JE+oTHy04l8Y/Zxo43vCIq9lydiCq6ZfLtC2XNQ2f7Y+/k28qAKiLUzybs3P3YEzotnwX82WvwW/08EFq5ABXyZUdg2DugGB3kBhrn2wSNgXlYc9ICDIeJ3p97s4vL1tK7Zx+O6cRK72586/9dXZryC8lYkyz6e15UQ2wa/2a9hcfRW3Y+jnUNfo4TlMNOk7GDs7erjox7xC2l71nGLUs7KTfZyq/FCZI2xhh1v1aEpDjvzhdPd95GflJzBr4Yn7bx+htLbtnv/FQz9YqijdvpwR3Wftx8TN5ERfNL0gb9i9vSLY6K6u4pgV/dOZhu0pO1nGUn+KSxio8cZ25qpjyZ1pmbSI4qroTvH0w6+lmIQJmWiLXcu9KS9vN1qqqyVPWl4pVHTscu64WkW7P+G0VRQkZoa94GVpTCU1vo8YEF6nyyBPDLPV8bPs5OMZeuZqUsC+uFdlRG5akV6QnLHnAW1AmRUbHR0V/fmxLtrMbMLXY+KcIqoF3/MEbgCYAwvy1ktLaMKLuSpWHz3s1FbU7EqLrfWBgN/r0VZPpP0kpzqVAa2RsCEFZimgtHQ2slxYLPWUPMvRWvAT6zv6DKGW62SdcvUdhj3La0F0mEsH90coZh0kl1uk7hLk10Vf6ZX5Ylw3ukCIqLp2HdzRWDRhb8h3NQv8AdLNVEEIpreU2roDLHe9tZrPbEDgL1s8Y9yqXmZuvbYUTQ9p64x6cbxKM9FNMknNrYhDkLkZYrem3OYEYZwmtWqvsEdL4yTSyWDaSVp5DIGNpSlWaUb3OCGVWa7KeqMP5o5P1qkVMfAkopdjBvP6TO0ugtl005VF9S3QDHjakYVPPr6NLmloChh7B33JaPgs/88BxwnBFUaObeZoXBsoQpGGrYcQnmJiNOHP4ZWgYoDGo1AP1meTRw0O7GhXuBenfrh3WfDONrlrcWbrvwGzbnFnrUNmLXHR4EXANZM2dHpr4gzpEeRgGCv/4y9vTqczx4Kh2wwzHSOeWSKJhZM+wCXrJCdLoVIDmWW3Xj155his9Ix3HQ3Cyrch7J/FBO05RWj7XYPVJiPF9lRznxyuy5QlTEOsTmrjzQcqNwiEiUHBdza+5yzAsU+q8+m/MFo564AINptqZI1YrYbPMwrDfpJxucxaXre1AuEp/qHDovoSkWUPO6rgycfcWnBT7QiO7R1t4a2fdFBq9GbkJ3OpuYIAB0UQatPVrdjqV9Be26vzskP3ZWNMWX7zWk3bmzuKqQlANfZFjlHv9lweoyDIVnV10q+OS+Qkhgf4Hhu88R7vMUUj0ttm7C0P+B2TTQ3E+CutTnTh40+5K+ThwqQroVsti2NyXlhl3d06W2a9ozmHNnM4sjJd2CoOapkX5jWGCAISMC21yVYTjzkbfkCGLmAF/1Bgf4A9bzZjuR40x2Zsnc9xUsQSgDwXbO+xtqYoPq0DQeHYGLS/64n2J7jTdm/ToPsqvEesY7UYwS6vtXUDuqpSIAFeN9jv9ZJz84Ax50XOC6Z5ebSx32tRzOxDYcYqMbZsVa7XLqkRJcsot948VCxbAuu8Uq78GBSBK1TNCJbs4QY9UqHTfmVjbPeDKfa5vygIQNKQaMlDd+xLnQCQroyAxaOKKbn7SODR+jA2t6hwZj7PeZ5sUhlpHAjuUYPNdK+t6dX2oP1IjBk1wUN3D0ZBncLMKzD/KeApdFGwe9BHVU3AmFO1Rswkd6q4RsCnm+RL60fiWTq2QFITJWsmlxlFuV/x8I2/K6x97Mcv99WKdZrPq/NTjyvfKm/uOqguFFxgKBg4Bhwrz5xN5Wt5rCXHUDqX6Y+VPI0fT7ONKftITtss0Juvr1QYgFDlfnrMZ6k051IsoZ6Xo7s32GG+gUxzchDzkV8W5ue3KhoHxeK4MjmppHu7fj2QAl8DWbTemoiv1PV+3RAT9Cs0uthgjHUpsaDzQtPaYQkRmijbQXU0z5TFBMKJ6EGVsHA+7c2uE9k6j2uH7mt4mvJIXJd8LM0/F1j/98m2kzeH23RoMtGUGN6pJL+h0EyLBVWqhnEjp7JlvJNUaHShwYR7IDykU9Q3n7p3qgkrZXkcW2G/5BZ9Va6mO85kzhdNPxsvhHQCUktzUmVhd05qaX4KvGuwQKMNxws1lS0Igq2aIQvM5JaqFMRztmyAWFB8JnG9BCVIVOs16j55c5XTng5qZXyHSKt116/gW3+p9fH3zQW0iaGsZY3pfBOyU2YZYW4rq6IlQ2RKtjErJ81V5C6r72tJJbd0so7oQGsU29WWukmlQ8DlklLJmURF/+2MWdmIBcivCvIn+NVvPPwPa9Z6uH4byhIOfTVM/FU9yKZsV6E8l2PGfqpcVeh/M+bUfMo+Sbo10lHfVr+hEalsaPc469vyotp0ETHQFL+u40ismKxAp08W6nR12j1yp6ZTlITIRbu7PtKzu32T0p6SrJ+UiKqUyfFj62qZz0IpNLrIYEVgIFE3zbOqbsKfLdorLsRHK69WE5mBsFfyrOuqn5ZI0JSKctmIxXZpl6gajNR2veznh2AaWsUZHULVuVTGfDDfgD06Li/TRIuOK++mgHn9gzM7S3k8tTu7PANrdI0jhs0uuSZ0l4Bx0TxnqgDil3o/y+9asWFQ0y2jboIKGjKHNDrfuYaGjIF8beBMVxz+c/zY81FMLZvmUSdn5LVcXWjDuepIi6S83KO3CUMi/eeGM40ONwdgTUUKeLhAYPP0nDaAWJFBB1x9rkezGluXC+SaUV1KR8/RzcbCWJvLS0qjug4d6efxAQUSrPGTYOAi/jJEZgRdITc1u6Y+xzxTxhGpVi2hRDZhZuGyvVM+WpJ68NPqWB2JuwUZejKXwmD/RZ7zQOqOlx7NhDC1lbrPTZdd5pfmEpxmcMd8mL33H/Jq5kv7vjtgYB3wTknfQ/urmcWL5oAswFVzv39Ilb0IPDD4xOxbaoa3v8Ca6gyoksC0KmYCIVX5iZzAcjJfbvY30E0DXbaSLoJnbybMfghNKca7ocE7J2HqsSAYqRC6dTIGsxLZe8fkk9zox2BgCpXKdjHNnxu3Xu837FCoyHJfJhjLqyQM5W1I438VjarRVlHgIzZuFq/bbIbyLCtPohatWTmzEn8MeTPvjhaTemz5WouhkpCo1Nn/z6Yw+Ftn98xp5naIz2G2vhkaZznYX1lxcqDR8mXOSyFgGVU/QU2f7G8B/eUbyOVnWa3mgC0vs27Rks/LtFppX+vAseyjs5jU12Zz2rPJbruRZ0OKfg9y+gMtJvVwQopVBeIMuRUoEqBQzxvQLdph8v4o59zghmO3nGFsAvL6jJICculG1DX1p7kd4gnfqWvbInRkNvN7SQCVul5REDvpcMg11odKoYq4BWI9icM8qeyQHNP1/b3iwuer7D8wqbQK3ReKGZ92hBnIxP2AIGrRu5Q3DCjL7MdzhF95r80dVBiq15dsw3gvCGEse49YOzrk089OKs38k0XLmwaKcpaqgZW1d7SY1M06q4K68TCcANRj+l2CJmmB1cmEoEmYYU0isVo5dvdFMIDrbre4/oJJ/Vha9rDvO3n3pubI98yFz5DhM+I/nJB8/uTRBX9ZavMjBNZm3PEN5l6iAw6bPS4tHdhRZ9k090YUILlMphv0RcDZcamT4St5X+a7QbJzolqMuxlfeG/MfHQS7rUAC6XvyHbUJ+jrrXTIbsQ18ZO50Tbr/b6xy5UUuS+5E+gaWEkcztuwyrd6rSrMQGYz74w1Rd9uKYoSiZbBxM9e33jcimm9+ffN88yatZnhesraZcVHqLtfm89pMUeOZbvhTld/ILYnt1jDHrv3v/40nML8s4IKXALw9yvWpTh7NB6wKjpFnJpT6/QBXo4tBU7oI3+Fnj7SYfNQlQD7TcyMnRtQO18S7NeSW5NYl7UOI4duoabX6eKV7mmVtxy/2nz3zQDBva2evBYQwRmBhkuCerYsGXAT1bkDZm9vtnV42Yl6uNo24+VFne90+Obgh3X6Z4ttOmhQBzo1G23Ty+1bIeN+GCcTQM0vC9MNbUZIJRSYVFaLQS0QGsvhNTNKvg5smC8pqalhwZoJ926aV681psB+PzfRWL3G2FTR+ybcs2PtAMN9KLHJ+nMBEufvtp4DoLyRT6e39yvw98BV4KZl9PHGSN+PUVEol+h7Tyul8HrK3adoJ+k22akIorZkoPpfKY+DTaqE9fb5DRG0LQ0p97vzMyuLQip+c7+2qaw4b6FP5p3lKA6orVpcE21IZsnsc24HMKVNp1k3rLCxJiP5OsvPTcXX/1a/qOJ0UYPfUpDkhbid9+lvLcCWQDjoEm3Oji23Em124JOqvxkQ7qh5rfb9TgTKNyrMMzEn0fEDgwt7Mh4tY/rMDg3b4W7goxQyBWU5KNGe4KsA+DgEfYo7OWNdIvtDDiPocFisIYHO5fhYEMJg0e0CoY2OT9mtUgP+vVQ/Qszm6V47kenR+eFPyqlH7lKfUJmMRYdTiC91TOoxiStz/i2WEaspJ8dE1ersWxX+wmyjFkYGEdNfvVUaLMk0amNnJDn2TFgjiZ1Wq8WJ6h3wjGdzGrR0qUgipNMNEpE0cZYNccahmNfD782wlWcAPwA6W5ll24anF5nZIQGLVj45kryIXIZBVBLqIRXjrMaeJjvI1nFsfXpwljm/XZLczLaFlBBi/U6he6B8BtFBFgnM+MaZjMpH5lP+mA/AEsRFpe/icm5Uejo9Ohn9zPNTLAopqa2kyn1iKXnBLwQz76iQESyYdEbA3mEw72BwNewnsheJmsxcf/szCqmdPWYPcDfBw8Jt9jIqGt8BbOnW+BFN2B6CJrTDUeufPrH9OXHvOzA2HG8sULBOkaFIJolGgnKgkksGu8UvugPAjJlTEEMU1MF28rCTw6uT0S/dOYWhkGq0lRSFT9QBPM5Yj2CIcug1io5bkmj4JztRyolpnbY03qEEyzaNPDYx1dAUSUCmkPtRtTYneP22N0fR7rwVL35mO+SWGGptIpuFSfPNcHbY0Kp+A1jlHa5VFayEhjU49fuC5Od9Ho2Abt/wZwnxf+JjFe7n4WzLUiT76Ay9BARy6r5p8WBtOEhrg7FAx3qANPqc7KAA+Ad98gPDnS1ItnGkTz5JPMR83mfeMBPoMjP80HmYRzA4Z3u/vxH90O0nKCSOkkIu9O+O+Oij8OoyyTSJ8bN7qsQfT8Ijqqsln34VPlVs8NR7kPleUrxXf3aAak/oQw//Mvw3QfKFZWkR4kz5KUGVEBcUd9LhnYYc0W0c1cFpeNTr/5JAeMk+p0EpwiKLwS5MzPbjEdMkkk+nhdskx8UOEhxcWkJEXCyMaMkIU8MhmSJdMByRqBaPEicS4o9Ka7CRwe+C//sR+I9vuoYkhQdhD0cjESrAzLZgQyVq7oygQNRw2nUU9iYMswig/ILHFLS6jceg5hPJ81CYcYbB/1wpg3pivphmA/ItbXKiPx2rDBDWAZybRcqjIKHPiwvaS5Em+ykX3joaPp/tTf1GshUCQANrjEaUuoSCSTF5O8oD1H4C8XADLpRmVSOIMA19nu5GeqxQHMrAWwP0H4HFOwI/IxkZEUaiwEoPeXi4bCTCjwqNDVWOlA40TvqUJl6BuTU1SFFbPzkpRY9sOBJgp9CDs4lOPdKIxCzgMk3yQL1VzdaxBWJzWArrNuatQwgeCoUPBTy9HNO7ZHOQdxDIGzD4DSRiuxx+6qJ1XjxRBbEJO1NFxNi6P7wClN6J6iFDSfhcQ0PuQFhi9IxfFD39AhB8GuUQtqeKKPFJQ9mfJfa5vgmDjyCcWxAgQWyRXuibOZQx72yXt6eWPANOmT7Pi6noH4R8632waMwLIonDxZIe0/cDrhdDPUIOuT5nMm5NyFD9Vb0J8+fS/SnFYYxTFj9y03NY5tHk8MPDUOj/cLypPMJQ67n0XOAb00hl/E7MCNP6otyKwDuaYxhdVjrS85P4fbOVGtqVwXPczFwjmnfILLJE3512LG18KV3Lnct6GDPIG/+6ItnO96OzBySm0lbVrtjRsO7f030M7hthZ9JztDlKj82CWQtNK58tGDuP2WiMtWZVib9R6zKDRbr3AO1en5QsCg9k64MvS07rRNEZv2OH1k4YPaVIZewWpUYXG6iyyO9P0WwRb2ntfDSZrHFN/XlulHgqdme4eao10kRmM7U47RaQvk/AvGiWM+BF9PlSgFx8bICdJ2tCfESJai2HOHV9yaI8KmfMKSpZLggMl1yM70ixXRcLyO8sA9Y1WHMX00YLPiUY7zGwPKUXyrwrfqurTfAu2kfxS1M/Ezd0m0qfVNwj264bWcANd9SCAOSDgAUw1TAsr1BnUDJr7GtcvDswNkYT8jdkqvLtoHvVj0JidzWP0Tp9Tp70cF9z72i+z9Jh7HBXjUFrroG140wjq5QDQ/2cdnuUl7wiVWU/4eRY4eQ5jrYKLMhfkS3xjwMfV78OiD/SZn7c9zoLU3drt/IOMSknq3BNUBe9KAtZO0Sae72J7s/ywI23ChJ/+OaH1+sY+ejVL83nE3/oIv3Wwo9r6d106rVhXkm5ejpOjhSu3HWj3PGBakNd9KpdJby3PiZegj31z0avqovb8MCv/+qK7aED3r8tmx2nmDxMmnuzkeHPrDeBjvDTu3dHNNJ1xqv/9n1xC+2k/mFtk+3csDfCevQJaV5JvnqGEvw5Srhy99PcpqMXtlz5kHhhJGx8KmZVLcbt81jx0ZssTN1N45GNLZwbZ1Awwmjphu4EnzAfGe0NFcmVOlRgiEKzVMssCeJZLx42ISpagZC8QJ8fdS6MR4eU4wl0ZiiTQDY1YyiMnXW4QEaGiSRWq52SNFQ5HemAp04qq/tAYK2wNzetTtCZ9rALD08gvtRcmTUJ/ag74QwMek+52pQk8rqeOCkZXv58S2tnOC244AsZhuCIvZkeuNgo5u4FBLE2MzrOQBzCU5yhJnsaFXA1WEwnxa33yPLbXC9oN6dNGd6CQmZh/1HKTvd1dPrSz1yTpxnPz90Fys0dD7e0tMztKtxrUaiek65R8ZoLz3+zDXrjbppTNo1iBBYhiMphO2WyKZS0p7+eWb7xvy3/zXeuPP0/yN43Ueb7mffT3kgLLw+CWvZL1y4X/OdSsG6toKQRgBjZ29RcP4/u7Lf93Lkk08MuaSZpwRQDygWuzynUb7bLNQnnJVwvLAA2u0wXBSrdRv+lTlQMqbWucw0NqQMaDXfGTdTTPXiS68mkw82n1MHdv2c5upJFUvJnHv/KmcZ0byxaXlVVVKvSLq8b6j3RBWuXolDS9pmwhSeGh/tm2+BtUeFCqysCxl8aggVm63XWDTG0X4BACKYFYaFZOj2zHlFfWGo4ng2eKJVNSoAHZpeVjm7kgmWvUIhXtuS+ii5dCT5UPeH1ENGRCaHVTmKoZn7JLJp3ZXxYDQcyciFUaxoQUqwYH1qYTQMmSJDvUDwpbiP5/PUCy2+m7wsh15FlIizDpFz7Pmq8V7OtQ6dZ2yu1trkQV6gudwvGETxe35wxmukorv1edyUrDJtMXmyuFx1nO5HdFNdZjgMl0OvQrG0r0Gwbl+GVhnAaTQg3Hr5+jKcV7UULc+jABDHyXzSPai3VmvpreutIWKZRsZV8eMjG8kXEk0Jf87XgrrEb7d0VfTkei+d7uFJzJV2nZXQ/UPv33FHtcDcSqzX53S8Vu5+nuufv8mgYONXdXttVGOWlHjjAw8/IBa5aimqF7aPGtLYKfte4Mw31hadro9n+tg9qJpW0TZ3OsrlaGSMnMXzA22XBoSRwmcvKBXyEG216VxGIf1ht3NrSffL4tqr4sndX6mQ313u2J/PxLp7DHI/08qx0spMH6uarnujioef4AE0paJCAZ6RTmW5E2XvW37MxpaONK95aj3mKxqfQev8rNC5Ca80MbI/roJ+WQeMGCL6AjWR5aOuGPFX/T+dRgvfbLMDhHtHZD6VURH30fJYSKjLWuxz13mcBx3afee5rL//XLldqXWFjYZin6gImDkhE6SiReIQU7bm4wIse6aisG0F3DrMRxmo0+HNZCstu0zP82ayK2gymKd0hsyJpbiuruiGdYUoCePYCk+NEndPL9yCSpkb0tzNsCLiZu1TOKbT6aD0WAgFiQTsmYRrQ+EyBP3jnpLM6wj72wnxoSjFVxo8viKVxZcO0wv5zDtYqI/N0I/+ddEs1kR1QH3uTtZY99aWoVE+S85kQ5VxmyN4BNk21bPpOLXkl59R3iMyrk1LuJHqLdQsX59QXJT5jgL8/efui0pNY9piwWRpRDcDbVZgGehbdIpUdp8biDUjgMzI5ZNoZ686L+Qt/17n9mTHMP6PtnJova0znldE/f1N1PrSNjPF0xt6BrHg1sEGw4YH2AVOA3fYnMKCiH0htw5uU8Y8Np51qFtK5p7Q6w8kKKj7w7+PEq/PEUDibysxmZr6Krng9YOwGHZzfPqCKG9UgKzcp41UPYBWGiNdD8Y49HyavpDAWiX4YlHIJ0o1vPhXnhW1Y6p/loqCyVV0zqwPXH4uAy040Kn/IM3ofPAbffIoMsE7n3zh2NMTrlfKeeekDky2nsiAc0zjNepX1cF+ozLsSGnctVHhUZIQWTPj6X/78P32auezvfudz+uj+u5RJj/kcmcJ3tbDYSWmjkhTHc0/5bm2iTiA3slZ47E3QLub2pEsbIDYGrnGq9w3lUI/vT5h8KM1W5h1ltiPvjPgk2/9EpWo4t1UEyb5v7tt18mQr1T5VxgvTWlujDTzm0WM5IBuXAtwqz2aAeQkMtlSctlaHR7D1BPZKiOCOs2BcRv5NQ9TmGXTVbDrnVL7WcLKcig82/9l3h+ivGE9Y5HV13Vqw8BWhtW2wrW2rAop8cOJSMaVYbhgb8MlG1cgUOmW8SqiVlkdqnp6w2rXmOqA3V4wwtm+ZSY1NYvvBawgI+VHl9fVwtgtOnfkA27IwlXE1f8f4uRnsDSgqcvkFvDV+vrmzsjnT0lWlYE6x10TS9FCQI2hpYtH2MI1Gj5ihttZ73SGdt91I6Gt/Qf2fRYDt8uYEAwWwPSGu88o80mjYjuicFh6SVNlWh22d93lPuYNJJsheiw/Z047Ix3gY0fgU8t6lsntcFtYQfNHNwGPtW8qZPdmm+0WaQ/VVmzxXxk1kaLchfX/9sey5HWIf1bPU+6uo7uaKy7CQdRcdFbqch+z6AYP5c+2Ycsz+6eGy7ck06Mtth4/jo1PBRegryJnejmntdBevcxHd3Vj2FuqO5+qR3n9ySrnYk6dUSOrIndAmPPfbY0cjEJoNj6M2/VqPKSDcv9rfZBPbvk6zSbtjS9clE/EGfs/RIxfnFomnxOuLf82lzqrA/LqhfHVD8ylv/fFFlSHPJSANx7M9oSVa/ygb1dXOQrsLWgsiLdMsaa+x+ZItGjNuSPyMaCh9FIyFI1Gphw3RX4+K69KeNhfK7W83T5SyvStu2sbwTx/EVQ/psBtSSGl9x/V2uUrQSH+y483lzuWy+HWpwBxAUclMxjhXv7d2Vwm64tPNOy3H0GqrVgpbOl7SOgHIE5WWfvLZTJdSPjyyO384LyX7Yb9b6+iVopiOdAnfSshI1NtGAFb0Lmw0ryMjIhn1kZfO7gsIAdiWtOQraIXJkkMxIcS5Zr68/U9bgvdRob/SlHFIfbQRPGsbqO2q1yse2zDTucfi7P+hWhOpnaYmR3eNhwounqxPK83RAk3Fs3uy/ebd+NPjM4BF875uUM18EvdYnt54ooqC92vzX6e/ek1xJ9JpC+hNd+jKL0LbhnVp2L+XffO6zRObVA82yMvJ8Ta3qx4rd1QIXqebKb8CvtiCafnn4dvBe+/MRnrT8r7yzuosXj/a90KQR2HUWKjT7dMkHE1555H/oXIlyerPiW2ycqprvjsvab2cQvXp8l+nv35NCYSHh3P0xqbW85A5aZEjExIVOT5PoTXXSJW+tLR+E+KLnVNdTpajpqYZzwjoF/0tQZM8WkH1dS/muVafVEVBN0h3HCp+PAdSsRTEHUXRJkxjOmIFuogWO9laiteP8b+gmUalM0xppmZ3lUH858HbzE2Uwdl7NoiC9XRfgc817K3ZbXCM9Nwt52wWFWKbA6nakaPy+E1dbvkWhYZZd3NVd3qXdjxPnAXzgMBvzz2vHowz68pVaTU1kyLqlM3AyzXPCpH8mohBPXCVKPzVoiSu+wHafv1ZB6ilXI0AiRl1RJks1VbTwUqpL2yD8RDmVzguP2SHdXnv+spsXhlTlOfadEq34LUZGXpsSN/fcCwbQ8sduwSH7vc3jdghxjHG5unQrJwcD+R+2UCv4L9FsGWfZO0wGPYFQSXXGnP+CY+vIiV4zF++AIlsb1pmQKK1nRQN9FJj1i896nGJhVi2N1R+El9xlcrpaKP3e+p4oFg5dsW9rFVX3KvjLWy+RosffK59XRNoXVyT71OKa0Yp6hOtbcOzMclnolRGodL6JYK0IXhaIrbXIr3d+ipFGwoo/PRALd2h6epORAB5cqy0Xtc6WRmJSS0DM+oIpRHw1Ui2Ril8rJ7fuipby/sQQ3fF/pRgbcvsRmdXaY8y1sauyTYPcC9aaPLRquoSz9QxFaE0KSUhq7XlLOmrBBPmshuKzESWqeJtdOKhaHF2wo3U0yy94PdlAtu0oOE1hdDtc0FSvlGskAXwULFlfrn3gnvuihjWzeXbjpl5n0u3eBeeHDypWZWd6wl446btbGO6r9FCq/X2Brqps9Ve4sV5FqXCnAVLxbWCCeMYpMhMaqmQwqmEee1XF5bdzhD6ogIk5VvFamUULxFb1lR52564KePYBJcfuWD+nPPR25DcX38sa8zPxnQ7LTrYUk8397d7Sj1ET6TFXPWGHeAfo/q+gj+3BYKgriKLQ+avz1pQ4KsHdvqU36KnR8GotyDzmPGyeagvC3TLv96NvCyuvudoV83rTfGhPb0DfA3CiIEhmyjjkJDXbRPpUVWRRSHLiaSXKfS02DH0zbSbqQzpb8Lqdqie4/EJST44lGYuLs2fLvPhtZQvmy4oGr5byr9WWmDbXCMr041WXqbEtP5DysExF2t4A2OaDTRqkxCrZEeEDlqeJ180qkcv3DUw2Nw0MToUUwPuwfueiBCc+ljcxZhjnA0hFWuEuKHqv3ZGAYUCarFQoU1dXfNz89W0oKvI4A6rqCdi3lv1wpZV2XkenzDMB/dtFQVpL/ENLR/EXrNSXVR625BAmlS3Rx1sdFKpUVeqIuou2OXak4VQ85z+ojQ0wLrzzdiWcjEqUng6e+yOIYRa0PB8t5pPUa8aVOQfD0nKBtSKxuchFev8STsvH+gdBb7rdRAQuP0c/osPtwkKwWY0tVqxQP7xx9ELFAVd0cbksE9unBN69dgegaJA9fueVoBP42YzJEd8MsMc62wZ60CmeQF4Eka9lMh1bnJCs/OCCdzP9FWnNbY+1wcs6Ty3MnWRn8OVj2Fgc3jQXeSLub8UCjKHtXOSsdrt1hGF5R83TkUUdMVrk2BhFrtgfll4AeDe31MzuCYCwzF8JyFWVuCLrzYDpQHnby9lW4c3h5gFsEOvol4uC1DyqoOVjnNkNxBZnvXb7ezyYQXBBIbP92zT011nNM+tRF3g5/D7JihY0shXF/piXi+FgkzmlvnlTguOE4haaYYxaDLTQGy0Soo1n41lcvqFwMxTxOJVW2iZkfopPLJeMjR8B9eSp9TdS0r0cKsBAq/1OAicsMftL7NOO+DopSww9ZFusVzC+Orx0y2s+FiaEq2MqV1zpBCNuwADtlIq5Z1FSXQj/XF7l6QSbalInumasnOY89eAQGvZlAgJkanFuImbPcb/sUNMCTVw0LfZAfMloPaykug/dJRR9VNSSUJZO2Zq0X2ygaQQRVLjMKQSmACG5q6Ot9r9WGValo/bs6b6EHtXU5dOsjp7YmpyfKy6SEEXFK8ACklRn/IoH8xpH3Wmob7kbFGAB46lRj/KR+jaT8nom4V6fHNQEUk9XQPPGRZn3gLzBDxKhOuCc1igK6hunGbTzRbDHcAlP951DtTBc4fFma9CuIIObEAYF1R1uBCNvdV8ObEQmtHyN/0a5D2a64lc5txj29ZYV5lg9acatSqFtHa8IuV7g6z88tQxKyVNEBnLQ1I5v07VrqdoP9TCSgrzpbeqKnXYfZ49CYpTUh6BK8EXKFWLFwLVl9yVnd/xraPt9Wq1VcSXVWtSYScXz8rV6rieE/ehrySuFdub6+dE8qpyR42LLTCjWkr5mHk2gA08A7/ZKI1GY+4wwLzWsP4QRWoY62uyUO9VBvMEXEpE0NqkUvy648GTdt1yz2dKjVPJIXcdfptadCTzGtqT9B1y329XFf8p1XBYGKN1KbwEGayYAgUVkxBlTMF0QGGhkDpRl0PK+HnbVftNcDSnne/Fr0jw0dONZfFSg0eZ0s2MxDa/4Tm0Mrrd0NZeFrVVnPst8nXSVzGkDiCux+TuD4UotahW+KNyye6vRA5qKe970P6PRMVnrew+JH68H7l43BMGE9ylW9ClL0h0Cwo6DTeK7vyC2Nb3kb0AXYF9BqZCRqwukvedWjVhQD12m9FstMVtmBmztY14ZhmWVwY2Vlf9ikWiCv3Kzez5TS7p/VdTs/ECsrAju50BquxQ+n+6FySRQe43Cu5nv6dVbFCEtLHAE7oFEdiTvTXDT6wP9HdmncgM7OU+A//ULcDh9bMyJZrwsMQtcHu7YrRTa8JxHwoxSfHhhkJ4s0euSR6XU64XFhi2Hst02Ghv6785HGVdY2z8b7qXbaXBT5DcirzGhswhbb6X6ENog1PsC5c3DRQSKy7Px8aONPYX6QH0Gxw3jj/CR6m4bp5VX3/aK2U1DSZI21DJaWuNBk2tUOUXebu7jil81miTWFZl05o0oZD/tz/B1g3izG9CYLOwOpA2A6Bi92mS/RtdjIa9DQkC3UylELDxRgB3cY/WPq7bjh17XLegy+akwxPWj+YM78bBkBJ4qbHW51QwPT7J1JCLRyrgWyUWWQrTVauLlpcPTNGmyzj2sOTrelLzLQLjRxXDDfHiKhanI6WPSNWtRqSnwtohFI1TleL7VKxKOD5W4gfKrq8lCSGsqnTlGDhKzcMbwBycd5IIJh39vm98s4RR8VMmxlTFTVtoM6p0AvSSBR42MKwYvgdGKEXr2j96v+P22aKrFRRRWUo3YRjixz0Ku3tUXywQ/NJX1d1oxgzuVd7Qc/7zU/7wGfHgPgRuN86WszaRn7lICjtZ7fWZ5sY/p7EI+3fZzwPb73MHg5ZH5oXP8BXEkc1DPicQQ6pzVNyYuFlc3A7gAMTvo7xH0zNS/lNi5n9EllNnmwfe9JYmRm7bTJbe3mPfBlwk/DC1EQwLL0GlXriXwvZ7T0NBO65svoJx1bgt5UYe5ZZR2EvymH+he1INpyFmbw4N5bhKPu0uGG+7fKBnSSJ9BX/isUFyY+JphfKfyRv+zZXuQjqazio5FwtWovwfkZY9kcu5P7PLXBDvBGTWKJS15TZNTdugPuPKvOeUMuL0CRfd7tfDgAvxDHTC7tdc00LM9GfBUlV5s37kSKUu/+Yz+1aJ/6W7jtjaBtysd1goaR1cF++vBZnuvQ/q1EZSHs/dmsYB/0ilEUZFuW3HhIVknLF/tcqsUGoXsUItQ/GMovIyTpM0DHsSvauA+LN+xnSEmQ6wo5k1nbz2M6tJ+JbomtFR05cDcCuNv5HHMZM0YqMuIul9CorJA26oWV+I4kerjYjBA6Dzecq0W2m2OzwdvUP6Wjh6upH4NygqE/i8qiQJF5f7mCKuk+GofIEtXhffLXQYaHGahoTBtgHdDyA9oSH+XIniaPoI6Euj1r4jsfj+uBKdyov8UZZr+fK9BC8r09llA1zNlSMn0277ibUpRXmPecG9Qu/Dhy2KcMXNctu2uiwdQCUn/iF968B687qKO6mc5E0CJACPlVHLLyaO2tpGQDs2n9pUKLm+Xv6fDRD/ChmY1t/UVDLY5H1oOrGH00MZk5tMEzjAMqG4vEKwLZfIrfp9hHI8Jttes1zS0dsQv0rfEV8CLXhy6LHa6tGT7pjzqy2qKmrfq6Iwd64K4Nz7ASitDdgU7z8oqm4TXP5EJOj3c6cR5toT1xJqJJL2IEt+efeK0ehHbYdFkETmQloCrzJOToWVH6k+PlfBBU22vHd/cPLZXVtctVQR1jZZGXKZ/g3bU7a81Bcr72MsY/L0QpWipuwY3zqjHmdSt5DUXoNU4UGXTCJYhPHGw7czPZDPKqdd19Tz+0YZvp8Es4JcwbIqpgDHTHGYDhAf7zycbi+QVxEkNhWXbZ29N9aldyeyzzE8coFT1wqbqpaf0R2SMhyWqH0iekV3XgSpzHQuk1Som2M5gGRLR4wiq1cY6mmcWu/qsgFehd2KFrTuvAvwOCvtjj6WTYyFm2y0K5a8qo859733bSPjw5CCZiQBkp6zTw5KaYqxdJAmLAhXbBUmjZakBUQsJAVbwG/HDaLkVjLCXW8au9LcKU9jaBRlKI/HRoWdSqtYAEaRXNdF0/rI30M4Mc9UfIKUmMvLxWbXRHzK3BcV/mTOsUyvNxkkGGynTDCD4xBjogx23l9vCl0MWHxAg81G4FOop1SdDpBILWZDrxZDX5CzmoFeCYGfQ+DOlZyTH2oa0FuijsbJgLWN19Eq0v+2ScULqpJ8dOWtl1YHieUWnaFbh5ZP/LuGgRkD4Unwh0p+Wqu8xb2X5CC+yv2KWvH2LVWrr2etV6q6j7h8IkDNWVdP0n5yuAOK6ze6Oit6VPEudjLbjoY7ktrvSgfKrPba/o3lKbK5q6g1qmdYFakIG8CgR1BVewFdhOX13mfaZk9MS46rrPXrvOZr7l0TO7s7y3syE5zs7myXSMKF1IKrHJjN5/SUJwc2Oruauwtbo3uOqKKU4a61TeXEViV9gG/QqM9RHebCzNWOi/0qlPNllrGctBuGSzgNr1/l7GHKXHdyAEFcJ5t34pz3SOpI88Ab2T878NH9ndd2W3zVEF7bDJyJsDkbakJtgZ1VIqyvmXQt1CDkbhjfr/+HHf/xnUyAb5TtW7bwzv+SvqhQuwnA545LLO5bo9HY0Pq8XfV5kWpZ9j0th+GR/0tMOwYZ6QDtoIfahCsik4+D42xP26j7acZaYfYt5Q4lg6+Pu45h0FM1UxS1zyJNBIbx1+Hod/2KKk6AU8lyNtPCDszaG2aekMYz4jPPXS3v450kpun7hbdSBur+bCmZtCLO8eadjA3+7bfQtfKk15ZaKuIuE7eWHVCYT/LUxls1/KMqSgi9j+IfFapjnyO1dJTGQJkjWYHJ1PliFSmtZJuc4tK4Bj2rmNjOF9I/oI1pcC4eVxanMRZbF3YyADKFpaQNFAW1gvxrA4FY5CrKhKOLDpf4xZ1Su/2AvXnL6bj9qG+Vfuibevms4uF5srHxrlkBAW+eh9pKgultP2fz7+THdbkVlyWfDrkTY+wJf451kS34DCvvC7Bj7M+s/rk1RSfc5QJK155kY/p3/Mh2iphAUrDKpmhT+IezrrstouCvCJQ53cSvtbfh/KR2ON2o7yZDJ/4i01YiL2U8RxeVDkvXI8EWD2G3VMCyABc0Ee7Ycgpl02AwXGuW5rLu0Jmm5pxeOccuJiSNE0BjdVg0sdCdQGI/eAeWIEqWTuXXi8rNTl4CxhF4JsaXSzglxkFvm13DAvMQ+FCMoZhg1qgTqz2DX2ifsz3Eb9knzFJSivQlIdNT1YmBYGTxY/tW4MQ/c0VyTV+fuu/eS+jV+gPzL2NzZ3gaske9fXfs9h7CE5Ge0FE1tUNoT12VR3Uyl/thZTwGJKc0cgDHyZGZNmRJ1f2dQ25tuCJG3PSF/Ds/IRLtKg8W+bjQQWwrflHCYHwyYKxSmZYeraiLn+rOz5LsbVLVqIRftzCqtnP1xScU90kwps0e9Hx3yPH/VS6hHWKIVEXiOEtX4kLLHzgtPQEX8/AhEtfmM8hFCX8Np/7CIGqUsXbNJy+89amgfjariKeMEr3T2IZHgwvFUc80dicvBemKAark1qiuDmVvx/NPo0rPfsSfYsb1IhZbJZgSyxPci2JGZyGi64fA9yd0Gy5F/LL53/+f5OlX60ezbtX4Nh0an14tikml8wVOEhjxR3do8LtQarnRpnGTmjpMhqG+/8x+0+KoljHCxErPQGvLyFCTaOupvBS3RW5lsGgWvIPkQ5gdtSzcgAbxrEYvopa+L93p6B45M76oTBQ3KFvy4HK9BYMOAKxQZqYH+XQxKXJ1Mm82TAiVfDwnSGMgjhmiR/9AdYHmLg4DDcTwMwqU4I95vG6jH687MK25iPtL8N16uKpvRmeXkjI3pzFnvovW2WR8UvWG+ZNd2Z8ecXTHc3SO7ovZb4sunrmBr2JI9Xapq5juCAFqsdxiuJNNcJOEifroHRaQ3dW6s9YuJKZYr5PLdDoJq8zwsGDU60Ba+iSfd26DHe6fDeG2k8sHzKYmToTba/68Qw7wRkClJSVSKLxSBRCqCdgIqlVTrXA1muvmUC7KxcjFa6uKVC/W9GQx5Y0We4kTdXzkW1QijZQOnJEM7QXDjpK3jiHHgSIbrz5UXbaJw/6z9lVlR0tkIRU+eL+vQlEUEGyXrVRQFrYa/mwBy6+Ua1Rmfs5JXmyqafQvQGhNq8ytsPBzrmYkKj+h0bSzA5gcBVZXrG3LZYTb53ThClBxMNDLwtJe9Z/PbAKC17SUh8zFkDO+37qbn1kSbkEXWt+lh5KzqW/a23uZt571gWptDpeWAODrt4clPExOhwDPG0sL56yQ+wirYlw8ZG1laX4UTw/sODIW2i9pPgOGzt9m0p4btmK9DEtS+vKBQ/zhvXaOj/k1wYoH4FSykX8JU3RmHf/sGELrJPiLHD+cMI9t6LNWTSqccaaQCtE5qMl507YeSCCIyCOFNvq1hnJb/g34e8JcnN+9sYLup3S8y/tLpXrCzxEBpfi/R4l7x3IO55RKF1pJD2QjrSmZ1NSv6FSmkxPcIvvM1HyMELu590MH66dZ3n4WR2xiAcxnga6kIs3M8PNK+Cf1VlSQbr6CH9848vMEm5NHK4TYzElunCzB3kGnagb2oUrPTuVv3J9EEXS1Aq1VHTMVkiFD8dkzvuc09NG1+FbYNca+8UAAwq1SlrwQlorR2HjQRXR1k11RIhiK+btRZATtdEFKOIIZQv0da6VNvejet5MPK9sWDVfdemTvmITCyCYhgIvoZZFI1+8mfyihZP8Zzo1IhMmDcs8KIPtA/84veMtGfsktW6dHwk+O5fGt0LrbtLUVrGdPK8udAaJgVgNGGpwzY3Xf5evk2+91yST3iu9+ZOGGEv71VITKaWZfD/4VXXRmmL+/LZLyzMDSD0kMBqIrlIPgty37ZaeMh2PYwRNUMAUtQZTa+vLhE0P9hvvl2/1h67dJC/jmY7mZv2R0KbXE4uL/pFAq0KY4H4M8WscOoZHOCMA2KLWdBCFtflkf+jMfrm2jTJibJHE3ZQTHdvM/i8fnhmvM2fXW8Pkkp4tgT5cVLtc26OqmelPsqMZi0musFRuBlwiYLeGnI0UgEOhfxTP6m9qbc/rK1edNz92uP6OsxlvUTjFXUidWCk9gCs80c7bTP0pMVYljyjXznzFq0QMTnB3eCKkR69RcbUDPsqsOhgXRTCSkKByGPK88+iykCrNbLI8aSXUrjdyAcjWTPpn18j12eDvz1iOruS66vM7UwvzjaemL898/v+3Ka7AFOu3QqSGSrcMFRu+Nn/0p/2nkqbbcKOFG7m1cazsDikzDVlDc+ziOFPk2iSaa8tR2pzR1nNA0hiyd6GH+Obb6e/PDpO0lLCMZ2gVn+U4nq+vkugLXqdoYHkMP+i7eFwkjTVsw0No21N9YWepClBblv5mPK4ItA1jQprxLZDhxJriP6LC0MjhOkjwQ4EMvJmL+MyHfY/3EQKci98H3CT2L+tv1ba9BokuVI0wDUP2QRGdAW1EpVI2JlowbsfLdFCgBkX17nukOgBCT+vp9yGXXs2clusKeX53g3HhnIYSqJdr+9EbPWsovuQVDnRLqX8W61eEuHOS0qRzgW67CA8B6JC3Q2WZO3qddJeexi67aSFUWbnjx07y6rGXEeq4jmSpRZTyhjq6mexQIT29wGkM2kgiJE3ULII+xux0s8Di4/1dJoqo4C9JY+uJQL3BL6OB4xFkRpFl1vo3HrdLNPJRwfP93npZQ62WzHwpwuIhA2ERnU0X+h4NbBc13ltEJ71c0YYLi+7AvZlsNfYfUd2q3+zBMEAJNwnvVNjAlKQe1zsapQJdznn4s+pHwfWw7tlQ1Tii00KysYi3rigtr2+kLRjlB6ft3+9bttXVa4juzqxwZ1CLvjdaSbLpaBuxIrtvO6ZHgUBZ89K/MVV6srRt/4TdvSljoEn8Mz16ubCPCt+QRPev1s+MKh4DZLja09YHjxycgag7VRxDZ/P+gwKnU1FFhexv8Y4FWPBr8nkrR468gdm4ZfI9qvCy+tocdRWW5S4ZbCPy4a6wpSDo4Ubcb/B81DRSnAm/Apd5qRwfEza73XUAqt5BopstZ5naMGwiBugneMguYwilCw1vH7jAh461M/1j6iPCb9nY7CzwO4V9AhUwqlWTOZ3Ft2N/ZbwS1FAn8jf2aZ/07+Q1rcM4d/oP9dk0c/xvb3quGXw+r3nzLMEhEUjv05tfqCmzq2qp9WivtGx99tlAEpdxbb+J2oIquGwTnK1qSTMoYGKnmkCrT/ZIimcAUE6ZB//bI+DFK8EAoeiCQwW4gEEcRjPlq/luR8C1fCrv5eGu5L6SWHDQgiAR4cXxX+6KnzWoQsWQG7QGRDAACY9ueYNuf+HsPWAEPAP+V3Smdu/5EPinB+/3ioWsI+UH+Of5n3OtwaMGZJMBOv9Khd+Dp9Uk7g0rNOseL2EycFYLZGFiQ1OoqTvKqgwgPs+kPJ/kAQPve997lStdSWjk9d/HUZ/PuBM+/GSdeTWnGE569S/HfpUwPxX+mzgbmDpuOXPbmOgHE/7EpvPtKOOXiFsvw693hbNrXUta3c9r4/bsv10fVuQJy2w//6VTcs3dTg1/di51i4Ko8U8jBIDGP6t1bbiki2roMyB8sQRTvyQgl9U89BwDa7b43PyW0u6JHparlK6sNDJjOSIyxlGtgU0+94Wu1GVbGCSs4Dk8VMxj8DsvH4vmzC2s1FD7B7DfAVlxjNCvEblo14A4XBDR9D6eud2D/m2MER8TfMJoStWPnmjFzS/H10H6Ni6MjFrpnwlwXgt2R6ERdy5gCdk4zqRE+oPHf9CooNXyt71bzkq6PRV9L4anHjzK58pt0TXJQJVcx3uuA1/pZhdxwZITnI+lUKpzm+dCIbYBk79JqR7sm4hsK238Sn0uLCrvKW9t6S6Q46GVZKIDjUIBlIa9o5qW4RthpUqWPrhR0dMQ5LhPPNj9sG2y1aR+ukeIrQ3RJ/QXs7wf5+7yQgj043HWd9aQsTJR0R8DD5Ykuth/4Hhe8+T/BZ41GpBfM2KceiMYmstSQosRwt8L1Yf6tzNrHvKcff6+1Uov/N/fLrZr2esndoBiGUg5MrnUbYCuHNEuAkKmg3LIWpIfWCNEZtFJg51qHKNv4gNsEgUwFlyztEVzDm5e+Z1FAJeLM3mz7gAUMF259Yg8KgKCj4e6/N2G0T0OEZX7bixyKLgv/cqM9+iKhZGkP76XI8iTajF9os7O23pmHN31beazjYYuX6VLNe2q4HzuS668K1NvazuYyn1vOdvkIbfbsfe/uYh5ocODTblqQ5t8YAzusblJR1jOEcP1cGbsEX7fB+c/djTabM72PkixY7fGLML/5BeyoiIyfculNAsnEqsHF+DZ2RoQB+W926rLm4UOr9SPXYnF8DYSeAzpEKiK3ZxH6Vs073HakTtJnklLGpOVKmVk6MZBsCo4LQrVZ2Oq5ZTC7Z+hd0Azh0pNNqIjMe0WyXxWbIU0oxly3RV7B51bLp36c/7ELU+8pzzBd+ZY//gaRiYqqsH7OpprgGL/HuBjzxxrQJknAQ5xD7JY4oo8SS9T/7XmLmOT3mEb5J19HfhJ83hc6z7UXi9vo8lspWbabPpZjjB5wX+89m3x23fXjE52PsTIRf/L6D7iYiXvkeC7NDsXh7MHAQZHKR24+K/SW6muUoja7MjZiy2CwBzS5wkDRp11LfN8g74M2CeNvisJlRPqMGWKTpHDXuE8SJW6ZVGdZpsQ7TP9zQAXuV36yOdDfBe8/LJFYbbG86hdK46VkSYznqJit0VDE5NaY8gIaxo/UC9Rj+w2MA2siOC4QYFIUcObKjq4pzJ6JI8uzmzPT3A50UXEWm4Wu/3h50+zkK55EuqUPNyZT7qniTF+MPHuqfD7SfqLD6Nx/6FnkLK677/0coMgs/ZzgmYAWMwdMHX68We4z3i0M8BNV0gQCW1WsgqoCqU6BjUXLLPhq/qQy2NyLYC+iUSmUUNRCzP9ohUXvBcAB1zifP5OR9YIpyXqH3dQVRtX+bX6yY/WuwqXX1zndOz60fUuJ7LqcTGyF194RBlYPQpdfcP3CqClLV5pMrGzGVIvhPGjWyJBwYMgMGYLkUUPIGBGdTjI3NRkvxMRwuBEExAizsSJnQ6EwZuxIyO4chWTjAlbZmJGQc6l5dE2tAo9brHic4/GoxUJE6y5kB5DznLgx3V4ctyLGc7Yo3fjyGM6OC5UKJk4YrRUox3YbpAAQCHQXbeYTTFM/GtulFX3+eGjK70wGOuoIFq45Cff9IxIBAqn1/07cLBRt0Wi2iISb5Uri6JkjjYUKOGAijQFueKl51F1dYLSwd6S2dm2kvmCbzCVAkkiAbXiNbK+zE700T01/QDhUi1nuijrE0Om6BOwxAsiKR5s+vWfbU1T0EUzyJ1HbjRU47TZS5AYmc74M2ZyisN4bL7dNvixsuy66ocKsd5KeIMTNZzI3KhHJC2u5G7hrMGCko5yTrJP5BuJTPjRBLC9LkBnKnXgACDTYhq7VlCwHJpiZrmOHQtz4lLPBeGC9iRl49DsdcX9yFrrDXJS0Z28lwAxQuXcPiVGI34A0bh7KBqSkwEhamEyDDUFuJUygtXcJ2HamV2d4oPeTp+7PFtVq2CCzG/ADCh2A74pcw8LffY9warxAZqjSqJKY9FBpuS1nBKtupIdhmMBtIVSpXqPbCAWdXc/aQIXDS9a6Qw3eLgrIfJCl2m2HWu6Ha9oUPKbD0yWVephMB09p6uz6DOl5fKEWg807iU6eQjf00vR7lPArtaVUwwjVhVcXajE7UY3IA1JGtEEcW6ucSs0RMyqkBxN7iGS5mRvnmkxyzUHm69oLQ5k2pXb5pft95VYV9gv39XIrRHchQb6vELYAwKbS+SCQ9eNw/uczU+S9Ss4/NrHi8V9IRUTj3HSGsrNG+QIWg0OJTXv6xFHn8dgryh7Av9HjnXdonzllEE1MXkpF38fFJ3b+yBEvUxMA0cyRV960pguE7M9I0K6+rgcYqRBbPH4Jp1aLxk8oIc8k1T/KWM801SklbY5YSVEMRyPTfC9WJS3Uo54Zk+YVc7jCIddITKysaUJIqvZlazizSq6WmlnZJ3kgrA8QetRS1wk5Ao1rc9+B1ryGZPK/ZgFnV8o1UhOraG1Yqv4hSzjLIXeLzWzAGqrXjXcr/9caIIpKxVqXntdUT1v9KuZr3c4/ZQGTV8nVEjM7e1FwaUL4pYxNkOflyStuaZU4oS6qK1aGlchzNekVp1OHCWUF31613L/Va2347xWTrJUApTk7STVWNBDg0FFVjQR3jZVZrXp9amxBNUVO9zw42XKSYNGM2/I68W2rH0QuTwzdfJEpOmwGkN1J+5twD/V19wveG/hXzeFyx3ZNZRWsYbJGWzSE0lDZCvEcI4pu32gNZx1aSDApqSsOijEOBGdE/VR4jz8AgMkdCrekfO9ZfxLe6ehNph972YGCc7FKdgjiFqzZPsW7Rxwwh7McVbe8/CZ6toswGYGmZX0vWaxxRTmLgp2suyCq6X2FQplQr39GY1Y5onEaFEurkwmvDAlqm42zvETXZGZF5aRpP3I3DZX+F6QwTfEB6Zzas1wzO7OIMGtKOclNmdcsYIpKuVtsYec85geCLGbP2452TPh6IzSvPEEc8GxpchYoIXT5kcHQPM/xhmiHHrNkzhlzwZ8g0FdFx90hHZHstXbZs3fVl6FpqbbVFB0fD+enJZCODCDDN2oYBhpFIQbHDAy6naC+yR4b/ROGDgnZ98V+FsnuqTU1qyTXbR1BFu1S/vIj1L9BXAbqhtYIMv4d6/iAoxDcxFVzrLDOuQ09ykc54DOk7IJSNCXaS8pCmshfa25HJkgVPaMFRRFucVZ16ZKSTJx7bOY1EYr3okFjyqKCLIiJdslElSaWybQ24caHdgTlcDLF3LhSaHOjN/OXPlxKLa2bIJJx4/VSR0gt10lEL0TyL3XmJ/lOE3+ObBtPm6uFkuukphNO38qsvLfV8gOIh6Pc7BGPvVYmJnEXOZDmdHc5ieyrMt3aXpbNr4F3/0TaIscxuk3OxPbNbiCtd60LWJraCGOdN7LmodV/Wj3J7xLl8Fn+YOUBS+cPwx1mfvDtrr4aOBUme89tXBRKW9/ULZp5acsD4nB5Tb7xZhLrvJd87OuFALZRbQkf4q2Y3/Xdk2NIRs9ce1ZQ5D88v/cvD9+FK70ma65oY3r2+SUz3NpPxDFno2/iceNwk0M7YEE9LH3F/+pu4/ugLBuZm/j+0mVkwRnpGxHm3cV+enqsrEvtWlSs8V1kTuOl5aXGoxz0V4M6aLJd51qGeuNz0AFJfFBDMq3YRCnewEnYjjaEUo0NayqVl+lBHzsE6bdivZbQ1xCVchI603YOcpYQViILRgzc6znScr7ScX30pdM+IKTcXZX4tZb87QjXN8TwvJto0WyNr5C4Lkv01syHfBvyrNzsJpxrp1/JbjtvMzpt2rLeHQegBrbs3apB13PuDAyt59xiCnaFP7s04x4D33Xkl2yinJTyMng/YSWiYKSJuzdHeeVSuEFLfIvNqxkFA5gCEhQoJ8xBFqw3ZEezSL9KlYXahtIMy+WJyB29cmPPDmFq4FRMXFa+C01VjykBx8JYqAiTRBkpUc5j7vZOhXqwxg/MppV2dK1sMbP1TKVw37ADBy0+cXTY6ef7xXgQe+0dwN4QxZSVElYiCk+v+e5mq9r/YN0E5Dl2TdHXgHlovb2C+Wxl5X53C6hcto3kNsIPtJuIu7lrW3MAUgE0KHCneqvnSpr5T5X8MPBFE3eUwR050bqCEbbOM73tpfoBlrfXWZth5cjudngvHN59fpyduRxpRH7NsNmAolEE1txGW5S4aISd01KI1tIrN/9UiIE+1ndm0CMPUsfIML0zMA54dzMHGcScQ1Rha/pBCPQtEvkTDHUGLW7nGRViFiEPxtOtekBoP4uMobHbwnhemflre1hzw4Cew0eb738Th6qmw4ZQ6HMwyB9o1MMt9tdJ+xME+pN43Ze/yg4LPV9shcDOwRH3YcjTKMG4reZ/Rvo/EFKZB/07rE9vaXLbcq1XshvaEy/4nfLfe7rsBSm5v0xyFQKraBj0l4nLpKkRfMDtxVorxFUYU4QYRtGADu03z1i4uzYEdQkJvY+An4MBt75IQe2VSBl/GNE0CHZ18pG7rAuUvHEOp/zm1DUIDTUMFzNhp2D5Ox5mr1iQTDOwThL4QGjKPBjY8QKHOQyDXMOgr0NgR94rfUlY80ZjvdUhUBsp+J0UrqsEiBJ02fDh5+EDYn5QSXEVHrEjXymttyL1St//ROCUPhx9GQn7CYl8AAMeSfeBT/1H558y7151d5K/FJivCKiV5VHUK3dXuoKm/jLzsy5fa72P/dxyOKzB/3AVQbW1TQvs42Fdn/0SRpWGnoid9UNZmGk3/mLNKQtU36IAq8z9YsUL6leH3Xs8x/EPfgmz1Ka/+eJyIrN166WenDHrGeU8iFsVh2dHPrj2bINx3hrjE39jxlf+pdkLfWCbzdlHpnjLymoo5CTm/Bd+2pSaxIx0TPXUOrH2hnC77+ik9V8DnzolfdcrsjZ7ZO0Z2VvCnpFZ8/WOTHdm40B591jpR1eXcWge4qxdmySP/DnK5WYTcXzMajaPht123IZhF4aZnjibA6u38YvdREWha4xrP1MkVxBaauapeJrSagYgKw0jvODvK63gWkIdeXfwR2CE0XTicjoxYi84JaHyHn9faZRjDXUaikPXmNZeh0vOIXTQzJPOVLXVrNNZrYiuYSuNIKdQz8PJA/b84o/Yv/YH7ru5x/ai5epYwKGjoddsedsqpnnTHdv4trcrS6YXJ0bWec5yYPjAG/sW/aFp5+PmJ2rmHi+zB4b1+7jwyelgkb4kmfnmGSW0nrFWfpJH2xeX6ib2GhUHMXurr84UW4FNUg99DDRj2Ziq0+3H+JvhNdCp1NAzBopV2XyxQZ046xNZ8r1mtqWe+SdP5qfsbgZ6HVWsXES0e5VaaN4bnj0pNX5Dlw7cbFX+cfGxFLTyC8t+cc9sQDXPknYyTeHvcuOmVB8R/E83GCk3298ro38reJPy5uNF/n+Vsf/q/zf50ZM8MhNgLsG4Vbvc8ekcqeN/Zhk6z/if813aYJTWRpb0JnaPrnfhG4ZXpEb+LS+vVmtnVDG7DOCXeNdXIRgcF1H6qI3U2PLQ3xZxcBZtfCHLAcsK4Upvtosg1xu+xhh5vcf3fcSAF3ESDELG6xjldSPrddP0/w6Q9DpKey0wlBdwmCDT8b6F876T+d77oydo+m6ULJ/DPc2RFHFiP3ZH53H4O5HQaSTNzJKZxOa4wYybFc0KyH35yKfRXzmmb5Arvk+OLIx6uSyfAZ/OUsVR++msqzfiiPiVfj0LOZutSmL2s9m3I2gDsuaGPwDTmiRJ59KSZDVNYjOzulSD9/O7ocrmj9m8dWVjzsHdWSXU5/x2SCgh2KykDeilRcNKE2bERTNcxyrneYuCGb9IiRQcNX3f6g2qXQXvIUZSBAYtQVsp2LIBVmPnc4KWmJHRc7bcgeSWgErGInFlyAYZSBrXK5bzPfQobwK4kuwOW/S2OkgbjnkWDrsmgBeQEVbDzvnsYuKA2aRQ5tgBbbxA8bGOzglrqud2U7FJ6faaFO6PNkqJquP5QWUXeRdBcBsoYtSReJrEjK5tp5DzoJXH142vPjEIoVqIC5sQpyhRbgh6583VepeG0h8swN062dlcW4wc2DC3ZHv+IpgWDA6/obQcIdVWuZMgarldxLn9zv2ySHCbQfJWuceC59Iso7SdlaGHabcdgupTcxzcJ8g4QEW1Tyj2lXMNoS8Um/85CjZ0He9BMnaXc4Nwb1lsiR4pa+x3uEpCHRJD9DPFTdwGpGHghAzesjCqBTWxmpiprN76RT2ZyfagRi+S7P0En3W/I95tLPyTTkP8u5oUhAe0OeC9zRlpeZ7NQbuMHoPBdUJuozE/SA7HW309jadIs7D66XjDVtKevb31pPld9HSzqehEpDHXPo7Wq/LASNoQBDK4xr/6b6rnfjq1h2mqYDKmulg/jOFalrJbh8LtwtbZaEfSIkgduCz67RbHo7NjIkowHwd+WeV/1pvjFJnQR+SG2DMOBE9pybTvIB+oOlcflwUfTN0U3bzWiuH0gw3eQNj94t4o94AMXDgaY+el9GF7qzE5736rmNdT1tvanDABpTYLxrb82uDuw2sb5OUSwUe2Y0bbW3+DiuZeYwo9c2O1/2tH/pzCcjKu6Had8QbWBnGMxuC4KvCa7SCY26SKFOyv7G/hPw9VEr4KMGsgTfusrFniaaf4LB7/LACmcCg85pwMdhF8dYnviEXMM+e660sTOlFbYI/93xLdfIlovWZKz9j8x0Tt+aqc5lYdlBPYaAGnewh7hUrnc+feeZkaPazUuqBLV6G0+ZmAfk6c4itxl8yJv7S4zSBwOOuAVK/P1hTGDuF77xoZXbYb7cgNO/AZiwJ+HMsFsT89mrhx9mUq6U7oBB7npE1Gc8uc+LMH2dzWjxOMrBZ2WlrvFdVlPxXccgp5kIbjIjq4lY+YXu3adMqDarHiqoArC9SZvbrbjTWd8uVtvh+67+TJxdb+loMV+44dDZSBaVEcrmT7WNySwiLZWzThcrUv0E3y2h9cLZH3oIjFu9rcR46mJswtR6VVWMHvVxmmqdA4kGbcu/GcQNwAu0ND8Mp6aKYXJLrS94szGQGg+0s4xB1ARO9HWd1V7CIN1PIUnYm+C7QOUoXSA3iZsVwmlftt9TugDmtOFMK5yxDT9T26t+pPoX64E1ySvv0vtMquEdug7ELE7aPb7rhAWrpwGhvOrGKaiceQN/8O/f06hSG2AobXtvcLYmb+BARfoO/yXD9SgV4ZIgZEbLmqHNZ3ZR5mrJIt/FdUeCCsUPvlJZ4Lydri5aFxF2MKEKj/MJh/4dB8P1CJ/ccou0K//77/yiKxOJQZ/B/MA/u36lKPk0D1u5+FTWZ+be07jrY1sZvaYC/lf0/BZoQBbu+f/aWHC4WMk0kJJMpDKijxJceRH3sBmUh+JcnB3t8KwINO5LTHrFCONI56W2Zk9xjFFZ0gtWW4EZWRZYMI97w7MZgbs1LemSTQfqlo2UbzB3wBOmsJWPp33WWh/hgHq5+B0vUf1CFk1wryI8zpVZYnXRfW6JYQ19Co61Dh3nlti32UD4GmVmdkabdHUFuLaBmnXU/lJW5cmg+Bqi7x0Ij9XT3VjtWPtF3yrMjimWvWhi0n5XVekAfWeiauRbZl8fDjFM1AubhztCKPmqa1KBqBCNqwoqlUIZ4wWg6gpmvNiiYgknboNLr/iuwTBYr49STnXJhGWg2EqKxGdzUUseeVWZcKI5TtU0uWvVlUFIpE8ls7+itsdFbb/5CyBctPJFSGsDpVW4OtOLdA4WNmbP9oaG737nz1Y2Lbmf5IxFmAwcG/yjqku3I8n84mh7i+Zu0PbinikvVaYXmmD6gcUn5FF4TjqBwVp78BGJCgb+VzGwq5bx9wR/f3VuweBVuBqM1LZvLGIV7w0B16YLTlEn1DcaM99AayKqs8QCMfxd58IKHXOn3D2vPXuqu4QsJMXYdYpNuDe7ThbK75p8BQdghsGAedvyxCIckjvFPJoa6E585MHhaC38J4CNu1SfMD8dwyyVUwtLlh0M/hoSn3IbBIIwJ/ZJ0fjx+dd9VvbtfGLpKNvyP0IAgCbxDriwLQ2XNwCDVs3Hm/uD/ox7xlEKm5tehxefKQqxL9g7U80gwck/coaGH38NfLmKHbOhryPZvE6SkdE83TBBvXt7vPDLSWrceMDjTE5Ay5FTPKlEO8/N+z5enuJ9n6O8K2hshx0ML1ndGSh1zLliH/LcP8C/NuTNm/jBS/by5dUc1y4FvOAzTTrQGX/o5bMsWr5iVMAkuq/QwGuX2CpjWAb9YiqkmfzeYt78w+ky+zWrv/73vZ1hFB9lYbWV1DdDXbCytCq6Cqyzzk/TJlBYx4JI9JOReeD7h0d153cohL3nrV3nRrGHMJhVmgvHsp2+q0tjnMS/uWPHxTj15f21OW0olbYmfrI5r2e74U0Fx1ow/89a5aaJQ1esPGzjJT3pvujHoXJ1/vp9e9buHdBDHo7hF0FV1adN5W88442w+IVVw97p4PhThW078wiiVuhgWFmDLhXbEt28Vnvu1B22g18Sp+xgJADZYzjzgGHfN5Ec6G8lL6wrm5Ffk7NcuvlzzKbc7vc6w1OIdrn5YkeKZQUOF/ZjXA1Cl/R2BfVu0zlfssTkAHp521ySuK2cTF98uRWnrrrtXYvRYINuXfMOoFSCXkETW+ADfhc9cfR6f/xR7BQLHJfE1bgY2u+PAiFHxb74dXV4EBhaTdoRiIHDzkc/7o/m1lPBm5wfarHO3DNZHvCcx3X1qSeIO4fiJFekwkNLGTh1dkpB9TyJKLba+e4rU6VW9qhiCKrTbEAv4/vWbQ+5d/wMHUwfBeUtQ1dutAGZ/U2mx2NCsh+ZgNDpxBV82jc2HGZrxN/kxx8Ekot8eAibcVDZy8kQKW36jEB99fKhk1p31AFTuqQXZwRnPWjEMyZgg0rrl/t8hmpmFP5D5a25jxv3is3skbl6vkrRuyvX4Hb7Tou5updQfVy56Onz05apM8uYVtbW5gTAnQ9jCUBZ4fzzEG+RqIV5YtICy/Ts82KThRaZfhjqoaLa0H037joAG2w+JmgCUPh+DUAKg7nPlvIkoAHr1gHmZOyGuyNjXaEVkKfd7Ue5xI45n/d4Uf4s9Ip7b320OGpgnu4HK0Jbml0w/GP13QLfgI7g0P12d6HYemX5J+NitVpeXX+Y1I9c68nZJ2M9XMx1QWvL52YewC2fQqOaL9kraaK/NM6UwFGHI9gCjZKa0QVZZMrSnjKxg+s0Gt9KpDMuf8EbiBLA27Bcur+ee58f2j9adBtCuCYBepOS6aEDP0tMbU+mo2YWHsDqhs/0Ye4i2xc0pbBUe33Jqcxx/nc8+oCuGrVZqeFYD4RK3YOhDw7nszUzrt9Ghyu7nayfhRJaTrt3/IXmOA6En0HwiDS5uZ+p00C1Uka/xKe3aJzMTlhZoxwmJnSKiTYg53RlbaswvDKTShp3bIKQ+5KF0bUe9rN7nyMmvlqgZDaGZyLuYRrnWx9VZHuZR88gzy40tyUw8Yv8nWG8x9FPyAb0+ZNqYBsEDdA0WZOnmwrvf+qdHstyp4mRILxftrCoQ9w/5tBYcdDwCy8pieH2iDZWfs1sBsVxZgSS+HHmo8I1vaa4ul8ugOh+FJ86l6XDrTmAjLrK/q2PGUGAtYGFA0PZg66HypdaUo0rZ4OR102itUr84TvNiM33f8Av1CmeWFSuYPnGtXFNenzskYm4Ugryu3cMXgXFd1mXpsgyuO0C5k2Rtbgd/PKy3frH8C0jeqcDUj9yTxktn1FMvQaRvEOw7N6i5xCOMLuvDgtdCJ65nZBsx7Iv7Sr97pmwU/5sfmzeCVWgWuT/JUBKflDdWpFedTMZ3p8015UUMdUXv+UmuY79q4vHf++ScGpAXrw/q/ovrglgWR09CEupHDEdWfNZo2hLCnudr4NdRiys9X/nH6x9BpNDPh9vQPnPQtpvUbMtDOSemhkpSdtz/ZAxkPX0QCv1rOovxlKoxb6aFETc7JYm/lco6fq1XdddagbXkLZ8966o/2vl48PPQuRVkprFq7SusZpCUI9kqMTJIRNvJKcJxt9GuyM9gnezma0Ink5FMWGXF+ZWZ28oU+gTpxSsC6YJbNHmpqmcjT/gnU5k2EW1LNS+ZFuwFF6iUKpClG5p2zHX98pNftjSajzwHsxy9APYVcfr+AQVQLGpiiRGTtQAbOaGtXApP25l8l9PJiRXrEw2FS4MHPhesrHexG0iQoz/DLkucTafFVdYxV/LEj39fKpKfnC63X76vmqaFIfarDHTgfPYp7A1KsLFE27l/bz3l3+oIXHkcnK9Rmm1gldi55P5Gafv7fTOsf8sl6k/X79y1E36ELc1vz8lCS/2BBNXq36/Ro1tUakl0cjHawm2Z3J6xbuvF/axIFw7eYVQrTBpWvuSpKmQE4bFCPasn5tzSvXyHllJYf42etm6Owv6gW/ZjvCl0iXKXwvPrjXqFOW3HXBtc0YVlE9mVNqhQhXCf/MHCbuG8PuGT9ekLVq2WH5vM111bY14Xa8glg47jh+7SV3xHPH/QAHR4mFTyjC+PDJ4/V+oWVig5ZWZJy4a7+Nl6HY1hi8tndCpvWJA+E/scaPh6ROrRtmpIbSIYi9eH5Pt9KeUeqAG4YKber3UpF9f2lPLSmOJGPzOZ/+ycOeEgBJzc7Uffap2L1tcFlK665/06weO1gkSnXWihFAkcKy7X1oEBiwlfBcEe0uvI6RaXdifoplYxvEMt4Xmw11f6bHm+uGfNoIfcWhYsYocBAeaDSbrBHGE75VXd2yFVx4Izik1lpQBbt8EBYmPmIhqnA4T8T89WMQQtCIzq1RY2/zfCrdrOr28diqKK9Q+VyjOv1xzRXtv11sqKtfGKrnjqlmXNZb9TH0q4VFBivD8oLR87K6dcLxZK5C9Yp6peLc8/VN2n69MXRc3V1kfP8riVwzw/Wqtk/Id56pz9wJ+X1QmqCD6nNWp0dP6rxF7Lg6i5Hcrm6DE4MqmvMOkkkImJxp1KQDaxJFQdSVqbGgB6Pha7VmGwGhczSHUPa2AaRzon0AkDNM14KAvjs3+Hsvxy8NtY0FDLbcMgmoSS02/RJZ4W2EgtCxrmy8tnV7C0Yt7bxPq2XtFdVVU2RNzHJK6Ly0VWdX6j4smJHil1U3gIh80I2s7fbbT3In9NGfb7lfLB07LwmrxFO1kA0NVPSQ2XaXRmCswP8PJ8ZToaT7JvN1x2RHQGpCyYjRunnh4m1WywHKNuWWxiDGsoGq7yGPtmxSQFzBybKrJu3HD8+SSUW2gnl8xeoeYoU7BKpotZVxo2Ndpe7PkQLoB22VPmB2tptdusQ61jKg7DnFVVglnDUDIF8r7ppNmwdHF1fkGJDTdlT2TyfNIlk1qIri44WWBkg/cfLX9ruse3v0J2rStmdYzbBU4Ftm+XWFPmeuycGmpLBLns+lZRnpF8tvPlg+Bn+WMDd6GRyh630/7o6NRnayoqHBIvQ54RnCqbgSF4odZXzXKVX56xCyJk9i16SD74+CJmm9d9YDANsoUZk7aV0nNHarppHC9HaeJFnhMoD/Q0TQ5Orc9zRvfYupZlbcuI81bMO9bKk3nB3LZchOfHTLOvU9EuDA/2j5VSrllgn5fYmR10cf7SU1tLh1Yx1uNnrYVzt00DRWxHwxpYrutSIuul6vj2QuQ4JH4RAcx3LAaC75h6FXYcMXz/TuPSNXJVNJZUalBKK57DONgsDGYSjQuG/OGOOR/JveuUBfoTe2sYr+fOJaVTxATRg6KrQPALBqqXao+z7t+canP7rBLIvIPN2m4vMo5ZXzd+Y0yxVaI3+75glWXFZ5tBxdfmxf5JbT5bxILFE4uZ7WztfTOQxALXUqQwpFe47665yrvY84BCruFv33sGJNDZd3Z4PHdd9Icvm97S2No8ZdBOHi2Pa0wRCFzHoA18iv0eiubgiNVtGlFvtOQxTI8Aq8MM/JHtrf1kb+u2FzxHgCXkIetfXsUydBGRILUdH6b3WUwkF6KpWy9T+Q2Mnh/nBVWU1MxSIaFvNPzmT4/N1E76BZWlfBd/KhNNaGVZauhES4qVTiHKD9xktJgVCPPMUge3i3HTKTO2s3oed22Q2GePlPuwzye/7if3c/YqgLhDHm6UE7RzGoFaWT7ZMom9ftMPmi+f5ej4mvqSHh4rbugbLmaM63bz7SEd/JWsUAObOPDE1DpbHkBBOGIJutiEj+JCA/3Cdw2N7uMJ2pP+ZKg+QItirAKzmRsowl/OyZpZsiFI7ZeoqY0DMr+w9rw+6BCK454xG9V3DfGZs9jBlANARtJTD7iLe/nMAf7FpMIQjmGpq8QOAWnk4Fqra2VDkG+vQkiZEQXhkdNN7K9hA2rdkRQXNwbI4dEqh3gR2L4sXiwRRaWVfcsroAihKozQl9ab9Qtu894iNV8Q3nTFizpIJehrwehSJL14nncvzAUfEeEVFnSf8JJXGQsVO+CYTH7mCswZwT4eD5yUT+nTTOPLBmxnAkurANopd26Aq2m1pSlxVwTgxn0sPcVRG5br9+Dwl3FT2w3dLWXcMnJFSFNadLYApp1h+7eWSSLZpAl0XItwDLZDX8XD7pOkdlXn+qYzma1TKTLC2iit/h2g4/DSO0YljP3ny9f0lzduYl8gJ58qFWK+5VwEtT838RMNNl6s92ye+KwrVvxIX5p32Cjeq84Uvt+C3b01xFNpubr1Iv+g2bSFdTbu4/wg1HgiDX0Gk6qiSgqfVgeYEae1yAr0Yo/orHA1KoOwPNz6P5uDJjdw0fXpta8jbQuJjMJUuhsHHW+jNL+gaE6fi5hYnpJbg2KhCfvgyMLXCRPboQKFaIEW96g66CdeYHyym5fgQPEaQ6bWZnOq8K3k0z6gHx9AMAMy6Kc0fvZQi1zihZJYkPfEFjUB6MbGAZIi9KX7blVzfzPsukMO0Mr+mJr4/hQoUUQETMk+FOszR/p/K06V6AR/j13GJ/V//HMSVmczt0DrYsAeEqL6J9z2AgeYGVbe8McUp34deMWLlRZ5dAw9Wz7bAzOQqzdC6P6euqCT1uXIrdEw0a8WOC1hzEKlOJ+ZepJtyzAQhskQe0V+ssbVXpOKAwZYJvtggK4fXfvrZ0VLSXxXWJtYJWjZpm1bxEe00c8cdDzQYaHTKr4rsRb1Zog6OUqzPIPPi31KxJx+opfshETOMKQ7/pSTnKmw/kB97Y91Cvpfq1ngsJhxPpYAo6Ig79Ki+4U83q7CopSI/eKzCuohqMuSVL28oICfl+vZc7vd7OhK2m+KYQyFj42nIbbks5ywW2WagFvqAUK8dF1lpGlkWGST8dz3kozY6lISL/T7Qv3OKgZzY/i79D7OidOiTSNRnKMz6dCsGOexioSCGwD6P2xA6ajzM5IdVlo1yh6sv3W3fIdeyf868+RNIh5c86rpPdoiixrUYsG4z5AK2ELE+hQWCcOlOYKvDJW8Haaw+24H0YaktHdDC8cdGnOpIxQ0HJ4JqMPg8z78kgHQIh7mu1hDHpCVn9wnXVTrYDYQpQ4iD2jIe72jEjm5eyu1R1nUfb5GSl5ZTs4u9uAepz5T5sIu+BrDJP0SOyo9MYcdHpv4oY+wm+OSx+mEapbk4d+y+Zx6X+KXt7//cu3f0wf0iX8xql64Hs7PBa1jKdXoumYspRXTjjJ4eRxc/3sedcEb9UFtIU2qV/fngw7L6N7Usj/g4M9ga7Hg2O6crm36kHWrw9uKXYrGzrkebOCG6zuOmoY4yvUI/Q6nMudub2yuXcIoLKJtkk8L3T39tEf1BPlM9a91quF3qr8cHiPxRaegqTZOnQ0i7FvrzMZidyu9JtkxYur4LNQJ17PF1jT2jaALTatl7EVKrGsG0IuzxCeK6vTUD347ZmTmNF1KaqNaaKO8HnhXoRtToiDu+xNgR4QVBuDFhMX5JrGWMS2PcY4JGHYktWV+YGeuPyx1Pm73WWmtxOLiU9/29w4Fj0I2Z/YcZQiPjUulkBrmcbkdYCM7tWVitrIoqCej1APs5gGrDSycSa3X18jhoSmJDGpLp91La/4wuE8+Vki+HTJ/A6KsktyZIFvtFtKBvoDwUtRqxoNujkIYqzbUSAuFTKVtNumggCRZC41Fhd+YZOXTmMRJts+OzSwOlZYc3zjzf9PSoSDqMDW2Y8clWwvkFLUKz0pmwcpToSuIqV+KqpuDB/o8TvneFEiZ+6yuNYimmTCj0i69JWOWez14pYvMWbYTWhZEbbnq8CvEb4sLVB5jBS7yPBKCs5lM7Y/c5Y3f/4xGEqlPoQKHSPD6jd9ctyIfFM+aFr6uxDwDi0uhMvk3lEWpzldlVM5Saf0gJOy76n5PexvKIblsv4SKLioH9gMLkBbqvfj9QIXUZpWw/6D9Nhc6ejUx8I3UTldovYSDGfNRPZR5pzqbQWlOCtZjaRpEpv9427MIRl8u+uTzEazDPH+6qZKRVmm5PdnG5xITo31L9NTr+yNDTLpVh5gYrSTBjEIchsNNCgEJHjFxochKYteuxDVHioLbm/fP/pAp2tIPbuVHjAUfea621sKOLDpDTFR5NPLGdP3BsaYBJmae4ql4Iv8GMB274Tfh8PcJlZHzJjCtK4kMOjSxARVNjBVfeWrUm3i3O45PhMG12o60GULriARUsXp/p7699HCD6SUQKFmuHc+MaGXQUpWTDr8IzzyBBs0tUCmsGwd6gqSW0zwymVMXvk9uTiKgN/Ynl2M0jh5N9Bm9x5hxfMu8o6yhwTcvtSQXnT6s0b6KYWFoY1xvOZCvGu7/Bsqa95slTHj4s2pEuyqHX5TLtBnP41v47jFHBEybggKKhElh8si+ZGHNtn2tqDuAyZ45/uX9LcPH2HbrltNuX/+fuePWRIdjzpeX4mphwbSzTa+Mim3tVQGtyfwdHUue5NkywWxPJEPzWheoUO40ldiCNlQOWaiAxzfjrNMt1/J3UBYldvol1PvTy33T8kL2OMZgOfUsy1xef/p3mEc0zDkuVccNDAqj7mehl1rdLR4LbWXHrCAbCDgIF3GrQ1fX8axJ0cmB+1KTq6lA5PKOQenzFfeuNfQueRfwrtXWy/r2zT0aWYleWokfIn1SWopnfkDzqKgOxqZLGYpffWKEuXxDE0gCwAC4nHOTYqwMeqkqxJCUzy0LJdrV3pGT2xBX8FV6sIQIH7c2ZvHgXICGPqnMt6+Fr9110cjZZLbhPPHoizmgZ5ODfU1PyA6z6cQ7H/UCi/9Mrj6+Flprpn1u9PfT//cE1bfXPCMWDn1wL/+TFHG9JL7qi4mAjfzE/FwgEQoC60cOE0RLThJ2Bu+OXhJe23RVRbvu2vRuP+l/d34qgIrnuJ1NvglLnG7X5f5z45Z+xNJqrn7o/7f+4GhZ1vjb1a2TaF8Jo2hewpZytpmJ/me5grHICVUyrkOjXapnOriCwFuf/P6lUmgvEeS75bGhwfeKBueO9+V3ZaT4Ov0CYc7G9jveUv6uIHlxHmBAXTPnLLxldV3Oj0lx6gifw4fhN4c3tz4XcjhWmjxc3V+CD7TdFN181uSGQe5ohqmkfjQxIyWvLmVlhsongM9Y5a/xZPswn+ENU8tzpwlexuUCHBE1Tmkla1K75oclLfHQjcYP2v/+XN2wiMnVUjPofN0XpHlsn/73WKhcXawCtM0BVz1WG0nUGmJKywC85Jmv8tvgenS72bZDQm/BNVa72XHpCM3DPqSs7z5dd/X7JUPGwycXrzdg96kf/hJJaLAC0SSL1//YdwxSVZmouFdK7TatUh/22qjVJZ3m2s5XpuiXl2mumlmAU3BrXzv/0jMnMGQ+ZWjMJdCYTZSrGieKayaUnR8BNeB5SUm5UAjcet9P9yz2PrpXQ+2Ts8wC6ieBNI+yjokS5QpcKxbRRDA/vqiunRVOUUwcZ/EalGRyUppsydgeR9gaolM1uStdtjBG0rQ5j8SVoH36AOtIG/9mgw1zyrTHLPtHSc5DmU0S2vJ9EE4e8GczTVaJ78Lf2S2SFK63KBcZSwa+EpsB7Y9dF17c9EdF3fpSJ9qHKqVGpYmo/g2Us5LDfTw7TB6ddbTv6W3lj297qYizJ2BjwpjqxCSpRGpmymh6o50eqvzU6pk/FtC1NaCrO1h+VqPIHMG+CykANYGvtZ3jOs5d2aBtsNgkd0JKjdmeu73NOputP9W+bigo717/Pnvk45Yk6sQmQFHWLz39QrpLk/jHNLPBEpN6igLRaVymLv4VE1VHO70nydvKEQnNls4IXACdwHo+hGM8SE5BfzWqYTfKu5OQChwmiXWwugia9ESztujKPE/5LZ+3yOBvqs98DUxRqiyUQj8THxxNcxFRsnXw8IbLpRd6LDVLXmWeXnpOKaM9+NckwMBedkGqcnshmJseiiVjgZEtTT7ZrSjSo4uuEhEhWQGLpDv6rAXERV8eHQTmHbhTkAi+cV3f3pe5/Ko6gDfYNZ36QgP8/GojtpeJphWS1i8leTGjwwYsHQip3iXeJmBKwIwsHgu7itTvjw1WhywnUXNN7ffdKTuL3QXsmLzUtlexDnyEOYJ+oTybua+7M1hWvmbaaugExRMoWTGhNksdmTog7pyRkiDtZjAli8QQGqxMOAPHKlfeSeFk1/9B8tfralixsjR25h9CgWyRx2fuBwmfyD8+XVb1AnNsDLlmyL2jw67Ks+44jmgxMad129VqfmCpH5x2ktw3raLZVHg8zVFjXiwfnwKi7gvBQCFnQFmNGtexQy32uB97t9mSddm3TtfjyKTYMKVbbABCzS1Ex4leZ0viOQEPL2XtnvwcCvaX4d+Mzkxw/6ouGnuvyrhnx0tXt+r4M23w2gwXDm5rCNbSbotHVEVhDVkz0HkSZysy09rW0VH1Gr2jZE0xroRrY5ZVel7I208nFktcGGLz2dZ3s6bH70Kuy4dNO2dGhv1CmzlRNX86l/31CLoY5ZU1if06nozOCt30CiW2S6dybsnXywj3F3Zr9uk2HtoulTs8N3f6CsmMFNrLo2Ye3gXu/QHWVdnTbgtdqN25cW5ttS49mig/D+1l/qptsmUzYqJW5DebdLbpWEZBL6YkCWAPuiMByFAfCgjaDkf7Id3DhqDk86dlo0asiq4UdF/NT3Wab3GDhegOeod0d2xQOpOjs5oAY7TkLugXfaJiyjn6uXr9LlTjYZadkbspHqS+KIeKsFHacRS6AvYuGBML5Bya1sqEd3OxUaDyHWcy7gIoNXm3DOuqmWRb1YpsoO7auIG/+fr7de0GdJ1yoqfOc16iFC13pCzp/bB93sPRCmwF4p4SQmgP+Qxx37zpcZXUdVl1ejC0UzbsAu/CZ/QWlT/2i2BO55HT4EreRkU9I3DUtcRfftnJ6ZfrKaf+V7bTfocN+jso/9Vnul5/9ywPgy6uClrf0P2dWn0+YBuV83vHKoNT36k3xNf1ZTO8i674peNLGf5K4Ky0tov57kLe9UJRvKyiA155zrECSI129cOn+yFCZtSvatevnxhrpveFKT2DlQfCIibs6Uj/dj+/XMblHqONq976rEt6p3xc/QDuoNM1UANxSzz5TIQ3NEPgnxBNM2RMEvMDZqWCdw38b+g/91+o/W3clBsxw2V8I/SlP9zTr0uj9BxCaN89USURf47S/XmwJ0Ggvw2iRfZv9IL4soLCrUy1ynVao2kwMf8JE0svtLsMg1WAc2pkuZojiOqt25EilFEFgk/SQy+wzxgPP+N2/+Z2c6Paxhzq3Xk41z4NepUWPL5MmU5y7ri0nukrXFywVVKC3g5OYynK+HyT0tw3wS1qFJioFlT5n8iWqjGIR243XEmLOGvJpEC1CEZCD5MJFLO0U3nJGjRUzPNZXwn7Jqygatkj+SMvYqcDMos7jTT1E/kH/N8qh2F+jG76h+B02s+uoWuNhlT5vyFVx9nLFTVfyHpnyxpVlFxXgqp9WMGhdpVmfQm8GRxtjXWd+FhXh8f9zpXIC+FkhxhPJt5HYxP+lm4Z1BfBw8q5MvIHBIppDnfa04t6TgrdipdMcVP1YBa76sYDS9wVGIi4YHiSfgpcX6t2yLdFDhtBq0KVaI9vCTQ/thknq2zj3S5HVL8pSSba64ZLysTuYPWgj/qaFCRvaqaJ8yxBcAVri10nH/BxWtiQjt8gXg4qvgV8jsBB3LssKCvTDhQW6dSFex2ARLeFO+yDD2PcDJdG5CmGGLrhtuuM2z0pUnL8fkCWatha+Mv/zldBKUqXEPoNELkmW1kPUvrr4bwB3tI6pPwGhLJOg+zf61m+3UgB2hcv46slaTiXeZfgEPlbqz15zuN7hkz2yP/zuyVnQWRkMz3NOaM3x5UenZhkm1OD5XRaajLybk/Tg6ky35Ih5b8bRjFZ3LuILecAxP4Yt2mWe1HH6YCnjK8tzZBSFS7QJCO30FsUhbGkCTME/CjCtqtb2xO0Ai3zCUYa1k9xQ223+qbMT9AvToBtQ5rt5McL/otd6dIHKXnhtW5c2oPuVadFlfmleSsxeru5B1OrCHL/RXqlM7BWzB5tDXaN9EpnIt/n/l5tqDJPJjk2Ft9kghYwPEgYB49ta+rL5s2dikrpYsRMbmpdqjS9JeQUuKgQBb8nuKp5rX0zWUM28Vp8dCpED3ZG4N8Yfbw5yH0GsJYCqyPsqv//2Z9bUt/f714AP8gyiF4vMi3c7RMHhCSwq7ezRRCIZjbTT5mYWHaV7kN1pABuVJSkDixJGO04Y3T38nwJqthleewrHPIIrRXJ497SIGVmiRgp0cn0JT8LasM0u92a6wq/PAAuu/XIm81JWN+zKFdyjZJ4pXIkQvq6+mbU8WUse8R/dRZYUZKl9iXgEAgAQBAAoEk94fVFbASX6T4BE4YDF8pq1C9FmrL6AHZwSllhY+hXykCiy0z28jceZailtN6j59VIWzebpVjrJeZ7eDPMh40Qs7X8JBcDwtncDe8q9n9Gh5kw0L3yXqz+M+yTTb6/g5Luyn6o2+n2vmLipOfKG8POhTULY9e5sNnSuMRE6hc7n6KQPOcwfFSlVYJI250yONvRtwYG2qqIEYQof/Q8Lixa+u3tPlbLb/H+8Q05TEvCXLxPRqeuf8d3NrQ5ILdFxIBu8NILn2f/RGsanNRnBfksGz5gXLKa9OZ12AzX2JqYaMRthrD1kHL2T+wPkClvIn0znT5be7mooFmaW3LuqlRsgWo3pyNi+wD+5yw5qEnUIg3JjNe3HVcNVw/1L/f4A728aufMo5ve3Vb9V38EI47//dT/l+J95BOEHyGlbE6h8U1BzN3oFS7miKahT8z3UPrbQNEo7IgpEO9OI8oCtYpO34Nrp0JAJELVlZU9TUca7mMCDsgO86iXjp2fv9xkOcqv4WXHh811H7GPmP6gq+hQ68HC+1b6HQKexOQAm1YYCln5pkJiQEMshfsoE+zkWDtHLqAKsaz4KicLj0OpIYVP/SDN/mR6ad6z0jbQIl4H6ueclMkuIYy1hF2sNsi6bryWMvQmH3cRibsLgNzc42tBj4nEjNoclAygPa98DlN7LOFd0v7OeHIY2dI5FpRFQIGJmD9FUTyUKrfnvry0xVLcy0RXiOftAmf0SFUEVj+OQ5o9+e5geTfdwOl9yXySadTdOkY+Mv0cCq/AltV8GPkDJmOP822ymA9H8WOuYerAspU7SQjdeyMYr/TGGeVl7PPgpi+lENBEgZyTraoL0ZLLw2IinHCeynm/BNcuVchaauLeUGiBzSR5iwQknogtz97jKzjs2rHma3cJcSKSce9DYBswPOcpxvfwxjQrs2+YZwckqk27+YyqdpYoed5tLSryQ70SVXkzN7xYyXp722h24ItyPlsyhg16NCC2FgyvdfNepn8VFeHxRwCv5ZfCHwkIX+KlRKU1fyCLo1HngOe2rh9cpLILZ32lLK35wMuSBWGY2w5d3C68Id8/H8rZhJKKCdU3Xx3i/n9+nC37KFcUQDza4+q1GrDbAM0ym7QwO9lc6GSPemIJCvJmR9oS3xHIYGZV9RIRXROs8YSauMYq1Up9W8ORqQ62rMlIjD4KKRwTCPQNEC7oNH22+Wc/0I1oCnfbBAdLeVptV+sVEkBKR2zIJ5d+1qs8rXnyMZdFdAFlrWq2JdGdSSvUl/+XF1IUDECcKBXr0PzzOaezzENpUj8RpS4u0jQQXTNOVv9SDSRKv/lte+igKdbKtMqPdpIdxCoExqlIFAK2gLFZM7KUfFOPahq+8VTCcKPfpJDPhmTBSTLDPlvHClcpwu7bU8EDOVhc3dV2+E2361KLGKtxuCD5yTXXu05hbewQ732kd9ebkw9pp+edFtvZTNRP6D6WF76bf+3p6DJkpBaVncJE1fdXUEX0eQWvq2/sMweZvyHqVxGBFSQJB9JgLwgbDdKsekstN0vLxOVHF9GqvrNdBH2qdMnN6e2qT1VGSc/9pxBV6R76trOzvV1dagkx+86gNJgp98ymW2RFq+U2aOe8+DcMA6tIRqONFb3/hKt1+y10jtKycU9u6S2d0sMWW69WweRqh8d4wjCidmN5lFM5oOBdYY1K9vp2HArog5u+gXIgqtjXZT30ghW9eaYeoM0YipRgk2c4PkaMMrGf0Vx40+8YExTCTsbb/X/rDsmCnZ73YPBeCgaJM7ZcbUX/DsiwGV9xYu8JaaMa3MNLLDj6eIodC938e8oIKxz1Z5oFBHjgmhpVOR0w/SYtwSYpAU6L0MtKxuSMQ4JnZbZa/1W2ilSNMZ5TEWoEA6OeyAQpLHjo/3PvloZ0OUCCgGsix4DhSIAa5Lii78nvFWaD00L/S8K9N/8skf5UUfX1QqQhcLlLuyeHg9Y2aOXDIuZ8QkJ8it1HAzY2cRz4cHfcrdNhjOOAIXpMzcWHfZU+6lSE0bfaTGh0DfGJFZritM3hLoRV67Qxaajck7audoGbUInLxp/jve0pI0+UtTMPN3wcax71RxSyMhzvj6xM3Rhq5BM+2kzGHFtkhHWNo8I2VgwBrc271j4qQkhbFRGjRyhe7Xh7OdirdCS22MfY/BuPpyQug9hymiymEwY3YjccCtN5Y1T94tFdR8PmXFMnaAGLmdxknAq0UgZTXeP4/AmqZ9sfPRL538S5Q0D31j6BO6aK4cLxx6u99efk87wzx5uaxW52szQehzDqB7JrjWdLNG+PNu3Ozw6dr+hNaQPtqADokPxkmFbJ68zhA3bwy57EwM2y1W70eS8uc5Y6mSDucNpIv0TI0J7Rnj9cZLQ8oVOqqUaKILFEyPv6iEsKJ+LQycUzdZDV+b3/KODD06O0BOC0bF7SxGPvDv6cBXZKZEruepK7wYuvekaoOv7RiUfhvKpAl1FTeBYsRv3pAavE0MehSFNHO1vhobZpiQn01ucwjM7k7eaIlIibFurzNp2ulfyVNn3dgxUhR8V8zf/XU0bgSi28ouZgkvOxNZXotEN1BxbzdB87bct54p1Gb8TIGs7kQrd4Ag3pkZcf/dbj6b3ZuGMgOAARna2UAnFgAmcwHxCZTa3G9EK32w6L7srwF9bRloGgC5UAHyAuAc9+09D8HKDbT6HJ9o2x6VT/JeZ9L2LhrtGJ3kte89S5694kEZ9pr+DJlKWQ2uFB6KN3cJAxkT2A73PpfG535++M9aIRIkmmp/PLlFNDS0tImKdiutKhvrvrANeA92FqQ1v77/0iGypUsrU/LJOjxaGGs3Wdvpt5ZdtSvD1tbYsg30q8q3vz1nmkevIV6R8WC4FfovRhjiMa2hkwk7J4yVcFNyfJmls4fDXBpjM4uKwLYWWz5iJbUba7r8Iy/DAp/cHchZEP+ynsADN1WbA1wCmEYRaqqG/MfYfRYmaJ1WlZBuxY6ASotxhGU3BbuQmyFu7wD8F3LLMZpS7Rl0MMAQpBrKD1vhVj92W19I7fem9lqWZV3upDt8A8280gbfdzjINwaI5r4HZkSwE79h2lhyCfLdRl8721PHcTCRAzLdmrZ5/nn6YpattXVlhSz3mDbkk/EjTWkcZd1iM2MYkmcxmAizeorCXC92Tm3bX8l3kLWGo4DjOq1XrCeRjHCX2yWQHU6XdX+RwlhZj0POgdEVhr4Xdy5Myr85jjDbXgaSoyCKtmp5BZtYdvI25GKMEMNeHc6yQuKOwHYyHtAFMyIM40tK0qHZXwi5k7Y2ootrJZt3PXXL7yeXf1hV2BDqoC8v73WnqyplL+0Vzx63Vx7BKsPX4p3CL4tiVqWSx1CcNxiUN9DY3m10Fvqk+/MSDdN2xFJHlxid811QtngBmjRkJU1CP+tGvy2RcS6OR5UCyoaTKVfL9KZro8rCvur8j9Wcl1DTHvpHcHPEe9IwWTsw5DF+6onAsH9XK8x6uTwtpinip1+EflbOQ1Yba7H7LmXj8TDrjOvHt8W1d7+VUdJDps2VOhYja46IS6v4wLukpP9c/hzTrjwnqla/VWaX7ZqpyYtVp7coGduDsr1iTNy5mZBs2wN3ePS6VGXk7XGpwm2npyxcGJXwjn25JC4e9I1w2/xmDUpIOqeXAesaas9Vf6Au4i2M1m9nnv1XujUsThm+b2mcQ7xyQjCe6ySLptLEmFPQa/cvUURtydMYkB4boIX3xPZWgRESvp46Nekga6BmowXDhW0nQozTEwn5aWLWLihC5nB0n4Z+VK/Ni0DkU1lB8Lzt/pfRei+mx2fIuRWKsuNTWlIn3/xFIOl8NeJtLzjmJNg+Ki3HgQZBsM8acN2YtHLQITsUL+M63CuXcyoMVR4P6W7FoMPAkFTjD5ascCFiXLFf+HRNGfZ72QLjSxBYQ4Qo3UlfFApjaT7w4tM2FHkj3cb5RHc6LnYPCBrphFZ8/Jt32IYviWTZOmK8cn9lYbFzoDw/fe3CWT8RYDRv//ytYxigOlxJhhN0saucIvrJZSpj0Ao6EGCVgnNQ1KvWt9xxcANbBslpeZsy30VkrMb/vVvbcEreJZJrIrfcNH20/1Vj40qmsmYV0ci6r0eXe+QwSMKq//rlNacDP/WcBBS2A9ypkrN/E2f2rsgaf+iCAzoJb0smFjtYPU2ghJoNgWDQcPXgmEzrpwYDQJAesjSalWo3j7/eUJozDm1pv0feS/WQnCVmX1t8qYyV1kQ5lEOyILqhvK6g4fj3KAxDZaf2lkECsS1/ATkMN5GDJR5QNqSIiC0tty07mBTovUFmtBvrYHbyR6mvfW5Jy/K31BD+ULS1CIcUIUqLrrfYoGh4gAIAoubL1Hyq7gmrp4fyRGkOuNU9FYZb8IeCQNAyc+KmqJEqtlcxuS89xJkymNvw4DtlIMnOPB9BpoweBVqXSIe3AdB3cU1dbnT8Bm55+MvZcdyuWZcJwfwKwZ0cQDh3Hyh6YzTdInMn+pzhEZkeabWqRlbqfaxHK/eoCM50hrKzEdH4qFhEyxnKYKqJlyYVNeqKjfUKqeYQV3dxWn4p93ToFleOiqjbxYUoNfH5eXseGajvSm/r9SI56HgyIIKvGyzr7iQGgXAUBd3k5yHKzLVCNrZHsMJ3ZA4D0ofDBPrUwAo9ZVbmmOjcyfyV0STjdr+J2dalgMJPDenb5is0/kBQGSQbNaF71z3tcG+vo6Wr5Mb5gwkqS4FesuVSVyHAMfI8jPrD5q3P2W9vSpIHuXsHe34EFRQlOSBjrH+8KTabRWUav38rFU2nkcfBrDjiLPuXSkwq3CvrJ60h5dnhtwoHT0/cS6WehezxFFwjLCcjq8Uv/EQzpIZKK7TMrTprl0bAosD24EluIuTipC7upHtPEPlV0jJAH1T+qoH3C/bcOUsEPXjmra67ZVBnSSbWl/VIXReitB+o/6cFPnZew7z+t0DI+ChcRZ6cweTyk7PZG702bwX9rF8Ca7I1wxjum2aTR7+sGl0cxAfDYjjGZXgj8SKwvacR9tyHpUEuwmDG3QxheS4fGgdENmCGCPZfCBmhb40M79ruziQbRb8Eg2bLi8kxkINqQoKtRI75o2WcEl+XJNzNsWTF4wTRJVHbG4RmZEggPffAq/Hv0fukxXiPDKCFtCZ+8Op/eGjlvQjF2jHSQCycNJohY17w7Hl6pRSXInyRMyMcCDOfz/yGMjT8sAWMHr91D1vqizMJRHa6cmkFkC/JVKzPCfYXVQwBgPdAGJcDJ+jF/rQK2JlrDWfsWJ3j7DGoBFAlp3k1nwB8PiO/qdsuGk3WUS6ncq8xQSXoQPCaOanT+/FoAxJ/5cjfxybhU0T+McUwNGlhZn/+HQwyYuKnNhxSQvDz6EGcltcFzFL8CKDH/DIwoxjePMoDbWMVHEOgTKfICReICsMJ/FxhYJeQ/ul/2Jerk5+eRXcwQlYWfKsUemA2Yw4+gcWuOok8kDlH11sOBoB8o5nZHkILvseW8S6cTgnzzWJM5H1gog3Cb5JYLG/NoE6+DsrFv+xMcFjKYlYBV/BBaKo1v5LGMDGKqO9K/OxQlGg+VAMJ/JN6rrIq2syI2qc+2hJvzrOwanOgZPcD9Pd/QsLcxmPFrTULMhpwxhb1Mox8QudZyu9Wl6pFHVujamWl5FCgX4jI7SKw8dm8rTAVKZrCmXxE7/K6s9A4ak4sUEskNtNheZOerZwvL+aLtHD+86YWjPE1W6IPTtMxCUFg9rKSHXS6KRE04jk/Tq7ZIz+phdNz5r6HC/kE7lGvoBr6sp1KtR018ZUG002yTBlJY06juc3sI7aerQHYs8iC/tShSBl+WJOTYhZCDCUTfm8PXzohQKqJeXxYf9mXB1pO2RjTo+3mxZRrSdDDM4QJPq33QSxMiz05kd0wsRT3dhqB/nxto0ZSOEgM5CT7quTBoGTQ9d4UIHTz27n6xXdfYe1CSn5UDRDLvKVO61gvzmDY8zRhPWDbSaJsUHdTjMmHYt8gNihUhlJLKNqHnxB5x/FiMR8N2kW4MCpIUfinmK47t/wi78OZqHBHJNwSlvhFRQ247NhnqWP/Q7RTMxvN2jb0dnmKxOWvPERywVe4OVQkxAia5yWCY/LKGVJTPLv8Ur6/hMavw059Ncem3w8vDoc/hQMFtj8nkVNZvVF1xyIOzEoLhZPc/a8jDYajZ+xQfG+AhgWnWuY185nCQOdDTGaafwi4uAhDUDZYA5tYgxRnOpv3o2se8v+Rrubi5kYMMq0VMhCCpc4XDY0zQ1JJo1YEOIl9R1Hq9n9AwkIjst9mZY02R0OTc9tS4aEJB4ktVH7Xl58rHG875OXJmY8izUIhRYctdX+OYDLww2Bi+supoDL0KXVs3wYppnOgKQZgBZXD8ZMBgNXHxXDiu1sMGFatUKrE+dnzlD6rS2hsFU10RmERBMX+HVjaTlgj5IEcbNyH2e+1iKmZoPwlxSZSfFGTsmbxmDXM3FyP2+8l2OsvZ1OcqpUxgrqTe319CSnUmWIUNfXumZtW9hm9sCVkLlqfpUZ9hogjCyVdX0C1DdlkzWhcGPKPxdAlPFEcQrtL6YB1KJ2uTq/zhRfYaxS9enaoOapb+ZfV/0Eq9VQwafBBMUIqHXpSlAYSSrr+hiYT6Zkfk0iXpxCB1SfwBteEMI9ZNX1QvsfCYhWC4FHHxRkMyl//a5N0BN4WJACmVGxSMtCiv1QCQuVvF+4d0xGG/B1oDgS2dD0Fxf0hUHmf15fXbqiRtCiozH5bhd9YplzDpDpcLTs0hyP7RA4cRPqJOPAOnNAvTeZQ7ad/SmUQp+wbKIlttKKpLbjHO9zX6beajQY8PzuVA8YuxvP8vC3Dt/0lHy5pZ/IE9M852nY16vmUe/aEAwzKEP5gALmUbWlC3mzDEvYOs3kaSOV7nfWCidy3C531vo0yK9Bl9l2Q1gLcLHgu/R75VlRsVe2+Nt9br8S6nX3/oSq0gMVW1ePyuMV3vhL+N94Vr33uLMwO/SvYy4XA2ZRSTyZzs9PBCelAS03p5ok/8VLbtsNbRKRy4RlMZMIzQQ9QOYm22dxSIScWBZ3BwG4RbB6nH+9o7fUcXMWVjjYYrD4PSwSIEHgSX5T80hV8gioGhuZHb9WD+iAL6R2sE70PQqGjPjyiBORkylrA3qc98mjfjQvqkWQDvBVhL7aHDMLp8WTTgTjOT/fHLcidqCkND5VNOG6or1catH2VDy71tKC+0s9355YUiMRuc8g+C5mXMhm+LnW8UpSZ6LkMsO9R6LgD9SsJzPCjjODRtmXvSQHXLlz4/N2zTnDyYXQk3lZa07Zw+Yu+fWiDNtPtIjCos6ww7nkG+qFZvzAmpqJH/sqOqbQrXQ89c18ftWfGLCKjLu7Jb7mo/L3M4OLEVAZGIanraiqHfngoKw1S3Cyc4FniuneThk8PkU/Jdsh5ApEmBzJv+uZOgH9sTQWqNQcB6TkpoT/znGBoO0Uzn8LzAoT2Jk0G8seE3b84fGBrHGXQr5LJmLb/x4mU9xUed8b4V/rwJhMjwsrRx0GNoh2X3+Ylox3exo1BEdrhZAvjjV3IH3a5w1y7/RhvdC++B+0pMhup+n3MFKzY7+1mlWLDt1F/Wk01u+BchAIDhSaSSAwP+dWxviIL06sZlHU4XAofqE2G1FUn0gAn4IUbbzR9FBuV4r3R4D3nQf/vQJpIQgVX0g65J7yaJ0Q+in+h7KiPaeT/92I1NkI/j//2jvRGrf+y1tJxZ+sEd5c/BeS23RKaBYJk0LF2l0j8I7LpYyvhduIWpdJrnWYd/Q6CTBYUBlWiEHrhhDPTpQbyoA5+9F/TviQ+mA2v5MwPJnj4VIw1bBv0KHjh2Xyt77FcXnEk8LP9vBytQ1uUqzzbymQVdE/IBYBwl+1lcfaL1cehu3LWVb3YsPJil0W0YK3sSSF2SKWG2w7GjHFGMfnaHQ6Bo1t+876gG1V/YuWrWwc2FHY4ORzqMOj3EY/Y/70CooR5Pq6KeWBG20agZbtDy8jDwuaCLyD0057f0JtKCsCMsavpRwGj554pu5M5Z/Aw9DBSXMHglZuC6DW47OKlk0vKpLFO5VLefZyk95oKIB5jjCLEPal5H0xx1UAY8sQoQ8V2Rdg0D9foLkGLbgrGnGhNOfdg/yAJP0uJHf+d9gidY6QKBcxiqniuFAqoOV75bwFV7L/cEDdI+S7L7NPBEXzN0yWNiQOEy9/hCxwf+7XRW46CZG55uiOPaBItIiTcQJEuDFnxSlUshjjEJx4ABZmclR1p5yF/oYU5m7dzXRAGR/+fbZ5Wa6p5difZqGYWnZ2yr8WddHfUXo43UbDc+BOzZbfDxLJgzyjRlzCnb8aElCfhalEd4SK3W+oGi5QWbUqyt8/P4EKEOQbxONCS3WjlVXTl+obqscrpbBO8PlA3nDs+Ky/uXWAnEFHL78ZX20aMt2YkgV/uPztSHPIL0ed6B2ykEcntiq7qebquB3rxRv0ypLBUE6g/6VxHX2uI0QgnhALniioVleCP6vO8hzi+4J6rSIpiSnCSltSqufpBUKeDbmSY6kwHFaVulXMYvUB9QEK1fDjvFn1lT/55kwzm9Vr3y9DFWgb1XmZk+WNpbS26qsyJN9VAcKAVW+q1ud+e4uM9fClxYdP2+uEnJ/2Xp4ykr1cL5mW3MmHAv4W+wvr2rOxkZlVvWDYJJ379554o4vQA0aVVts4s9gH6/ohoftTaKKDezcJPjh0gkO5FrUb34uFzxa3Hd/s+LchApVDesavANrNTgj9NMnW0Sgqa2tSWnvXpr66qPUe5NIzSzlJWzaDxMA6vosd6MJlvmv+v78ZVX5MObugM4D0zz9DMwJt5bNoAKNLUEt8TmfmSLvBEDv0ai0rjfO0RKivkM0jR48t58Tw71wX2WbW6rvqh9zm+Cnu5sQpFMRqX2PcFG9zzCTfY7Uf6Nkags9qLTF9p+S1K/AZdpJ+hazFU1/zbs5jnNb4cMbhg4cyDo96eCYymegiVgt5An7SZP9ktbVslY39+Sb4N5iNTxLB3zTCvvnURjZtDXvT6JSCB0x2g8Vh8e1a95MwCRK5GoN2k0me3Y6WBo2urpK4fx3jJXp6idqtTlrIdXdytcuQ6ca80eN71DME/BkKeQeOuBM/8t1XSNQdBPyOZ7EL9S0U9i0ccREGvbj6NbH2sdo9hKUHdPEbxC0I9BbC77MQZx98z/JFG+sP5Ly48xvcEWoq+Paozq9KYrO6nBFZa215FZyHyjm82h5dVQb/ZWbFFwfs7GnbdsOXo5DLweCtSNTWKXMCcm0/jkDA9ZcZgQ8Kk72mTLnb3NyUbNMLcDI9xis8hE+iC9X5B6gc5D3kDNZBVvkU1tcs1zy/q6wtVgcREilC5MTZH2Ufhahy0KHIV6Ii+bz/UOVFyGHGYWARzvbmKCx0G1nbg4e5xdZ6he7kvo4iawdZjLmewiq8H1Wolh+gslH3PvybznFcGVav0+nrSqhQAheL5RJwXy1DWNsNsCaklUL7YQXiZbgS0vJweM1IbBSHw7E4AaKWX4QLsHEIopYKJ5QhNYC0COBwY8F+2lpRUTfQ/zjZ6KPwRfnA45TNFZX7KhSysiLzysfC1ROroyba9k1/LPhiTrF11nhIJA8GrbV8mrDV8fysPqUpaPkq1jb/to1rwF6jU8jOzYpi8g8JBAf5DDSvTGMBgKpgssvjZvfno6ZOSkcSsty9XDDft1Q5wuPt6uWZ/odgCtmlcYstxzl0F1lH1Mbnn1U3loQvueEGSB2nFonjLUMJ0ZZwBx3EayOscXHPuv8yeXsrEpMw/vuAyUcHPl2Xp3b6k6V4QNgE5h6H3vG6E0L8/QJwbluUz7BMvYOiTMH9pWHv7nMy9qyoNyTGfEKY73dxel3uiz29n7pDO3t20Sp7eJ2HXgv8hEA4WDN0B1blELkufUhJ4bZ/hH0IlhbBtF/jVQDx5iexmHPv4st3fMucQXOfuJ0bGIDt5aZaMhxpG/7hicEB5b5igxi6/8X7ifNJGAiQ/3x8rfcfcSVZ0Tve6cOqd/711T0hKySSFO7lE38+NOOJ/PxWbn+2XjgcL3kQMOXYIzE7FUcs05hDxo5CbvUTl1O93Cile8yiAYDdaXtPB1z2YTD7sLjTGMxpi5DpYDFYYSZTsCGViM4OMVgiANqPQGAjUWxoyfJYVr/gUg4aoc+IRNw6F+ObDVEPZK9fFjjvBSkOZsYsuAcxsyDgrSjUFjBkpsVDGaEBwQ+3Li6Nizo+yX5HGAQB2+t9k6r8CCCb981FA5Cz13YYXAO/09fpgng9MPM+qqwNDZl/uAxoCbmaZ71D6l1uUYtRb2ZX3oVTOQjShm/i8m0+kApnN0UZn+8ECeIeEss2CAN8fkAo4vuDVij087UiIT8QTWDEuX9zxf3mxuJvJBbfyke8w5RGscceczjOS3Tv6Tj1SZlyz+6YPLaBoqRjERPwAwi+4uSa2PwDaZKHjMP3IZriUTJEmKMHYZEGRDW11HB8R8XSf4fhb0GhT/C4P/2y3KYc6+j/vGmGAND/gssab0GhT/HYZ1DobQ0AwL04wH3goJnJKNM7OkymBGjpDZUm0HqNqZTUaKq7InjppJ2j66K0We/pEJhDEvojs2czGrb4Q/d2tNOw6jVokHwaJeyDhm8ZpotMVmVlvozBhJCUyY4eOmBxh/eTEpstQfqyiM4lIDXGntlQwFJCs5Z060nORvzvEsYaHRW28aa0w4cPqg47aK6Ul67OViiiE+HJu8gTOXn28K6W985JIqWzDDOBQuxGnyirIdm0pC70yXwyOZ9MHpwksaQa4phIrlltM8mXpHSQ4ylbe1+zOfzQJ72HcaJdlc6C8k0eLyLs2IyVR9wox5Y37YNDD00eP+RJPrKs6QASdHTmqpZDxTurnIjXI0GPfdJdCHJoccdhjwvfJ80HINo3SYqMwCW13pJz8Rw2On2B5H9m4uTAeMFTe33B7pC0HL1VlVV/eweflJnSk/lR3y1de7diWa35Vwpq3fFtksAoXFyytTJaVK2Lzi18fSUUqFtoiQ/R7L2/rVh1iPKZxLkegjb0bpAroKmNwOp1IkqlYXIjyZvlSvYHeMEkaFiuWmqbWqu75H09bApyoexgNgjEXbWfWnVfAmk/3HLoccKqsqWlZtlLqxH7SwdXJfx6yCUtyZ1vhEYyAp15ZaKmLKGjQKdS8XXB6sas8OOc3EgGGTqfcOnE6zyyQD/3eZFfbpRrjLcC5zoYvfP+oM8GzIJ/9ZeQM3M//avfPDurZ859+pLfHDgAmDXfYExZY+yAzPYNovQz3jhRxjS270FCN3fdQdP92wN7CTkqFkQefMPuptZ2dTMPdWW2dbPfuBBGh283rpT75WbTDceDuwkIrzNEaLT9rTwmS2b5gp6lqrN813HUhxjX754/RMusFqh7i7uF0Ik4FBKJwpV9xcBum+QqRyDoeGwUlTnCp7RkTgD3qr5p3e6+NM+52626twEcOS3rmk46fs5Oy66tAOcHDTFHFJaYwi75IpkmOSB3RJVG+UHQ/Tv10YdUhgqZQ3ygWiX+Qm6Pqm2yo6CRw75fHLW/OxdCuEsuN5FJlqUCpCBQiYFDXGPJr/fJRSKbBiwKhWDiypgIFEoAm4wVNVgso4PI4v1+R7ab/1MDwb4gY+/q3K3Thfb8zsJ6EddQ8veVrAjCwcNI9yCEMZNwmVMOjbC0okpajJJIW7AHeQiEUbrpM5+LXhFONnMlgv+YafbQYPSKnthPpnELdl3Ovbwa1Ld2p1F1bIVRlG5HpF+X+WP9v5RMaTCjvebeUMC8WMK4GfPrrXX5Qf9aRTdH8hBrTb1ukSl9HnxN9PMSc7lTqQoNf/PUKTgpS1sNxWcjDBvLFCU1Z9pHp+5k/E0NTDWpQi/iut0zm2gKIt8tssD0v36kzr3z5Wco55lcpMcaqJMdnqYf+EFCt0qtDLX0mMS1UAgxdI8Pp8mMIg7JYWi41ygSce0Ka8BLlfiV1s+cMXstsc4fJ8ezNJ+5Psjx2A3Mq9lsjXss+HjFUpRREWJORBDPKMljERhVJ3AoVwGM1re9eqkKqLiE31RT6EIfoWdXOqqNqNJuUqldFUJ+cvogMyjWiV18/K0Q1O/AaQY5YIzJXLhrsbQVWs6CtcaNXsfSlyHKUAQRTTD17v33ECQGV0iMcoIbyeyOGIgRBkZSeZCOr1tSUJu5pkN1qhufQ+DaRk3HjDrFyfKzCd+nAWH6bxOOjwzZGqSsNDHl01yxGmCFjnR+fJqfofKKPh8h4m3PpPyYrUxg8J0JQsySdUlirrcJUp8tjSaNVfd9+8qj/QQLcKUIkWEj7lgmN0pze5ip2J5kSlfW6djbz9UORV/j6Qt/5+ugFo3RjmlMw5mOUpK3eQJwD2SlMmCX2RrcRr8H7LVf8lyCrz4vRDtmeBVhaNpU6YpAzHde/F6KbS2ykfgjXcTpS372TDBJZmmcGk8ksLFOQNe8VCZtSiKeHSGSLwxSphd5ybOBYptmiVGOq9cniLFF2jWYFl8NH/um6dn/G2ziuSEiyXEQE5Hz3OIsgnqiO1tlrZ0qrdvdiGcaVZJ3VyqRtr/r9XHt3PBP54k3M1lGjz1PErZbQcsx2BgFC9v/OUrSW5C2mWLxWiFZTE+xujjeYqxV0lopK4DhrpS16kksSXFj8ZxyH1y/f5/u2BxiFVsIoweBG++cCFkQOOSHUgeLY2MpsduOSauIKtSkIljYV9+19zTOy4QfULoCdVpcnMdqrHEuOefpr/bi0V4dm4uil6n1ct1N3iItgVch3tYV0P0504av83iYOLxHzQiC2xERLf9OU/prJmJWjO3P9xqyEzs8T6Of0D2mDs7J4/4ne89d6Dtz4cpY3V6dbelU0WBKZfB/2f+XrZES6NHEFkv+1uvzsXOvDpBtyBnDe0iMnq8WXeu9Bv00M96bZHmTgZQnOzhL9xpTjUIgBJZ8dorgw9iCYH92z30xhk8gqTEYN4mg0wv50VxmTy6M7GauiDWMyWhiY+wVuZa9Sp9xLuMissY5AfKGnvXWesOZOonWlHBzIKvDVfFIvhFjHW/9zZLl8dIk0xq1sI1gVzdGGuuxNSZ+z4Jxqvy4RlGr7tKSP5pFxLof24ip3EU7fljkAPCDRfHg7BTy32k0Om6ZFpkJ7pvqJC+we2AJXGMHGjAOms52qyzDTHhnjdwnyQOGrAUVHQ0cYRM4ndEBheRA+wtswTR+0NBlpvB1SA8NDcq++AkCHfxz1H160SYk6jdwPX+4ESSF4KOgS8eTUirQuQTNy+4062o7aDDrsyTk640gSFHOJkswCDy9x3zDo0pACZJYnSGDvfp8ld1E1IuvABYLPX0umF+ZhWZir67SXDCPD0wXIZm/fp6+cGJua14eiAeAcr6X72mIXNKszY+Oq+J16YfZy1ZxY8Kq/tp3YsWTGx8xXHd7GNTZ9rR8LTy4012Xdkeml1amtmeRzKgAjyCtQ+zQ+TvCB6VGRPuEzoWq9edYD61dH9uwl206z5MwzSQr8s3ZsWXaObzvH29LH89yGp0TGTkfTR5AQOnztv43hGPr+OWYmO2PXrcQWi4itDYYRRc5BFOzQBhf+3UbR+uUKMsL6URzvm2kCPwyIwSXPKMwKQllK91vLyqKssURCzQP3UKFqfiR2pRu9SG+SOIRfJVq3OuO0xekfnB913F3cpMqInUP3dUkIS36SBak5E1J+CL1f7ei/1YRczlOztt30U6L4eYv85DJWM/n/AfhWIBxAgjcsDJP1BRKi/WQSJP84zG8yK+w6TWXIxbGWsKnNvRHlNdoGPMkwdq/3lTBiniTHp+WWp1qEr+coR3lt5QR5ZdlnROyHU+n/1sR7IbU6GpOHylLYVf4lPVYqsavb2/XS4mdJi4iNQVYCzi4lAK/AcOtWOyV7/2NJtQJqZ5SfxbRylYi+xWe0yJWvonWGRiRlWsps1K1elrCd3PZfomAmNrdia0Uq2j1Ks9r1//pRLfEu02O9BG5ZJ2/AvqpoXmrr04KMrTWgOwnw94qG+v2sjMXo0BzMB4w0No7AGQrWKPRQEAhi8UGkG1g4105KfFY8djxL57rhnk0UPf0pm/vEz4UjYyikY32EYFFPgKPAAgw6vq8Y3DXBONCRIxN9nF+t+qJOPcPo0Gc7QGdRZ7JseYoX+Ckk09hFzvQn+nVNJYgMJOFRjaBp2BeXVmLiAXzTNQNoLq22qSz1QZvfwXRNoL1eoP+OwxDSvCeAHHwsapAXKclYDwXuOLvcufS0E87PAb5env0gJsJJpE5sQ7BOuC6ozQlhc1gX1j32/4vnt7xw0B0N7BWhBqd2ddK4+04I6NtAZW6+teqUmt6PcTeBW6UK3pXmYzFFII7L7Nv7PHDwnPmcgvbI1tgG0bBcyRAUADI3Ltps152i0zBBXnluXLYdE5K+Pz8housGt+YmBbNwr3V5d7Ygi2pW8G7C/OwTzinix5de/phh/AhAoTgnI9bRgTwyCiAAN7uerYr54D5gl1Cc3KsG4gVJWkmusf5MDnjyG9pUC9cVN0FnHQ7CuDNwZu2g9a+20MomXVbaim0jD3DIY2mpoDNYg2nGsO+aRypa5OZBv71RiNoveOp/u63MJwbjrnjt1ZyhUkO0quRnHxUnYty3kn5o2j0P30Pl/L2e8x9jbnTuUbXu0qu2OjnTiE4+yAmZg0aQbMcfXTVJnXtHPVV52YtCPNErJa6sjd7KnFs8MGt1mM4PkFuwLgjqIJg2XeDUV+H4dtBj592DN255ALJ1vtge/w2ohH03NbNDAAr5ZvX+qBsfrIFe9SpPsfpOKvhYn4+ngJaYmIcfbzyaoUlBp3Ddr6CLb+p3nrronfqBjtGRG+3mtDIOjAEkkknjPq3yEbQuC897BrjhLq6HeZXLoVEYNVeA/OgYltA7L0GQnRaPo1eZKG2Cqay1avXRLF3RHbx7g6hkXXrlIg6qDTEOac6p/VoMABrgtACcDmhaDHAt/HyYYjiDPomBP8P5AhJoHAcVD4UAQ2RZ0Y3cn6+Dwcw4x2ImK6+q+AuG8jniDbcw+2cFkjC3UBDz3HAqfCgW5nG36lMiigyqIktqSMFXcfclNeBNfAfNmGqYAv8x9k4nEWVW5Mm0V9OozeGSNMhk2hOUgTOvMy+w2ptE4k2c1PYAy+0PJ6ggnkbMgXY3VpXabP5W90yezMMVwXZhQI4iwDVmH5+bT//XAVcCPe2Koq+sqS5WzFiu30q44qpcZLoohFmi6pu8qFH+TrjOEP/yQy5kp6Cz2aYrJNyRXbmPSnT0k8VXK/g7K++7dzXosiO4oyZxWEsxdVCGqao1VSVgC0/gIbpnMOkSgNuM6siNebe6GVAMjrSiUApVK6CdJRkZP9CtCbYxt8qsWX6WKmACbquOiLJx8gguxRU5cxVaTYhnPvBZvkjrPx3ifG6iIy876wihOvKFu8YTfZu4lRl/7EfIYDbXGSjAQe6AKXIsg6KhpxSJPp8yjMixhoBhXgPn2o5wBIVAjRD+Wxq3IBI1HbnFu0U3PytiLYiJwd2l6+Q7xIY05Zjghe5Z8Hja3+u8PYLwzZAIuEmUCpYkmdiN8rR6fSsChhRjeaBH/QtQRWl5azCFKPezpzvSKjF2FBx/XU51Kw3GBwlFWjxjV8NICkSYD/ooUj7jZuZs/cW+2D132S91CxH3XTOVekdT3Sx9hu+rLe5GmxMuvNLB3HgpsqJI1ZJUe1cuQKmZs6QqrQ+bJ8o02a1xgSdAxb/64daxziW1tAMJ2O/QTGTzqNLsrRfkRrzuIxjjMsSS346IEXIaRc9LFRZWcXhmBVmZr6oqxxKjTcohaAbZ4ZQ23zJxiuC1/xfOkRI0XpF7fCjIwbdV5mYHWcPDFWXVvFYMPfELHML62sFVIItKSVTHRIAlckfXJa8OjK+AdAyBQz46oz8Yg5QwBZW358ceQ0BeGWhzHMa5WrHbjsbr9iI2WS06TUCtbF1tQF1bGrOmYDkybLilYk0YWN5a+CGC1qLxeswyNtIoRW9dAn0Gxp94nKQjSlzhjeDZbzbLNmIp3iHeOM3lTzs+fsfhiFHUSx/2bczlpQPgVsXYlSjKhflxXOh+c5O+QjUY0zZ48MqrsVEkMse7STEWpVs2jwzZfubHqBsCoFymgYBIKliWKd/Nok43BlZNutivhuu/nxSN45S27Y7nKBPxS8G+CtE1hxU1G+Ca8IXdA5jfXCRmFGcTVf9qLLWW+u/k+x09D5/DbMeNs4oAlS/g9PWV8sLX1jV0xc1+s/q7meb/RH84tYmwdooGecIBwM5CGj3sLt/BtZvSyp4qyAJfSZOeY0nWbw4gn9EIdFLEc8IPL3M25QAo3uPJueIc1gASPuBf5Xvufw5Ya23MX8KcO4LeESwwJW6tK/mWqTwYQTiCwRj7/VIn3mefrzs3DLiWcs0S58je8j3bsPNycNbNh86vGnzoYktANNPFKKRoxBgzhbZ7r6AJhq4SiHmTBF47zc+gFv/7Z+I/t7IV8R+sT+pcgpGPSWsXPadGFgxMr9NYpOZeKX5z1A3oTFgHCSuEJs9Vxl3DL8OhQ5ZL3SbI/loR749pLPM8dgSlztYaNINwE5zUhXldvsqjcWtrizcv8srTLG9robV1Kt/MLo/D/tsVGxltU2gHEWuZ69aFdHYKIQjEjPL7pyINRJ3Z5WxDd5twjn3E1vikLjNZYL6vUMzV0WsTqwKX60WqLBmfDIEg9UUPMBWScKrzkWo2ruzM6KpSWV1eFVEU6NktGSN5H0myWwIQY8OTEDjE66O/FDM1eNH98UJ+LkzR7hCE24idnFS5lAaZw56Kv7FYP6DwdpXitRXY3e7pv2ZVvq1lGzje/yl8KxUj1vF37GD9x4enELpGiF7mW7tGuvQWaRu5Za+U6Hjcj2oBZRFe50pP7Dq2fvBQBPAnviDmx8t2zQ9mn9QIDjEl31yKLJMKsVqNfopAnURiXwPh7+3ydQW/yIK8dSe9n3XASFQP0Y8S6t2vhiZz/CKewaXKce0PBC23BNSP5QaDPDVV0gqcICWZ5ZUpdaibAY2QJraS2IcqvrVmpASpQljS8+hhw+nhnQkjhLqPbZt4GiAbmFpAlG/iN1JMP0AQ0N9VUS9SnNYMz5GF5Vu1I49HA1fvBupa4Tg8uRod3wJ/0g9O1iZCxw6jBhGY1qnSQODfvRMXbANEfDFC36LfvtqgSyBYgZ6U34UCPMODofAvkBjDgesVC3andYhu6Vnlm8QDzwUctt+Gf9eNFIwQ6yD5tOkBz5nu5B+5H5WEGTJr81qqadFqb/QrZ4zbDd9r2a21jzLs4dkM10sN/2g7pTPbFNA8y9Y3G+DpQdhy8HQB+IJg4eYvG0i8vT3FQjKkTtUzbmNFNhc2scufzeBQvTwdZkMrg0ZsDAogiV3ItotS5dxWGUUw+nPYP4mLl1mPeaMNbGYlyIu+ZOjZoChMSvLrQcBQBTSpliSCw4tK1kwA2CWrS6y0mTnmoUWifYuDfVhrGiK0MTXllqpPPS7MLI8lxaRFjd6JxK+Ewp0CqFIq6AgbiMRf8IRPyOQF88DKBllGAq7iUbf2Iu8sWlvwKCPz3uPQgZHa1MNG2sS6bVSgc4oJvYlCVebSKuT4K7yM6P9SDpuAomBoJFZvyCMBxolwjA6sZNCxqfYw/+15HpTSflgK3c8vf/Qy+GQEUIOSbgxs6emzfnGWxGDugmD3jyFLBuGQ20XSij8Gy62cmabpPLxkO0D4sgxDHHUjNz2SdzKGTl5l4EfcAjbpHdqX9y2a+O34fAVslGz3UkrRnltg4FvLHuxGUsLvrMzBsoN7Cw04tHMm4fcKF8sQ42GQFK0ZV94Er940H4bicr1xxqUL5TD3E6Xt8bub0Wh6oYU03853otwh+m7N6unwtQI39XwwR579BMY7DEGvV3n8u2P2JZ+2Ze6xD2y/pZ7nXBNUgpHa7Vqqxaz/w0ev8tKy1BK+qpXwDtoZx/vJp1Z7wBWZPtSevNZbmFLHn+bYEXmoEvI0p4v6kQUw8vTCKsEoIH/qqRF8LI0ApsPbsL2zUJmdRXFBNNQcplEW16c6LbUxmS++Cqckjd4WaHQCoSZOO6BwAMzklgEUPrgLHnuNLBw9FXsryjUdwiYed8o5f8n4N0WCa7xy+6hkb/A4d8hJIKbQu7PQsHDxtiDdCIcsRuO3AYqPScNCHMDOvmC/wRCrV5DgznocyUnUDY5YPQ2FRYf/L6MevLFR50eQaGPMOgv8SRqT2FsbcBuYGZPdmDh8MyLeWexqP7FxMifQIDG0xtOQwucMevBeYtVZwdb1n7EgbLV/db0KF9FNv/rpv38GgtZ0fNdUxUKXQLm6rw7rKmb8asWDdGsIXs+vu6KeQXONzm18Uxtos73JyvLuqKVKwfWumIMWYCkVDNGMmQOhYBPd1O3Rz0XXwjXK4Xif0UirUokMKhOIwtPsx17ikC8J9z/kEYi1Isu+wCj3vbGZt21fWjs/6l+7vSbMhzpkcKre7qYJR/1OKpSUs/BXBnwUnZIAF12SxMMWYVAhVG3KY0wvgjVjIpdfCIw8rQgc/qcPVqLOnyzQ7cI5aOtaEl02FmERVyBFL6hvrC0mT9L/cIYC782zDQpt1HPdf0cUY9ufwaJFcEz3Wq6p07EG7qKvikDkgPN/nSmQMI6CatCCFh0ti+lPztYfkIT+eqqKpOKbBf8LKwEEANy1uKFR81Q45JnSMogl26hgL4rhD0/+J8l4c1MkUWqAscdvH3XCHVEaC5Pwwk759zVfuqJK0Tg+ZXy8tVvaoGgXASIzWrt5EnEsvRE6qqsxOsqFl+EnIczmw+kD5k0RU2eFjltStSU6ZHTb0WVy5Juya49B2fWH0ehtUsF6kOqu24lwLDFxvW8oY3YgoynZ8FqwLsNhS63KDfsjNhgJJQ7zes/9M2j/gAJSAVIvyLhciNxN+IeumSJZGrTaTVGprfL+MT5Frd7J33BQlc5zgxGSRLair392CfhVV1/mcwP+prpROhVWoS6DC1zkceb6rNncHXSG04BZ7lREuK6y2wjJg5UgIqWDpXXM6xSpAwO7YDvGPNR8h8x3UGLlRN/uPzgh/lXIi5LTsyfxXrRqWu1+iBFUFHn2G8cU+j3rh7pVg5riaxHwulf4nPXtaDGYlnjO61j6lazjb6hPGOIiVv9AxOPxZQdiiSnQdW48HLLaFVSVJJ+IjPS3hTyhrxxFBLpNEazU6hoK5SRoxgIMVe42EdwGAlMfrFhm4/rXa8+UiLl3VUlNTXn7Y84vrYPnnkybwvlqCpT2ErP0YV24U42E0ffInAMGllAkRW5Dm+UuVwBQ3Grzp8HDM8UprPpIbFYz7Fq2/6sYCgMMuGXnokvH9tVAjrwA6Ysy8U2Fei4S3SmwjPy7MuJX22RN/5V0sndrSIjoE6H6KGF7vG8IU40Ds0yPU7kwyhuGksFAOE3aPx4iPs06sF2yYDGzQMnlueCoDv1OxcToDcwmBtQyCNve8RxXXMH4iZ6GPoxfxnWLpZ9fFUJs92zfYmWA/FzOLJ5h5dv7WLZx/3yMhsA0mfrP+V1Rn+a6jOrCv5f7uU1hjGAgprWARU1jkgDNh+G/hH4w0BBjR04UcTVuwsiEzm8+1LIncQJP6Kmbsn6c9eHeswrreLuVuUDIBAcGwnQRiABCOFA6PgZl34Tx2rDXRo03KUD4pSIGsHI6DHohCZEg6Chc0EG1hljlZukyVEWB0CFGBs8JCQYLVXkIZHlnDTL7M41wEu698WWX5cdEv9mfYeFABNz3OhEUD2PBK4bMe9nhiT+4451Wk7PbuVU3dH9ZtZ0GAPoTEl6PGjhtM7EWHhqKHp4731DbWLRTp7UO0jihZHFTGMTy1MnTnSd7PyT0t2FPMlPuq14TjeTXmwfeI2vuOervYBIwBYtryiSWMyiiX8TcucUyyx67423ENNtlXsnJj2osR69RDcomcXxSmlm73nAkbrxiSHVCD2ToFy/tbwmNN68YCIPQ4U0S1jgSQ+E1qOvWHbcNsliDDvpxXPnNS+mDwEl0eOLaPekiGOHJ26X9g2FRcEJSdX0TkMZ2YX8Uk8qygu/K4Gd9EzfW55PTHqlGef1gIf1nYP0iu9f3tve+GbIe9HRYwwA6W0vlVQlVmH5VlhwrfvN2nb7pOj6XdbqU4i99sGR3JGVEuvsPvr8Xc7On+H/S7AmD73KNqV5jbeHvMVcCC95t2X/nThLFjAy8UKcyuNQZ8bJl2Zj9nHJmM9mpIE1GxvTYn4LFiA6DOmVhOUjtuW1sPHnI5O8z3QemY4+KiWehekbdCWbn8ZFkYgxpVnFTbyB0ERl7BVvYcEhl0+Qe2idqA6Y3Mr+SQ/srUeFzidGn6qr2PwLLnrDWlU4e8MTgBg9BQePZANN7KQnTS3PzZNeXGp5rW58eM+kPBel8aeT0RwGjHzlkYAm+K/aGbmFpxBcVWeV3OwVeyxEV8N9TXUxOd8F4Pcgb54wyoO444HAh7YepaVavphq1p38Mm9QZi4dzzpvFvRBXdmmxf13ExWPEkuYaHubAlvYcQ6GYwhHb9fPVnAAjmEct4Ar7yCElaswuzVC2IIvSO9lVUBKvAD1Nw1abOji0meIh8+IGesTV1b9C86leVgkV8FNYYXj7LL6D7NHN1QFLHWYAFCHq8zKv7CMTco/+HHgIg7PSCxFDekS5rAu2x21auUlV7hlokpEdZ1igGnylyezwIDeW+f6grlz+j73T0ZP0emuUJRa/luzB0MY/pGumhVKwQiOZhyZWOGsa6jl9UsybgT8Fb4REBZr379MvU1POVruMnALzz9whdoDvODnKFu//9LpzpUmNSd/X50jgJOQJTgxlOORo5QQpgCJNOUDLa/chAqciDfE0eA0dGhgmJrDwapnX+YQWCHR5JtootSmhSoKCL6BaFD80brFrw1vrnrBGHI2lN1h8nf5hs4oetwU+tRnjChxCEY15THoL2N7JeDs/WzXLx0clmmGGupfeH2+mM0VWc1Zb1X+fBjr/yqxJPGbxjHJZomATsLs8tK+r2EHAM9p3Y8+TEN9lCaz2yK4MRV6pQtrNKcSE1vlSe0WHuVuc3VKXkyle5nt+YNcAxTdWhOp7A9b/aHgYNhCitrr3PQtWnDAgy2yKO2ljwNot3rTzr+IiqyUwUPPpiagzCv9sjR3L9UX9GeyOAwfT0gKPFTz3ljVHwoWgatjAa8TSTHbsVyoXaeLmPZH6Sdb55O+Xe5LKQv71sJzgAlwqKXhIflP+nPa+s+gVq1fZ0wXlacbSs2UWvjIbfZ5i5yUDeXyUqBdxb2C1cfnslkIe+W70cN9XBCQg69GAt0hYCMQ5DYBm4BgpwRsBULcLpg0SnRP2jL2Z9z2GE2VYBYE6BnqnvehwbHW3ULYsnEYL4btQLg7BWQRlR7lUrhgEJdQe42HjYCyqT17glABnVFBAlGBSxrcjchd2ZgB+EjATQA/CXgJ4CUBOwE8JNLhQWsRYETZL5UabvVLfayz1EHjvaYwJE1w26AJkUSYoA8OESV4FbCbqAxjfxADEULsIuqduRpi1kOCodtoEGKKiEnDDV3mOiu6TiQS3zjRw5MLv8c01VEPj67mRJoGJYz0Gxq1Urc8PNGRAwzUkMRaMSLplQMkasVNOrLIHS/IDTeNu95BblhH7mggNxw07no8ueEsuWMtheBXdWqHzyTfKAQPdZb8kWHSD9vh6PnVqR7tHhzXe9+QJZtdhQ23btgMVDfz+FDPoZ2JMuojfQCPbwu0BytjZFr1vA4iPUk2qpnvHkAp6PdPhKV/xAgDURxrXb4NJv7Tz1gSB7VhXGcf/1dFnpCXyTmVwDmppzjyMuaG+9MkatKDDdajT8dZmwbqYx19k6A/6g3pcWIA5Uauz9jD3jaTyYoVx/ie8T3jLeMt4/mUL0osCChyxESFurcO6G5X7dJOXFm/NGSREUtiuGWSerTYdmztsiROigSHW5R0ZFa41UDC9GKmex0+G1OMF7yWUx5cWx7bFfeoekmhJ8KllEoI3UuPVaypa+jHA5y6o4W5RLmi6rQBkco18eVhhZkECJxBCAm4EcCQBFiGP3G45Hgrm/nmMM2MXAjBWLhGhFBCFBGBJ54zSKASVMgDOykBi2TgBEnEkoFMkrAKU8XGg+NcJqjX4ZMWqctZjd4a5xWYoggeCDQsPBNBirZ029jbjJLHj98Zu7MHeYvKseQlQtWgiKj81GLxejtSTDVQQtvcB5ytzn0PoVRN/hhqi6tV1KgnN3OX4f4h4OF+Hyqg075xoOWa6/QI8+Aabd0X2Wauhy5uQuueIE2An/eHuOj9oUGdDnNxENbVxDZL6ovolFiDLUoPr7vf+k2U93mbW8FjqHwrlxWZMPFiTWZmrbiT0DVMJzGa5oZJMNEaJ/d9c9UahM4Bs+ov68dUBW0PlCp7YFDP8aFr6qlzVOVO+X7MI/xv5HK0EiwMYI8rOF+Y1UoOus5D7Yew3zV7DjyCeJJ9NqZqjFOM+n2KUT3Jk530sUMDh6x9IKtVUf53ArvhaRgFdNQkSdXaz1PB/l4u8uvbCQlmz37IPyfML70bSwOVcb7TOLx6mPl3CaU+4spKGfiwvp2tbg5BkE8CDIypKfZJ1iFh/vt0LLfjuJRJK1hUNE1JenV2Y86DPr13gdNmq8HpQhKG7YfYomz4nidsmbObxmYAt9TJ99JH/FEWmzwi/VsK0BbpmbvouPDqsYc+94C91Q+OeHntf1iLkltQ/kjP+qIlX13LuCMEcLunxvpBuIdGZU5dom6hGlXTohXRleioK1c99TXQUF7lx/SVRppoprmWOPcMB/H8mazWZVfRlQ4Z9a9Nd/7ueAPfrgJU/3OQei7DMCIRGlSDASAzVQ1xA+wab5zgRBfPJX9mPDn9mmtm8Bpy0vg5Yc6biw9LfsXA3W3NOXVVwq4J70qba70QBdXNt7KsHAWKlSDtuSaYqgq33bZVNWo51KhVp16THrwZsw0TyVyuFUST8J21msRRU7+moLbt7dNVYoneyNnSUAyIOgYiXaLAxnDmnid7V49AQaUtmMsf/Zv0wNzkxo069JG38iQeG+dJRwHFsYZ0XKQ4MsOZpt4gJoXmdfidsDc14ZJRMvnmlnxGgg8APRFmzjVfy+b25V9xBH5u9TRETPf6Z3f1avSukNKaA3RKggxruVNYZqxpGLKey4QpB4ikTmQtI8zgDKWQKGx6Wfie2QOJad03wtZGL7aqSgzVNLiJD1iBj67SLOlb+/Nz/W+QaGP3sAnobMXh+CJZk1UkiE0sciVrIIBt1KSPZLUZpv8Pid0LYV3OWG8xb5lxeUC9Dm7MwEj77bw3r5L8v1TkR88WIffQD7jrnur7jzjygZYqr+B6YxMNfpm8K5I4z4BgTMc7cuKaMdvZcM+Tl6fPSC7y/ltBU28+o7QaTMZv4MYhP359/bqvHmceEXQJkU8Errgym/vDqQKTYoLfg7wZZeR5kAcjVKIjQQXskFKecVN7puTcaXFye9z0bOMV9RpWrialLA8/LYk3Mu5RGYfJC76UCVT9mT1skypTVvnFjzfvaz5mxioNG5nicPi0crDjze2fMpB3n142+sBVKgQk8W05qKQDv9PEqAcUTeUfguz619rSatZvt97gQyGdJEWG0kMmyd68afwaXRN/JPiatlyTjSkiStoIjCVQWegz7bGYJQBIqB2PEay8/RnTsaSBT7fcHl4N/dXV0PIDde6/OOmOy9K9DJvm+h6egI3wWZPMw8OxICnAqmJYAidA4v4PU9zjw4o1KZjwWTWLe2izn5n+2ON6BrvjJReDmQOiRT7cOeyfSP6rvLZ0nBr3mBW5x+BVhooqBNKsJcvM3LOH2wEs52MPgd1b3DH/Jan2/uHVh7A4SSY/8ZqYFYm9LziIeEm4k1Z9zCnAdJEkC2BHpZeHJXzDOoRMxRkhRbswanZpkdmlEbNL/zW7ZqKgCzgoeXHnofWo3n7/gFP8BodKMFXf/BGhnvkQG/TTLhYvCeU1jSgPFu3Btdmj9cyewphrrWi28Pr7RY8IyrJbrKfFDn06w6eG4T1Q+QXhcfSGCP3z7TAiSaYv1FfWHhm5QIqdI6LgMUfLER8Pc/A+zwbvZZSfxEvSxkVfJUjCSa/Fmy1+b5JTlulVHBpO7YBODQmlIhhXFLCEcqd7A0jWiYfQLUOUwBAyGMcyLB0l+S3c/+mI1wbxHKgcQBw4OoQvLzoMng5jxxzWCuZwweJaK/QWXtGJVgUoPIt8C9TAGiPHTFFMLTVYRISy/t6IhILPv3JA/O6otCWUGI9lCPDQOeZokcu1VtJb+E37RSeEOFa2kq4Ns3sfyCoTYHr0ERHSArHh6AEiyrrSYKiOWZJLTe9C8Rxgrca1saul+EercW7saSleckXjxmX+DcVGcDBbPKF0VhQ3u6JxpbxUiglW4+o4uqJ4X5VHGlRVbp6Nn9V7Mk/5Du2/j9noApfs3Asuc3/UFbmPild536KaQPKtfGZXn9OC7OsY3CVOIue9vUJh6ubdgn3mmDF39dILvSM/gi3gs+iBwSeZLU4Pc0nNx87CMOf1nD88TCN/g+zRTllVX5HojW/mfQT9rtfbublf7vMxVjQ/Bl7//Ym2CMrc+B8cgSvAa9G5fkt/7Xoox2qu4L+mnlsfT0cf8vsQHjQinw8JBQ3qX6FiPOhDyMScgPlAA8izOfiymKd9c4vow2t6Xc7O7eIy90ddSf+o+LSPKkoZEOIqcCO7j44LP77ziFK1FZGaSzXlmau/mkz/6DcbeQR52XTIKh24bqj5SAOuu9+E5AautnVknTvUa2W0K56bKq9WPCc5+nX51zSujUa/cWwP0X+C0X+qUfFVRQDUyM5dOn0c8LCaG5hRT6r4NJi58EX/Ut5SvKT//jXFflPjxgin1+ezfbEajqFdRuZU/jG0IuPJMevjYVizg4YQJRZzzfglvR62K55Pt+yhfBMPjx2FxrOo4tpLTf7uc9lDhvTgofr2gPfKVamO31qudY/3AtSyaLc81x9QXBBW4fxy6EoAhQ7tO270Gz3Md5kloZyqkP6NpF+TVlNRmKeylNchec/SNVARqZYGiveNX/26Dl2pDx79HjdAMFM1/g2wJ1cOZ9u1PdBuJN9pktwEdTEhjxslfZeBnmPbRK7bDsj4lnc4z8/nrj/r/mtrBxn953OA1H7BrzdmB8PBB6q43daxW5//n54R8ALsXl0IbP09g42UDTZ6Ndqy40lmfezeWjEKov5jNtjo1WjriCdt8fjpaB2Ho/5uNtjo1WjLjCdp9TG2VoyCePQhH8aDD273MQ63R3eCD32w3P8kjCHi7fNZPcVpeIAJyT+k3NkShUZ0DZ4q942L7xVx7RP87cyEJ/KcH+1Ar+AQOJRDDg0izzHQdKafzewdsxi9jGfxMM3RZbR8mafnS/qcYr7he5hFji76k/CIIpx0nM5bcx20U72Ky8Ds8M+guLThxbcza37+1NTfmj7rYf5kmvJ64idquSR02bFe/dzf3pS/gY4LedmgyvsqfePPvAYNFjY9xHOcEleC+s4nofiEpPMz1oP9x1xFsF4VmVoJXLipYcNk5rN5emjdx7sZaVM+rJg+dHbiEPbdDOQ1mOTcO3q3s/2th7P/zsN5jg4yOWeJveWz7X+PJPijKSzJAQqmXdavRXcsul7RnbBo7rHhMdPD3y5ULxK75T7rtRM7DnBmw2PwCQZ39qu7EEx/igvWq3GwLY8Kzr2i971l+9kwH32BdfbPhaTnrffb+m5CU/bag3XuS8JDnnxtdxSLq+7mocfjtnU42t0Ool6O1rk/6E8ObZtxuK14d2a37dNG4fjSgzboyXm+HaQWVTnrd3vXBn2VeaZPRsfMISST+KDvpDcJ4H1AVGr4WzyGF9ahDV5Yj2WBaxVd0frNKwd8MXDhtYVmnfuikBd1kQhnXyUuvV+cQOsYebJHffhRSA7tFMb6zcSkdfgzT3Itj2a26Lg8Y53DG6lUoplg6xbnXjGc07/tFnx1YbMgOw279Z+6X6F1bfza8FrIJpZD2lZsj3xv2RcJjxBfOJznSs9O+nDc+g3tJLH0dpHMbVcaMc72XiGCWrA4QVvn8GUQpKoyGOqLEdb+JRCcw6cheVWZ4cviV8vrzQvU44Ln7e2v7oMLX42Vk+/dGm0phF8XRsauLJ0YTkUv++GtMVXd+Xoe+SM9xPhn1KAgAzRP9FX/M8Trs8D+CDsKzFRYEeOzFzPjG+bOR4umzygq5TpqExdw/9rPT0VE8SUSf25BfSO7c+QI+73Foe3dzbCSZvw0WFJEVFk42De5mumHR1VzfD42xECvZ9JqhJ66Cfa9hEEyH9wtUPFhKvqx7EW2n8L3T73KnhYqW6BUr3ofkQdvPg/fH36EAt/KK6hrjnV3G8xG6HFsFyd3+2bOrYNPfQWDX/6j2vl3zbf/Y+WI6K/E/ynJ75kACKClwL+vnzubaUUd/hJsOyjLZA9gHaNbY20HMFf0ONj5ULZJ0VAWsj08oOvhKbgentN2u3DOKLwFR7BsbKabkldXnqXtrxGoSpECrEerMkSKZpMTIiWT6iImZZN+UzgkbEb0PCIVScUf+hz/D8vgM8ul73tXPiMNVTu+QYY7yYbdj8YPZSHbwwO6Hp6C6+E5bVdjLENDClIBfA6SfFr2waZhv3k4Z/IpgKTtc74ZdpDfBynx0V8LWRZpwlTa7Vz1Ae/xtfIPBdxMamDhgEd9ZNgqOzcD7QJsk70XBTVyaef5AZ/8fFzY7J4WdZSdZ/Yog5Vm5EQ34e2KeiPSQBqi9ld9NsEk6LtL1+UDjFBl2poiGNQvBfZSQ9XUlvUBaSD2wBYh44RjyYJwGsdz714imNZE0f2kFYd0G+1Q1iGmNldeCXhj3qZgrOGRQY6xwxiCXuWvxrtx5gw3tDbO+FL3KSq3Ppkks6OSbL9NkuAPaTwsEXoK7N7L9PPLtSNSeFM8Iw2zBjtM7MHD45Aqf8nXOH0fY9DDZRCh7nCrjv12jyfws9dal6X7MFbcsVVH1Kc/k62cbCQl7Tx4NjxLUPtai7p7c/3NXkRthQdBBUlRDh7Beqtf+h7I++WzwGk/ugTgrfjPw5B/hXvdq77Xo2p7vWq016cb9vrtH+3xrF39EEaffvVjzto4a5//9ZjJsNNufTCnWc2o08UtTATUTocSyjutuGLoF17tqk8EWdxlQCdu7j/Ngow6+/R94k/yTsciflh/HHmYko6BBV8PRslDbpK5MjLsYHUvgVDlz/s0M9Vih7U3A3ZFJLP4FAZ14G2bg+0HXdQdWDY0PsaTvfP2tDWG+srGU0J9z0fq0uL9oETkx5cGcjDlvnD3yOrb55hoDfLN6dW4JLd5Jl+i92t9VbG6O6qS161Vm3aLqnDr3YqTe9U9QDz+3YV7Z//3ioW+JAx3uPm2Fz2Duz14yghtQCEXY9Lt0As8PGfrUvRr4GmwWON1sWNvdnW3/M3u5lv09CL3uvGyIXjVY+jvIR4IgcGG4U230JC0SN5mwO/03HzfamC4VRhtKT52M8aai/FaGRO1KHRdTDxvEb2w1Se+3Q6/nmJ36Zsz9eCMoArySrAAa7vNCK/bnaOCfhFfwylCAGksIey+6dPWw73PhVE1sPLx9NsntAr2BkucrKE7xDdL9NU6QXOomPQgtF1Y0revBewrJrezazK7mOtxvG4WvrUXH1qGySZjqoHGdPcc6ld/W7SmkV/AAKsV09Xn+/lKMFmxH+SXitauntlkfSvvhNJiZiBpn7AZH13CNrKrZDVc6Mxsh8Kly2bQfZWymdwLFstdB4fmsFd1sDOM2h6sPnapieFWYTWXKzYL4NId7Bpu4lqRSet23t9uQ6tg1GV3b3h0+7hnNiQqkrsb3j1IPu7q2PcBfGtCfuHetJhHrOnp9cxO1sVBaE8gsCeNoN4oJHhDSMtpbR0WEF4ni1hcrU+lsYkDDUw3r40gv2SU9Q5wjWqjDpEqp8VPz7EpSHrfSSira6EFqRqw/9sCdSVnbRr9gnW+2rf/PAuwf/yOj5dp+08vpm9/TnZ99GVfJvHj/5ykW48kVg989S+4dH7//I7OH+B42USCXr7zdGk02PkEYKzPDcDHbw7g7iiAS+cv5V9VLx9+GaDZLRG/UzrPe1A5scKkb2/cU/3x36f3Iyhw+rUPcBxxGVfyBSvpePzYjtj3kV3C7tNbgN35qOzbOisu/l/bnP/RXf3l/tOxvz/+54lZ5n9wKLAEYByOAo0diK8G55Kbnsf+IayAc+MfHz3vBHA4AATKnazPy/Kxj//y89C/yEt//sOvo3/BAfYTDCAwjhXr14ME7QTcBAoERLICOHeUAzZg11u+GJuz9ZGGtt17plOA197u570baF/J9xuj5FU/W9Ox4asXA1ZUUBD342doHy29rLJ6dJMFIAHAFfkYlVjgHHl6U4tC7XPzMqbDQ9NQ7yevPK8kURrWpRjiADcB+ZEZiWeCqAQVttrBKb1R/cYJQJlXRyJyGy9POdb942B5BqZAVEIIio4NK41dROh9N1lQbGg6GNthzDAuJV1qlHfnj0RYvHes8xX+hpznBIj6uAMCO/wqlZlw+sjYTfuW+vIMPgWiMQ6hdmxkJCihKH3iATKmvYRLl0ZK1dX8Rl027J3qCQrW0Ox5yDRsf58uxdv6gFS6xmdVP+emO2Pexmcuoby0K7cSrok0GqqmeaqsZjfKSGeoIcTOB0xDUYGqaZ4q1WylVjsQpVUHE7W1667CPtxFiiR1yttQ4ew0QdV5THgXdKo2Iq0Lm+o+im7kPJkyYmUXMUJ46SyZUsWVXoG12iP3S8mg0OtaJG7TUAtnF1Os2q2GldPp0nZpKZtdifQlIc4w1FkZebEW8sJIrNC+mdRJVMNABuka8A2lk4emy6m2a7gSCAC3mJqwOYB+vlE1zVNDrpVIMzH9sRhIEyu9HLMu2KGu4fdPloV58yPfoYKiHAClXWN7upRETQ27cMstWW+5hABkAtpy0aWa9eWl7qe3kIRrVG0+nzpm7lM2OLOa2YkhRyVwAMx5LyECCFEetARTQwWdl8BWKCVqgLTkoMrWWVdYyXTcW8tk7ErVj2iLUa0FqUm1V8IAYJnfWE8lvWrGZJ9df4IvvTxNdTZYTsyF/R8OI+zsGQkZga5pk5vh2hrKppGWU+VBU7oW9ebPbMwwvFwqqRkDI5OLbALgAopI25oLjXTp3BM5bHREJJ2JsBQ57LcjhD1lYTGC0lxoq+RizZmXXKkxtM+qY5karjiTCszwzfYMjbEAU0r7HEjJGl2LMzoMbxUQv+L2qdfokwVa4RZfyxyhyRUd9DsMGekeZzXSJb0+yF4Y03KLnuE0Ut8UKErZaFCbu8J02dKLlCAzddqeYmoRl/OacRp3fJufdHbTLUfTCWLtu6UYI7We0Coq9WdCqaR9rBZeTouxaY05zO7gCd2Pyr43dO5PP9H/kWmzi3KYWW8CfqzzDvZuN7C6bS0RtntJ0O/U2pLLW4ya9Rtgfe5J6TRa2R5gc1H0ApMSBGxyU6Nar9D9lYoL+uO4PfSvpWxhaiDflSmaLdAAI2M3ehnqOkCCSfp6n2AoB8AYaZR4faphUVICb5+0qf9sUhRxtrdSvRdRKqnHWsGqXTYlXsnmqVSiXCpx7DD5wU1O/VgsKklh3WNdEnb/pC/XxIdr4RsNlfixlk4lFn0HvYarW4Aor0YwwzyyteLDc+8bDZUMXEVpmF+L41hJBACZOrceLwU9twWqb640NhRcahFa62m9c96rwGoXjMzGnHZen6vJcCthG2CykVxLhYkHFDXq7ND9aSAx/fgoPE1/W0WpJO83hgqq9RUmrMCkxAIGJVuP5HaGmNOgvAdPn6njvL7XbriscmXABaJGrLqRNpQm/uzqpjhFsmOZWpACU4KZJA0Ap8yJnFVNOEErKJvT5vyygmBkNuZUvj7VZbgInqBvpUDfwAL6JrRV/BD6GrMxlupHd/IcjPTHPChXTguBcgmCeQohSors4nCpptIo9yOjvWPeHzeMP4MQjBSpVI5pIVAuQeBSW6ulbzXYamAwMkPMz0G5segPjzPOJaSwFkZSEMk2DKzwg4tlqyfxiYOaLziFJDm9AYfjsHwe/T4gN1zS1Cm9WhluC4bq8hlhsqlZs8jaj6keS3HEWU6taLV0tTove9ObCVZ5rxezj54j1xPfb2sHoM072mkF29apVgtieTTu400BEoG1MuOOSotlN+4UfCPrBOGrG62/tCxk5Xe0Ubupt32GPI8nvGzkMt3KlhQzT5HDsV3QddpSibaV7uSse6bitVHFRiOqa9axiOqz0t6v10xAZJmQJGiqO3YsC350i+5PLDewo2OIqvHiqtszaFFhiYsZKOj8lSSqr7JdJMtLi0pvoUo9i3mKpklKXkuw/NmM+zmo7DsbfLMtfqHLKNHUJNvF0c1RLZD8Y0dhMRryVrDGxqlJ31jJLMInnJhilLGRmnsuQb0hMFkDkPeAQvclZaQwub8pUSIZZRVnCLEn1pRQvCvNiqRorZNTiuAlGIlaPuTWxs/gw7/0PV+w05Hzdng4ASKkwKgxnA5KwknMwkzKVizEEg2vA5oQZC2QppVkFWfFr3NPeteHipFXMRiETrsRYNWgETLQMoA8/595RPCbAq9XHnl9m8RmbW+8nXHwkoG3opUvc/z9MxjlfygPXeURXkYrFhEsALwggca87XXY5gyxh4VpAvj/4wQD6k4KfiFbi5S17+WhwHSM8ps4u13goTvxchf/ptrmbGtZ5wn/ubQI+lQw5vyUMFI0/VCsf3LLEhdnbT0P7FGrs4CDs9DNblPSeps6sMJHWJ4wb6y1GWpYd2u9R0sWnmOBzTHOLjDHoBeNVe7b9bsoQ0MadhAPmKzWO8NIRvQ/gte/U6gGHDT1yD/oqCvOMlot0MtjAOg9TUaCHGh0Ph2EmVp7K8nrqGY37X4K6SacoEnufQq55Osr1IpQSO8T+oLv2JXqT1DgPlOO/L2nzZB9pOXPkk8FjkJCHNdvuCi4MoIjvXEwAWMhGGyEC5aSKUzvSIYzVxZ1wJ2KP5SYB2Qrg6crlNxvwnn29FyYeE17Nc2V3bBeg5MMGahcoJ7W5AjF9DMpyBCk1+OzVzDiWD9aIabJ0+ccaqQ5Nr3NBC/sjX/SFPgFGh1YVYtEZ2sST8b94+1SjIPX0+xMBCm7BA8+s9iqxDIJdA7kwuVSUpAkEA4GxSSRzyTKJ6j+2Ujhk+bdMURgqhGWK5nAOn6IGQhyeuvoC0dM2HqU9nC9EjBy5jSm6o3QGnqyj7CMlTEjegueRqFtiNRpFq1ZXztDhHMc53hEZI1huEZGwJGt85w7xZx7XNUpIqdoAatOVbs29CjRqa/DU79iNdwDjXJeBe9IqkgxobolZbyLFrBcOioZLhbR18Qwqdc2pbTmGulGa6ey8yd1WIGRsheA4mRciqd4lqdS0iUrvcJTjbSTgOIojsyleW7JSbc1AzrVjk5pnopsyV5QrId5hBfKlCxL54wVoXDfGOJKfN2zWnEQp+Dkd3FJ317wAL1S9kRL0aVtasc23WypY1Ltanea1c6iOvHdFPp7U3MSLdYqq00p2tzRnjX2TJGRICvn7VZAW6/L2lMNKxjPgVsn6XGd74awuDShHKAXO+MFUGU1myt1Xiql8Dap0tylKt6uufRhRKFkLs3zmYVYPgOEpkDSveIMMyr60+DFoEo5W6fV1s8xpImdjECjP+FodNF3kV0SP/BEqZJn5QUeoRQc22Nd3dBqAr3gqRTkHqqsnK+fMJFACtJOSXFsNpN5xEtFDir5SGMerDefySTvGVh+QstAH78iWpDh6RkL8TqOyF4sVd40izTlo3VFIjBeWnbLPTE/e6aSgVdFlR9h1rMNKzBWVwpSU6yMhVBLJOeqDq5hOma5suSziZNv7XLTnPE620jh6mC7YbkHORqAIGrQAOBr4p2ZO/Ft3C+Kv4yOmLceaxsJVw2rcwi3I0ETNCL6VUWiz3q3bSRcHWw3TOcSHw2C6f5kIROy214qBRmYibeNjtiUW/zekAwk0sUSPaCtSEZPCmu/DmHuGATX+/rBCTJiAXVE6VXXhAZYybeR6CphrTfvBkEqdActoNgLwL7c024j4epgu2EM8G+49MnEe8D/5YnR8crbSHR1sN0wB1YLbhCkTy+ph86LOtMyUWlK44bp8X2KgunBw2F65HBUzJZlkJ/h9HDA87IWpsYCOsUzJHgEXR1sN6xBSf7MGAwEw/3Nj0LIQQhSMsrVGAjX51cqOqc4Yyg4cd0DS8iVKWVAHzNsgobTa7VkHAVXB0theem4zsG6Bdc58FSVeK0zDDWRzEi51TRfN3KakUfSGPSCmz5rsh6KRRQOvFHiRMjQrfiFM/ayZQD3hgRSjIjapnunTQPD6WikvLCzyxKxjfAD4/gtplJ0C7PuPvdcOX8zcU9jB88eguSdewE/rTHD8BWxQq5077pEmDoTxVXbo34eQeOJQ2jcSlEPC5tC0z58lPlqMrmVH3gZ8aUYGaZ1M0VESgNJ+OlzNf2m20bLwTeOXU4yC4w1fgi5dZKMtwR+v/e7Ks3+rcil/B0nVFoVh5klgwKQtJAlp2cajnXhf1DpOcPcJMzoxmpiMV/FFOurs3Chlg6fka1+ytoyAq8kKY6qyO/bFqwvCeb39xfVPsKExJUkYVRFfl/nKN6B+fR9LX0m0ekO+lrAs+WX51EisnjF+iGJNMK6eauz13PY82cac85s4lO1SlSd9Oxos7tWQhJKwUpKDxmeqLdB7nrI3QraZWCXwbrhDGKvRGGVFwH4oEreCRB6mdN6Lq+cyJsTuxC5DXsPMzDOoGwbPVFcmipkm50xfcyMUSl57Ot05AhvR8191lGiPkQgbAIVYTklEXII+OANlXZV7ApVMkpNV+wGWOkXuxl6tQ81QbnN34pif4qDvX11wAY4WW3oRA3YMxfPJCf6TG7vcOXXBqqL8BLxpa8NHf0uZSH6OeyS4hVd5C8sLUW4lZKkyg635+TQQ1IzVGyTy8PGDnVwO+mYi2cOCVh7uSvRNy6DS9th0CUVhwq2UJvqAltSw7FX5RVdU26PYKjaxf4GamHo4t19tCFJJmMp1y/U8HzSDigytm+NEZrqSBM0eMl9VaY13lk1SW+huqo5hFWzVzaepcXQ7ZORBR2IB4ZdMmDoRDIBZ+YirkgOb144leqkcnlsiRiLcIAttbgzl4cewRaUiS5nWSfVzpMCIK0poYSitDsA1N7ZuUsqDZ2ohr10EZCb611Rn6ylGV6y3xgiQodh1/Bi6L1vZH7oMOzaxWLkblyJdwuk2AskwAvTm165wBdXIgGPLdBd/5e1JHr3493N9U9+OoCvth7ZdYC4e1vmYkiZvq6GRTOVCqL+m6l10rR7nkj6XtwWjJ0DfG1SToymh1is9fTsmJV1xa5dDbm6dpVqpF1C0CDbGCU31+qr5/kfLJ79chEeMuFy+qMUzayJK4A3V1ufhNgT/x62zWrK5ztAzjwDRlmBKWbN/vnhelq1dW7wpqqf7PYCJ/TyIMei1Yw3ux6FhFCFuLFCCtm3daorn4iDLW9Uog8Q3lm9a/JDbXCSYFU6eI1IJbQ1J8BvXuaRogQNh/Ge54Eieuyq/o0wN/9rruftoXoUxrFxI9OlCMJ4mohcRXXDbjd9lQTkBsrsaZYn8c5NaL+7b26xKjIR2o8WBiK4i1AYsaHxRTYChPyIRNhLfLNwswtJgH3Msqc5CHub3VzY1wE0gLm3e7o0Oc/o32FlqdyRARfI7AFrG14Fxy1s9FM1JtAcG4u/m1KuJDvCGCV5iCCdJC82MZrnRADjexMRPVQ3C7foXCUB4aPMnmJ52NtM4w/xjTEkScbm4xKypegx8rsra7UOPIXr9MZp9/WRKl1MiwMWCr9V58jUIuIA8K6+jh27weeMCXVAue23z0AGz4MAZ3bRGyrB3aWnS7BQub97qTsYUQvDKEqEq3Dti690/5uv3KTHr+5ffsKnS2RmZzDKJhZvi13crZya0ZU1qAStF9ZqTCRwF2H8fLIMPoafpTcMoHd3wjPfNdRRsLnaIkEiSmeOv5Q5hWOsz0qvR7e6IxfIWl28YrZrR4ZH8mrQQLG/LTOjd2pygGSfxYTUAzFMUTK6YE2evN2/Vjp4LnZrHp1DeWq96WHdMj0O5DTArB3sNOW7KFk/fu9yIoPO4+1KlFVtklmUO9anpmLt7MLBEeup4qVw2Pyw2xTL8EQLPHALa5Na53u4yRqzRd4mhU43fucqG5ufQc7a1UZwrAOO0ITTrfn1Iq4DrQa5ux3uddJ6qoH1oLwm/p7OZPVPT3QxCYBq6kIwlA6Wh27f1qMW3Gpf3WvOzfPIkNpysc3A5vg11amOPGh94xtLVY11ryqvOlMXXvJHAmvIMngdt7Pu/387zuP6GgFPcV+BZjbc4uUj8+vO9r6dHvTFYbTpOLLVVH7Cs2u7HikYgvgb3Rlub+0rTKrEf6Dg5Jh5f9mOAvW7ZxqRRMXllcaL/uxREygZ154/2+2Y6sKSwL6pORnYyI9fOLWzzrzudl+8WmxPBSlybSsCLhyqFpnj3BC+qwufNIH4OVIBtgNG5u78vOKx6as1neHb1So126ammhds5W4h7of3y2J/LlxqEse114w9yV43kIxdKOMaIduUyjY4IzYWNfrrT3EOGVyBzJuzKMdXXyEK138oQlUGctm3RK497bJiukEO1/ckfaqbwAXiMLjZSMIV7EUx5wlHkSo6t1lR6weg5f1yQqjg1pVQpjinfpFb8qsCK/GKZU+uLilwv66lHuG3cmXVqWEdmuGOS52M4IHTvasODnYtG83qoRF0sAyS+6xNJnDnuPY4t92lY7fXHClHEtgp0+HYhmNqbRPq5tPzTeD8uO6715BanLBOrMHcGIPWTCV1aNfG+thvRU7Y4mopOOBMsLvhhk7xwXBtLZGkQWuiChOG1Rxb7rfWrC4jYuj8DaS8tZy14Yncx5mKCnvIFfcoCvg1zLYbr83VvGV0/8nItaVbn60vXGp7X8Ix4DI24Tqv63w/yzWT1buV879j88ns6p36aq8aC4FSd3NXvhoY+TsOVy20cil8mxLoh61RXJIa7K0vG2ATQq+X3bz43wNU4DkkdQrFmaB4gogZDgZvptg5OgAAzgA/EMrOUftk63UAslj7R6cy3N2qwe3Exx+LVSKAFS8Z6VVe/5Tj0ai6vjFrgS2XcxbERAHnVWsfKKSlrki0rUqvUVNm6f8b5BH8+z+4v3903d3B6DyTYusddT8SqKmQ0cQFAHDiXxNhM9RWsSKQUG9AClivg+Pfv0K/P0VBgFxjjazvcWALDiN3JDV0BjBJazr38tTz8iLNFasuqcw+MIVf3OcqIcs/nMo5WT7ltSN/MlkKJJzEZM3Mdm6qVGdaMJJAEm5H62vjEgjYr4+3j46Y85XS/3BJC25i2HRLfV1voMeaQJ1Hm/E9forydVQTlGfE1qm6747YXYvk3kE7d7NgJB4d2jysa9bMyWUDnDofOWVGaExBZEle1pd1n+C1+9SaJZgRXCSLlWD2XasMs5OJY6wCwLCRuh0pNb6jDgmKUwHmmkPf1cyL0Ccre4ys1qH2ALtrFk8Hbe6A+AsBCXZ7IJ6IzN309HrgSQq30ufkP8Gua6+Zx0mTDoMxNQC4lcNFA79gBUywXker6fkU57ewQteUqv5dVF/aW+2kMY0i2KaLkQfZT7NqiMmmXpzGbbG4mZDFZ9JJ2bo4aI3AmN4DRNOAeZzjsVpWD47cxk7rw1TcbxTCLQmlqSW5CHQcoLu7Ay5lrVO/PZ22FIAw9ltyG1BgRWmOskbKpmaDrxzw8Bnm29eaIR14bDtOo1kCLR6UVSqsLr0TeIpbLGwKIa4YBneRSeNOUds/bQfbnrqTGczzerQ1TWLOSFq4kavPAQF6cwtsdz5/1HJNJ9WpmnlbGLai1qu7n1ski61qrEcSSYN7+bd04x9TIzSbVp0vmekEQ8NQQlMYHNQua12Q0z6VYHtHo54LBQxkekvy85B1bKPtdjozarn2jn9U8FdHFwCMeWs0k5l/EjZTJjsRetmO/qjzqhDANVI0WoVW3AWj4kMzv5v5J1+R3JruvE7d8rPdX20yR03PU2/tGcdtInz66yvL70+R5cFIiOGIQ0e+w1zy2B9k1ymoq4p/Kg0wOFMbiF/b147w95/NvbX96DyzE7RfNArg4tQ4AFbeQH2gBjHdOakCpM053en8Jh5Zr73qfZlG1GGSXtw5N2QvNGHOGe/zd8sKlXfKdMeWXi8pSiR8MJDdspMhtJI4guZPuoauFDPoYJ27CU4lJuYKbbqpp6k7vboFDhXmc5IHPILSRikvI4CKPbIc3JuvQ5g2CN9hIdJ9igB3jA4T/VMiKff0ZrZWN1yQVRNCca66YtNB20qSmfDUqUqanl3GFNrY3QOvHvZLAJOxPBrVRIZdfNpWWpXJQZxGS1QKGijFTAjZYAluAvVmM76fQ+p6FrB1ISqPazR7vyygwjBIVjXcWGBofO8hli1J0/dMvYpngYtbA7EaCg7iLlMjMktzez6NraYyNMqgw8FnTxHEBc3neLcaNFv6FbU6F2goOBUGeq4GjRhEDzLcHZYhkDfxdZOoqQZSXNN6y/0GqW4VUsYeRZuuZlgcly6WpqY5DrUapBExdiXLsg388HvOL3YpdswsOcOXPal4feyljqatCBdg3liztU4uzD29IEFzTNsccliBH09aVCzz+9aWVnmlSuLsdABIs7wHfvfzlgaltEzxWeqDqKE39sA1ZfGaI1wdZasK1eYvim/rLUqFO/w+bvUdAhLEaurzFCT/pUbInfu8J/Fp6P8i6XWrCBfNiL5RqsZ/gxbqqFsQ7PQAPrzxV/gFQwX1ZNpQ20BwSFrMMZK4s+npSJ4P9PGizemFOR5ILCF0945okr6rS8khHi1cGvEqWnhdLNKRBaFpu+C0e56SGL+0op2mabrk0bnxqbNaZFlwkuJzcD9UIT2oteySzsuUxWbYLOvHFD7E3Yl6zyixVLy+TmqJoMd3F7pCFK+aqHI7DfiQgcEtoqwLppScANOqB85136oxqz44RxUdQW0O2KLjE0jGGmhnlSgg8aYEipy5bxwNn/MjmrR5B1FBui+sp71jYazcI6nSikSthKPEpfoXmSx0Wy8Kb8fF5qUswibQK6H7DD7D44ostMNrh87D7Qs6Guxe7Acx+jdFcATKWI5pPqLMp+3KcFqT9SU0DxFIQhGFCdWuKFj4hfporS+xQLxiqWtz6c+iI77vkIxXu5M6lTnEvWagw6Nh1POegGBCHXVfiR13KvFyW7NfuVVskBqzHohMkG0DZeRcCV8+hnwRIy8pIqS+TokJbFINNZx91TNfZTtObf+c0/DufPdZ2SqL7HDTu29xLXR8BIHm4tCXJrespZksLEyVs5IgyN1ynv3h4XGazkS+bG9SKWfWZ4TBWPdc7aNljTyjOQEqr1jQXZUC9dVJmpU72YB4jRhnsMvjQXToXw6paq/MZSceiXRGkuYTP2l2BvB6FugmNM9m5fRaw4N5jjmoE0e4Rm1i8d7ZHYOTGGyn7YKS4GZLTAWBSyYqqKLvKq64Zd6TnZ/dcjr3s63WBSWWiCLOL6AupDH7aOfUVXwxySw8BRO53lkxSaSowF82vEmZ9VET7FeKcfTS39XMmC2KpqvzHU1AxauUvNe8T8nhr2vrAJ6WIlsZCKtuS2pH7+k2VzSA7JCCpUDi2T9Y5nrhpwrmlH0WpEnimBJ2ehpO1o1cjPaMeZGTdxh3AF6lnhlV78uKKeGu5MiR+pAN0cETRkeXalVkyzMa9dKc0VzlUDTxWYEJs3dgMZiwwqjZUg25zY75IQFUuw2ZCo81Hg5/1XBzBD+AwROdjT3AIaRxDo60WFgUr+i0Z4ZkH3etosWxhhun8pnjWYjAgLzzBvQHQdIcUWsEFKAOWgXLUw3xBoV3+LbwwthzCNYZAFDiqEhmZK99PrQVNF9iwN4iqHcO68r6hN6sY4JtMpMU97ZYpVn4ioAYk3p/X91lA+KEXo63dDsCe3ubJZr5qpSyYVD3O3eEdwBRbYzQdgSPdCd9hFq8y92mLvigYT2nUZ18ZEAM+OybWcYaumZd5IIzGq1RX1MnbLcMRrob2nFUdf7OdSIWWMBbGpOwfsgxnkOg+A41fdFk6/V4GR/3VGLA2linLn2zoBOliykp2gyDckbgAowINVDNZmx4MhfT5PJr4OVZX+41jZ+jKegkrVgkP6pPfK3ICWOWGG6AUl70+aPu7MjyuNhVgeFe/8fAjSxuBK4qErzZ5zFFfP1VnPknrNgUgIPmAL/pEjmQHV3Fh0wAcpZJ8/wzJnx6cRYcyZOzp9v52H8ZvjQVt8IGDXmO0yBMzY44V3o+yGQvqgbkxe8RuLX/amz6313VurNJN4djv/9ENkFE9jfJd6TnvFjxIlHa5S3MoAbCHLpndf3zmHzdnAtKJbU4mYLJPpZ63Rc0deu9vsxNxnorbu/SdbvD55xB/eroNOfMNwFkL8o0ifQtaZ3u/vaIonI6FkUqQ4s1MPwgg6veLinoqDmvqVnNYr7wfTy/fHn0T/3T/Xa9TMMfqXn1voOKWuWytRVTTfGm5iPmQ+VczSBrfdsi1FJh6IvnRJZZ+n9y1vM6NuPJ3vLqB7brZqcQI6wTaEKQaZmeSss6xV97mJDP5dcNclxhsdmfsom2AYKSgRlghgZZbjDJ42egcb78dei6XZGlEsE7B0NelKmEi/R7oHHR/1UJSkcdxCmXGdIUJmRbuOA6XCGQQ+YJAfYDQ6ocJGbSUtArpyiBhpMTmkPUnGdWsr4woCqX/F78WU77v69DvcROyFqpBDoapJZraJwZu/rn/aQ8WFyLhrHoqfHi0WJwqMfCBLFtNHEstIK9Fab+k7nicgygSRWpIvX7lfRgW4u9sW//SHg2btUCXTS2WdoUN8bpAAEtwfMsC53pl3hwNtbOGDxZxQsDRGooIKBxjNHFzvrrxmnmMzGl/aR5wJiW36a+BekO0aXKwt8P4DrBDW2cXjwrpRqzgzHXpr3tNKq2yBofOlVvvMLSplBMfFfdc1juSjYj8KnqcvopweKGwtGm3WuZqhR6BjT9n9dTMw00lnYK1ghPHCddz1q6eklrZbZcbq20ctJcCxUe6QsqH+nIX54yDEgenc7PpB/i4NjpOBygPo1Fxgf1vpXgBXcrFuZP+VkPp7RPn/6Pr9e+8CvPlUqC1W3mFLBUzjPYzGfsw1wWxJCe3mx9fA/Yqf97NBX3amZVRVXXSMXbUDF11oQ4AWQWjrqwWIiS7Xksur3eHhE7G4w47qiuy/Ko/h8N2r6PRS6YT37+XJULVatpkutZW8ILhxWg0POTJq29eD3ge5flYT1nKBvtGIuNaMYD1G2ufQegve4mbA/akgduu+Bq+YE1MPnL9sqI96NM6sKiUIB4RMjOh81/kADRFXV9+/4MDb/59fNpGsxlaYi+OepkcaCP541GcUyTT5l/AJnG6whYbDdMVZlIvOmdV2W+yE4158GvKpw1KqSjnZ/uSL85KbpzbtfT0/lJXaDaqkiE2//QnHdLOs8Y58/rIs+CbguNL0ActFvDyuzwbNOb5tAe7DyO5haUBNnB9UILs3Le3eMsOHTkPIGSv45Xvkw5IQUUmIDRtlukDHzy4WORQ9Z+Cerg66E27HrqhetkR5cyG8tignCR5QqgsypKShdg0W0cIFE0EM2qV4JXkwFUa6DxpmnFBU+Z2Pb24hQM0miN55jMvqpWd8S31ueXgv8NtyR1C9I1ALfNklFo5naW98JBFBE23loa+PaOnJD70QYzkqvjEXTG07tzoKGi+DzJnDKmDCXdFvURnXBNMrjxosB3pZViFXc7TafjdDlcFOt7q7ZTbWL1r/zfczW8Uu1Torp+oOPJnwsqXRsHGUYeMvotXiKHge/9z4otiW16WtWAtq0aWa1sIcJXCFOp5QZKwOIVEMrkQzn5CR7GA+JmngG8K+t/bHbr1rnJ6YE7MfW0hLKuMolY7TGMRj46vE7/PPVlD4xn/JXn3HA4POmKeMcFX36zDdHOaWS54hAwI4Mtpr+TucEkvPEMmo7oEAgRK7ACaCmwnUh5Pt/hp+gutd0huEADMQkYYvLq47wBjDNXwbswVr3Gdf7ijkiSWs7iKgpKDbZ5WFrTNF/KYQ9U97jLV3L1aN3PolZJSMIogMksIs9d5jK9cGqvyazdF3BB4TuqAJs0cO+Ey6vNqDVt56k8I6VDHFnKQ1VCsndjA8Q7HQDu0Q1B47hkcidzayKWXbNp+2VotTvR9gY0UIXzsfamBHbpOCzPNBd/6q6e9NjvuNKgNrzjiBQ/9dbO+DQ9WdMBG8qSY+WDHR7Nl1ec1l0goTGYQa6Wdo90ey5AwIH0CZP06d4Ptl2Ze6q8CdMyhG/KAj0XZHWUm0fqOTj1qawoiDfoBhRDFFZtPZm5yOEr5bIyxVqMt6IMiROPDicWwwQSYFjYPzJrFc9ltNuApn9QI2hMghc1s0aw2eIq7FCadOHcCo7Bhp3G4Gs40lwP5QKc/GbQnqB4h2qH2zaLCKtXLKCgHvc97Bv/oydzWcLg6aErntY7Pt1BLLNQayry9qtQpbicm6WWrAsIkyoDBWXVL0uSMB08t8Go6xtG7cOoBvcmO2N5Sonnw2+3cN/r4z/U82ute2T2cqTcBO7mLxPBeaXW6SEfcHCGvachGLV+Tu/yfEmRZm6Oyjkt/dg2h6rmuuB+i45+pToKRp0m4QBsfb/p3r4+7ufjOOgv5ktdJipVlASXdhlBZmdLPGCq8PXOyKvmFmF9ELS0u2qgkopQJRFJUBUGC0n8uYWdTRQ5JZK6LlQrE+mTCl3hP9jtRKGS7RL6pUhLoTPVuF02wOODl/kSqOSrOmDbvI5XijXdFEk33npUhblPuPFsAJXqoJ0DB3tor5d5lDgFSgEEVH5RluyT7sXD7kF8ge/w4g2y8bFRfs/6O1CCbXmeappGnDv2SBgQPjZU5ngHJESTpikWA4VLJlOHX+APT2XLDnnQAZEqwPq6EPed6dwZuO2hrvmLP0+9TFIX/8fLq8ZP8R/Xx+sCROYzj8xoRn0pHYyv1GxmE6uroFuLQzSN1XI3HCk6NRLRxBKCg/wy9LVoi0BNYkbHpfbxnxw4nTtVARDWLNR0bCvVDurAhWdy5+hI8c/jVKyWv1/yDSm2j2NhXQfHT99BtmiPh1ze0RWKPR+XG07f44etCPcFuVacDu6ObYISVPFsiIPmv7ofbU7KH8cyRz3ekuHw373glTtA6mvftcNWsDaiBUY4qnd6N2hGbYKr3NVtHBwfieNLmWWNTxflV0EoiSTSX2HQtcC2QdmyrwCj9piXKb7NdajxI9yyTxtKVD+tCiBQf4uGpBi1+sJQRDSnv4ritVbcrxkk5wrb1kNszX6M6po6S73iSAZA02EddDLNKRwTVEffLItEVaHrCg0si2C4fPpNzqgxwASA2NbN4/d7ihSnDcpDWfrPKWyOM3Uq0HFu2CK+LZbmoFAWYCtBrDVdKlJzy+jfoQOT9y6xML4xRUlRwMOrf/XroW46g50U0dxpGUxfI+ZrkAvx8/Rktplvmqu91qUU3iyoxsxQ93njQORtFpvgNiUgnnFQzjb9WlwFPI2v2DdgCo5N1+U9uiY9Z2dG44Uy14ZOwHjHSJz62uBwW7uo/ERs2zdMOIj6BI2aBi6L9dAH+wp2C5c4DeVkUt3vkUJm97nvEOlJhBRjyrODgAHpRLO/qoANPAWBnA7h+FTdedDBhjk6TGVF7pb92s1dlQomJUUUPDUO2w9h1dog1Vet6G8CE866z8L9OhwemZ8rhK8iBux8fdI9Yl7IEBo/BwqccrkFPFQ2aIL7lwFlXM2xfdZ8t4ODKGRBITqtpxe9mVbXMgA17YzCqReL5rBRS58/SiFOi2cGwPtnLmgJZWM96lduxHpRRzbVX0ZZUQLICSjIRaaGOvhS/CshJ1wlN5d7wqDsRyKRDxNhj0O2i4femlXtC9oHBAigTUBDUDSNOgKtfl2hn/ulqYkvaDjS2DiLRuckHQKpTjk+wZHnYcZj5QiVB3t1vV93LrbC243kh/wCaL7JyWcPrh9sBz+uCqHT+G71BkFufLe1n7jJ+fN4FfHGwOXM1+8H8boJfsVCSSkX50OWsEnxoCbDbi7+COeLYBVALVmUFvCBCrdqTeTlTuqy4rOZv/q1x06SFbfdpWXOW9HqRK10geMEY2U8orhCGKtr4YtWhImdiWXLEpGBw7bodNFtAquXm+/iLEWiGg+58uixGX10+nrLwt6IbLuCxfecOjuCr2o70diy0GVXgpZx9CmT6vyUYOjNPJ2947Oy7e61XwXWyseuHpoB5Kzk7tX2yNEtk7giFRvvNQeWeNYNFWdcsG/A74Uj4tX9KBio96y0WApbuwti3rVfv+/SZVdfWwKGGYvB6ET0nEp9mKNnimHVF561OSt7jkR4Nb181+Z09sxK22/qUD0ksGOwTrsgGBhtivM0iEUog+POER58XhXAkFzTyJ9SOy7jJynuE0rUALvCor9Fm4dDNrutSCK3ZPBdTGO6+RSAjPXuA/Dz4pMj3ezpbOiqGXbrux2yZxkY2SXQykXCyjhr60L5WHNk6mdwGFoZMA2ywtt3SolsQvllhudMLzLd+NUjv7pzSqK8jpojzJ4+3+xNWeQpI8EHcEL91lQZheHrUOtUZn22zN/kLPdjgvvUbCm9gRnb1XZ5SEzD1Qmb1wHCzF+jj6wMfaxGkPEg0KyDTcyaWyvWMvQkfTSc1faGRQ1nzdOJRAzGnMeYy7MZOokde4iP5KRECO83T69zb44+jd8RaZcedPR+EIXyjPLU/QmJ2S0C9EjnwQotnC0tDHurdH6cH9ixWr/TUIgLmhFZPGSE8LVh495535OUoadjfYoa0+63yu0OcUIWud8KZ4GfMmKwecQ1HvOsYystsOYy5OYyUVn7SGPJRgMiXeCfuSO5Juzpsv6mnwYgy+qu8NKoGVVVFEFTMeT8HQ8iLly3xiybs9kCKL5KqTCgjPOJewxwYiMa65oVI+tp2jTV9/Zwgu6VbGwzWHFtDch97tGSJ/KOa+9qvsUiCUuXrheGrHgGlENOhava3CEHQQdzHtU7a3y9WURCp8CadTaQUBI9+VgE8Pe329wtOBealNHnJGk1V/s4RvAxm7FKb3cZ1gL5UPB7acU5Aq3tSad4ofPPXJQIElWaGNHFCqLvedbIssR1TAdUBpqCU1HPggfLWdQwnO1anJ0DRoXYupiH+vD5RfnzGnqTt8aTNpL+oqRBrKfLVpYqB+1lw4iyPzTwougQUzbHTGONkMkVh/CuT908dlbXx+ZY5oItzY4d2DqR4o++CdNOPw2d7cZSESyxc0VUClpk84w0ACNOql4b94hEtFnuRvtenIkSA5I/bx2Za1xNDoCGAHv5BWc2OYaYD37D3CKiR8nDv14sSraMp4v6rqnKvIvrMuH1g3KhOA9wE6iAfJFPLQ46Bfx5HmEQgunZydryMdWGhVFNDjd5vx60ZyTYDMZg+kJVB2TjYGqk5Oka8tNxS+RMdH20IdDyOrUkLiISWrHzVNwehJOt7suxolrfod7kGYNdsiJhXD2oU8/93Jk7LK100+R9T0JbBEhqwB5ZKEu8971Gp5fAuRoemKpW1lfdLCVklCIrxbwq8Lev4LXe71XmmzjdtCIHRHqgPwuDhC8ZsZw7zDPAtbx2ljP15cbP3cY8jZTtr9NJiMdaj2dG8HAbpVSPeRagNWZ65snC0wC6vb9q648Gk2TZZJ19+up55pvdbOgqaeQkZJYOT+udaJu+ycjPKNlFVdlhFucAGO68paw+BFUpwdC1n4HfYQuJ8bLM04hKb7DYANX81orVZTOXkRet203BjK+0gaxpeIASKnH4Jou48Nh+EAxjY3K3fIgvfJP7LSJuyPi5+SzQrF41uwTEeKwtosjTuen6gF6uAjLToS9AhmyK+xKMH1+b89NRwfAH+hnU01DTT4Npcg9qnatCeZWqQcM9s8t7lRLwRaqgec7SFXNV+eYW3jZRuQYreBFXzS3zpgvycHuBhKzMIXVjbMWF0xrUBuPXsk3xfGFtUPv7VzxLAGc4K5c5gW0H5nhzYkF29HZ1kZ/WpcirSUEwugwBPCsegBDIdBNNJ5wpRpphxMAOcaGjBNv0T6DUpXtdfCq/ESPXT+dhTN60/jzTD5vTZRxTtsBfN55wnW9iBlmM6ZIPEL0r02qrj7tR3PRTmbiZaddd2pGOL5hXoSXukdnNPsR2O4Ye2Qnxea+XoFBtEdaY+8cmfU/pXMRuHcsj9CLqJ44rzvx9fMuK4/Utq7dvtyuL/9+AXly9fX3/+vx0fb29zpO52Auj39hxpxB+pQ9Se1KNbMDdjGUMZ1yUGrcotEPkJDsJYDIm+ukLLIRVJceYfYCOKC+LIyDfISWi4p6AGnc4kGnTSh3c7mW7fJKIMJojIl01yaLQXbmu/S8NYLiyikCWxpAXM7rgdT+zuCd5H8uTagzp3wUMHbeGcxhFoGZtTLouFDyri6TLhMD5ivNjYAth5J6Lyebm2c+zhXWxODbyKLBVq2YmQmFjxW27aBqtrkv9HCFMNdZwNP9rhSkeirgp06evkvJlIbSgedlXJaHgkNAtto1WHeL38FVWBQVu8bFdOuiDGMUOl0+1G1QFRcL0Gqxm9VwA4LySdoQxHEm4WtpAIaN6RtU8J2q+PlVI7h2cZqBayErrLnIGRu8VU7eQt/uKkXgmJ8mNhUMRJxSK5oMCCT80gO0EvZ60glK5CTdgWp0j8jkuwPQUjTgEZxfLZJRhlD29rccDJdVTqmo2DZ25qk7euNEqkR6MgzOaeyZ10qeqkDTqTApR+NBkMhP2jiy1uSmFVklBApuv6wY+cwE52WUefLUoJ1RwMIukQCGIOKdqg913T2NlGAYDKujDMZVkoTkemzhjptJwxqe7GknNWbGpwui2rtLdoZJmnJpb+WJI/LSTCcb6HWlXvs9KpRrWUJXC8xKrxfubtXNYkwKTDzmP/R/Skfb6Qom8Ay4/Vl+mt00FE50eiaa/aROAwqvq/M6+uPcHNN8O3VhpIO+uu4SBZ+vegxERED4+H4XNTA24S9cVF1fEqXMdm3u+mXUWWySEAkUd2ayTdiYzqhbW+XL/j7uB967f57/uvbxxYe7n/OfBV2+JzSvS8bXAVrY1r+xaoez1B0d/KKZ7kGMhOqZ6k7lMCHMDwQF/fUewZHREjoNFlvs+Iku/Yd4P58awNMD2nxcPt5v0Vn+Yj2tFBCVh9wfpybEiNmt1o4HCwwb88jrTCd+Hl1q8LggYz/LeJsnHzYJ/z5E8r6mVcp7jhHwuGyRHUSHiU0AR4+4SDj/p4tX14zCmMnjSnsTuXe1mzMznVoEGoH4/9GCvliVJhRGQKGGuQASAyP+ei6TXTXKUAByuMT4PWeAY+F7w0OVyihMMBulwSnSS5mzQeFKnbkzHmM9Lu9an89YGY1QT5giTphU9SFTGmXFuvzZGLwzWaMh8xpYAend0XCFGCJfO5vluPtZ0ZQDUFDnDbGFAyYJBRmEG7kBvtiEIePvhCPTyHNpwdRf85+H+4oKO92d0ufJ1ux1uc4xd5Cql/izjP2p/eCxIjcUfXqbnD31vfz0oYQ7/B/Vr/hI/VxI0XxhvtnXKPg73/6LpdJlGOrp1Ev6P22fo0T5rv8l07wbdPSuLn3uXFSb/BRb4+G2Kd4+MfDPoyRN6/KK6n+PrPC5efBj6f/mRpa/2v83dx/mH4/vhbfvydfinkn/Cvl6i2V2K91sz8pZvYDvyZ/Tx9v+npjs4FffjO3+8mP4vt7N94YymgOL6VpZ8/p7nuvanUaOamtjNEJomEwgYDABvn3bw/85n8L7WY3Df+vNB/eki0lBfOf/3wtzszPTkxHh2bDSTjoxEhuPRcCgY8Pu8godzORgrRWJGtVIqEfJZCraCMe9Fo1H/42/TNAHFdizaw+Am7uPBUZ+tVItuLfPTKoNmOsfd1aTpwJ5D0xRiwNzy1RJ3nSoQ/7z8tcQ1jC0e2urLaZX+35n7gEw3hWuasVBODThUhg8QT7aKAGh0sm7zwTOS51fPX16+QPyb2jpL4kV4Nn+fb63OWl5XjAYSlWS3Zbr9njLoPHlTnFkDCcAB2UIzh3T46tPwxoAlSeIch67F8ASsmYufXU2l6RduwPkNS6IAe+dpSkJjfaFBDkQzlw7BI6Sr+18Bfd2arskzr1SZWAu7chE8T0FwVbeIRQkC78egQRauB9FrUpZnBks4t6kHc1mrDr9+6Mitgv5wWiboMwZHt30ge3kKArNae9aKwcyDw6tEVbefwtdeCUKxdNHWLpgdH3CNd38hVZ3VzEhk6jqdAspbIjLkrvZ85ki0SCdUzRwT0GC082cHBNKabFZy0+BtzC6ha6N6MSemdiShvsHn7EVjzsEORwF1OGhLVJ/SuL9Kvskyj7MrTdl7GRXWJztBL5GOpar43Aq5Bs0wNXvDNnkb69KYpTnLlcO07iaCJL04YFHYjUMeaHxIXOQMRorymklXes7ASLIxZFpzR+di0ltBOiDCtgNI6BY3LBMrndadYUGu6xjwXEsmy8djvsXvN8k9iMwwRfsweXKyN8/8BTfebvC3pJLHS5mLHCZf1NlQRkLz0g07cns9eFaQIZhvohKNdnJe7KOGybrlvAZYqCPNsWMJN4byMIt0mKHE5uWwye8iXGy7WCNm3LvCyvSlgYZUI05WkMi9ODjaeq3auJ8nq8s22kn6SHv9rhypTmS1KWU+MtC5NWa7+oj04A0aNM8BoiwY6ug/HzbxUv6Ck5HJBHLUg7+k+g+Or7+cYTEq/zaUuiHK58xi+gLZ8+b0X3a0hWBRUS8T2D2nbyeAx8JaFnkUACtwIKGj5KV2etzfknSlYKDCxQYIx0WaF1bEWBfv8umP46P2w8f789Np1NVQvY5N+Eckd8j4+aEvP58O+N+MuM5/Di+83NHH//1o3n/479+3G6/O+qTq9/D3KM5XbMgTZsweCyCsQedyRiTIHnjGpBn6LA5gplU0PjyDqb2JAH9Vrz9aRMLeTgZmhUfEZVd8MlETBiZswyDCiMMbBjHIm2Cs26OU6b4wRIBiZHuP+yY0EyNpkqvWuLMBwkpkjlT+R8ueSSyJYltwrMr4HuYgKgD7mLELkD2u34aMAoDRqdKcny1W3vWljsRRkwABXoz1qoimmSmTcoXfZpicPIE6SX8V0L4o4vzLizZuu2/hK6TFqVdvsir/4C3W65/9ELfuH4fc4lraDXRhB/XaatcOEqABXo51lwo1qMJeOTc81J+8DwUAHZk3PbGn38Zt9HDp73dvX5xtN+3HH94e99Ns/tv8F2y52uqKatjwnq9Tmfnb1zJ/83rm6++av91sSdOJhelmzqj3Wc/2oOvAKJL918+Pj7o38/7yuF0Oo/5n42+iZypao86w9lmy7HfrIEEunqvqSE8ajzlXXhA4V+OpegzXwpBge/J8pXOKTCNlDlcsFCgUzf2xgxj4xn+AxDj/j+6Ly6LdLx45yhgtrgno2Mdr28va/q/VZDZZns9KKcrf2ht8/7b6nQCEoCHxjhmew5Lmls14tDYc6XSJLqdcfuvda+vy33r36vr/eg/qWhVPrd9mg2GZjMFAo4tsjbYZ0/wjqUQsGg7afDafwLNupx22wlaaIgnMKDPJTAadVq1SMKQMqVjI53FYmdpdu+t+WpdpcK1r66oMPkdRPPYiM9eVbf8FPO6XfR2HtoqFRTZfXDQ8v7rfFjSbSpCAp2J2So6ac7787OHMmy0dby0nTlLQzV8oVGlaENqVr9QRWjhSPVttb72b/D1gqHMWK5E+st6LQdWCowGNX8o5CjOj8oIu5GKGT/yHq4YeNKHRk5mVBH8pSYY6lyQoE6Z3aT5IU4UoxALHTrIXhUwZlz0wibbuuSZS+XCwvlBP6znEyK3UAKABmMP2vLGXHi7owc2cZoPX0ORDbxfuh+eX9sjBoVtNubFEy5uc2EShAPYY7mAmOS07P1sOd+m2XNZ35VzNlFiokNMPDhTzJKY6CwGvNKcnzxPoAyFp8SuOauITvpZqMVEluG8pkF6+DR2i6L74MVgdJIL6j5MnLCU4EpBsh3cr5iTEgP0rR1NmrnV5vD/jx31cdov7Bg3DWdF14qFt7vLw7mCPBT7vdPQwVm/98jKFaFQm/HkgqAKceiAV4riIMxIEYjjYpyyilJq0lSyPajIWBcP7DQoMhI5vphzFCBqCtwityPuPfWYu3zKEpCtSsmRCtrWLwht6STxbNRUwa6TwOfP3vD+9sQyYDXp5YiEc1VncEmVDOyq6X91PaAEWcx2iJAcn4WwWBlKoV9RXoEIGkM25iOPkP5JbCO6xeLmoMFPhJci5BiFywhPGP36v1fjTCSl9Ay8weoSzMBoQKoIqaPJov6tWhAlBwYx9P5pJMfTDWBqVJcvbAZ6+tmKcz0r8wygnF3ogiJM6WABHnQOv0ZhLLXrFUWa3JwiGJmYb6Kq9NXEMoAv4Wgk6Hzge6O0KMiG1IbSK5M2KSujEAJo9KY0Na/v7zqjTdfIaXzfXojd1mMkRBEjtQHM10+tcFCj3W74j/JvP2EtzQTYQnlROdVGOhWm10CD6iezGz7ufvcvSUmuqDPPRjxNZhgzhZJ8oW+hlyFF1UODYywfdsMb0kS3aou/H+BWW+9fYNBH+gOd+cX+pC95YZIWH3E2CC25B8anbafxpgoSVTFkIw5rv7FTDq6xSLHt6QnLv9vHFi7nR1olo89Tv8mWcJOw6o0LWq/FKXNxeIOqtIInCpUxVflSk40JYQi0qsAKVgRonS3xJR7jUOQcET0MTNx0K90DIUwenostbludqEKEWlJCp6peetVmqrWs+ZUyGBWhyR68NzSM6EbNg0pbCjmqyNPJQYFZ7CjSJ4qh4cWw5zUXo38/Lbx/NZLDMkddoARQL/qOyiOm3J3ziSA3vooAKz/Qub1pmcYa9HzL5a/iVuy9WlwJbpEmuLbCYggNQ1Opcm1I6LwmpMoyBWG3Pok7yjYba8PepiTS6m6ZMs3mLwUgAFuxXVQRk4YOyz1NYIxgNF28OWB7S75B8X5SCJPcMZHmQclvW0X/KhSxJay9iRIX+RNmkL9da4TqgJGzelxyvmYM9dE2RC4Zzc+CKp1NmsCk5+o3KyftFM34IrrSYivhouTnddwIy4TZ1mSaM/sFJZti23Jg51T66Y6Nawkwz8X6swSjE7vFzIqhaql7fYrXo58u6kcu6fjj8A/AwbDvbHE7jyai6SiWoB97BW912/C96w9ESy/h3IgBViT+QWVZVOSHCv0WtzWyroq02F676E67UYgqho6XJFIh3A0IxZTgL8paQvUxsLql8LTk+l/dCrAfZUfRFfCRAocQZnE9An1igk+6OxsXLCjG32RqmaEXSlcWcpQZuCal3aoKTKwvMiK+4zpvHv39l+P3plbaYQACrtGMXgw8+gHK5r4Y7Ujp6V7SRp7k89I5UVVEEOEiBu6s4dVmOhYnUPwLPJoVhNsB1jilieAgNZzbNgC/bp1SAZi86XSNPODopy2GjGErex23b4Scf2D9pIGryaQYllKNSVUfW8pGZDXdyqQc2lNyHcsJVPajSyGXasES9/nDCI0+iV3umDQWGtvmvEsJwmSUWBBw2alTofc1N8jRFA7V2WNTcjzm/ZeKsLw0xMkG3GDJ+kfsp8szGhZEtJu+j2UJYBTCURitVHilnd4ddkBCKxU6iHpSFZemXuAQIuC72qKVTPpY9KvLsh6Kj8X7oqNXIoEUo0RP3dRfAfGI1Eb1TiWZpSuusFvzPYJlrDSYX8fL1XEvw2CNqTNmonc2F8ALc2o70KLZBIKw60taqZ7jyueb7PWWUpjJAaVsKzZbF7lKxsPZRPTJ2HBpFqglTKpmaJ3wJR4nfCcdsTLpoiCaO7h6U4WBTMVEOP4FN4zqTd6yJeM081PVinIsZswIeVcTPBz6z2kRdoZNTJ1nPqQb3ni9mErK39ESZ7Q+XZw2UpMS2l/uesiqLWcwixMhjuUxsNJO9Ne6ooF4NjhlejnQlNlwO/WvQDGQJT8tWwx5+UoyNtkSzNnvngDexBCaslD+3utu8jgNBZzQwB0NCGi/APtMX00GezlxgDYdX2UcTASRHNT3aQjCaKW2jplNA4RvUQgiVUV5isK2c0Ql0eLYO/zqQDD3tbM5er364p/VOXg7G8Y8XF0Yw0/S9vX0pBn7VGJTqI6Eon2N7e2I3iB0wjyWyGAE+GVsJhTyq0sBrM4HWuYEpbybuxUbN0lpSw4rw8qG2ror3xitzqqj2UFKyT8a0ShOfqeP3kIPDjcgb6PFkktlqvGsWii+PQUqPZOAWns7TREUapFlepYE+v913G0EfQCagS2qTgYnTbbdrF1gFZi1vcbEXQN9KIcXZ74fmdAwD11Q35QUS3N04JRJxntcXDIYbOSpR1WrgpABtziADzS4Np/BWtSuLqAHWJTCcZ0/rXXC3ntBMb9fq6qDBHiIZKsksTUHm/MK0JtZlR5iKPA6nCfAn8Mw9xzTVl1eVYEv3bJFIGqe+J/xpFsu9EfUVwvrDbwx79hvWozW1EKxEJBYcgeRRKZVnY9hxGDrHRx1p8mGfMuueKe8vf0h1wOzwzC9PUT4ns6u2gljECx0RPLSZWYQzQxhg8alA9N5iBxjaXCB4yrkjlfAM01FekU+zEFQvIdQSBdkosj376ha0hZVYhI1v2Hb0QrXewq2yJHYC2EV5kWrMeDswI/BshG2aEfolsGrc3UiTzZ2+VKSo+8AUIoDE3ZxKBjj9diLxmacryItWtsooKW4OWxlrn67i41zuNEVPVpOW1ua92M/T0nR7l0g4AOmH+8gcwqY7MZyhy6mFJSzgZW32dZsDZ8pk6ZaPwdZ/lPZ2gRojMBCG1EAhUjX7AGKzVbfpyOF455J85GVnN40R4Ri6dyVXFhK5pwAoTCHMJlxe8yRAw8nWK/AqWPTjBm0xhZpQTxiSs/iOTZ0m0awFOQ6WkJq1NvOjUuRzhGeIX1nCOo45yQrT8m1R66qs+9yDP0jbtUXuZcqcokoF++utCS+OtZSyn+klsqIGtQCeuVTfe5LZysy98rsWejd/9cOWqu6ut/YE81XGxb2V37PeKXMx4/4y6i5sX3TxiA9Bmqd/aH74Du7ZYg57l7KOFfQUsPTTccZimhPn8rlEUvJWdULCfEqiKrevMQf+oTR8M2aYOXDjUfgX/U7Wx1tl4wP8zDEvbuoibHvqzdQ6EvYx/SA9GuEKbKEQkb+SJz0tWaBYuBdCBpv+SpKDxkXTt/0yT4zb2xaQ+/V4Rc2wnOQ39mTZWyAo+060YlrxoTMBjYcWocUg2ZDQWqQXAWT+pqY9W5iaKUsaRFIVr44m9++8z0twFY1CDBAU+2EBJr0gekhzNNSIdROir22HeiG+mC7tiAJKu5Bbr+N1ak9Et1172bFvYbop4gOnZK62R4srC1sT17TQJffFmlYIzAS6EqzKV2kXCjD/MoPdHyxzHUA94IzrfeAHI2GT6mIhuUP1ul45YICknRfPVZeJpQcp+70drmOlt8khlZRVvIrm3hwHXdiImIjsLW2gSFDJ3ttg0UaT7GbaF22GnYNHIxV7E037Sl3YA2fhDiC/YbukcOSBYAE1x2pjXm3+bXMRUm2C7Y10Pjxg98+IhOm0q7SP+lbu9dC7zHAlyyqMaw4LJYKc1+3WWoqmhiFEooCl5GBxIbQOLFi9sJWlIBli47zZK5SfiM6GqTMfUJwYwLkN0Enagzy8TW4luqwXuP22SqQ3kNwxRXxIWim0EkTG+AA4ROJCQJljJl6dHZgTmc0tvPhghVsDmuX263FO0KYEYdUiALYalxuXMTjVtpqUj+KzPvNwn5BGmAknKjZpnmqx9g/I0eXQ8RSauxIocIppP03DXQsfj1TpGTqgfqcD9KapkfJiQaHUoKotLK0oPGaf/NDh5h8pi1xDg4WJMdTjNQ1bB7J2yuGp4o9BMVgvj9JuwA/0WjofVs0Ece+BvxeppGMEe8K97F5y3SEfMdZmSA1BNh3pChjbZV7bV6HWJJDoZkvabZEJtrewVwqR7QwEcRShIXVjBQB6fAIX3rawgOGQUV9L2xEcPIQGIZHDSXkhNwrL6VwUfkpUYYw/O+QUOZ7wL1JozEiHcIGOSTUmifNkvkNEc5EhCII9eTk4Kc7Mk2cPIjIoTp6K7Mr+kPjwveLRslFwhebhmg+ql4nkjEDQk4ZcPbROLZwKUq/grSQhgUdXgtPA3dQJDbjA+Nmtowb2rMxPh03mylgan3pBDYC4IbRIIga+ypzOw2iHlUVB/aCb7Asx8YGHZJpBTer5oHeWFEUZdISZOdGzNHfChqfAgdNJFwbhGut9ng13btZtAjOarGMlPnyPClA+qK+0/8exFfVt7hvpb0AXwIYSf5qaESbh2WW1U8IhVSex51fFXFWv1+AeUCf6YJ2BGGGKCSQnG7tO9Xu0VfJswlUuIHre4mFzO2eUHa2brS2/tlhMoalpUGaBO3g+PItug1ZxiZLcvMbQTarqxYu27k2Hq7s4/5OpkvpUjerjeiuGLtkthoEeIT3bZYste+tvXUsGPrGJQ+TXobTAvHM6syPTLNFoMkzC4iGpAGgA4SSY9oOLGSkGKzXb1PWyKswomm7vatRPg3iAk/Fi6sn0zQhbI0y9Xh860cCIl+xgrJLWaLWsFTzUjInByqUzjC1JqiqS4uC6Q7TAMqi50FOe02kznWtT34/0t6revfodgjTuSAOyGbN4gohgEcOWsqRTlOfeVGpWfPGsKoe9R09tkxQ/JLpahFyhWRKzAI9mAY3niS76WMdyEJ0JLrtLtc3M3WO1sJJq2YHSWjYZ6dwMUhAVm/ilQgB7tVYDHa+yy3PPBglRX3ebH9WkXFjLsmevkq1XFDlFCc7WEzDwjT/ZeoOHu7iTebAgZwe4sehCZiriyeJ32TJt/2kJ1vREeFCtczcS/KZtxluKzFy6r0G3z310Oq8LS6cKEHvDNJfWxpDRTGTV9Lh1rFvyHO0p43lrRSuHhRk3TJN1+z7cCVp3N7HD1ELwoAjhVIOGl+AuerXiTPNKhEPp/OgpEOazDIxnTMzJM6K3KKV1WCNHfDUtCVk6+QqS6w3Q2xWvKB3Z0gISwbho7WF8O+hy1qpb+xCsiIOTGnvEjAkIijD5qFrQ4J53dCi7OKUrUj8gCpVwkVzmCwS3TleFDo6xJauLk9IdymbxovhM5ucqvWUTXg1WWFbcoQmMp3PwJIZbLGUnS2YerkLGkJ5c+2UdR/fMAyVf9mpmFRhKvrQGZwhtLE9uJf95q0iYIRottEBG8af8NepCwgTvii1PAFUMGNmcWu7Iip6J1pCcPbq+orryo746u7aIblcmbP+WYj+wM6v2E4jacCcRvX9Qo6EwTeInU8RsstXtDKS+kphDsxWT1SCnuaAGZsUiJJkCskEXSLJGdmLIcgh+6XTmAaYYzxoFts2xorVGkf1YxYbtmMaIMteDzy8A9dJL0+3dI4zYs2iPDpCn2afGThfNk2jsw4S0aZ2SuQS3Ay0mdr+xF8wnsk4+39Cgxm2etw0WEcwYToi4twOrsiyqlyMkYylMme/3zoJGckkpYsFCKm9kJ6Z1DPHCka/iopB44orJJlUA8mtN3fdQsgu34dY1ZalEoxMC6zU+xxNQtUpiI/pdriJ9gYArZL/8TFykojPjWsZitEUiQmmuaRQpi2Wm7NzUfzkHpSldY1qUh5tDPwwx0xYa2ZLm1deeDLtgYetJL1MJf46Nuvq4NaeV2BdvcCn2sxEGK3c0PKymlkm8tivM/G/9LAt6YddA+QtRZF6oT9va5pzCxssmO+64vKzRJT1qSQwkfOCieq8Epf7yQWm2R4HMf8LfeUim/JFljSxnaSvXa+1Mo8JU0yKQELIUAOuqImILqbhcrQMBiNv3/e79dHTt2z9fflU8HN9Ob9amZiThAoE+qVozRDdKdGzLUAtWWOgrIfkDN6f3Zj844jU+3qNfBcvA2lUWiNXnBi5TMlcUSAg7xXISwGqf149FXRpFThiVrISuOzAWCR1Kf2YcmgM2/UPzeXPsTKLwdxRRb2VAKgEuN+ugIOJN0VkMCxxajiSO7cpsuL7G7Diej+NtupmlDmzaHvK7ng+ANqV/LspNRNcgqoSVJLW6xY9aR/lTzq1R1VAPHnDAmMyiW6Rh0ndA0BbKVPKYNY1aOhPd9Qz1N2+04tuaPb9eXiGt6nWZyhvug5RrtMW3IEXcGPrk9umqielaiV639PplXd/l4+vpdbBq1vM/K7ZCRqMRxSyG2TazqSKCC0ai9Vc8yUo5Uzqdc6o8hCrrA5HdFhc92MO3dgE5LOx4LnfI7j5SgjHvQYHWq+FMS7gcsH9/z8vOQ3xDTd5W2zVqp47imzglY+x6eJPyhcWdRKhCVcKVgCvQcw2WYrivFhkxIiGyGLYIE56AhhqvtTduGtbv4GuqssQxDvkzsMWALJIOuiTNZY8CsyC8+pT8yVyX5++OpF0IY38M9Jci7LCXAIIPHmjFGuN7PDi6nHVX5tHEU/78k+5Wv9HWm5iibDwLFyOim7ACE5WY8ixop3KzYdTExXPMjnkldGNf64whRzH1T0cjNND8GdWc4QC1DIAYNTTk0lNg7K/ZceiNPM28lyoZNRS29xUyQcF1xaJC5hXaDFU5rxoiMnCWOUPDCnsJ98KUMWsrdQ4av8sduLWdfMDGAdHpBtFRLXXKgWjdrn54j4F5x8ynm0BNB2fg4+/DaBVfdDFVxk2yoksUaxatqLbpUMZrvHYZhq5FMt+z6WFeZnTbdzZNhlL1rrnJ4cYypAoQgEqJNLU/q8AuEpCLyyIJFBKn/lMIWFjDiOw+Z6SHBW72pILad/CMKgaezk+NXfPkEJgxNh1CAWi0ixlDTJLqZh8F6/vQWihJj7NytmHu9l4VlFwCGVuRDnDINBALzWiZ0QbNi1UxChXDHjtautXIz/LD8RFRk3Ur4uT8CzjPpDZqEYYtwYWWGPspX2w30ZLTFdmLW+6t4xtNFAjXw56QwqCYLGXKM1VSWSQmuyMtij9napKSMHYSncxTF6CGqluV0qqbK21ABDfgtZ4d11P9sKvPS8DefhnP84PYirz9lssB4Cef/THW5z1wq+moaTgo5PLJ0PUfpnWHd/iiJXdPHtUVHO5F9YI1vHmZE1LCIWIbYnmiHdsMZlSmWuSUktXM1nmqKJImjmm7TVoNU+h3f1DDSWeO+lhXbG+Xx99nUSJFeYGynpSAM+xtk1e0JilwbuCVe5+93RFdx3fYfZ9GTO8brM9hIT7sBt36sFJTfWFC/E61c38G+0fxrlEfv0dR9E0yHhj98MJjjSvJXwb7KNIjzkI9HhAZw392G3AYyol1mAD/wHfAplm/Q2QSNaPbgskzZ2vjnDAxEkVqebATJjRS3GIYmiyarquzPndBJyhZO8usUjtvWOURlbtvjlpKIKcajTJNnEXBUUBePNd4jzJK0voTTlrtATVvl5rA79HWecoHMcQLeY75svbyQkL8FO7GmB6dXuYd3rjMqP2ZRyK2nERwQjR+3AdRBNWVVTzdWTyKITF5xfUG+lcTDRCS6fvrJY9Orj/efhx7Hn0WgKbWGO3tFmnnZ57d4XLqgrZ5me2ixonL1QxeQoDA43DsYzdshKvxu6p9YMhNFqBnNfKdFx0mMU536kGxdK6aHGQJDCqMPTrRs3kGMbSuLrVPj0sdXkhYT7dcIb674C4sjVFOGl8sCwhiFggUsR+SUO/YZHUbU4vx20dvUaH9ULONR2wcBi7gRb12ai2CEN57s03fGBiU58TeJR/qjUn1i9yogFDbA8qM7t9U9pp8PyFY8y5ITO3i0IgmdGgy7+oY2Xzp35awbVuzJOIyXHuILFhACExSzR1O3tbKRyGnAMZYhpxl7qSW6GeBSxZRyn5AMKUlK+vUdLvK1Y5moDXknVpZp1DJFTkbw9/FXY40D1bKVDxXQHOTL/pI1lPyauQy5W6XMRa5dXstRY1SABbWmGnz7CVIbKUnv9z8eCql0SrrmSGSXCM2DiCg7s4c6pUcdJszUpHVqg1PjVoqzQEe32xrF2Xd2NOhs5dhrjooAJkKOjPQLE5UBVdxcMH70aJ1Y9eHIo9xizp+6QuL2YCHgycedW4CbbxBBTJw+VVNIIkioRODkwVVq0rEcKR17mWDIonKw2xteNcl8Iu9wTMyz1bOfyWXvtWkJYgpFq8tEpbSZR/ZU0gzs0kq9HGo8Aa/pWq5P8ugeILzkaejCUOn+iqGGMbBNwtUXKbjyuZx44nO4+nR+6ajugpPt1ISTS027RB20TTMXZBrWqWSfKDSe1OQdNs0xCSn4nhzgdNwolnNdfABLkv0aPSpyFc20ZogyKzyBJhc5AwEycjFuww03a3SCOzsbcY7rSgsWcGm03t2CqLuIikgnp1awvPz4drQqD4e5iP9gDFdWl1WEzfkUuDpcI8fa6QeYDyjJYKBUgp2c3LJLmQdEdKkovA8ADkaD6W45hkn2BDymsZ1oqyf68Qw2NKZB7MEA5yfzGSfiEii9LnMXkDV7R13B+T+6ARrBMEjEhHFmI41BJFHg6oD8LcflaypEJwJDJsYiebGU5LxnSrcjkpTIuypDuWRaCbBYTKSIqgL+B7JGMhkC4pxSjtQpjC5UjEQKpK3FxDzGMLRQphwVvVeYQ73BIjUPb7TYgFqf6TxwGFB45oaWFZKSUXUxvRdOEQKB1UBnohk/ErRzAxuowsb54FooaUgSXpdJReDcbWUZ0Wpv0RyPLkvkwNOo/kI112LKainGvB9TTV95RRC38Va+lKq4VIXAOSuR9syH8BDDC/2hOtWugiYtKpGEPYsdYTDig6Cq2mdUw65ZKiijh96REdpWnhqoK4FMim9QYyWQCSIlrAEiAllatzrZzhFG/2HcrlekGC3dt5JfH8nI7JC+g7nLhFhJvn2F8UXBRgJysfSIWm4egEHbxi/qwArDMa8DJ5EkXN48G7FdTCKAuXyCffznCH1vS2m/eJ2p5GfP+BtUJc8Au5fMh0a3qdOIby5w8sHJMvt8T7dLSUFH9tG4lPxVJxVUEG/DXC8gDHEIjixx6O9WfeOLj3FnQpmPi1TKT12M/ZHcRA+KUlg0N0s6e2i+p8PePRvk3RV3MR63oteKk5Uqu19xPeMW/J3O85DuKsg5WuHXoP+LloNNzaUqJsGRqGl0WsIycLJ657vscoslkM+pqWjaV41Hoxd7sce1hpdUZrpq943UHjeaaKf0j6qOjS4ULTm7eA9iBap7oBtCnpRblUIMZFIDZbd6DZNWg0D14u77nsPxnZ/H+7epCkcRP78Prze6EqgZlbKLGtJEThuIrJLKHuciv/9VoHQQxjZ4VT0uR7Qx4B7PMjG6EmVRTNxAwEpCOrZSEUIcUUKYhQG5ourQN/Qr8moDttptB9Y+OiARTWFXXznZnjwI0urNewovbtKKSNptZLVnJJ3cj3FMgplc7mUmgcje/HGOWvFdLOoSCdxigTTVA0SXOOlSd4BE03u/wM4KbNNXR2rcXchFn5HFqe7r8WdO6z5y5Wybdb6kip23OVlw2oqcPbhOu0Rlr5Ja6a2IMuKhVmeJ5nXIyOi1yMbrryysdzgWt1Kihh+nqkzqnZqoQjBi4m42+jWsafpXXDlBODDkX56WvTs4unr46vVqND8PVJoLBakVnFmd5quGW76MhNyHhC5LOb1OWPwa4+19tIyFwph5Kith6jUmklmFr5OnatFYOsEGBShtbrQihh+iotFcLUcyk8VXlxy2xexiwQz9C5IuNYTiYt4AIPkXS7zn2/W7394f7rNr8fXfu1UYgyPtOjxLR/uCmk3hJKAn1IhmYaelCzPi0g7F7WYRjrkLvKQ92pSLpu7IvxVZgS+s0POYInrtQWw9TuLs0Fy/8i89q+JULoTQ0Tek/GdLavbvV0rezSeKRtTNUkFgaXyeXYOUaJ4LLDjQHwkBduXFLVOHcqkk8awbN9c0fAAxoS7X4+36/FxelgDjFujAgnibXGbNWn3FCdG/Ysd8/4PjZVEcYLK3QETQdR+8LiXTZucRomZJLdeJCs6ZTR5rIg4V5sR3F9H+ts3JK9u3v588VV+fzwYVRVCktyTNz3i51LDbL9DVR5c4lYfX2D+kzLfibNfXq+HWnc7kdNjA/iH8SRGYZTXzuu44AhF1x28dCpC57s53Tux4rXMCP4ZxGXQsF2pwwqiioXnKLNoGnvTVP04CYNP3Odbu9IT+suFSgtrHLW3b5zEfYKrfFT3rhgGqzoqi2rgcnnYxAxuAtIfNMAJGeUOuYSz0SRKCquZK5Rhp9+o6SMsHSysWrnFfz1uDKsZaP+U+F40DUBFMIs6VCuhEj8WBz+lxsk50wywHVjApwCjCdBtsq0HIVxlDrxl4AVhMTeHcqvV9rgEN8SW5Np5d0IsFiE2GCN4MkTE0jJSA8k3ELMG+YjR4iCrNEpNJKnGbakF6fMY/RTylj+ZftwwMdRt5siy0rNPhcrewmKXR8UvpAu1uVXURoqPIlosYDNWDUQYygaaTV6JOjH42puUl2+5IPPM4VUED92ObmM+EZFaAj6PZunQ/wJ4Y4AJZKeKn0FyhsKiciVYV2Nwi/iP6XWVvpfSSrvjbOU2Mql0TOzdqogiNf2oGCwsrDQ3v3kCuiv6JhLdPXbR6+9aXr86D+5Wn0spMc0t2fei3gBNoFadoOmUllW6erJFdkIMy9d/KaJysUvL7Ta2+b8rNiH+dA8QuySmv2xSHM4YNn4qSOXFjWCyWcx3c/gvyM92nhsBDg93RMnp27ocBQxJTYWvaaIomPc65hW2oWfM+x8/MWVEclX4FHHUZPUOCVLIjup+86JpfLTVHwhh9lNlOd5M/g4CP4UVGcnODoPgHjVzY7/KAUrkWhgEV6cRdLzMiJLFvLT4LksQ1rkjPs86NzutGl+xUkJaVmtZdXCb4Cp8z6aBkp8Ny/iStbLgDj7Vuv2NiMIFLp6Mrzzp+3E3VXI3FtwjimG3XiQmzJAw3/Rftjittykh8/F2Xz21ze1yeMwPq5upnWzf213tE+gJU4jh8vWYFql/8VKSRVjnMu6CsSOHpai6woAyWcq8m3HO/moL9dWAfKUl612uwycIikDqdRBNOC/d50ia+OMjPWJryKC9oRcYUHTodv89vta66PuYoiFASbB4qc2OO0NGYlBbjW+XquHc7KdMxWS+5vWudf9kctVSPwsMpCyulcS+qawi9G9SxYJXF+/l77hJike8kbhPEGhElCTdnkglk0aZa1qLC0ukOoi0uh6GwODn6b+KaMBeGBzwUgVcPUcB93D7AWyB8Pk4+yiCJOoewXONsZhBOSIZNZ+jQ/zm1oYrBRvF1XMgRED8Bzp7RP/EOjBsJfFacJrBYKR0bc7L3hJAqJkmMh6+iCjFIIZTjsMk/rw1ZtckZo/VVSLcq6U7LVPq+18mCJrcViXdVqnGR53+Q/7SbmWGgRTIaKRFRIoEb1yN5MDL1uoI0FSS6JDKfS7r7FmzSq9KmkpIX1tfmAeSXikspoZ1eDtpcnFirAT6VywAfHTHdlK/NTMbT42ONRwXhxH1msxxABAEEm1AtBDQ9VUk0ElJYsMLDps5oVMi0jjxPILYqRjAjOALcTh9dzlE1yn00vQg+oqwARZ2uUDHdHGtpxFXY38j2fU6t3fto380VSJv0kM955d9oGbAo0/zw6y6CPbn6b2orUKx+H8fcZIzplmKmJE0oxdz3S+bvbL6BMKag0qp7JtEW+JSmttgosyPcssmQN+NOzMp6xYtMmU+d6Aq7ZpZTCnWGLG23/mbfHPfeEj0xVAORuGUlFtUwQHxhBvAMRSoL/t1izoKWJZrq4mvWqXqOOqrd+SoLfI8usMWHYnsPEWMh0xnjtZoi2mcHkzpWFjsS59UVWFRgzqlpRtty+LuxMeP97eXhzW248bqLlz5dK27AChz7oFwC45SWWQfx5BDUFEUMERNIwALAYFynh9ub4RrqSd6gyq32fCr1BhPPnLYKD3PdhEjzfT+cst9eTXkKIhBYD6aK/+MM9i6R/0h97UNI71xTd/WxRVnE4lWXxMBB67Ol2hwut+JhNK4Rrql+XqseyOw1REYnxnpKh32NAz9ivRgNnMBEWE7RJ+yGKJ/oxxdZ0QhDd85jWYpYIuq9JCEz/5TiysXWd/Oe7Tlw69TY0tmgUZxLUaV8MJ7t15klx5wa8GpYZXnzEOTi1PR1BkL2rD2rgqz59YDYTi01+mnEz3taZWDepcUZ7CkAzw38SwjirI1avo4YdJrRCJ9yPAoRvtLgvzqTpBAYENPiaByI/B037DWULvquTK2bNAKpvQQSvRRXI3qSnzpqSvvmt4wjd88YfR0pW5Fe0bm8kxWB1PgQ0cDyHyX96Po+q7MTweHVEXGGL7+hVTHCHp4lZN1pPEzgQFjMtvtBMMdi2yZ04goHErHlwE72k5EAMme2kuTtfUaIt1iXA1d8pWWPeswqsVeS8No2Sc49K9uMviEOzr4x6h0YaMh6+AmEgUPXyE20ziivTLkavhAbE9ixqc9buzZCvZM9Kan5HXGV1UUwtaFWwXPq1Op+k8DU1i2898gRnL5TwEsAy+lgDAvF6Ae2EldrW3XiEqU6c3LB+Ad7LcV+R+iL7Xv215DSWAgDb0w1o/sv9ntf7vJDOl1kGAd2zJROfnFwEw5XCUo3p58QHXSPls48eem00z3Mj8LcuiRvdRN7pWvFQlKk/bRSh8NgA03e2TVsw6MDtomKlopPLPMGl9wr1NRiyh/qPzZH+81U2JAkcDqQ2b1vb2j6Vizx3pLIvgRE8spGYsXKq2llSV7ZeXQdr0av3dIXtj12dEjCUPFV5xzT4HLLIoIKv11378/7pcTpYreqeYq/PENUV2Bwx+tNDX2/CXxrqLjeJMPZnpYlkd/tgfKG6FBqCst+edobZmpMhqFyv1L/Q/K49Ox+ZCOgbiclYKBoDxffh6OL5D7/gZHrNPyQWPVMyTkZiIyst7p6jJ9JQG2CSdOvc2o75fztblAjI1nTKaYtLpDOzSXdLc9T6M7jnmqqNq3ln8evI+OX7+laxv78XONDNamS+p8OfalFv9/W1B1WBgnIWMcR13HcxmnxjwUGzoBo6AxfIpkSC120OL1HdS65zw/e1i+1ce8vz7dr2fvDBBpT5LGME62/bJZhwLjUFi7q3n1EV1YHB4kGdyg9BzhWaJ0/ZgIf5qFjKd1sjlw+FOk63aR1H9Z6G3qQ+XG5sR+1sK+ZypCw27z7sHM1BO2FFlsbZF01HTLaUY/0ox7jxhjQQEA72M9YuK4gS/XI4baYu4AxWD67uKVj6lJfA/ejW4cHY2hiuroyGkqATPuDhOhk8jHD6QvBHxPiIinYC2jGmWPiuMIv1qu7aic3R4inTC2Dxt23lGrjbYCUh23z+GXLqHfnBmarL5o5aW9pGsQul2i4ILG11UEEJ5XE8Pv7b2Q3O/J2BPl96mGcH9xZGSUXBCK1I/QQvYjyjD+WE3x6KZLsfqd/fNpODnPvTmuxCN+buz976XJcseyoPirIx76ov7cGc9YVg0o4zHIxLXbPQ/L2J0uRO8k1BFSQ9VnMU0P6KcszhRY70YRarvfE7izUvE1QY0XjkulMHMPG+MgQsQoi4CuYrZqmw1Wn0XN38gn3e8cVGCIExGK1IKEZMm1TojEVhSKF68KBpiiJlCHDFKpeccdgdraEmxGTY3Rab7APZmQuJQSBoBeJYBYpVaMa5o6nO+PzRB5uFsr6Is33PH4EGmp+eHVwwQ9u5Ex6yWTURmtpnVQTUEQCaYF3JdXllnsJ5nlOHw/nrVCvub+nNF/mkv6CHcTMRmEDIPMnEXsHfSHcu4uNb09fVzP80GxngrqkHD0ArzkqWi5uWqYE/7LGHbCcIPSrAxxhuHpwgMB+QZtCdt6XPAER70YlnW3/Qa4VQGk0IdcKIS0Dv8yCrHtPRNiH1JHzaVyCH3zp5p1HcxeW5QS1WgE99VH0ZM7sidTVw7MzraVrrVIg6R812hwb9VVBrGIH9SKWMV52xXMsgAf/YKNKmnShsLTgyUuv1D3iI0wzdmqpq7ypUexY22sc2PmIAS0Y0/0Opsm63buZwlx8PpG9slCn2JAJuvNUAKJbh2plR20bdAOi3H1JXrRXbOe3Qgdw4kW9HdZ8uA1BNQJg2R21+WkgeMT+WiiQg4jNPngbbg9KTZ2GHamOO9AGFTeJ7yvkF4O7yy2Xh0WFNNXqLv4cRMSsf29cEi5alupVoqeAiKIXNZ2UwopcckdFDv8fPNaqpXF4/VKYUHtWzR3LDx1QCQJfLWz7TDqJpMPi314Jqv2cswW+0DG7FyX07oQs3KE+WQ7wjI+BesjNQu2DHiuIvYmBY6GMd6t0+sd6Wu0cluaWLclo6DcAP/8Z2CQqphj4HQbDFIVPzmiZx/hLBCVIdq4VHymbNtefbwjeXJ2//L05TRjZQcoUzskRVO/w+eZHbSR28DcKVBym7CpifI7KMj0vcuc2oYF2SictTZZZhXNDJEsyQxkVdflawozBy8gUPxeIRK3rPbmLoiOm1vIDdLiAEndFP6svXTeN1m3ac0ejvD5cp6rTk0zFrVRI3lICzBfD0+o9TpCASxvuYOmRFimeJgzElVv8ynY4HBNFfrO93LQJityxSEQAwnfO/QyjE4By1zEUWUqIRMO+/mEFCu+qceToS7i/Z5qvOLj1AjiRgz5ZJjTLmqdHNWqp3D97ro8WC2R8mpJBBor0/seyXDDMSCwmEfs/5eQDERznH4z1TepVzLHjJB0x9Q7M6hYYGC377u2pciTvCbpaCZL09AUymsRm8b9B0oCtb5Le5XFCvT+DUwmGJw8ct/iJvVDJLEPd3hnViAQ+ostqbyChL1P+O0Kg7/6BnnF5vQtWh4cw1JwHu6GelB1AI4+8xxC15Mxj+SmNGF1ASFoKvRSMbhlaZHbPlkDuX+JNr5lxMZdOi0TtRWBTL7OupIMGaTjFKluQbjFoYmuIMlwtHQPp+hBjVFpTbjnXGRmLpq0UNdqtwBYZs2vPC8EArvlaaZCFh7q7MCcSD4iRnS8AyUMq9GxPbIQYXLnaS6tzckOuvBz4OS6WuXrDnWPfF5bbVkXeWbUGolgVdzkOIK6RnOQvh6X3d0/vpxeeqNqTN7zfHjG27aE4CiowpCAkGLZXNUWX00xlRTTV6lJH1DBmYnzqxuAtUAlWMpbykIdNxU2HPJsTIcVcgcUXf5UJ2ClFtXFY8gAEjTn6VFfMl3XF3OpS103aGSghsPwFyFskNk99G2pQuYTzqdEEtSBvNghk3QB+RgJRdWT7PZefkIyH/jghBbs+1HTN0aA+yBQh+0fkKR6QPiQQeI2BwclyIqEQ20qVA4IdEztTDh5CNMZ0H4xxvJzzqYAH9/7iQgn8w8k/5CYYiXAyFuyEkYEBFtL1lgF7EUL82S1mgevcN3no4ip+yueCP6BzIJpNJFYaHe1NpcIaGAxwNwXBCyrDwSkCtNKLry/KSXYojonGqHxE7UehEopFYazx8tMN/rjcKzN4FFN7A0uaNLYZSYrd7SDBSFs4NQPgR3mGvJ35d1WUA9hhP76zJMMuxjGhvt93KI2A6MhUV6ashYO48BnCV5+WDY23pmjOIjmBJ07C+W7VI6uHM8DU65FiaKKhkLoqgkIxm84+b5iXLBvj85IzFTcNOJlBhx4wz2FI62jKAZivZJy/F9f0lFvi2749PemPYWWaJle1OOymA5weQEeeXx2ce7DtstB4BnQMVwzREbFbu//iGfGbW3QyX0MQAy7H7/Lj/gxS+5Dg7QUw6yr78wQi7Ft6c7jv0hDFKvPMbSe/5e++i/dkEmqLJDfvPb+jnUZRtsxi0y8zhXdREVoKhh00RHSQmk8XboXQxPWxexXMyjcIvrxQ+I7OtenMm6oUtDJVmETl6k62mSIAN3t5HPBzkrtWuKkC1pokAVYKSDdE1ea0BjzEaQqeRL/IX6KD34thwlTu/w7us407/ODS/hfX8ja1PNDBJ8KbvYf2gqIraVeHPHmh/crDkEtDtZWbh4Mhjr742fBZLax5WtkxYvjHfh2Q2Hnx6rf/NDPLcc6xD6xDn7nvtbfKah34C8lzGJsja0tOI34cll5WDADS5ADK0SQugz7FyEHtZQOY6u0du4MK5SrsHrr4tbil1XHXOIBdeOSl6Ah4U+YRwABK/6QAEEAM3MPQEbuPzfcIUx/thtSjctHKX9gd1L3gwIQIpFpXOhv2YBAUbFCWPWAHanPH6nAbnRKYl931hffqg1ZySxnWSl5PtbesuRrFIsh/IrkJDC9LyisZXz4KcAKgz6v7NunyH6lQsqtv7hbLZ4XAQJfVt1T2o3Ij5djn675Kam6nJZg8BVWGOYxf/DM/DX6M0RFxIOzUFnwLZHaBNefn/VtyoWUy7/+qyl4twgxFM+Jkqs9gDdeL6BKqWdSDPO1vEYu5yfSZJOnduFT8iof0uQPE+bcLWxwiDExRoXsIksC444pGaFFni6nLjFi3pKBz8pSSIM7huP8lVBuyLoOtnOa3C0sFlIu//qvimrT5mX1l1mlGsmCZX+kkV7K91lcTub2nNZ6O78EFik2giQvdYkAEvBUENiZUtWgmWpfUch/sS0H4aMCGDHLlt9zpQH6QM/GMg1IWtlaylXbKLKKnprNp1iUC/XXzck/j8vOmFgLLDdUN5kcoK5mKgxC6cs2PhlGKtjNbCNcn17hZToMQnVrncqnB3jLVFiFFuXAOjU9tRqctp1k71WNdbI7v1MqQZiUKBWqq0Y6aILQpN4VTQT+QaAbw6BnsSUFRGKrqeLqCdu2tlYkVblqVUjf6Q1tKLk8mJGConRwpYVprrkrjcKSmM3YFfCOdICJQQ+4PDEDa+CrKWR1+Tt29Ry+wuvG6j00ZJGMEukdY5DCVRSyqvzxwQoXeF4sg8PvhQa3pWlNGIt/LPMhO3oJ1RGaPmolQ1sqOtnLVW8lEuYZVJhisoT4QBQMUO4W9iqEazeEAJGPxNf5COChwPjOmWlMg7NOWrKvHj0167PVlbSaQuiL7Tz1Q4a2vdiNBU6kwiAY+2Hm4cQMxk9xh3dUsIpCVpOf1g7qmJDHrNeoiXquwSFbB31a4OtZa90uON5vtc5KVZFQ1HZ6hKiR0A6+OLgbLh3U5bbcmdKnqypndUWIL6DjxGbD6lBI/nbZ5bkzn9ko4J52uqf7uMuQIRnLPuNmcQaUfUHY63OLlBHACIB0cYWl7CdJY8Ssh0HngVxRavzBIJ3K3a2EJWdXJ127xN26hpi6gOyr/zpzpcYsygFwWkIDWSrIjcUh8BBWNI3p1/mMy6if+tWXhrbMVlbuZ6WH2zRlQXBBYFzlPQaBciFzb1mRuQ1v0pRkDFK+7Z7icv88B1GeoLjB9OCw1/CHIoJSrkXSie11sGUYcDkNOYSNEJ6kzkReQIaRyd2CVo3CIDBoIQiRDTH6F4Cc+qLjl8fSJ7JLpEj+myqSPOsdVRiA/DuMvtqrplLpIHM3BA2EFZSqa3bLqMsZy8WIugi6R0UIkuORSMgJoDOH+Jtp2ev6NXPPZVKfGKDpXMJsa7NR0XS5CpvxRuuGgDi4AKhtAwrBKoCdkRzctXSth9SGeGdMjTJv8pJUPNP0FBq0jQr6nlnz51WZixe73wDw0b7WMyum97r+JK30exMyBKbdk1OleIM3+bZNlXxNv9rJNgofn3Lv00gfavmZNNnuCd3ZR1+0SyAw0iGYdESmmrJmjzyFHI+XS2/pSLbRP84WSZS9GPe9jcfYMf8Z+VcrLUrgdEWCLzXIhyX7xjut3bmSAzgiRu3mx5jVIrQ3VG5oSstiLIGE0MR0Rr82ESHaOkG/hvaYVXna5iVAQnAX+5mO0QY77Uv9wka50/ct+/lfuhqLBodUq8g4/aaI5IijfAB7/Wfur2XpwbaPlRcBDMpJr1Edtgd7SZMqUlLfVW5O+ZqeWMCb5k0p971LlttFBsT1HLJfy3eMRnHcJKPmc5WtF/lGsDk7ydxI/1vT6BGvSMCisE72qmATwuZ7GdU1utVzqNcsLyn03pUBWoT8V+v2QrfPr3GVbWJ9isFULx4Yl6pWUvR241ZqrNKK3BI6bVsEAiTszje/4M1oFKImCng5V6mEzGXzhb7/QBPnAYmnz1IWXqEdyyBv5YVInocs/tjglyTwKY0artfJ1JG9OKezpH8So00lwmqQ+PgwRAr1OXz/AAtCxvzVyBqJPLgO0i2JUOWCN4GJHGcuBI3dCJGD8sqILa3LXCZaoD9wRo0BIU9vOGJtf+xcCbvIav2AFh+hNJgBDdN8NxMKVHkazR1QtYtbXhDx54Z7NCSRG/btcdAWr0JCtzQvzCypbE2w8kh/7e8Opxki1H47ZIi0PVUeH3Cvj1jnOCx+PRYSlrZUgYUwC6xrnbdFlUBoXo4MUxXIlbszJQ6va10M/NYpyxyfyfSqn+c3zV7P1xvCmeFtZDycT98GW+b8TbyFx3bcocbiEL4PZPKWu/6zwhwbYj9boU4o/bDwHKCj/Y4bxlQ7pvULUXZ4bkPkFAhu3KBcru9tTXYNlX62MBU6M8aOZPS6o5SqMEjPnKhqi/lsftNqxZGb4ZW+Bn3zzxQGAI7Y4wG9/wM0/alq92W9x0sZIXG0Sj4PZFhk1DPOW5PNK8yKHrTwmYjvNS8T53Mem5zHOue5oInBrGsR/Yi4ZabxSTOELF3iH4uMTZ3nnrjh/V+Ph2kwqv4L+LXQ5lVZeJWq1I7xuSOxcAZysGMlnH0o+w6tdW+qrlvONIRD9ZARrifL56y0GGLtnIKSaA14g25OjOw9ngJIep5kG5dEVAOnigtCCMA1raBPExnpdJZkjibqremwikpxieEWHMK8MjYDvqS26dKfP6hdI/V1bhxQblJuMTOHtgifYMTFPqAbjYSWazQxAQH9pRuOcyFWyPn+mDwi9WBm8ouvFn4VEeomLpaH3PUWOQDDBYSQVftSJmc3qGi8ycL3pxkAPF2uAngDDgyPjbY/o2qe2ley3TS/wDtTj7S758wP7vcsaVMIILjONWwynTb/Er0kIXzx+XPlWweAyVlggrRpbGFCgaOst+Kr5Gl0m8q6gXtTnw3skiAOIjwM5eIscFz7lxee0nE+MdmhUU2yKO0Qn0bNlG8g/Yf9yovTmQeKbgrWcGuvfNMWPScAicdXLWYY5dUT31spPB49w2u4QwR2NCfT3wYHnZAUF/i5gCCoaqkJvOhELiGuTAx5Wk+iX8UqgMG/KUfGxadwZVyNabsvrbrCSQtgFhPxEqRQdW2RE7uWjrQiO+sUM4riOZIfTVNfgVQUn7akPTLBefdLtmvEkYfsh8zr3tpjDrOT10s8MRGng8Hn2hWfbbfw1pPlejswQQhji+UTZn+Q+pYdAmAI0g4hiU2DpCKZjFLYoQJHGC9y+l1zMWA6ytNeOe1tDxeCJFE7EVusewzOAzzOf0YTzJgtuwLqzIsQXHCjowgOucPAV0IvPc+dVrL4gKwCCyL2MPIRaAWzEEkPzU578e8QImyAbHogFWFCoVbkyJAZaDz0tFD21BnyX6q0H9knznRCBTCuSoPqIikIoxMPeBR1lBI3VPuwQXKNRfkFD5QmKnAKSW38lUWjOPnOhH6i169D2vzcogG0xj6E7UzQv4qiDaGgcvHEqr6ghDNmnSCdt1n7oCsZvEjyd/72MON+owJOmB0UrAD5ZPXBPCpvjyQtIUr19z3YL0IbeEVto1IwLCoj++KAY/P8GDMACEihfC0Sk33tYtVXaZjTYyqMv8QiXXzyPit+oDL08TgPShr5G/wcWFq+DXpfQmkUuKwJQZ1LUugukUhIHzGOPXSLzDi5Xic06hCAyK/o/2EzKs7UJOKUrQL0k/tNZ/hQCERLhRIDgtGFAx8/6Ch6hDKZBm8eoBNjsE7Q2R6tAEy2fQNIxt8B/nmQ/9SlAVU31zKiQ6wu8SPF87HQp32qsTfVjN8IAC+pc0KQJPhEjTMCH9if5npXn5fq8iHQjw5a6VxO1XSbVDoxzesYNearCsfXohmibK3OXPJ2J8OrOD9MQYrlRL2pcapnM2GRrwIbn/LCde48kPfskEY+JfFHKqxX3MiD9ZclvzlxEXTJt9JfdZD9qTQIWpwm4YgRRznTZ2CFTOJfxQVhFkNwkS2YZeH0XS05mwk3fk24/52GySXd1+elIn2IXIr2NXUlkbCTC3D0uvTV8PG1aHCUrdamy5BJhldxHs/LKEAw7P2+bDBiSJXxfHd7hxUaEEWTzwolQbL3cauoS4CHmQXFeVzgXfDmiGACrjyRRHw9N7zYYKEdhvmWGZVO3DYIRRwjaXX/OgqHCBROE11d/DwV1Dqixa3ztzV7SChURSSKmu6lmmlgoieyjBnMfPA2eTQ8KI+Ewh4PR8JPzBfLOrd8ZYOpQsHaNt5WuuM+9upsXVfio6YS5V0ug9v0h7JOm9+RMyNd3lDm8zDGbZvLIytMK1GtKCy+1wuKJaI6EQKqWu5Ns6McCD9elzk+Pul7ayL0+uNCTK+EIC9k8RO9G3CRg/km/xtTxPzJ4KCq38nz/XMt/MvYvtW1QRk9S5anXMsTn9x+d7D1sWPUQ9pjm6rRiiHB9lOufVlnRkJyEpUkOLOKlgY5mUH1Ynyw4CkpbOcZ4DwY9m79baz3U1KRgMmi6kG8jbKLxU6XBs2Mq2KLlVL4nhrGKzvjobX6mPibUEFs2HATEr5y18PZf6u2nEnnEq2niuv9VEeWaTKN+vITrTMOF2o8V7joAlb/tiOr3vkvHXQA8r4sG93edBX54EvFYdDEaJ20n9L7qeeLDLwEDGc0UIIQ0BNrNv5lEetMw2GI3LPnzC8X5yxrrUbahUGPARMHbz+Qr2XdS0YyympOTpku4cAdq7kzZL5Ma/ohcFLu2XN2H3HuwuN1R1qTx5uuQ4eJeVtYwUx+FkY14BoY7bdViQgd56U0EBbBefrxZRfI2BC+o4QcWF34Z/XLf34uYUOMavVEbVYszP/LXw+sYumwRReyVXGHL1GpTv7syDBrk0ho8KQ1qq3XB4di4OHlaqT3X7EbdfkTn31mFuZopqaORT4wL0Nbbehw2jLVy59dxZA+maFs4uGOkpep/eVoVvtf0Z+P2yfjl+ccFk4cMPSGu915NF/ySoD1oQCKF6R4lpTen9hD+y/loq2xypIGLjX6j1fZSgvkGp21YGrZ9MZiw2W0k1FNxHIBNY2fbp4Pz5erPFdkD4RVzw26EYT5agdRQQDZ0iM8Zd0mv96UoyCz2C3LLk2bUUh5sQi4vzLQw/zc8fshDObaRvNK7W2MZ+axhFQvQoE8i3RbesmRTimofXukp8zALk+d7UjDfxUITtm8qtBec57RFJyOWUEMu+hYeJgplINAEao2vyaGED3lPYkIlRUy7gjeJb3pR41IkCmvWo7z0lEDZuMcjG9SjDArTwo6zznzUOILnen1zgA3omRWroKqeppalNen2+GWOoVe1QuMsJL3QJfHc2pDqAWFBDZXb8Bg7z5vnQisSVNqTNB1WlOay0gmj4Tvkb1BrPe3OHSPpv6cmHd7QhwbIB1jAJRsqHuZgfGbyGLIqMhzUc8xrRVyd6lBdu/wdIoJ54WtoJW3xM+ik+aoRSR3907HLlrYcyHf73/MrzFzAj4lHzKHKz/gllL0uzwEO2wY3SRm80Y9wTWuj4Lq0IoQxbWH5rwbX5YABRqoyMVW5PZZsRpzjMbrynjMOxqhZCv8IDcWafsfP4BnWHi2/W1H64IPtyVaxLJROCZamot3RzQcMawJjw9fUjMoTlnRkHD403ZLFbHQ820IFT9tvQL4wthzLmFIXAwfPWKA8rjowcLJ1z5BGLekpRpH8Yxqa6SWVQIyHzl4nXIFemNQsulR5tmnysi3c78woMJqYHjx7RxAHYWrgCcOq4q5oqn2KT9Qqxn0d6qzLnV/M/HtAIlfJsg4NRGcRQyeNCdMuBouPlRtULPDSboOcI8F6UTTb3/NhLUPMRFkU07QtEBS98BOwAI1AmYNTyeczUHtvGEx7O4llgHG7mTW60vmnQCfXkkVuRUKPla/UN2PcPdIzcgEQIAlSRDMrc9ZZ50yprJB+E8ekh0CwV1uClVeScg7Qjt83MQuD2Z8YmQ2sAe/Z0HYMeJlkRHNP93lPGr+xwO9qNhkVwGcX7O3yYwWobipC8MQ921FbWfO1gsKYPuQPfuoh0oYwiSQABJD0fhAVhbv31gkrZ8yk5xqpsPeigtZRrb96hq4E4y9C0tAPnR5NDyVFkLBlBF4aK8wwGIBKaMnHo6DaLXAFVa40zHxxk5853M33WF2F70WP0/9FFBgnp11IEG/AOLgoLZEZpsUPbIoG6n3WI0RslTA/Cbx4CmnAPlBcKC4e+r34JzKxzs8jGSdBAJZ5CheJNvR80MeVHVd7mJpAL8xiA8U/6LGwFhOYR5c4OxvTJ6q9ipJkPS2NTj0SSe2IfpSmdlF359Jljy230g1KJUexS8NPpbQwdpjD4frMLk2CFTRQt42GEai2hPCYtHhADosUmvObwguV9BcorSqhQ/Up3ZcOv9cDAX05N7oNsd7uJmDE6ao5Xjf+aK3VpWBE4ZDJWjHkjeICuRQpGRQgnFJIFbym9pXshLsTFUet/Ua6twrWehGvxyCSkqKwU/EumidujPbda+NTuH7M01JWkSwAZcZSzrkQ23Y84+VH/3CHIAbtTGMndsrc2lC4+ZGLVDPdtIKJT4VHl+OQRrvSdXEHqcDuW9n9xlwZxH4XRWfuYRHkIxeAHFu27Xo3PBL9BF9q+ml6ByXGQT6KpANp/5g7hdrF1WQf3SAdKccJrG7nHkkC3FNoQhi8NwmUkj+2yHPZJmUXqbswqf2O/ydreCBYDWP4FIeUPOi+ls6VsMi3bG3FCUEWfDldvI0fCf4sTU4oJyRdeD+uVXhsdTWtsgY7Xlbala3SOay8UNqtAT9YRR81eOW1yx7sGgq1D9TisiSSSnIKReQdEIkGMKmRYXd1Fl8Lr5AtybuSXLOqVHQs/lfFkITSdF7BQ3eVJlzLHzzkAjkAk3vic8pMbdASur4VPR/Bgp3Z4uDg2QLl2l6mIbbrABuypyFKo/ODLnehf4v2ThHl/gyloaM5m5KbYziIFt4vgPZLsWtL8uoHxhO4zcXEj35dPqpR4ws3LEPR87N2Mk2CgVweHrlkYzzS/FINRrRzBowcXnSERqim96cLGRkdZ6VHmu6N5leVttMNBVhQ9/3ubsKKjgE+nylmYmsaQ1VG7ViszTRKNwSwpDiMC+pZMVUV6JYDN5/E0souJptTnUssGWOPHPDHJ/QJgXBI82oeWxmZMKfM6SOWC+jWs9WT6433uZC5pReZYPapqLjhE00ul1Z4m4ZGYThsTuMzcisNoZsZ7TIPQvjdngQ6MEAUf+eT7qAtBrSmcnXs5yAREFvg9H5f5qRgBLNC46EiwkkgkSdRZ3EraRsgggDdKhSzZDwKhXS0wJBgDC4U63NoWBpHeQxGzwaJMnUIaWJigGR5uX8KaKTcBE9FVg2iQDLODy5g8qu1n5aMvfp8awbXmbS+JZJAhJUCIhaolizHCGwvhJq2fB4cUqBwezgacsdOxDaLUPSfylDOkmYfO3G3WEzIygd5shuIIOLsJ99I/nRCg9I2jStUUU5YSs6iYzOVLCdQJsDjB02LmMcETSlM1CxcOHzD5IDHPGjVzHVJQNiRxAYQx46xsvMwwDzyh7qhmR243hQQBUY/aI2Mrkfv9pG8hVjB9QIXKNBpk2TZVRu/ymxv3DQwOxKlIyM8OfZEBFosuntP7zJBKt5fecUD1Hw84cKJ7Kcuxg90nQVvwKQuNWSffg2REoJSVWQJB5LI8iz7puiKZujtZBSNfch8RI+bAUPAG+8J9RGzk0KafWYu11tL7Z0L2FpngsCCM15g3ruQZcOzfSiw9L4OU6uZ0YqzZxRPKh+skoR5RnIddVtCWM8RHIM0wkfylTgorh4vqlv5tZoC7TJBZEPF30ui4gr1PMrjf4bmc6B5MeZVz62BxcMZPuwTgN3mCfbNGtk5bJO1HnqpTKUyzZJE/re0ss36SiLjDd7mhcX2KYKK1SXDjJlePzIE2JOJmjTDWkiaFc5EAdqJkvS5ssNyNGrUuriur0zEqWX4IiNmyY/FxqONUh5EQuPs7RCl/OM+nhtwHPWqDXy4n+bwgzLgOj4kvNMsrVcF0qZDuY2HRkDxnfUV5II+P5rlpUrelUUCnrfjGOQ5p4/UOCsNi9k/3kKDkEqyHJNDPsTs/RFcM0uD1cAzQQ2mWaATNT0vvek3XneVGExxkxhIvY+nlaCBQ+jQJ1lt1Fp9RT+oBjxpWWCPwGrbJvGudXQ3S8HVQfFoNAUDOSTGoN3C+vz8CPvmxTI1uoXvvpdoIOhWGlqkipjfg+Jfa4EUSIBYZJXdFDPsKtW9YaNPHZtJd8pgPK+eM1z1ZkHaA0w3LJFheqQnMJQkok7F4eeJBvSNi79ZJI83ViVKmGUz+SA5um+uJIqq7idzBHkkGpkq9h2GwP0k/WTwzpiOHeetRDjOqBzzB+mCyq1b7UQHoAkxvTuAClslbzQW/jECXbjyAPc0hQPQwbBCRsECqiEJxobR47OmnrTvBxx2WwJdtWQyeF1nrwcSDpuvJ5U6FD47CmiEJ3JIU/owte/oZU+xkmPjptJNSSF0JZ6wbDpDkIlvm81gwrhtDGgPt8ym/t650mxbKi/Jwcy1ioOSb2MLlBrpRjtL62YknIHOpJlaerqYFyLV77hiQATQyDjdaImS2/YRAijir3ZolU5IB9hVRoQSNify3vJgPJHXEZYJ9EieVuUBAnzalhgIXXIYGF4ERAeQnKIAeQF4NkqlflPS8KwMb3+SoEI+yKGKLP0DXwKaZQtmjeHupvMXictcMerVRne8I2yQp0RlBDYs7sT4om8WLE1GlcjZ0UVIaqtkjpjcGoBXvQoyQxWmL9ngmpOuoOaPJlqEEujdMbaDqcowpP3FpCGOa5XXvmdsDjDwYYya4IV4z6rka8yfvV5PcykheuF3nM274geMBN3HPY81uJGY9c60d7J1IierYs213hTDbMCoaNnQoIE9FbCwC5HzqDDPBarJB+/Q61ZefXL6TA2ekNC3HYHqZYvorDx/Mltz0BT19eYNbFBf/QUWZumtA6PLO15DEMYn7oytWKJAlc3DJXE/2TIMsULclXYIj5ky2kmUUEEnw6k5vpFZpa83wNjI58k7N2vNKPEgCi7UNdptWEO3h1J0SPs5mm78Uylmbhe7nA/R9p5j4VWmZFrhRIxKfBevfA5RuGRlEtIRpZVsL6Ck3jELEdpzbf7dhq7sxfQF1aWhKVoy5hX22mnyQ5tE3RLpyzd/hjqYicI7Km8UIpSflnllMqKpXgQhZHYtZjFhLsW5/C4qdVh0IUxHgE0rUiN8UmVVdpsk5Iu3sN0jWwHMbzpC2u9i04Lax/QLYLLsnX906398JI7B2ErHisYE/6FuITXLfY7CW6OT+Nr8a1x8kqNWZWgtOr5g1/IDrU8FpjgyZhdy9+lT8mJM/gFlaouMwSnEIX+BV9468fzYne+6ecns+OBqbKDL+xgf5oAuQ0CA9gFbwLs4ZXM4phiNMuI15w6q9XVQSk4YcWHKG0VmKeq2rzvpCFoxno1T4KXToXmQ6sHoXKGEwOjvGWnKvuGlCwxnz6E9Pi2WkQ+/PobbjVnHtQmb4s2kSzjmWdlHbyQ+diIL6molmGZ1gx0A3Q5QIpuUWgr7osBRwL/RcnCC2oRjh/HurKTioAiVREM/rAxPRtLrNyirfTpDW0B+KJIyFwhvoARJXuKsPo2SPqhyJU0IraLDAnxanVTexrca4fmYNEmAAQDbXrdmwnonUeUmI9wxcZItm2Bt30pHm317TtLmf+AfRtyabIHG4ycEXajEvMuhlK8Vz/Fpi4NiweT8K6a+VCInz6O3u3dLQ1N09NZ6sTYmxITrNt71AGBT893mphhf+GfQyloE6syQI9fDqSubLYUx6jEJyk51uQDUfzF34K/NCrbR30SDXxEU5IVX/XYGn3/U9xqaUhgtOKl1ZC3Hb9V72HgZviFOD5F6fvCjosZtFEBNR3Ec10nVpTfnYX0KiHqPLk1XDcMbhXk7IwvvSpzms6xjen58KxX+POXcHPYrYM6j5FHI1QuIiXiScJ9y8zcW8rj+wY7+C6yncFAOLEJCnakFjV4LFZ4ZUOCRxSU0tUaLG8Uv52tFVFZlzHkqmfnvf/0jW+UhdGW6jpoI1CVvKHTlATFA1U3tuaUnvHXTgS/aona9QK4gKtxE+JdsYD/pDkIBozlA5FCVgKUtco56WAfX+8JoStk46ljDNUZVoOP4wcE7cSUE6KqiuqRwoCa0e4fdledUdLYLsi47aKFYKZp/Kx5RlkJI3vDhXV1g/DSwtakk/D9CGfoTMdbzaUT8ocR9Mppnjgj7e+scwO1b0Kh+e7eve44hJlhm3JvJQRcrnAxBUtMUcjpZ3aVBtWWZ5tQw5BONQF3Kb1rX3682h67YyGfS2wB8O7lXIAzgAtUtuqh1TOCQr4YynKg4vp87w8fpRYNvESp22+pngQ2m1lhEReIZ3U989bHaWx3fqQSaLqmdfZujzjPYK+/YuirzPJFdsgbBS1HQjNWoAc6oa2luFhNbO9M+eE7lK2D/VHwIY/N43TKWqkR/IlNS6LHhMQk+ebVfF2mmtxnXNKjtMDtFtZZEF73Re7OF1evfVGUIisl5Af+FWslFiS6TqyOj9chimZI/WGJe7gX4+GtmF+C7/JF5kNhcoqyQxS/+ReDwvyLYStNZTs9E4atzOndyVc8unX/aaxChaSHxLlKdzDlmvArqJvQHTmt48zTnaQatrC7SG0PJZmdqefjIMRXM7rQ+uUrSsNSc5cAcO66Olt0yqte+gvCXUtPValV3XbG7JXjkVNbhVCJhHHWW8IbYIAKDKFfFtjrPF/srJhgvJAgyIT06peORXvtaWGXDiQQRtY+FnknfiM8ROjZygj0vNQDRkAmd4OR46PqQ1NJ/YwGS5T7xj7eaurShqLvk6SIi5pw+hN27g4QEnX0xGz3Bi9ncGlLJ/rcQ9OO/fb8oFAUn49K9j6HLEXGHUMBhlwZEyh0gEckyC5BQd6zcI+jQoRNQSMI0HLik7X6oJ0mVbhnKQGAPvnm8XNKU+ghQna9BR8X9d/vSu93q5nYISdhsbfaa4YVjGpQ+d6o9ke4hiwpSKyRnqzz43r+zt5xHnbVHYgg4y7LHcDdAIcJx4+WpDFOFietl1vhTNP09eI/ZXocH/fxPGnB9lxvkJTCtxIvXFBZy3gDBPKls9sso0V0Fwo46qWs3r0NEcqFgt2qFLKmAo90JcqdRupMquPDuWnGNSZNck7OQZcYYV87MMKbOC2wxmeSPoDvUsQ9PgPTB7qQAcH74BclvMaVH8xnEHXBk7PNFm3Ght8dPu25BEDmdXCEX6kzT+zPoeshV8Z4Vy0fKHKmfg8Xqm1ZwPjd/1DyM21Y5CiukrmaKb8icREwXMLSFVMENOL4UOIUVs4yUBj8KYYAhWvgEUZXWURboKxekEYMaHH8V5h/bTDbn3/wnCxcf/GKUMYvAhvcazD2Xf7ROTb9+fvM/W8WUT9H6NRNC3PWAtlbpYqilXPtFJUJnzaeh84Jp8LHf0WNQcws/GNIOE3vhteU+Oh8lUEna6sLKUyh3JHkw7ert4+ny2nsZX2KHs4e+hz+PKajJTrdJQCFpWffOXHKYX5DFmMN+tngx5hnHqmZw2hilvrkR0gPfy1I85jTAELDIXXDVq/OJyLvxk5CVZm8+Zt92Bw3OcEOiJ5Zx/KhR3YCRg4jYNT5Nmslt5+EH81aM9ZemSsKJLyPZ6Xv257v0vuB6EV401hteg7gW+l7lTrgzS4cJmGoisfnKplTTmInJcQQgXcZL4QI7m9huzO7nSUwhYst7qsuqZxooRhrtEotPou5HV4pn0hFCm92TfHm1UL71IFwCArFR8VvBR7ZMdQnXdWqNag4wzqJCF5Yv3rocNAmBJf2pkwqOheCwGHUg9irTiV7bvf3fn5bfsLFdygS8D0tJdq5Veb+kJOetvod5JqkJMglivyn8QpqbBBtKmsU9glpOarwu8AKr5ROhi82VpAIUAMc+1w6OCd5AkPEbkCmHpgExgnbRWpXc6vxYwlcnI/toWVBfcEZTzgtQ3Yw6XklxkMN2liSGG8n1KXK8lj8leAgnBy8WRtyu7SIKBsXdUhjJ+XCdW+zBFH+ukmNXjTNRpBhBq/7LY4xaR5BXB72TJH+AW5RSO6Tx691tVB1rdj+CztKRz/0Nl68zosVellZOOypb8mRWyfk2NB4L3skT1CvLLrsUfurGfBz9eoCUO9lTj6a7yDxdo+6r7on9F1ON8Ygl35x7GnXW6B9wAPwgql5g0/79ZlkstqP1w14dtkKt5nRgGPnFZ2YY/zYlnPsfiu/Ex2at8emuUBZK+7pqJ4IHQkLoeyENdp/LVnVr+/b1HHgAKRnscer01GU3C00UtXv0N5yl1WqSdkMS8zmyI/wRAC9BESPxTNnaEWg+ScIIWm7lU7LDABTmuU2DCqR4y0RIO2EHSJMYWGvRLwQ1jbAmtwoC+FN6hV+qODMWlIfx8HnVOTUG+PInVlBW2X1vWLf5ddv3vMWOfONZYWTHdniibWzzihjQ/wK6zmxF89Kj4xqU6SQ0k/hPECrbBIWNgs4wOMtAj+s8WroAWu0ELSjC6Mp6+gRIOisXfqKZLitLd1OJNrSkptIRLo8eRohxBgXW/6lgcuz9qGGlcMOUOA6ezEzl0vzupSQZ6oQm2KLwjZh1xMRTGF69/EBQIWaAFyvwTRTdZPOcTpQQ6AiAKWK3Ps75oizeZKRR+/jUWaukZsQSunBJQJQ1JVdktD1QJy373AdBCz1YWJnAwbmD+qGmuVLfktVzkzdXDEIAvA3dBVHdQG8s8qCGjKB0MIHjrY9YlqbvZ7OTdMNfQHA8AVXGwlDrMleLJYooSvTQQ2EaesNr+a0sbk8eAECuiU0iXaCoqzerB2vLtGXaoNM9PS98Xkb0UO78zZLBICAHL60X49I1xFZw3/yQUj8D0Az/y5EFlXsH5eiBUHfVqzCvhJ5smZ2vAuN6KFkCduoUliZAQVeXiKMowBLhQHuVwbg2f2dL/LsVdNUqrdx5VRwSCw1lhFi4Fxm8gW2Lubz2dPSbaSat39ebxkEwDrQWSt9CXWWFvLBt1glTPJWncrSCYclZYqLqG6ZPbmwH2QPJil/c3edBcXjRtfNA1b/I8Ju9yOUI87PN/AJNnHfUJNOIUW6lGfGG1md25tdogFMaYchG/3w854nGt+/7hK6SL5ZujRMuPLHF0E6spFTtbvSNEuBqO53s6xqkbZP73KpW3KwkLzQhQ7foptv6oWt5ZtaZYo1dIpF9Que6QIG/Ba3+yEIShIL7RmEa2vggaztQzxklaOO8MEgPoRsd/+eLE7yhuj9aY6AmxJmu8DsPTUosfE3I66V+MvZuUAIOJk89WRlmZh2zmIFOLYEWTyUE5UpWT2aNCoKkxMLwZnNq1kufJsSgRXFmH2UP2XHX+yuqqusy1sqJWqyRL+xa8nsia7KS1DtZdlbWn76UNQDZZLrKKLsSSbIWeyMm1xnmdqKbcBuMkk6mRzTAA0MaAcf1yVAIpMdQ/k7nILyHDxXZAKivnPLJJl5y2ESUVRNV04k5k3ul4hxtNEnw0oEn6QoEdTQYHuHh/SsWwQkJ+/YiR5jqhABbQY6aQaapvxsC+70QEhwuknhg6MPyM2JcOTd5uVDVQJpDjFWDikBABqZGZUlzQolCRlG2kVoIsvOiGClUC7OmEi8dFF36ybSPzK5lBJxTC+HDnXCgTnvUn5Z7g51PiN+3BUL1DITB1aPJm9PN4BlFMic3nFWe5GHzS6LUAQTCIHbjHCs2E/o00PYgOHRVeLpbjGXvBFeePtZeIdoJ7FZkUgq7V2JhOLgSWZmGedF+kaZiyvhiNR6FPKThW4Qj/KiRvAiJUnoOImQOHP24cpCiu8YPZTWlUfvo7GOHXDQVo5zPVUjCYCZRj0cVa3Dq7iS/09pspZTCAbVnYtInpw/3fuuEH2wADlDL0syCYCeI7NkU12h5L6jOixqaeQ4OHHhp63NHvvX6eQpbfbDgtsgRTfpW2k7cqUUuAgOLzONz/tkrcaTi8JKFLgULovqeQNnL2BMD2iMZPPPqRKMa15plpWUpdHgZN/rp6Rdo04vFZwYzrVQv71tEoI9OXgxu7CzqMjrgWwiozy3WEDc4IrBXnfwLBJxBJhOFAtgm2EhMSNdKB+GPgL3o+oOH3AaMB6QFwp/MzgujmX35+Pd0mtVc1GwyaGgtwzRzS6aW9bCQg1e1O55aMzLaWVdMEzev8F1QHfKUhQ5yC9jajzTgBrQY22T1xqUgnB0x4QwWisVkpicK1Y96HTcSJ98u6tgA2+1Se3DTOpJV1dFJXHMEB/F/eETXJRqNWFYXn8iEWda2rWbHpWuHnGymVMnCfcLbcgK3AklXDLqWj1A2bl/G2Pft19aJmca1JYLQr7F7IA2tN1psiyeiYzeWcSnV45NfT1Pj8Ojhm1sNNvbhYCNQG739YsBDcm5R4GEjSucXg50gngin8e6oJMdscAJFnqm8iFS0ISipNa6EkBBL4Eg57E6kKcs5p2t3MYnVnLU+2cS7jQBq/lGcwUDgTWHNBsqkFH4Cj/GwUo81oss4jBnVk8hZ794tRNXi7Bocl7s0zOfQiHlDc2X9oW5+DokAyzDSGdFNI/stJkjohFhdlg8+slIE/733fZmgNcjbRILs0eBj+dkpMmHTrZr3mNv1zxvsjqpiSwn7bKazeZzRkwRkWhfp4zLfIovfEt7QV3wcAj4ZHL+C+eubig+GOnaP8Xqz/I8Iz+DZAbEn2hUY3WWeIzL83xYhZw9e8Djr+DToEeYgFuy/tIQTCVr2+Z0SsIskyOtv6TjQlab+YGG5Bm3/XFLUSRpztEhGgnGkgeeansiX2Yu9r6T+meBlv7TZZxsP2Dg3tSl4SCEVRsPlLdnpGNsTeS0sP1w1yKZbQ/dAYaHVSYLX6PR/MKUnFE2qI5A1hc6SbuPeY9ZmnmR33NDRy7lLBg6eQ0pqzJr80amErkh4XwVjvuQFeCrrIAvcxI5YXjyou9sk2DYECFGTsHyXLmebOlONNfET1I3DKEcUXKSYRL2RIABeSNMnKfj0WP9cJZKME2HAwaicie8WCETseQwbOCYQdThC6QLRtNTW29o4sIXLp4ACvOyBuqzs5kl/dS5j5yfuYKszDFBdALWY6AKt51DQQYWE4rcu21hyGNa1fM1vrr+Klmb4l1znqEacVIKpFnMvlh2rOJlePY9Y/rA9WxZyo7Qb/YBDdwB/fqoWfKOytusRlsfOenwihvd00jSLfPv2ZiVOTB6xLEf2ZGD+ABZgtOtXEYiCCckfZJ+PLuo8pOa4fpPyzf9n76qMU8LwlW28MAgOwuUgQHmkzC10O4fD9zn25wqP8E+vtlolDaatt16aSphwVhSDaKQRVTc5XzdYePjHYebPHr+HTE57OTxhyf3G3aY2UftB27zqXzap2z6mZs0NqzHEaghiXsQjpj2mH2A3Refyxs2eZS3j+NkdJPfexCNenJo5IGI6JTSDAT94ONGauGrV1IRxSnSTfJ3fHNTm9ILSk7ydo9u+rhORj2hnVIb8YINdFl0APUCI+OBVU5hpzJRFKwPBLe9dltWN8akuimcFG+lC4QX1m1b9OJ0wbkDzMX/H2++fJ6P+lmewZz2pnfmt5/+qSh1iIFBIxTpFEnXkoTsaxh4R+7J/JeQ6KtZiZkqgugNwlU4/JUv3+1qWOTH3IRAf2wnWI7vwZZ0P13Whyg/N58+Efly/oyFORJu6AcSLbKVYckv35XERu2yrlBdmFF8baO0YpGV+AKjaGGdv3Z6YYsb+6h+PcKvxTFTCurRZuIkaFKF6glQpzNY0bhJzHKOptY0tEvJ2xaI9vwNZtL0UtH9DH7uHPsB5as9Yj7b5FV4gNXFSTMiN3QQu3Yq68WFASBb3NWmxLbRQ8cI4rIAsxl9KVzlb+QOQEZjf8uX874g1xIewxVE9FeT6CmgFGUFQIhKrRqJz+SPoSrFGaWzpQDE08fqLMyZJk5/rwFUN/ZT22RjR5zl2fyJeL7YyYiNGSYlg8xyzIPVZmDwAAAFtQlqUAlNuGmwymn2CiD4DQ4/lKdGruf2B3UnmRlmnbHe3T40AzuCLNpkzE4e9+yMHA6i1U7kRcU+uOQS8iaaS+4VIhPPKhQlYwVEYayQkIgKglcwE63DRKwOMzleUEw6Xn5UNRWLcG7GZiI2S7qZh0WOmOyteWJksz2TjZ5rqlRCrbauzNp+tCzLryC98Fg00YMXoYKbB6tATUqkyxpo1anLL3jMfLA8IK8U21vd/eJ7uLu5zM445HN77bn62a811hwW390UlTFAF1FsOhmnEe4nTSZeONwUZ4kmNghqMniXT/SHI3CDp4hLCEsb6akqWsGAcPTM+dXIFmcz8umq+Y6fPU102j7frZ+Agww7+/1OY8s+lXxTE087zDJdubxDOJJOQg1hyTw1MUtLZYURrAxb0mWeFQRpI0McOCAFpYGuKOrbtywfIkGn3nmrpamiLBwkMJ22+vp4v5/KXMXYyB/4Q4fvaPeJY7unreushC14fLsLQ2lTUXFzJDHxGjqFhTRRSJ6lBgIhemggYYy2dEJtOT9YzBkcUpI/fCfU1uQaQgGaMoCK6u2VDfuYH5P7UJWwBPoE84KPEoHBiWqvvsKkvCiuFpI3BsRTuq3wT2eyYw+r0XVBw2S7SDnRqlTcC2iTRhM2AzUjvq72gMJZNFIuDnj92ewNOTfW0XGM344zp/iYJ+ZyYEZt6+5m22nO1rWzfYh7FwAxBGmo6jTS+rrElWUqcj2M4kKG0zRpcldyn8xsj2Xz4RSZk8fXniKULzDYFkYh1NCixFyaGIh5GRsgmAkbKBSWFQ0YQrLQwHSkOlaYw3CQDsmA+OiD8tJEzO/jWZoCdcp6bawsT8Me3/Cb3VyjQcWzjYaFQl7eukoohFFsd+VWetQwwLEQZg6gkj5P0ixPE+qJR02ytBNKeGvkWIng9SLfFpY9+jBCc5Z/qdzTuYPlTiprKi65poZ8m4cAWtDZaqIL6liG8/OHTamheNOQUn9iGWcb9V+uBCfk6ksLuiX0pi+VDuJ8WNznOvZQ3J0PqYSCFl6kKMA2Op4Yz4den+GISmX2OVQZLTwWslP8+bQFiOxEemk0ylNDOlTM1FPc1gJ4P2veFJjiDwNO2fzLMmcB9XIu3tdV1zZRxuufdef5nQsFIKWXIKhjyJT+UynPjNwA7DEp1qPW09TKhjp2r45w/uDzEjkD5wBFNJhPzjRm7wfbcVw9kuG9mFIoxRFlv8bqm/s07LB6ZR9kP7OZdGV3146Y2Zc4DQU0jq+GsghlYwgLeF54Q7tzqHDcSwzu67R/O84P+pOBpNtpImBIUX18QMq3oiqiFU7y5Nno120y2sOcK/aZyRkWeocI/YxldWhHFluZZ7E2uB08ABelwbHKoJprZMgjCC1EFyWiDFgDIEyZEw33vN6a9GcxhJ57x8Ya4ZWXDUUWM4aCOvn4nfElo7ACTdCqrYdfrslCa3ur06FwYP4GK4mI5BQTW+hhN/TbORHMFYJO4twZEof0pW4deMiH0Q1pSitIzthS06h2LZRKMSs30NO+/co/BC9S8l1jbAbkLdNPACdk/fBw01/2nevO22o7OnY2WPtEhkPEp3SV0E12TS/EFOWeDKnrGVwRWYso9kjlJu5dlUZKTlqUwu1s5GJvdd3JlnLggERZZ8lJygSUSBknv/DCSJO36gZVFq8fzkgZMBO+0VAUlPypJMmfwAM4BM8pMj6JaT+Yj+WGsoF+fV3R6sxzilQ+PcSiJlwtkomunaBDRe/BW+Ng6bkZBeoF8zbj15sDGGcZCIM+s6OekKQg4gvdMdZXYglFSyZkhvincHYaSx67jPZBauq0lGyTCgAP4qtmSgh9UDhin5qPJDJmxemTfR4OGapjMhOYaTg7dtq5qWymT/uhhSJuZKF5ci2tVBOyfq5Z9MHzFts6Kz61HJKBLYpquTPfpAGhN1iJYMMmMKYCNJgjGtgBsYyv5p4KFOQU62uY20InDf9Td8OkCe6MBMFovtftJMNc+tovW+6MvXqYx37ysiRSB+gd4cCJHW3MZPYcTRKM58x45jSKKdrrqo3aqhjgAjQ+N5Z+FHj/dWwwUr/LVVlyJQ174QYvZXdAGVotymuwHj86asmVhT0r4ZkaZF86mY5b6cZ73Bt1px4HxLk3FBlS6t3Zs1rXYkq8A6/y48/77iFFo+v4HKvbFIaHfIFZuP2I3nrbE46me8YHqX47Pjw+H82H/SgLEv3FQ71XiONXPT87DzT8VSi0KaqU5QLLSI8FhHblkAWwBIciFvCKwEzf4E9n5ROS1d/OH7UfHn9VfusetGqqx0P3+DoVz2wyzo8X7nG0W+0LPKid3lG9IljzCN63nTrZIH1DCKoSjUPWeZiV0NwQfPr9Bjx/U9yMWfj7OxxljcqbTLdMSu/QRg81amMmXaqzUQBpXFhN1Xosjs3U3GnuDV9aH5atkpv6dfYithtL9vRiUkzdJluBckQgS1HqoAkYYeoaVp0OckfzCCTAVVUdmGgCQwAfK+KIz5emJzK+DEZ/3Xc1iut0V3nL7axcvbrX9/OmcHE9DvYPC03OZdmRp/nRXz3qqwcHPCd63o9sdvyAxeBvKZfsa9u+S6MUi3g5a001Um0x6Sgozl3cQqGwW5vg7YQv1ugtug+344zkwfHt9f56Ps3X49XqqvmFQ+DyNqa82Uj749y/U3awC5U6Vr1NAVzPNicQ1OznSmrT7DyODdmvWM5X+OB5PiB5cv788fJxPdMI0S3ORXQxjnJohXzdyYGhKnK2BNDEKJc+1WuvNJj+mtUFeIWmNBCcFP+yoX+VWrsCn3zaatVypaVWAaeGmJ/0NogZlW2zeqz5Dm9e6/ZOvQUEk7IKHii4qG0YdRgMk7kXAo6LY2iDOZvlBWv6DZcAP9ig6D8qgtbe0s3JDcl3mCfTUauYAvTdb4AtDF+nhczmJLi5olMFt8Bx6QoG7EWPETWGHbQEjG8D7JHbIeaO4tc9S20hmJiaElEYNyqXEddxQEIsGwBsYT2Vu3GQ4Gmc6EV1DPjw8BVhO+BD1B3g3r4JE5687M6UqwVmD2ZWhrjtkVRjt9/vWajiF2bM7sECI5xQYDEWvDAV36szBTuonVasH/Up8Cu/W6pxxmSm26PGTn+IMHuKbLbqLlao2ek+yoy7qciVygkzlWeIaZZBWS+Ht8tZwEAB5c5TRlEV/8EDmmOfoxQQlFx2uOsY3Z3qUsw8Aj3S+eQzRqkeUFXX8I2dqoUL8zwVZULvrcUaVLKIHSp5yDHrws27Qp1KpCKVLL376/ngc7q+395156z12i0+eorsGYcfvMEtyXs3OIon5xllkkQOMwc/PJMmx1HEBM7QID3q54zX9NEcJTdFvNbjCXsnVInoYxb+4hFH+awn9EocRqc4LxDZ1mevRjgUxI4/5OmzAaaN+XL4jiCnD2uGEXzBNmuOTWqQwsLl26bCN7wArNCiFjM1vXXbW1Poz/vTwhFf7ElWc2i62h8o4EyMSgH6fFXg8avemaWh01U+LQA9cCbuFgi2mn/g9RMrfkrpBONvv86S0GR/9EYDo/74OPjZPn9WvhifHklfPD/KW+QZYsmyxlljTjcY1BYDlH7wWFTLd6wZ83RVQ7KyMVH2+rLv3u83JC+u37/+8PX2dn8bwqgoPDD3jnmVnrRm25pYdPciJVZoIIRO9+XdAASV/XzK+sjaYly7WKX0k2+uDlueDWEV9y10XW+b8u8uDkBedu/w8nx9Ps7SHWLdgMw3njtJnBo7/CHaG31WPJf0jZ9lgQ75IKW3LFz7q2oJRtpzaIx3fwK7cmfin/zgdhVBmECuqMXCvtAD4cVLJCtb6PCS/vDlL/bw5vWnx703exe8V3AVHIq6M0iRx9QlE5Zrf2IDiGkgKjll6JW6CJ/xsM2zje6avu07aHgBp2tHlLzFxrYX8msTqeMh74jfXPtKlObMDMX9MQ7HjykM913zfIp15xeAPqS8CbjH9ZDvT2T5YuDVi3IL/NxhuVmaht+q5ue+Yo1hWysTK2iOG9HpgRyKLprUkwHW07ogYe7qE8POIAiHsEznKqkOVrKwbUOy0t97UwdfiX60M3fuSD84wyWfYl7kCFQ4dYwJASkmUvKnPWyNOUvN1AZW7KLXLtecjBInJNcmg3woOBJIiiwzZsNR56DRXCWc1o6wTmO50+Y3gVTJJnhH6bFxGZNO6Vrz1JiojVKXucUoTd9RVibf6cqlIS6w9zlxRTo0BOI2cEFEf02jpCf7CW0L8Ui4AgmajmLYft0uaX5i8J3ZfpVHG9aHbVDvSRgGJLJ0GrhGLyFOurLYIvXdnxtanabjV/mWGTEhx0v3Xaxt8a0xo9ippkOH/QhQgFh+9TliOqfthRcBT1+QdAY++2cg9tAZQKb1mYtce4vsbsAz58weespM1WXY8qTD/gYwmIbxvgyQ8P383tBIFn48SNQ62HhI1KgXmhVQc1WSXxBWDIcBaU7O9c/dAii1KfVitR/ZNoTs4CxKj5A2l4IBjBjuwLg4Sv6343t1w5lQzbFRKUwko3CCtcKzBfyoACY1xoasAHN5lkHQh2LA5SuTFtF+cZ3BzkGfPeHA9uvU0SP6Bse8c+FDzs8EdHfeOUoD4eCnbFJkXqRFix87xig1zKct4CLgtc8MbWY057W4ZJDAx0wg8Vvw9H5oSbfB8D6lb+zGc1fMteYKL9eVlZZH30cE5xLBC0+g65MQ9lDyGzgxDaFlWD0LtisW4CfdYOwjWYHfX2vBt5niDFuosHTehyUnc3gusNTLLcuVD4bSzazPGuzW2dwFxLQuA2zf4HoSoeaZuDCFpAqO/XQcuAhE482DA8ojKihfapH2t5RZFq1ht4tk/U4XNBBBXIqPbLVuDMnojJ+8W066zBCJb/3jAH8liaPvCTfSo2V51smmvJFqMmPV14YV4aHNWu0ETdUZAWniYrQg6R40J3Tj/UmzZsdl7l2Pjr4nfQZPVgyIxoh5WpZWCrUbzsID/H2s8+ET1Fld8f5D39Hhnj7KHFIY6elh0jwaesxzPrsTa/WK2JAv3OA//coR5OE2jIrXANdp0CLGQVQjMPq+78lIBrCEJxJMiAfhcfk8E4Vof1naQO4LOUr3l2sSIi13JcQkhQg8/vYexPP9jTnCn0Z7DoyKvlEhfc+4xkee7qIHnoJATBVmNwGAeLnrz+LN9WnPuMrd2EKi2ihSLXtzJpsqVSYa/SYZC1+GJlyrE91/CfAps2u235oOAc933TYSK4qzlNXDKmyjNSFs7yT4hJDe0sVhOSJKccXNo+2X3VVtnfV5j2coxMgAMiG82qHzrpI/XO2QvsLhnvK8uQ4QpzhxT/uA1ih3b75vVFuMpVlF6ClTqVb7IhKTPB5u6PnsIgztS0W19nKl+SNVXRK2a8obpVcalqouCdvVR0fplYb1Viqg2EnZM4eDN3AamBOE64yntv6dlnetBCxr3CmV40GKDBkBk5OwMPfJdkiuEanAJm3UQcX5CRfxGyIJTb7VWxgJG7STbGShUClNj6DIn6mD011w4odEmC0ton9dx3MFKr4TVFt1DFe+2vEYrvcxCKJGnIVhRYblzpFB2ahbS5Yc6gpZ8DUOk36r7UOPvhtmq2ajxYz+eOZgJXQ6DbaFvNMsFCcdRfdXxKIIcfBFPm4fuEVpl3FmwaEVrsh5YkCgX0RFOcFAbUs4jJggENc6+uuq+hFS85pDNyy8HoV+ivd7zuK0+OwIIkp4WdyEg+fCShD2OFainEE4865TpiWau5aNWyd6pkJIRzRtovrT008ue8h2zF7uu8PnsfrHYapjYbpFtaamZynW/3p+7fw3LgGx31vd8bZGrkX5gU3Ntd9xTZPfiftkg/8+80NRIudTU92Y2NZrm7OF31z7wL5Chz3Qn3vHGp1OGf+5d27Q5VzIn3l3+buueLH4vuX8zzPL2iK4inv/Mv7cqhJrAsj2LEdtNrOZIMqhlvU8lp1pc2jQzpitgxaaoO5tIjHUAGrL5TKRUMBn04e5F30WQgvTVFA7edb2h/rmR5SU4VFM1rw9wltEE5SWfKrrB0/ml62U0LuxoKMX8XqDAMToyJa15Y9eQvcYldUJn443aa6Wz07D/cO9i4nofnqbAuc/luhChVWzIfP0bByAUOHaN04rhVN8lc6bqZjAxg5frfaHuLkdLwla7oAQwDnn8lTaLASK/NsC1SZb8bQPlPhdflQ0qlPRHH6/FeHmCZIwY+V+Mo7jK98tFwsVXS8id3B6IribZ4Ctz82y7yQkvmtpIv/3bm6S3ORYI9Bd0iXhX4slRDCcC6CgfoR5LG8Sum9wx4KQzRyO8FGsr4FLKLuMgCNP2Sd7lFpwuf57eP3PTsp/9M9rMV6F4P/q+pNP++ICL/3qGWP87+QA/8sh8Q/b/7+tbux8ID/393Of63z5753yQgXUH83mn53U5pDrhX/KeplND83+8R6HYqTp0a9dm+sGr9RufgYbfw+ZL/RF7NB/WD05VLIsqxm5nO+Th4XbYiYbm8YLFm3MH5eEdeP6j2w3w3bzP7195O93v+kdrH/Y/2bEkBe/UQIq4mC5qxe/o1elLjH/v5PRmy/IbYU/gvOI78tL1oHQ/v82LDr78YO4jPIjbPSTc/Qj02K0vHX2fF5G+sI22AuP3hfYh47wYx6yNbiMDI5tbfw8fvRh8efnJtryQ+zvYPe1pbKN/MZkO7bxCcTX/devAFrA6611VRV6RKmQSYV8HpeakZQQF4sNYwE553k+leeC8AvVKmxnD6d9/m49+85A3RjseZyoUtmhOEbEZC/hAORJCH0810rSl1XA+rEQ9dRLDDr/Ojbg3glEJts93WsWm8Z+w38S6da10DDofXZRAysM1vZKK4ylGfUEGC75icBVVdDu4RjRP2PvgP0pV9LwdFsGILgMhAGxz2tsp+kZCZMyTOZa6kowBtsxcd4JS0JhDxjncQHdvqImMOSRybzxDB16K/Jrxr7n/A1XEZJqRhpotmkznDYjkVQxcKjKnyJBYRpxdJaBdGVaaTD4fqZ5IkAMTsLaX2cwEPRiMUDIPqXwsdpHuNtrrqabUfykRDqYxAk1wBH3eLj6TYIr5I1dmp5J+XJN/vxGiZw1hZ81Z5ezXufx2g9cIRPbWAUvUCrSxyP0rLiBoALA1kFkiSC3SOwNRhOJyYKa9WDcRtDMcSAH4nIrHImzsalf5ZMdjr/oLTKKPpYV8F/wskv/yWKcRImgPhB/84falEMhvISUmnXMIm3gT5XIIp/s/xHRPd0Wmb/TS6sIG1zyNcjdb4dcZ7aSA2NT77t3kzWwP6An9pYUYMU/TVnTMb/GFhcQmu5sR/nHHzPDzyHefd18t/7uxBKfwDa2TuNf+2qgaVLzdFf7+dEHFVn58qfjbffJOsjLulZ/IdvjrnPnXyZ8YRkj/3gbLgxMtvK+SChLH7SbkVutMvHgDJUY6p6kVudhinCo++kIfPxxHP4MNd+sv4mvw8f40RY5yyW0I+HaAwn/puZZ3Mw9OF0r8sWASeTdvgs8F5jRXv+ahU3eMkGZP4qIwYX0smoqyDlJNh0zTo03zm9YiyfSDqCI0PxACxRCnAwd58jdG2+/3J6iZ9EsHMLG5gq/JNjjEFJRhSfAjvTMn/Pe4rl7JFSd/ccTcUQ78pdO45cxDLlGYayccSMkWYsZVmwnTIRZvTJOtFDp2qodhsuIHOQAEqDrzcJ8wPxVccfo9ruQzHsZC/Nm86eO4ltJwQneLwJu+kbz75xh3CoAeLImbs6S+N/AtY4y94c18xVvblzjsilN7XpV/FZuAftu4TpkZlKvnckqfSjtmC4OnzMAjCBEo049IOMU0i7HHVewLgOmkLKQAEB2CARtCxTRQxt6Y7d7ztvbHGQ5L4NK+SS7cgLgqAZAOydGqiw+HR4D0wgydfaSSzMk8emqtcq3GZtJMirFagCdUDkq0yRbLQldbDplNq/M477DHvJrsLxFEA9XrfEPANG6dCzwbgEDRUOagN51Fm5jE2R0k+beoYs87I3XpQG5rGwXznr3H57YDe0/rO6jDpk9Imq9qWH3z0c3WDna8+8263coso/pVItFxkoVwrXOWg9XqA/QqCvE40a+9z3Wnwbu5yaq/LFAzOtOc8W1r16r7tZsFZYtHWP7nagH9ouQJZauh2tPCfBbHWM2GQ2El5pVoTVGq4+fS2RunxtfdLrAXltQWajvIVJs5lw5tdNX7WCsGa0ytpxn51UCaw3du5F8YW6BSjMzwN0exx0Aafqy1UxvCfyKRaEbkqK9uM1h3y2Hx2d88TjfPec45G47xeU6Zyk/Qq+8MQpAeo3faSbyyJq7MNcs6C7U05iEhx+aFNWzmHA1XwgVUcx4qHj3llOTM0i8qt14VsjrV0lwgAVWaPA1l+3KT7E576giHClfRnrFbHefodazMK+wbb4T//kE626x8/09Uhe7Sz2nONxk0a00I0fvceA4OGzJHMmGH4KAyVXI8VjndSjWuGSdaDq92UVi6sqaHsU/vDj6Xr+eaNxMGRFAKxRQyJbvfgs2f8puthMYYjKaIL3WrIXps3ksBlW5V8AqaKrUZMYK3vxm4PNqt/4qeYq6BwryTQvVbvC508m4ykQyMqp28+W2b4IO5RzivXF6y8xZtBUWeH+n+SaMqeWfiUangXu1fxpzf2Qp619UkPX3jO6bb+DZ/ykf5XSWUNC+sF3lq/qojaItpptnM2iqlV/xAnVVAx3BqOsHZrTRGXPUzhfaqL1+5ZjnSJ5dvD5fz5PzXLGeAMMZuro26c1qg/vu2rzGX4bW/9VbrI+evQ7f/RXqWmf04wOYH4H1EBJteKqvvketpNsWfhpr+mPjXzfuLww/wLhLnE+nUVVNtS0MXGkwiziJkDFZH1E1ONNg2plGjOWtvL5fLw2AQ71+PIwD5TiwPl5T0Pxmunvwp5fw3dHXfud7dyIyt92e4Wa3o1CdDE/svG6c/uxjRMBfqww4pGQdN49uuiN4dDdmjvqOiESy+PNBoee+ZncBrupIE3yvbr512HibOQtgO2WN58Zssj01S69LLWcaV+Jo83J+CGD7Ow5kgrody7GN1O7fiL9OJyEUJmCUpmoTAtlwROLSKZvAwrKpKxhJes2ZfTt/sI8jTu9p8WUqkYQ3ZxASpx5+mJRW8duMRv14WBgR4dnCaIRkhhCfXpyRLLZI0HVojBEI2GoKD191T82G5YxJPuJ9MRxe9chcFVBoyWYCAm02yrivGUs7Ef5q/PtoZGziLaqvv41H+fjqcf/3808uDtv4X39oPa6PFF6wTnXfCcY890GjjEs/Pqitr623tYsLPmo3mJFsQXb9hwiJaFTG71c0kW6j9WFNG4D9bE2bNSRLkhQW/DGeEYmbQr3MkDKlCdG45Mjk8LAAv3//Af78ef+eXdvZ8KbBOvymiXr/C//etP9rHGIKRIFuPIu4Kbr0ddq1Mn1+YU7QD2LmnmX8OBepUun82FrSbYGqCfU3/7oxMpgLoUZY4UhBWANy7RwSLm66iilUcEzs/PKgV6DvGz9iTJmN4x1bcnOsBU1GLaA+ZGGVAoBSBoWvGEKJlVcv++wS+z5LdH4ej7f3kiX1P/zalC6cZkzaVKnHeTelFksCEyexVTchtpr5nBdmJMNLeY8njP9ZAukDSZGMx7d/5xPvenC9fXPss631G6MZlKa5KMYj9R790INtA8DOXu7uSGJPg8Kn/3zuQx948Uw+Td6ugbEzb6eN4vbR3cOiGBI0ccDpXZtXUlu9Kngzi7bWxmHVTrbppgDegn8/t26ONdrLY9QgTVZG4/S6cfxoUXbmnM9fTfqXawuF2ttL0MPzhWcmCIOnoZvnJUpMp/BBTCN0ejbOxs/BO77+63lwnMxwWsdhLtj3Vk1QEEphPiwI3NkbBLXQBdbFcoMNp0+ZEgZsCCXKU0OiYsKJDcg+TUtBXEKJw38RWVrlnCcGWKeSzOOGAL0t/PaZwFMah8b3V6no01aNoO0lbCVc+KKq+0WKMXzYmIlmNrMCf/IjTPenNMGVWiOu+cMizE63IpcaHv+wBLt7kyqpecQ/2N8ziZbp0tQAKSwAmLUkVW5Ko7C+U+AhE5nxdRvmnKbQdAJhvsvWHpx2sILRolV208/pcgoIEq13kqrttKGKHYW+b3ocVPNIEgpsZ+a3ShbaA92uEdy3Kli8LaugEM/tGYGmCP84Uc3ZJ2jLH2JJzFOSKe2Vk6lP2N6pcYpzvgY8/iuaoF24IDP8W/V7oNo81737wFPxQrrQqrOP5TRpWz1P3gWroXfP815Ui++G8lN2AK67VKjSmmSvFl597Hk5PI13CqWIV+ki96ezpNxjZakhp/WR2MVjxdGY1N4VW6ieMdG3UZwZ+i7yhmUhMOR253BbWUFpifC0KStnshjZUqktTEpGuE585sbWLrTMHLpaJLaxsTnvjUFgqUS89zzVupIuhNQa/eI+XUM9sO+q72mKZmCwrUxi50e7ZHhVlipZ65aqBpcSqxUy5Bgpc0O9H5N9EO2N+qusvPmgdAZlyXLMKzySFyIl2agRHkgyrm+Xg+zFj2sRKBeSdL2q+KhL4Atntqo+fGyx1OqvjaWD9qTg35sGWWCQc4ObpNe6tonpmTXRfxnnEf09NQBC7Fo14Y/r8/vuhF1R/uzLOVu4bhO5ixrBVT6+xIBwrfWTMUsLgBvyFep7IB6CZJI8wfnnHTMAwqtgFZ7mwZZFIvfam8q1qTUuHmV/mGgbqRC7bFdzaT3uVU2KaUYavCFKf4PTqBl2sJ3fmc6b+K592zu+1K5bpEOG9wbUtSt8NGLBO2h0AqYoiR55pTnYdk9vtgs6mqLwI511QfaCMd7QC5lluBlPM6kdeGs7ZKhBZpTVHwNpcYv2NhPxoPAi7d0yOx5A9e0/6g0tQxFfbBNzu7tUeYEw38DvBkBiMwDgGwB8Ku79q/DSD/eqEG0TGJubX+e/b26Q7ethGyK0dI9KrDzF5Z7WIfPtC3VHnOG2giI8ibnBlE6oRjLuRrt5UXAidGFvua2wK3Kmxd7WZuGbBgGzGGQdGmG2FqiPEFGuaBGIxRxiaXtkg5xom8p0/Pu9L1jcYRHD3gRKJMCcenaTaRkeCJ4KvCAQYIXHRlRa4RymA7x32H3/0jvW+zE19UI6xpI59IW4GaFTklUYASkcaMPFcG3U9Z0Lc6zeIj3/BXNZDel7TMyfjHjNv76G3QaSomv+UOejO7InPnnf47qgAHF9VQIdWpHqzx37dhTacEqk5OpaGPhXp+FHu+jmF3tMW2yWJqCm2wTrC43CCiPUmXJUru2uGqopfKp/9SWxvwJ2ZQ992/rvYSyOD7XIkMF0uF/TNvlLWqtno66Ez6jt9fM+nKQvWw0fNxrYYJgRxQypsVhscFVWaCQ4x1GW8dRZ1aRXD26DukealV2+PuRIJus9ZYFFRSbnZI5xgGz/y4WhyHlZLDNF3h8clXO4vHtrRdhWDWOMOqz/z+WXv/T+sT+efr0fhYfTamzA+Yfe9/Qtcb3pdJrUvmq/Ql9r3bCi7debH/zNjXUz7Oj4I/6jf7hi9JtEd38GXP/yrsi/cXT5SfbFv97K5GeVHv5C+bJ/+9TU30x6+ivj6/7jl7T65h/xy9963znf7r2+Df237A6/+/L5+C/PWX/K/97If0x/2Puyw42s4IP+1Qr+r5I69b8NDAqvWBftDtppi/tU/5ckP0669HLY03/9/E/x+Irf/nbn89t8WEPO39U/HvJbYF971cXK/u++Wm91WNFu9491/D/EN+n9sZ9PvXdlvSG21/rZ6uONdetWrx4fH+jvaG9sqKrMpGNRn9flpM0EYTTqgBvmMkun4XF35wAARtvQRzS4Yf3qtQetmZmeGl/1d+PKFZMTI0P9YwNjPV3tfR19rc0NbY1ttdVTi9OL42PpycxkKhEdiY2EAt6IL8KzTsElMFazg3a0pB4z4oDW1C8BEB1yS15Ostkv5/Ey5Xei26EbqiJtsqZB4hPZZ9/BsW/7h5PI58+KoxEeNxTwhFu2iFWPn/wf2wv1V6mUiuFBXyCg78qlOnnTZxcLQDekFNxOb1ZUPGabH96CKaB0f7lXls6AXDfGD9dsKqO2td8ZyTarswxzLcxLCqoSdIcy7Ug7WEGlbuWjdCtwgYSfJh+cWoV3VBuHgKWkcRJ9+PJNdwyBkHJNQxU0wyGDy8BYjv6HR9HPEtrCcvnqWxjyHFloYwVkFMeoQD/zlzDSTuUG/9SMv/lENdOyvUPMuNaS3kUrLRTWZ9Ba7ugF27nTgpAE7KXZ7oX/eksKFCZ7iK8pqm+m2WXOtVForsuq86uJuJZHMpr21gLkAIbvuPokfZtVRejLf4D28QIrNCyAl1A2ioMGgXaI9tkLGgyMpzw2X8Zn/llAGL4iT6yxQFHy2znHNPxtusY0PFuC42zA7Bbmh9EIAvNUZXw1qIGFfcq3Dny84jBtahxdLTO6hn9oZGK6kA6NNh4LzyptSUIu1YKrPXPCIHDjqx4LwH/3nN+8oyHNTY5pd63HoFxvW18D55TzqmboOWPc0PBda8XjmifB6te85av0ttejRETZ995hsr8xEV8sGW5WEmRVpIm4CpzOf/vnCd3KS08FaMjRJ4c4j4XrSvrQ06xVMKcU+O5FHWyRq1OwFZcXg5r373GQA+kHOxXOhWm22L8xEZ+nVfnKkNPF4mbOXPsuXMK9Coek4DSqMOUv/TieEQDXu0M7EwoChWOf9rXQpcEFlcNch0sziJ5geuK4g84gbHCErtLl6tSIhOeoAxwrLBYiFcr6mi65CYzuym0+VEHN1c+z4cDZni278faXaJt+/imzo/0MZ8bEfy2X4nwaGYj6vjhIJkRAnW3F0wX/83HgirxOrUAV3QDH4rcfwbOIjPNxasWD8RqBNf76qn33ZozmiwFZ/YECtG4DM61pD0dGhulky+MEflDbWAi1Scb27ATe0c+LmINNHXw0boRbSeBlZzxaF4SX7nLO5rxgaDPjgRd4hIuhfFSSF1ppU5acX4WX3yO908imkqZX8jjOIib32rl5qQJmvIxu2N2muGA7uMElMTvUfdxN+61oht0V8QvpMX2FnC8VrbMMdts2YjC8ZMnRVpioi1tKf0LbKXr9VrlzVv+y3vzxPLJUYZzVg7LL1tLWK1sZhydiMBWU1LXKGTUFvsBI+NvzgBhOIVKWA7gXOA4tcAA6GM+InTeKPE8vzBE3u1trRfsfnb+x9pEdU5F0q0o+QLGaqaZJejGMEHEYMj4kgmFQWyTplAVMOZNbbhwdPOL6wVg3Iu5CTR/WmM9L7y88AolnbCN1Q0ZxHVOdqzr6W73Co6y1XKLMGt4mXDr1MC2SsdbC9fGkCXNJHIZIqVi7IPHyzYG1L8D/KeVlWjpEtHT0Ew636sPyqjGwvHmX4liMXe2N/2OttSoM2iWryTQQffn0usUncWE9fFWdtl90FS2v+9+eHW6O3PpGcbgZLHoTa0Ko4VcKxTidfCOo8ptmP7FPDcVlgshm/e26FTujlqn9xFTlTGkWWuAPlCccRNmncIl3OmegBmj3urbnQknv7Y6WesNawsNk4gkqMIGNcQpCV2WEGG3wjTiGT2vOoEoHRm+Oiy886Ihc+Xr3SUOnu9WemXsrlZSs6iYSPmhFODRnYw4ilFsiA50SZdT7362Se5Gk9j3Dox5MCQq3Jv4okjXdk0qxglAFzF8GWKALv1QtmLPySZOhED1SUN/8jRLsgwfRg/PzQaDzIRn2vjiIjdUuXhK0DUX/GHLsDfN+PeCGx9OqvymPkgVU7EFfwho/vnKov6JJHgy3QnZZ5qPu5nwnjLWuny9pc3tb+tutZTvfp/iwZ/RfnrN+8n/YDB/je/xHZVuWaco5IeF8Zgb1WKs1qLqyyS4B8kKA8ZskjIzBa5Oartc0VTTbG+UDzlXSS+De236K49nx5YALhd2GCZK74+yODu8XBONbnMS3gwYTvS3qihiYg7hzipV3mbkclTkFAEOhSdNcBJ3dspPUbcSFEjq0PvJLb7aHUn9VRyoAC+XIQN+03YcJorEtwBWHXYDpchJMiSPsluqPnlUTBqClrLFRVhAOcMDh0+WlSFzWYKoFOXQ3+qo3j3AVvmZlw0ajWZKOluCVosAiCfrDCHzV42STTyRuJW+y5W+uFYklUZQo57Mum6/isfMsXo5nJyAvPM3MuOqKtPRO3CwCy0ru8QejcY4vIAZm2vJsV6pKoQ8OuL6anOLIT5Rb6BAsiOgFX/UYkUF5si6IU7JeNHxeuO4KvWnPZWUAAY40PFbIBAE8/fNeq9ZbWVRv+0NrngxmwK4jf0+6PQgBPRfYTLIT/6w9DjdBf7RQhTzb+xqTuVPjDaPeJJ4Kdy0WSG+8zbEoAPzvqTH7rvZzWuO5U3oBI69ruk5UGNrX0n8hsvLB0Uvpy3E6f3yETl/zeuErx1stpCOTTCLdMOdFgR+6qtPrs+xJ5q7PcWDBVOjSMJoOZNilSCz43IQF0IjwU4SZB7nwOJlHko3BiHOajddgxkHnZTWqgw5xKrz/1C0jMQ/zCgWag5eY8uRUfAMD91GdNv8LCLijjZ71VBBpcCSPZETskyrzkft/lPaX6QWz6b72DXHjOP9r1IaKqMXfSC9lZxvmeZ2lqwIwkmhT/Ah1KsRvxiNTeGH0TknciZAOQMDt/6kDR9w/LDILwNdvt34DgG/+5dFxZG2jf451pXEIDAQggKcq/TxVhLOVLuS+bHEQfyu6u7zBIoxPdpyXyzBuC4eWky+O7ES4PcTzlMOi0BalLA+U4vAGQVkSjUEY1wBva+zieIvDKQ6zOODiKIvDLw71jmenFkBgCR4h6ihvx+FjN/N6AU+JrIp1d4P9TYDxXx296cAycYbbT20WGUriRiGAGHKzZEdUlZU8CQpV6Akh5QFzC5xjIHYB7IEwJq96h8udQscI27UtPLQSsNMR7hVjoK5K0XJQPrh8koM5Bx6qAagiby+QLVUqJ0xRb1NfPsFbPVrlvLMFYBrKN1ORpQGkYWprIB/eo+zEfruBd/rDoSIIhILPv89kmUVsh4/s8aankiNaOvDOfI/+eb+ox3fkUShe5h3BywjrY8Z1jw1DK57majBzRD0TwDhX0MOC7zgFzusL5XNguzbk+RswfJlUEIfcRku5u/paLYhEozjaCG0IEgDa1aiPkPO4kL4iDB3i8PjAG8ENSv4A99SC8CF6S961e1PNDkDtgghvhXJRBO+G0q0R9KfWYUA5A3JzpXGAXl6vDo98I7LyKQy8BqxiNoYyMhnyvOXSPGWcfrjxWqqK5ZQG9CfIA3oUjyqKm6tchibMgOlVAOz3TMOx8kgc7xzoA20ELqMD21a/w4ykB/0vKeWg7OQIkmiJQKogl0iCPoFWXRYCmYPUAABL7iC5yPj4pISeqq6v1dDr0G/We6y6GjtM6+iy5rJqcD5CfSgL4116ENESiPN5DcPI7RdVFzBDgHwDTD/A74DpvRXJyzWugFRVQRZQD7QcykLA1s3oAH1rFIRE7D5KpkakQW/GBZj2+GVCwoL47ICaHOHNzasY7xsd3Vqs41cBz+/xGrTYXqajGN2V90I6TIYp0C+1sG30ozlYuiYZcTG5BSnaLbW5lPH+IZWPv9wudIOkged5kv6uUfGKq+yCb3xf7Rup9+Z7AF6FfniU+/WCuweJ7nu+tVaD+E7gia+wuHpwHmbbKwI5gs6B1RyYXr0MIckh8QRSBUA+C+P+QV5j5Cmuz8H68N/IYzCRoK5R14T5XF1tyBrQ0zQm8Qh3jDAlWnFEB5UuEXaThAfhVyGBDqwsLTqEKzGMkvJ9ItOLrm+MxkDsIsIMBDdGeDMeeYRUMMlSiuwT5vGc0fLLgPyhbPm+Me5F/QjiRhIPKRg6NoHHlof80FovTmILGKVginVJo4oWad2LY6yt2PbuIZULBZhk2YmiDzAzBvaFrVbJ+XxivAO43qO9Q6eARquzmgGBs927sgmmxSEXh3g+lqB7yPMnDQi497/AMwfUswNq5eMfFxNChtCMrRNR4D67DfSuK64nHh5ClVDG8r8csD+mgIaT/I/kTaTdyJQm+cwk7u1vTAqn/VfgC94U1yUI9gJmD2l5wRg3aH6nl8z4HKmqZny+oh3mDaxH9xz0GbSDn2xZMvkLVtoaGO+GibPCX+nZQcBRkGgReUECvUf2Ntj4KfJk7Z2utF+kpDrJ86BaM/MQYA1pUdg+nsinpDeFVU0wfvDDb5xlycoeVvt3xAUa3V30O1KdiZLoKGEF5EqB9QaRYDG9yE7B+Bzv3RNlULjIh+lhvH9CyYyEeL+YjFKgHD+Gdj6pIIE3v+BwoRfkCyMvb7lnCaxbPg5nDFWgH2R6axygjp+F2BE5MpE8S6a7XOsm6FRy9IbRMnOBVf2BAtAHkDlIjbM2YBaRHyHOgva0rB3Cg8q1nTAPMpB3gDwPLngWNc5J32kMT37nkF6+VYY4aWZSzRLQWg7tlpFGXgcoQDdAuqhdN5YGUJD1pcOAnEFvus+lNXYFRw3HgDWimsrCDvxdej0srpPRdVG+WMR6KJeAci/AkQEdkpLcFOGZAevaGXcTyZfIlIav/7d7DvFGaC4aJEeXfUDYVvuTgRYC3gU7UylD7eRYAye/G2NI14aodSikbqQN7Ywio2ABZ5G2zidt/yGo1/kbXvA4+vldRPUU0d7MroP1PLxTZYqbCdXyrQpLUsR3sNd89D3B44zHdnn+VD2L0z6wwGAdKwXA3DHqjwxZJpYFlIZUNM79hgUhB9xBgH6N+8isL5dxJ+DL6mcnH2dP6NqL8lVsXt9kNrwlo8WzAZjcTqaVYmRClY6fJVCTs4vBiEpVQm/Du0W9VMKR5OSjPzNgMyjjB5F4B0Q+OuOLkTgvibACz0fioSSuVZNnztwayqT2VtfLYgdbkn+05eaVLDCyjywK1knpmVvIT0A2OUYK3JAQ9nZ6SGafM8LvdMEzquK/TbCWubPXOy7k4uwTpfng68t+FXkZjDvMojS8NoSlSKG1SFbgbodQ+odwY2g3z/iAQNpeRSlqP1gQKPGONg/WU3iXInsC1slAOWsO8YJ4wncZBJJJzZb3qqizSGdYOeB9O8a+geJrF9QHeR42mVGB4p1sAbCEZJrDl3cxn6sc+/pTjI25Liilboo0esesbvsckOYvSmeDyIHO1AMltmY3bxPqYQr3aPj+xlXFCwkLVl4E3pz5ZDsozPynsE6kkqLP7P+R0gDkD2A8Lw9YAtojJMBdeK1IzkQrNK8erfs+1fKeZ+xBBrLV6i+I9IMV7hLje/cNPjTRAQEtrNIrRLsalDb60GLCzAFwbLVm9QGWDHCIvTOhk5j5r5fFLGuAVRDI8kHkYmhoA8bwecsdBZoTOAH8mnlcpLVg5pPbzGBoNOMIj2ldZ7aAQaCx4+9lnQTgrUwXCzcVvJiAW8MbMIcR73UNSKoB5LGI4LxLaAFwH/6ghSHZIgQcLF2dT+ioR/Sz/6DHMd4LCpuUYbeW6wXY9jMdW4aWS14nnIPu11FidwXsw36oixt/I1GS7zRIgVwoAUYD+47WwM7WeZAUziv6Y7tdRO8hlg4iGbLraBUK8jz46dLx4gXigVUpAqtSbYsCNTa5I/+y8QOBwM2S6ckNVwrX7wJBQC09GgRTxMVP8S84iLxyZrDup51IEJBb9JTDhwrOuQAnUmvPAT9EkHzHXlHdJXr7ibKTAvcDwaHA846sZBIbWZcBh26nzbYcUhoRr0WB5m5qn7EVqODYWE5MrBIy8ZB9w7/voXM01sP2LpkeTmMsy4ZWNhW5jDfklWFcONOPbaVBzhqd0qhkv9twhMl0TNP0fbV1Yy8BxJx6gGce/0BShdGGKWwyN5oEyBAEnWY6GUQHqe4JtpaEXDPe4Hn0VOP+EIOIGvmkmyZVKWd9v05VtIX+dShcrlQbJjO1FTsWM0xB++KtZRoZ6z6jaRfSWRptgV6vJQ5WI9GPzJyTGVhkeZBap1Oaq0tsFnQH7CO0SviaQU/T+W1tnXWzJPS6Buuh8r5CLnlCTYnJVTOLrAcImgEc32uCsb3QzDNxDf3IzlXomnRllsrcuEYeaxNrOHe28p5/IZB5bus0nB+M1mGr1kt81tqDHTz3mSIk7cOuXy6RMezFrQqEVYKBgecIT67Ml3qEmY2ZXgXzSnp1nOIMZ2K/HFPoCwgPjtm9LTw9cS6vCa48kxKEvWgNqxrvpDeSony6lJsFl4xVgfC8+ne1PKBfZYj2K6oxkF4mIgvRgrcHfEBpfCZSNNvvA/+r1YO8759eAQAHAQB/APs74LcrXQCsSCweqhXITA1emZeslpCMGlrGIy5R2vTnr/FXTr4HH69fzml4WUOglcnCfVIIpzNaZu7BEmNA3sm4iS+pHYWvI7/1DQjaHotHHAmYyfx3/uueRyEa+HYt48ANYJbxvdULW3l7reMAEZjR/Gf+A3+CP6fveZu74tzikGzcgzpMqleWtnKuqoWN+wT1+z1KzePj+OT8JNJbu6qWpN+e9HZr+WD4kR9MOueQftf026/qzel3NL09Uz6YSSe7bpeOkD5oNPYGrLr/0p6CuGz+AVIIuNgTxCsXS4ksq+571yxzy8Y5bJDzJgv2igtH69D6+smZbgUfcJsbnD3gEkP6YLldWcbgPh0Uq3Ppke0HDxgCnWs0AIX3X77Uly18CNhbJtZ+zM/PNHuDTFYUsTyLDbaNWkRfgwNeQL/Cy/gcrBLnaeH12z35XeC676Du7H2tvQrbSmW8Th4IBw4u3iouo2n2AawCjKP9KnhlgY14PAqDaMFIzXJwXoTwa1fuKxTWctDdIBcN7tr3+7GwAGwm37J9O3EcQOkIeL2B1lOM45K7cbKzzb1QckSRY/lNjEWYtUGTQKPAX2NNmcYZydIwnJ1AT+pPwYUf/LFkQLC6xJYyvRzurQKUJaDNUKiELH5GIG2kS7yPFg7/LRC6ncUflGM2wBNoCtBoYD0w+C8e9DmBvL7ddBsTerSd7lnpSHb3Q0LRXmJxV9Roe6lrQtbPgE6X1iwIEQ8fBFE8hH79d65hXo8hXDXnutfZMF2lPtp3Fhy2svxT8hLnuOXIsQnRD437wEaEE3S2RqTfjn+DJtV9RyvBs74AFKfk0BLXI7LrQuoFeZx1egRtJ9hpvF6KPAEpr6VfEFzlWG8LsJ0Atim/ViUmMrOAqxLFLgDxy9fe8SAHkTa3sv5i/nA0j7Y8EpFXrsTR+HzcxlmWD8x1Y5PHHM482t5Op3KX5fX4ZwdwWhKWjAVCUdCHVfntKmZWZ2KMRPpt7Qc7GxIYqb0ZqSeNcERH0Okl69RbsPHAtopksW8q29gi4Q9OVS+wNuY5o96M8kukLbJcQzJzPRHl2sbIkrpuYXuxZVj8OxvcfaCKTAUBVUl0NCMr6ryCfg0zMpzhQ4VkqhbgUJaUsWJvGxTuUQk2SLcywmOjFYYVSmkZaNvIb1tp3TC9203vttC74IORLgo0rFRdOdpSU7yS2gBvY3T/WOtI2CPQkQNtF2HWI96lSqGZJQBTS4GTEY/kygL7n7SJkmEAo/PceS8QPi3khZG5wj+lxPymF1PZAduUjLaFMDIdPwPtgnOcfcDY4Obm+ydy4DKI+Ua0qYiubM2Uayfh2qDCAgQkEAsXaI5+lT4e1TfhcRbsiHmUu3UMqezZzSzhZeHlJu3PsI+2veMV2LIE+gV8biWkSOpZTRC2De3O46w/eMd2yRIGAWdPzgzYOGVhCKTeAmXjZZ5dkfrXlnT4nPu3OxJGRAJut2qnfuhOrnWRW803FUPyADPsK7f99wTbpCZ9mztP6wdYBqddJPWd4yjOvLU1bbIIpSb8gqjqxh18TomZfSNpHC6AILCPUca7UVkneQZET6z8Shh3mR9fZfBMpHLH3Ditngg5O2CtCe32LawRHBEinyPVzU+hawB/R/msfweSf5C5EZioh2Rrd0yQHfmFMKvgLVEneMfovESmq4PxH2RzFfmDyGiN9TY/8pJBK5k1zfaqmrbbaGlQ00DbjDAl2q4yTsN4I/v9KglrmuhuGMcz2F2qB/jijCVVrOKzW5Svn2X1n7Hb4MNK4HiMT0NYqDQXwUUC/4JkuAi172hnDtDRvB6Wuhjd+g7KZvoE90ER7gznfpdsH8nuB1k7ANF61h8qg5pAZ5inREYyLW5JLqYDTnuZBlbmvNKaii2D8WDhHS4XkFF1ztTyb5pN90A2gDs++ZiINgYKBXVUcMbe2pmtc0AMPIg+dYc2870Wi+d/V1iC6PrisAE2pr7i5Tjdpp4XrCNgXHnllC/qTdyeXDHhTV3rHIPuV/E33CPB65cmCCvOnsxFVuABb5ZedwnGLpHfA/KR99XmdhTUx6lUoCT3hLFuOm9VISQK6W2KZfFGhCzg0uC8h3Xv2k4RyBkqt5WwsmPEzuNKcfH2Vspvjg2GHmEErfUVIbyVaHdyCPcO8AYgj5JtOWnFWVUZH+lQUc+HFMat2oOwGk00ixXmI5u1t6LeW9wrqTASGC8E6Vra60mZh/xPxg+Jl091zwCXU70eE70dBIgepLSD4Xoz3WUy+SHv2uUl9jWFaQCAtw+zKHgJGG89at6YucCUCFYYeUTGIcF28jBREB1+8NUNahwkufhJJ+TE2ecLmrtmB6v52YcyeU2PG1qK9zjNK92RF0+egbwc8tTW0OgOHtXSaF4E+QKOlXzVXhqS85miCx6V564tvz70taKlIpuC7I6w3gmHj/RQ2sG9WKJ9Ztg7+cc0xX7C+chMjsm0KJh7AXie6VGYDMK4JBoLV785Krkcn20lz4bYlZlheJuqgbLPbh05M+2dizmKzVp4t8LzlDyTPlOjSutj4JeBX4Vk4Bks/2Joy+bQ3L78vs9rrbFG+iXUKSRJsbuV+mNGFs6+sd+7rLDuMf1wppoKhWP0HeoCTmLMwB7omeG3SBizk0z9j0luDHBbn3vM4JROZWy+JQrRExINHfJe6B83kOJIgidHo9AfFNrvhvIlIM9pLIuAQmi38Uv2lM3I5EehNEtgQWE5N/C2rZgb+IPC6jAzB0yd3GoRXhBk95ZMSTK2H3DSn7r+or9KvZfsxZPHQghHa/pLSpWlh1Boe3vyP8XSaPQQZBn4NUGrH6xgasfketjPtX/5ooN9jkhHsSWuSE0D5nraPaXSaSqn3kOJz4+C9ZWJvGX4/iueA/zeUG2o+nBnjiP2ikm8jxT3sITPQgIxAC39nvTD9XbXHIP7gO1aPXrOMgvHGp4SphNh9TGdT1gyIZKlU+SUdM9SJ0zaubFNL/GA/PEa4vnoKAh1PGGFUijjY0GxoswWXTCP6WT+NqyuoXntYwPWYc4XmrQUekI7Og7SGvssLLpvxO8CkI89O6bYGvMbOfG301TfrPXrgOO8cKyPh9W5XhSudObRhA5oYKlpF66caxvvhOMuBGtCdsdeXQU/3n9pe9k5+VkYIfDEqSY+JOpfyMcqQN9PWxarHMbsvWQuqqkzy0s0FMfy3A7tDmfuDpe9V9bRXj/315rlzmYilfb6R1tuvsJT5JHgjH+LcrFO4Jqlulxl82w+fyTW8ijQnnXujU5mczPQn7b12Gxau5M73j8arxdjtna9Lj+1Pb4elmahoPNDfy6vUs4u9xC0dn3O1dQJqBum2X0GwgJzzzt04dXs2GxXRZfxQaXQPMcdwQge1kvp+c5LlNJoTEoqFT1ipJJZuSkrmwaqEwrErubllNwfI03pLElvl55JJeVlqnSeuM/I6gFwpL7m82kh4XhJ/++3t4TKQuEBeDjAd+uipkI5P/6NwK5a2ALwoKjydZJqUfvSKXfbdZG+ZJ7zuz21kC/uMw7yl/QJ1eEklkpq5/2DYBf8+RvzsN4QnjOP0JQNNMpMLQ3OOpp3qGsMpFWAdXYlywkIdF4bz/NxArVaU1MiS3lNbn5SXFr2ppV+vzKy+QgCkbkT9G/dLcKdN+ZF8x+Z/ylo3yPe6QC7SeDSmnz8OPc7fMKf+9cZDwF2t+oiPxSIDI6pcwDI4ZsUOHAAzutHCFCGB4C7AucoCEXVo2DIbB6FYGz6KBQsX4xCU+r9KAyMaUdhcV77KBw6uzAKj9a+jCLgmPMoIrZljCJh3eppUq5o6VFkjL+iURSl37oLBlVB7hYnadJtkWmDeAmysAjw8InhWKRJEy9ZHBabVOvow9FJlozFn8FvvOC42ZM4mXLEiaXPLU2WNCwB0VITCBcfmxYYL1uy6Czmw/NeOiULn8kurDJNS54e3nAzTyllTXd8IIjHzEYbpEnFKp/XgfVSOO2mINM6iyV+nxSPnAb6IOS6ButZRAoJyUjVFarL7YTTK8t60bKXhQQbpJK4h6b/jw6HFB2Jbll1smAhsxZiRacQNJmExfrWczLtkoZleov0KGTpeCjrj0+qGcXRZMa/fFCcaCkRgDnJUptei5U7vD7Vq/VlUciKJy1xmzmwVV8T9FP66qTlDhhoElc04GM9Bplt7ZXD2YWRVWfTeSZNgAQap83SuCgEPr5eb6KSx4nbWpsNnAMnAmOhb/FYnpmVWoK4zEk3nmhPxfbUou3ObM6NlB7nw/6Jw4Hi9YAItDkQI1tAE+VQRM0sBDrCeVKIrVp/hYVzd45wE8CVjzUCwqEO/Plz4F1zszqv4HlPsRj4ONwZonCKlQsgtRAyaw5u91B2usEGYnTmpbZZOnC9cdGdkYEWKUCusAPE+WMfJ47SLHZjQcrTI9ML6xJ6fRLwCISArYDoBQ9mF09xN7IhFAYMC+7xppB1JLNWkKjOySum6scZtAiQh4CTran1q2E0WgtWcY20jlU+3Tx5fViuZPr4XPEMSG/G0+RqLzaY7ftoNT5oZQ8BYgj5KCFArkkA2UIGZNx8Kaml5xwYZbBw8AiIipOwxqPCgSMnpUg4UmX0zMA54knFH6gwa69ifPK+lJ4PGuwPBuxRFiyEA4eCB4XajIYAatT5zSJ/OKvBcx0axVinVKxucTp1ealHrxc+W6/fK69dFe87h70xYFCCr+YVSbRBkhTJUp2WJkO6TBtly5Jjky8222qLbXJtd9sZO+TZaZc5C+6GCJH0/z1BvEcsNdDAAvcBAqh8EEHGGJKPQ9DBxDFOcY5LsHENLm7esowCEOPtf+/4xDd+8U9AAhOU4IQk1DuNPRvjWDjeKycxhBCTZMJknEIOJdTQQg8jzLCyKQJGSac7/hFGFHEkkSYlqZFF7j8rTJlOWJTijXEmnI3LHdhKUye/RO/eeIJ7A4GA5clxEb8xV6XBU52ayjqbMboAWVNnbQ6fwevNLwBCMMLhGOOCSYpmYFbSQaZHnESyks6p6RYrScsg5NjrB+GoY5zG51CO+Wpca8PTM4x087JSv5ramjl2XgEgnmqYRanxApJqj2E5XhAl2V0lHa+7TCMs7OT0fGWVVECsEthsqvPKsqp9piEfsYOXjqOAi6DZorlAdlxnYUX6m0WGyXAzhOKkTcZgcXgCESCRQQo1USJFFpvD5fHJKF2jJ4UuuNNwlNpDgECYr6CdkWwX6rmU9nw+uFcozVXq0HrB0kpjrdVBdPRAEAMYwgiFwRFIJhQzmsXt8Thml79uLA7PQ+Dl4xcQFBIWERUTl5CUMmxEWsZoSUZTzZozfexaAqg+xjCMwjhMwjQLOyzCMqzCOmzCNuyq9AVC5cfyRCqTK+h6gvVj+CS9YZLZMrUtvy8aiT2d2iU+AASBIVCY/+NIEoXGYFkHnlcEIolModLoDCaLzeHy+AKhSCyRyuQKpUqt0er0GoCIBzI2OOAOTxhY4AwhWMAK1jBgB+ewhwMc4QQ3cAcP8AQv+K2YpGXfv71xtAi+sVdqC0srjbVWBwGAIDAECoMjkCg0BssJ+Y+rFCqNzmCy2Bwujy8QisQSqUyuUKrUGq1ObzCazBarze5wukzp9nh9fAFAEBgChcERSBQag8XhCUQSmUKl0RlMFpvD5fG1goWWKrUGp+BZ2RuMJrPFamNrZ+/g6OTs4goAgsAQsoJlJMozGOBZ8xCINl+mUGl0BpPF5nB5fMaCnUmkMrlCqVJrtKAFD+QGIMKEMi5oC/5DAUOrUTXdMC3bIaTTZYZAotAYLA5PIAIkMkih0ugMJovN4fL4AqFILJHK5AqluUptYWmlsdbqIACEYATFcIKkaIbleEGUZEXVdMO0bMf1/CCM4iTN8qKs6qbt+mGc5mXd9uO87uf9fAEQghEUwwmSohmW4wVRkhVV0w3Tsh3X84MwipPUaFRW66bt+mGc5mXdbHf7w/F0vlyBWJHahBEUw4nnicSwHC+Ikqyomm6Ylu24nh+EUZykWa5I/+x03bRd3wCJRc0j+5h2cQEogxGT2WK12R1Ol9vLDIFEoTFYHJ5ABEhkkEKl0RlMFpvD5fEFQpFYIpXJFUpzldrC0kpjrdVBdPRAEAMYwgiFwRFIJhQzmoWVDcPOwcnFjcXheQi8fPwCgkLCIqJi4hKSUoaNSMsYNSZr3IRJU6bNmDVn3oJFSwAgCAyBwuAIJAqNweLwBCKJTKHS6Awmi83h8vgCoUgskcrkCqVKrdHq9AajSR7hq/PZxRUABIEhUBgcgUQ5JDyQVRqdwWSxOVyeSMIDNVcoVWqNVqfXANRJeLmuG6b1IwogN42HF+gMJoV8/Cw2B5gl/HBRrlCq1BqtjqIZ9liSxeZweXyBUCSWSGVyhdJcpbawtNJYo1kG25Z07fMJCImISUilSBVuSbe6SmnSZVDJJwTrlnSXfXoFChUpZlCiVJlyFSpVSSg8ORQGRyBRaAy35ee3SCJTqDQ6g92yM5ZguAQ0nXCrrdZodQSX29va2Ts4Ojm7iLikW30IDIHCJBW+puAJRBKZQqXRGUwWm8PlUV3OQKXWaHV6DUAtl1MIFVeYNakbpvV4cADdHuPljayPr+Pn7+cSribp5ZPi8AQiQCKDtJdFhp0vY6FKK+ALhCkqrYRCaR6V0jq0OggABIFLUoKOlOA6gMZgcXgCkUTeTFUancFksTlcHl+Avk0tZlMrIVcoq096iRlNZovVZnc4XW5P+EjTQOB+kXY6AolCY7A4PIFIIlOoNDqDyWJzuDy+QCgSS6QyOUWsNzq1RqvTG4wms8VqY2tn7+Do5OziCgCCglzaDkgUGoPF4QlEEplCpdEZTBabw+XxBUJM0hsgkcrkCqVKrdFluN00ABEmlHEhdcO0rpMB1OkNRpMZIRWVnxtpaSwt6R0sGoPF4QlEgEQGKVQancFksTlcHl8gFIklUplcItY6NdZaHSSVNdtdKP0FJEmSJEmSJEmSgoTwLFcoVdknSd81gmI4QVI0w3K8RqvTG4wACMEIwbJiN5wRNcct5oZRs96hSZrlyqJCq7ppQUZ1ZhineVk3293eXJTS6Xy5AiBoTLqGKJFDnnYa9ZjheEGUxDVbvO3PKE7SLC/KqsbX7ENiolHPVOaRfThs/nn2s0XGku24HqBSIGAQUDBwCEgoaBhlsHDwCIhIyCioaOgYmFjYOLh4+ASERMQkpGTkFJRUyqlpaOnogSAGMIQRCoMjkEwoZjQLKxuGnYOTixuLw/MQePn4BQSFhEVExcQlJKUMG5GWMWpM1rgJk6ZMmzFrzrwFi5YAQBAYAoXBEUgUGoPF4QlEEplCpdEZTBabw+XxS2Iql0g7ZPIVSlUbS1RUVHQfuI4ms8VqY2tn7+Do5OziCgCCwBAoDI5AotAYLA5PIJLIFCqNzmCy2ByuoCpRFs6SMZulu4nfJ2j9US20miiqN6patevMCJKiGZbjBRFIMlRUTa+XSR8yU/00qyqrehFfU2izbrsMmZKDEIygGE6QV0Az8TheECW5VwMqTqdyEGHZjttnU18GYRQnaZYXZVU3bdcP4zQva9VMm36c1/28ny8AQjCSMRNdJUUz/KsgdKZhogSxM4HpKs5Mwiml43p+EEaxuCkgS6UpSobDlF7mVPAwTnMUTnNstrt93U3ll2uzTRzUblMHUAwnSIpm2A3kBVEySVErbHKaVspN+a4YOIb7G3ziJM3yoqzqpu36Bkgsah7Zx1x2i4HR2+bjK3aH01I/f5fbMyNIimZYjhdEIMlQUTXdMC3bcT0/CKM4SbO8KOdVvViumnXbIQCEYATFcIKkaIbleEGUZEXVdMO0bMf1/CCM4iTN8qKs6qbt+mGc5mXd9uO87uf9fAlN9YRmWI4XRElWVE03EHzJbcf1fE7VdK+YOEmzvCirumm7fhgtkm237W5/OJ7OlysAQjCCYjhBUjTDcrwgSoDOSBVcj+Wb1ADBajg6PmqjidrgLC9Kg9XU0PFdqU+ZARKLmkd252PkqkaG2RdWfFjDbOahjT51GoFEoTFYHJ5ABEjwvrBido3OYLL4fTk9PgUytYhNLEjWWRNE/rRMjTVOqj3Ff4DBEUimVqD+IhuGnYOTixuLw/MQePn4U3OywhFAySsTTUBlgL8WY7KEv8zU+rM7AewpOAJZwtNNDLbrpqskcs5OfzMancFksTlcHl8gFIklUplcoVSpNVqd3mA0mS1WG1s7ewdHJ2cXVx/6yMfuuncefVtb/5rS5A8iFI+PC352GehrGSK2+nNNS0YABr2RJOtNiNGImAXOSlNIM8XmLS2cxyGPfqPIpshN/oE2rSxrwg6fhHmVK7SPq/jd2nmYqj2JUrxhK9ELABDahz2ur6QcmoiCGgaO6MUKaLAWZuC/dbH1RdgNtp6TgVucELHv84cdd9g/sSttgf7xQbxPMTmP8dORvbqAYl/iUoG9wF9s9ocGG3EQH2qUfMfGjvxjW95ikzEputzjk6m5Vj3uGjSZmx7Pt05B9jsLT0HzugZfPITJidLcCor4lIsKLNex0/X3d4MHmgIACuQaNGBx9fl/qaufx2DLvE12rootDX5IDQ9OjeVeUMQfGvzk8+O6eC6buLg4xWLH/a3XjCY1LHytnEEShRAoQEThi0VFRZ9tkTQ2VaFJRBwpViJL4g5/9qdh+Du0NPiHdv66xn/E4+FaoNIz+3DimRrKTW0GxyTT7GUDz4trTHYamiGmcOEg+/nNNKdnP1cV+vpRAS2Gl13s8ssyUxZoP558tFKHUp6k/F5QnYjbc38qrxXBtsK6LFzmnG18aJ/tYluOjwpY/rM/g7Zmu7W+unGW8m1Ze/BH/iKAA/TyawGba+hoRpR28an195fONmdpLtJ8IZH+J5obgofP6Ilha8HLzESRJ8DNR5C7/LZXi/hppdwrw8aVts65WQobEoIeQIDrB/NsWcCmiskynah63n5L4CPXAFIiLd3nCpsP//Q0JM2MhHV7gkGOOL5PUNSvpColFDuEF+Kl/iWxNSO3FLfRqVx8xj0GfNQxOgoBiPupiDChjIvINICVGoqohg4RmQQQEcq4iEwGiDChjIvIFIAIE8q46ML45GaMseZAECaUcRGZARBhQhkXkZkAESaUdTp0Amqu+qQQYUIZF5ELHejUTYXfQOlbn6auY+eOPZ465ecexZ9m7DPNz9jUb/C3K7N0pAhMOw/ik5DL9l1zy6RKqm6q/robhyvL7hKXGd19Vnf07Nltw4xRBeWt6O3rFPzWoZi2a1hywUuHh5cnJNEfR05ZM1c7p3P7bunafY0x+QoOazrI8qlbDXcn0VzdwshyuZvebyq7FJMeY/q9tmn3+NpoMahdZ18Mw11Rtt/GL3rxYoMLuyzKEwWACBPKuJAKNuhz795LkQeDPQf44E3qeZsXgQb2Dh6feGMAxftr9Jgv6OpzGRG3/GIgOcRp3rhYsIQEgNlWdtRKWQ0RJpRxIZU21uV9dABEmFDGhVTaWJfXAIiEVNpYl9ckTCjjQiptrMtrAUSYUMaFVNpYl9cGiDChjAuptLEurwMQYUIZF1JpY11eFyDChDIupNLGurweQIQJZVxIpY11eX0AESaUcSGVNtZt76QAEGFCGRdSaWNdXhEgOvIZrwAiTCjjQiptrMtrA0SYUMaFVNpYl9cBiDChjAuptLEurwsQYUIZF1JpY11eDyDChDIupNLGurw+gIQyLsIlMzZbqn90dgM/wuZAJGiHw03EkB9CFiTKDZyjQejPmTohhEZpDvoT0CtNoNnc7x8WwjQoacSLP8goen/3N3b7Dyl1Go2Yew43ACJMKONCKm2sy2sCxIQyLqTSxrq8FmFCGRdSaWNza8cPIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCG8AJe3dvgQQgghhBBCCCEc3NFDCCGEEA7tuBFCCCGEEEIIIYQuJESYUMaNdXklgAgTyriQShvr8soAESaUCam0sS6vAhBhQhkXUmljXV4VIMKEMi6kdnk1gAgTyviLOPN8XUbhL9vSkjHGGOecc/7d7cPl4JuyxXzZJ5hU2liXt/asCCGEEEIIIYQQQhcAESa/K+RPrsu12lRBnC+HpYCUUkoppVJ/FKFqTTHgvTDL//q5JJRi++ws2WVbsrEDlVJKqUNfM4gwoYwLqbR1eR2ACBMqlDbW5XUBIkwo43k9gAgTyriQShvrFg7vGhARyriQShvrvsL9PmWLV+mfy0Cv8WUX6nGmShub6wL+Jd/45/B3ZzH5BKTSxrq8HgT7ACJMKONCKm2s20/vlTbb3lm4AUSYUMaFVNpYl1cEiDChjAuptLEurwQQYUIZF1JpY11eGSDChDIupNLGurwKQIQJZVxIpY11eVWACBPKuJBKG+vyagARJpRxIZU21uXVASJMKONCKm2sy2sARJhQxoVU2liX1wSIMKGMC6m0sS6vBRBhQhkXUmljXV4bIMKEMi6k0sa6/eocGgahjAuptLEurwgQYUIZF1JpY11eCSDChDIupNLGurwyQIQJZVxIpU22AhBhQhkXUmljXV4VIMKEMi6k0sa6vBpAhAllXEiljXV5dYAIE8q4kEob6/LWtto555xzzjnnnHPOOefczwcAiDChjAuptLEurwgQYUKFVNpkSwARJpRxIZU21uWVASJMKONCKm2sy6sARJhQIZU22SpAhAllXGqbVwOIMKGMC6m0sS6vDhBhQhkXUmmTbQBEmFDGhVTaWJfXBIgwoYwLqbSxLq8FEGFCGRdSaWNdXhsgwoRxIZU21uV1ACJMGBdSaWNdXhcgwowLqbR1eT2ACBPKuJBKG+vy+ggTxoVU2ti53HwzsC6vSCyvVNpYl1eWHK2VNtbl1YElmwARjrQAIsqEtC6vDRBhQpP3HzxC9MrmqhxJnMYAIkwo40IqbbJ1RJhQtvk6BftcDiGVNtbllSDYCKn07l/NYyLqMZzMIvNgqBysjoABAln+Ec7nRmCQPWQ4DexxeJrwxIlnwG18GpIkLKelakmZlEmZlEmZlAl54dE26SZJEicZ6SSfRmLl03TdiT4go5+KJAPTNBPVST+NxllGPgHhO5rCof3H2gtO3ZnYJd44Pp3swivEspO/Bb0nCxO/oUXMJ1GpHx3TqcGoYkea+ly6LgWPTC007EhHcm6VtqipRnhVw+us4voxVPlhx3RntHWMBNSUwxoHHoYlAB005KUhrFoWSxhs+e2bGMwRRhkX0uWVACJMKKPO/Ev+reKPIeD+/R/2AnQyW72tL5085xlU7Z7BfzaNB7Q1xC4RGYNQJlcmwoQyuQogwoQyuSogwoQyuRoQJpTJ1VPbRT8GABGWneSRHwuACBNKm2wbIMJE0hkM80BycViC873o87PfRlvj9jHF+sHHB0jkmPf69OztwWdKdHPfPgZ0+Jf/Uitd++wHqOEPB5pUoEPt9HVREhh/3z7ZdfX5sWHyrMZVXBxTPHf5gulDj41n36uxSXj9febmsyw0Q0J8nTa3R1/FpEndQl0GXrtp491pFygJB56vbUOLTq+0Nswol9rmlQFiyqW2eRXElEtt86qIKZfa5tWQcqltXh0RJpRxoUxeAzHluUke+bEQmPLktJM2R/U26bzkxx4JjEmbcZCYksZtBoXEyB1Q/10hN13EzzMJ7EUQDLkb+2BRgXwWmrfpL5jZi8s+Fj1GrGlTiHmyr+VjuJIDDwAQzF+ZIAdK8gQMvbt7Mvtqac54IIBokJmxgvEWlv94ds6s29x+1XxzMe1612eTVSlqC/LCBfTmVVcxpOELKuynaOw0KUzKUn2lI0K73KJB2zD01EsZJH+mewiGYGH9j+fmzIVl1K0btzJRB3CeL8irGJA/6i1EYTWqH+AWjUpHMIoBHiJsfNxD1QGRQ68kC5t5RxsLWxrTWtg16k6tqgvRbaYLpNfJqfLBfpzN6w1cVTV5HVIMXcNAYWLmP4/njD3VHCIxPGTk0GFwsn2xA4KeByE5tHql7i8tIEvEhuV7wdJ0NyJavP8WDjz1wF0PgYkZDFSljq7qmODDESIlnJh4WTko+6ujW6Y5GRjG+LwIRJ1EhdI2k3wwkKHUsgRjJCJDiZ1BcLC0TQBJL2UR540WTnb1oC/Ki5kiUzAZmAy9Zc4WTzFLZBku3lqy51XIvg6dDbWuJyW5mKR3FiqCj/fxOdPGuv0UQShzwzN2KM0YY4wxxhhjjDF2IRFhQmUagAgTyuSagAgTe5jJadjjO+MEQIQJZXwPY4hHwaW28wDxKLjUdh7gMCiXehYQj4JLbfOaiCmXWsz7By9fkJmM2e9+q4S4yoXB6NyUDAxI2Ghe4IDAjaPzoVvAxY4/onld7KbOhe56wT54wA86nGRidAZ1RNNAY4xwnT7fsAYIMT+q234ax30KxK9n/UF/yjk21c4SvURv0Xv0EflR7ZvplY3+pd10T5lpUQqC8BGVY2CAlF11NwYIKBg+ieBaSoBv2ZMirJWyseGrdFi6Do6loE7q2BNt5Am+G5QElEttt3dqBogwoYwLqbSxLq8CEGFCGRdSaWNdXhUgwoQyLmRq7ErGIa/BuJBK76dlgY8vsMuYgXXfivMgZ5Qa7OQPbPprzOT/u9NkuegzN7QvUlr8jz14+y/rvSL+3+INteUbbh/C14fO+uX/WJHD+RaHKQ9VcH0iXWmAONz9IA9rV+34YEUc7vIwF+wJx6zNhjiabyMYogJiGSKARZSBEGF/GKICYhkigEWUgRAfAvcbXhzQeC+TVZVxIRWAG50gACJMKOMiWSFj6R7T2jdNFwD/p4URAoRSsT2gCSfGIRNhhxBfDA8AGjqA9//jz/7ZIFcR+ET6Wd3tV6dJS6VjBGjSZEyuZTFRmuZUZLBATAUUSMsmeleOz5+ZTqHTQdXZAOXTUXxS40G9y+vutDNHfZ1NWACJBYSTn3etlgjHwgSPwcFIL8ctaoY/eBYQ1hICuo56qX5s03U8wNIZeSdvHowMQOgINwBgUSPCY4Zf1EIBxV+mhB/9y3/5z0AuQJmwCeUDPG5liFS8IsU6JgrBOm2Kn8M1W+I0ztWvWxjyKgq61RnxGxE7HgYLJ57ONr/YGfYnCXGy4hQGu38/WvK235jxAGU6BPDR9lUH9qJsEOq2mQ7FjgM62ZCd4t4447IVqo4QKIZjPnPfuZvSihGXOqk7X8YH8cwhQK9Ifg7xTK+7jg16uRNx7Dz29KOfC68kHmnKEfQdEqO1cb5OYDOq2/SiKjydzV5Zhd7VCG4CJuJ+G/4rphpWhj7r7oduGxkCWroc0ahE3MeOHpJQGaUziEmZe51jA5z3gKKUkOAhxriQew4KZrKt4hPQc5lhHq20KIl0Sla9CRfjfJzAoYlliZiLzArxH24+bv+w4/RjvRFXH++ZlDcMv1Zmt2wfwczcrHzzI/bj0T/6eMqXc98yyAwMEAxYiOO2QiocH/OCkaeiJXNvPobBH2qjj2kMl0vxRhD/kzwIfl7x+71XuUy2zup4VDsax4Fl4obskz9MEH2pya/W2zvPvQf3Gv5YkCP/7nISxD+eElnVGjO8AjhWISEIgiAkRVEUxXS5XC5Pr2ptnaGSIKZXMgEc61g02QNBAMZJLyVJkiSlJEmSpESTGSdJAMcqpKCGJIjphUwSW8c95IgQRfGISJfL5fLTd+jc1hknSQDHNCVJkiQlBEEAGumlTALGOqbDG5KQbfpdVltnqCSAY5qSJEmSEoIgCEISbEiCmF6XScJ6LvsF9PlH0xtSr4sdc44sRyvL0zKuEOzm331J35k9v29x3poW1ZRd67tP8Wvui3y41HJPccz02wXNy36ZyysCRJhQxoVU2liXF2qV4OcvULFM9Bfc1Kn9/1/9pcFUgICon46VNTOa+per7NQ68THO/zki58AcYZQLqbSxLq8MEOFtWPnpH/uY/sNfmXEFqi8W0E/lT8Zh4ad2A8/Kd/KZH5OuBokmlUUxxhjjg1wzyLhYhBBCCDnoNSDChDIupNLGurwaQIkpfUkxcv2RffOhSX+2RBaldO/Y9EEQRDmffFQH76Q2D5+jcZ3flSM8IKu8kIXnAVc8dFJntbD5rKi4Vu8WSkOpirl3VnC5wJd8WVDPqCn7Rvzb8u1oj4/nXFDpZ7I3lyKvixTzDI9kN359qHV9qtOfLi3fICdWA9MMIkwo40IqbbY97bmQShvr8voAIkyoNsc90x5AhAllXEiljXV5fQARJpRxIZU21h3fRfQK7jfiYpIobYR21pTElYI/PfvhjH/z/3/2N/GMont2Xwo+YarAS8NZwSb6YT7Gaz0i4zuh/6OiXJqz94NUot3LXFN6RK4BhOJDLi89VnYJ5ae1RVvUeqJdZf9n1wRom8bERDHZ9CTBhLK9wEzeRxdQxoVU2szCrZVZul0WgCuVfNxmLq+HS+f9VULW2v3VY4xJVMZr80fG5cH+51/d3KGamU3FGOXMxaeZFgvBA7HuFHoDobfzpMZ4Sm84gFmceBk4nNZbPy64vh9zJjKNYWBwVKyhsiLYfFYGCgj01fyLs/GL3/zT310Pq/oGFjOlgiYOAECIMKGMC6m0sS6vCBBhQhNZl0Vs4PFO6LxGcDNOKf7ThJUoYGfu1gzYS16cuPfvNdJuCpzOhgc6GfzaOHrt5HZKR1Vul3Rmi5jqA4+r78S1nlWUiregpTVeCN1/ybpB+eVA9Lm4hj3LXqWVL12i49aNPXjwmlBYoJH9vR6il4Pzm1JY+Du4qVN4KUI3c7LO25JDFeTgfH2l5tNt/e5KKUCtXHo3oA7uumxPr5tQp3VMqXtKZ7eoyRl4ks47/VFw3en/VBP8Fn6zGzlfGgA="},function(e,t){e.exports="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"},function(e,t){e.exports="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"},function(e,t){e.exports="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"},function(e,t){e.exports="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"},function(e,t){e.exports="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"},function(e,t){e.exports="d09GMgABAAAAAHlYABEAAAAA+dgAAHj1AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjIbjRYcgyQGYACHHghGCZMREQgKg4IkgrtKC4cEAAE2AiQDjgQEIAWVeAeVNgyBEBvO0QfGuBve7QAEqfQ/dI1E5HZAqMrPO8wO1LBxAIK2NxX//6ckHWM40DZQym7/AyGSEWHCCEmFGZkJJVKZs85rTJzOqYhFjKGLJTN540Nvg1aWln4hcfm739ObvcNbl7qJzWRLyO4Hd32dQPwcGlmCotUBVsPpFeQRPMx61v4Ke7P+816YR6yXXqkx3Jcu2e80l92l2sOJfO1nDmQ4A2FUak93ERi38FFz6tWE/+/l/mutfR8awMeAeMMIVgQqkhFOTdY9IRy1zvD82nw/Lv7/d/9+XSZ39MEdkXdEtIqkiiiS2qAYETNQ7E0Udbo5x1Sslbl2s7a5ucCo5fB06r93l1zBX+lnctbO6ZwiKRx6cwVMSjuRhRFQcC61cijxiDz9cwS/O/P+vrWIdbzAoyj2IklgFUjTP2DBbdtrEAAlhN3/2bRyp1K6e8cZUHrvgoSCSLaWPXuEIWD9u6wqpe4qkaXurgaRbREMyB6igoHwKACGnSokGHDAgUBx+C7W/kn/8cpDnaa5y6St7IamPgVINVCJzpJin0EyxqV1eevbb7dfEtLM7+0hOyFjw4YC3jwUSsRC2/+sKBXYZsIilkPsS7B8tyyaPCtqijpdNTn0/3+n9n927985v5KOwBCQLUOgkMSBSYEyBIJOPfdmerPe5K11Efojvfcn/Tq2E4faMYfaEJZTHBQ8IEBhMhtgD5XDw+vUHKmIFPJJi9j72NTuGqgbFhdFJ34x/PPuVaOkUzahAdAnsKwAzclCiC59j/5I2Qt6AJKByuSvDlbay6ne5Yc24AEwF0BrFkBa1MpzSm0pVIw8ss0QExqaqDa4mWwv7X+/1KT79v031rrM+F/T+VA2MzubUlGoxFIqgmHW35V0b/9+N30Xea3I10pRqu20SkuDoaUXlsBMYKUHj8BjYQEAJVDRstmavn3CKk5iUSiBFf95L0RFCFklY1AKoU8RFcbx96aa7S6YgIukHEMld7qiy6F0iK2n//v+3/Q/VlzsAtJiAUjgQrohFpQPWFIBAGUTAKVLKZSO5IIXCDnwyEuRcsipDrF2n6fXXMVzJbu6cVfm1Pau2itKh9TH1DYuSsP/LqJ9xcSZPUeSfLk3X3qfBq4/19GjFMmCSCZBRDIXSrftd8dl/pfMEhUNUTOYaA/H99e//bSG1G1NUWkKAvpoa3bu48cDkyxj6tyw3T19nmoVeTcC3bkQwIRvOYIvMIgs5aBWuB/Y8w5BQAH8nCA/+jjSiKCD3bOKgNHJrfVNYPYZY9snASJnglLxjp6ahE8/sZVE94euAaMCQAqU8VHsL91DRW++akSz8pXIljZXIHnbAxMYPhwW5+bhrD/yQACYM35msJoR1ZXcJ7cw1zy95ltgoXNeeJVkoO7KdhWRhzyGYwIn33kU6q6ey3hN4l3YZ2RfYz+Y5swYmCkwC2ADh7kJTnFFC2f5fFl1bTe5LvPNFd9LcB8ewEN+DLzmt6z6uF/5Wvg7/HfJlX/gRoPmS0/sM/mqrxQC7otVF5SCHJSsldiIH7QGneDm8JYjgRiIgyzIhbxVE0o6EZgELdy+4k7jQ8BheHvVkbrgAHCUj7VwHE7wSZlPF34Pfh8+06qB9oRAOIBIM/bBcHSfTXEi6hOHAg7DEeeopy/4QyCEOC4lc6h31dddIyoiYNiYT2QpiUqeYdAEzc7kow7DXcWlfFMe4fVHi4EN7E52rPLIgo2JcHBLKZ89MWyA+kT6Gd/gO/wgP+2rY2tVcNRjvWGW5x8k64iwA3jkwlPwArwG78BH8MXi73xz/Jf8rEaTDn1e+icwVIe60AhwHuAQ4BqA6wFuArgV4A6AA6kA95EmRxHAU9xrkBHGuQDgza4BeD/ABwA+BvAZgC8BfAPgewA/AfwK9L9mAPGwU4DqIkVliP+rQy6DdpZ1uKW+eT97XCTJZZM1LEVUJZPn0M6FdjU6xCERbWVhZrqaNX7v230k52rsOcuzGZRf5tfx6l7j5vZ1Pgt2o8YEOtEgamKIHyZHsIOr+iZLf170uZL8jzm+r5wXyfE++I++RevPCvU26F6affPZ1ek9Pcd8+L+zY8GGHQe++OFPAIEE4cRNGOFEEEUMsSRx5IzKhTsPXrz5oaFjYGLh4Eqz37Pk+xgYSKZyAJOBiAMiCSQDJA+kBKQKpAZkHMgkkHaQ6SDdANcC3AxwJ4ie/HlGpXwrb+SyPJQ786OcmjGZUJw+aHAzNyPcmKVr+9Qt8GhMprOabujhjoS2xY6qr1ZqO3rGqY1jgfqiS9GVk0P4JV1KjAFf4qggsVeasy77pslITHu0LHXZ9ad8jAAbbiyEY8MPBCEUMu+BkIKei8AU5QIwKaz+awDXdS6sJuG8Wx3KrYpayItIg9lHkaHDgi/BloOQziPKyyrXnAY+cCkryBkunNLp8nBZZ1zhti5YsnWRj2I8NXcYZRoeZkl50LgpHhEcKm/YvD8A3JT5uZGV5apKuKILdjivwrBGjIuwgLFTaMpWd+XJx6FBPecqeIC8lyUAbrt8Ez9nKwpA62IIDkUA6DwE+PAn4HDH6+7zS0Eh2IKwHAdfr2jAzTE8xF0N5/DSyAHbIADQ3tkCIOC7Ow1t3ahhv2EGtsCDMjsxFvg4/8Pzu7bMPMil3jkU1UYX3oNFDrr5uoe6QZtxwvyhjYa2GRoYWgzTDIsNF4yzhw8wjjYpl+P+/x8YYmdW+mv+ikLq0hf71QGkh86fJOu6dXnVgM0YwRDcena7ofuc+xsrTcxy8HPXrzsHKObgwMz+UckSNfMIwKofpy88r6Gz4WaOz9EALPm53qV+W71pvVG97t3/6kLrnOq2gqNdrmInV7IZV7kJ9QHvj7vzJdxFvgKFe3icYiWGWqfqn+wCI4wEeLHRxgC8zDh7tuxKd17Mw+RbPeJu99jvXvfBjyZW1BIKCXZy9EfM72sP1jM+QjBwCESIIZFAQcPAwiFFhhwFSlSo0aBFhx4DRkyYsWDFhk8+cnBsCCEUV05yZOjo7VTFEY/HVttsR+YQbu2WoNpzu78P3xzV7G1PHj4BIbCC/zUWW2qtTbbbrc8ee/Xb54BDDjrsbUe8Y8BRg0447qRT3nXG+z5wNnMIICG1I/FMdUKLXTlAp50A19sCcD4AnCzUkZ0har1v/p4etfY6HVXf/EzRSaBGgvk2houx48pj9c5x9yX5OFFJcZO9zvf0TN/NtEQaYyK9lplnuSVWWmW1FdbbAHC3bd6y1bMUyMA/vvpJIyJM6fpglpt7sz81bfX3u41zo/5b2H0YvznW1K5U7sXk/8DVHOZQmiJPvvrhRwAaHhNPCBiBQzPR9Jmof0lOndQyMO+EXdinxwQUsRRxt0eElxHttX23CQYf0mAyhp5igroEQDwlWU8NBCleVRhhdba8LwRWo/1BGKdOTxjYBFEtI7/P40mC/RjJh25xzgg9PBGoo8cYNd4rov1BT0i2dMKfiWr4DxBrwWWs5qd8IuXMklra8JynPRUdxj0O4BEKCvj4t2KdOYrG62/7CgJeLuyO1okuwyYfUOs17ENCPsgbsuSCpifAtAkLzcpNNT8x0rQFPWv0/V6PHv3Wiagt3+DxRIjGK52Q2lcaDGcNNC33ug/iZYxGHGcHw4PHR8B/NLy+dryr+UmCGZVqEhb0SwL7F6kJZG93KP7qTx3R8WnaP39sxIWIXS1GA1VeBlH9M6FnJG5GQMIaG3Yw/GtCTQURPUkNCsxE/WZdQns/wJZOb08xuRABD6rRS7C4z23ivj960x0Z7tcGAqsbhEiw6iERo3eRaKD0izTFBwPudULPP+KahErYxYpfi0tj82O5bZ4SNFA3B5VCFWjBMEJghcKJh1R8ZBIglxCFsPdQgkJTwFTWMfUQoRGMVgg6oejFwyA+RgkwSYhZWHYZCxCAoFhjYab4gXUV2boVFSgplhNN6DYExYKybM/FB8A2rPlYallW1OLUZImzO512q97bJn2WZuPZSJhj1LU7ZHyB1yrpfnDhE2oRmB9QkwTN379n79Z7XW6+wj7y9AcCtuWwCMhof5wC0C0Fz0CSLkIc2pYMQoND8y46sgkidLp365KNFrcgDSTEL0mMfaBAY/6RZzAImkQ14o7ID+WPxzUwAqFGTK3PGUUnyCEaI6kNVgfTkp7T9Asez7ZI7aZZ0WJ454RENbNEdOt0ye4o+zKJVkPAzCMlwjJyghQpAjT7rzCN7gWBUZJulWVRCrlFWN+wwFjGgSpSVaLZgHGelkoYCsugItMhQppP5USdiXXMM0QrFXqMl5ClYbnbFNpFYYwGZcvBIGBy5jICh2iwjYrBKXUI6kSXHimkkI2oqhbehVvSh2p30Y1E29IIJup+x/YSX9ARNzwmKNlfD0NLOyNYW2dJz7eu2YR53G0L38DJ7kSw1CY840gw2HgrUWOP06phHGb4gGrEvoAoO9pudEbDoiWBQ6A1JXBMl7kaMYjZe3d0n71xGzIgKwTsqYMui5u+mDN1aOzIJV0DcTGnR1FleXxkFp83wqbtgY+EueGC/3ItnnPvkwZEahgAIcGYBL2R+BFobio6bFXz0yZt0hPnapgoPEh+0gOQJ0tC9sqKUGMK1oTOK+uFISZjozB5ZbOwxORsFTavbBeOmKKdwuWV3cITk7VX+LyyX85EPMp/IMTY6ei6ZiBsj8ZYONUtkMWCRTC2CuVQ40KpdaFZHVoE9ZXrGw3ORaNzMc65GD/vZoJz0+TcTHTuutn/PhbWDyCWvKlJ/ToAQAD6///Jt/Xoo2RupbuOCfaFJNGCuMqInjP4jjA4VHjH8htmDRFJBUAfDpavZNcQlkjjj4ZQNQC31H5RpJ/cqEEbkatUUSnRAgcgITQARiAMohI6tHREbkXXPfr/gNrgXyCxG17DfgG07cUmvP8NB3/AcHvH/zAIOGApeZfsHFg2rNHgsqtYH7TceDW7iN5VniWoqnLZXwErhES6sxfnypjXltkDRBYsEidoJvovXEyp/GhBBnx4FOAbRx7AAGqURCqYIp7IFS4mqFgJJdOHQXoZQ+oghSwkPDGE79VJAs0ixsrISJVSqXLjE5kiUk9Qbr2kvCC52uifGTrHyzAOltPSVGxeVFJKRpk31qqDIJOSM0vcTKoLIsVhWTkySWUgHk0WBTWlEKJkRSpVkJLgTWuEZiSkuBQKRp86KYthRWIvQ3UxJMlxUVbUypRznJIU+Uo95RA32msPxIQqVTNlDI3UQRDD5MoKaoSSNJmLFo9mjaGkCyKX4kyBq0adUFrWAkHVVUwcQ2qiyumwOnG1KJrw55RKSE2KRDqbXgkp9SpXGikmJBvgqqlUkIFjY9FsXzrQKKGCmLp0aIxUn5UVJMkOvgrvKIxdbBf7QJ6UVAuVRlmoLBkdIqbCxJicKfnpUrZK1uD1SppHIyusUm5YMhBPJSMSAixU+5wnSAJrslNNkRAZiLtzJa5qL52S5+G09Az3eWwSDa5rIjk8xHnA8n0dSlQcHzvEjud9QuAh5N1Lbw6NTJDvZi6Xw3pwNttfrGM1gQVaLhQKdPhgeQooFArEDYEddH6vXCCemJhAmGw/sb0/ClQQs4RlaDHNh1gcF3nEGe+V1ldQIUISGZYogXHSMHGsEacxYRZx/CE21UZ8FlXtklZA7cwXGfpE5FYgUeYrdtOi9foLcdwibGXqXyxQpZAGA2pVcZTabMVUa1if9593lXmrvdbpS+GvRiIyvoLcl8ZTUUacoUmLTYXznlhsqYfWZu+UvUouw1Y9vLsSW4oWBr1JVtJx+kB6FCPEsYRl7HJIU0FLol2BaybUYMLKrgKGNzyN44gN0MfwLbEWmfew4g8MAjSxEHS8ThGWOVTgVyJDb2DdYOmFFaT37w19a0XZE5+KzDv33j7XcsFLkMeCxFhQtQxXuTNC1DyZIz3wdybLYgnxkKBOf5Soe4C7NWwiQ4RIEKNkYhK6itPTxY8os7kdKHkD37eCoHsesBZFvFE7pufdnX+O2xzPjyEsnXO0yPSxgHOfXbeBBSdWHALESbYkCOnSmUS+YubEDbNsP8njn5EPQYcFsbEKBpkw6zgeobo9ZRnGOg1q5Jm1QLyDTNfLGHbpEpDPo2Vh47FBJs0ixnbtqS4yz1gq1IiXkMX85cmmJUGg96fK8CtUGEpxBOov1p77EH5dxXrZ0XeRU81kTvwiXQaAfvEPPhAE5/bEvVazpuv2TOy+WZYyMcclQctLZYyh8l2OfgJiKI6YS0U+wJhqBQCOgAhALyFjrlmWDenK0F+AkpMm7tQDxyVv+I+8dKmnMn6N8pTpyBPrI088YNVOv0kYI+FDvqNdjXhDRS7enPVdc0WQ9oaBysQCa232TGBPlGIrc9fw7PZ9kyBO7P4pJjRDRl3gqreCMfgUV6fo6NL32tG5kswE1GI0QhxmZaZmSOdU2Aj7z1XoJcqcnInK0hPjwzddFrdxycNuVCnb1VQ0m7BnSN8s0uU4Q12m5p2B+1oUboYaCfAp3W+ML2yJL+3bpOh03DPJ+g8ea1YlsFvQO/VNf8FenkSGqlHH6F/tnLLG3SAixVZqd9mMQjjCisioopq1hmYTnjLmRj5lKO44Xu4NhXrjait5gqVhvWjrSpfGg9PDM96YE/dOk1vvtY1s1XJ5o058hRRFfoMr282aViQMrrj4pV1Hum+mWMZK5LRM5iPzoadGT+zLWsylMvPwitXOKf3o8mG01sPw/fYoObDeW0vTB+zeA+Bur8NtbFlU397no4OdBoL13P8CWNjL7hbxOAmjXlj2Ixu76b2JK07lQB0bzXoWkr2xs8Pxvi/dp1g+R5I83G0ajKHenN/m0k/fE1IpHgFdBZaL4k3B5onsYgG895T4wi3kvFHvCbQVuU7DrNtNq0R/bI0Q3+bEkqupIp5iyTHVCTWQcPMgliheDT09F/zUsGsIdI+6y6E18cCyMw83ET7k+314kHOUibHiKcdFaUlKUopOJVGKvCzHNlh0+d3kw55DVHevOgJ810ATsvCk77RzAD4bAJGWKLnKmKeokt2+GXTMESuadB/V8JKK+ijIRpQZTd6G1yrqdOPy4TyfEFnE8EfnHLfzVsExSK89FXluz9TzEkb/UJePW+Zut4L+M9AYseLPlbAr7rDGj1PRbgLvpliqQbTEGSqjokSMnH+GNTjrcoAxMol5IZix0cMNotvEgO/P6lC1p3rKPQOcdO8kdt/Dn+weBcZUNuR196EbQ/NXDFyFqwgtnZjw7ZCSfNzidBn3OsTx2IagAkrEA21OGyUfx0Dm31SjQDD5AxxwNYT640ohKo3L1z6smiiKgjpRna0tD0Lx6ed68JRFhfJvEicEaji9pVElCY4zN5CxI7qyIMAkbmWIEKnHO1hVi+Px63FwZ8yy3SxB1Z1+ARj74ArRID8Vp+fN32LOpudZp6d2v1EbiLYkPleuBXlbxU1ryzECZ+c3CIt5Rzte085alTREOaWIykS4fjJVATUHGKDI727pDtB2Nhk4ZBcK1ItzjQ8ABXRZcpRUzLLNIER2BW0swFlBclZsgA62BOT/VALFiVm8c/xBlzQfEo8YjqPIDrHh/8xaxQPGHcs5O0+wtGJzvxxKTwMOczOgZ5C3tHMZ875d8tj02AB55IpSEaT39UxVJmiWT7cetMF1TVBlI5oHzou2JeXWXsRlQjwEbva/zVvIEgxN2I3COokDhlG7WhL5kbvocrp55ZyElHsUGFvPkND4Szhe5VIA9QMeUccTngboc8oKsZQpbVi2O8tYPixqmi7S+muVuypImazXKqp3Ft/ocGKSsORCWlrqSV6HTY4fdcGW+dq/xl3oTMwSZ7zRBj4Fo0x7Ys0iC4LufqDceWC6LkInfkQyb5A4W3IKQEZezetqnhr9gQdSO31my4AyGfiRdePgI75EcuaO18l5EjfuJcsyBRR9t//e4EyXYkuO5+VY6g3p3sS7bpCw1XLijxb18To7S8iy91EJDD7BKuN0DXpJwc6TF/j5KjORQPGkaUsP6TCq1ayipXZs6l6epHZ6S794E3qcrSvGzDI6RtMsxu1nRrtvgwVHYLfuHmwod7vLtq7u4rOuYRsY2hlmLIgtN5hExDOZcJNLo64vxUJNs5TFHmv2/Zu4ZjFQsnygRuYGnRNI+ZINImkiWpQoWG4uWOYyw/DBrRImEmgGRRNQikJGnWB9uFvW9gCc0MP9M9wUzhPfYobXoQ9PpPY9yHTGKCYK0qz21uhRiHMuFWUvaFM2kgnsa6+YBZrli/ECyTnRnVaQP9YvvCUH0BjjeL3Mm2uhjEER92eicfmGDJ4TDcijGaVOwGhbXkfF8zSf2Ryksl64bXxqusBajTo9O294Rqdu6I1z2MqIkak79R3DDcpx6uvrtcdLekPkE0G+Up8LkRwXP3zMUFd9TfWG51+X77ODlJkYVY9Va90eEmQsTg7Weo5FB00VYU+Je+rQ56goU4Pvexu2rNtUKMIzYsJwHZRDUFXDE7JgzAUpuQEKFZXxvxi+9P8oALD9cihME9EAmiO7JaqPj40Op3pMLUYjG06FTfq2/7aOTUV/5Y2lNxExlMazpFmBTUx6sKHf+AzBeRwzon3QgOKPtPFeaEY4W/AQ4ie8esOx4N2mZvuGs5EJRqEm/pmlu3eRPnquHx4u37hue2b7wbm9805AA6xQI54CAbEa8oY/Y6chquMOisQSR1lLEE/HJlgXKRMylDnHQu1e9xyY6pgyxyhDpvJaJx9rTaSjn8j8eeRr4i1Fr1mrzSrWfpYJoFb6TjIhOoRC9huiStuilPE2H5a6YdQ5IE6XkqCiazvHGLcjP1VEWla03W/wZUb/AEzXm0DVqfBBgz+GvDk1laeZa6eeiIJ+xidnGADTNKkcp5DRwYZaA+u1PjKcE18a/XNz05YnIcrUCQW1kkNmhMgeSigi7XSs1BhjGR8msp4J1vPUbQOCdKnMnWSSzG+ZfIhf4HFTBjxFXJUD+jA0Dv4jgaVUBkWBw5JaA6Khy7vvvOU/yMNoe29xWuSrWG6oY/KMxT04HksNizRizG3NRNY/AO+baaoADBUvkKEUfm+epNKlomFB7E5Gs5hyYzlm8tAYRh7UZpdSnsj3QuMkiy2Jh3RUiS3fShVhHoQ9i6TrFV+tqIRTRQH+wrIKAOQS0vDK+ood3mpWqzrhaM3BolTslWyGTVB1wTkixQus/qyjj5h2u2y05Zh9E+eUOpcioBPyjTh5+BAPq6n48yZGJuo0zG0DIS2ADvz49djebc4CR/pblYGreB+2qwAA6YP1U0qP6M67uH/WlMHYoSUvsq1hkQ82EwXDXVwcyBCiBScaZQVRdx9XEBl715SqVx4Kkxj2FGLu26kCtiKtvpRL8XECUAC1sO1r6VXc44xEY3PehuEERV7HqaArEgbU3LIcSxl608+lqhoBN8ciheiaI22XV+10EkUnfUc0YlQXZi1/2X7E0A5q9gpvbIYp0yo50kyF6LiRldHGYU8IytD6lAGZa1b9dCrKzzJhgN+0E8+wbVSmN+nryxX7E4tmqiTqgYdCcsYyFgku5YHt0viYZTc7J/ZMF7SYmLZBhgfOub3l21e8dVvsAnmWBhaBYajoNcH0mvjV3XBTQB39r+RYxvFZinNDkAnNS4iuofXnd5DOKJZkyBYtpXYExG4qlfH2WDMchQlp1mKjAipriq4FJ9KNhBAKfS78SIInTPmZq+HW8SQiRSZ9OMOIRZ4A/tKOs7fy+ezs8q69vTg/M476aaAB+gqWW+dD4BCLuXrG1etdwk8mHA0scx/ahtZOWjDn2ugYf3ZmWP0FT3aXAUP0DnMKNadhS3ltEQZTezt8qB+zA0skcROrbzZovTeeAsOmDqUtloXZwWMDuYOMgii8gIOrsg1W1xAacA2j+g7gBKBo7BYYfyM/MLt2y3AdNI0mHbgtHW8gN+wlWJcPkgp6IabhWRE1gbUigkKEOKKKRQ4V6+IQYNn52epGRlQp1u5e9lzzQcHynsqoyGjijUqf5esMLfJjl6cg1QycE6UuOR6FjF3tF9gSm8IIooi7kGTGTDDP6VCi0wN7pCQ5zi7gLEUbYUHtG2lW82e8BpQ+0Nm/9TLqteoTFbOevyIKtEx/u0BvX5TVMFQKCugEaJSfsxBhkLQ8SpQoz0vfJFJc/rpMtpiwyXyCZZUKi8a5axVFOqmb52Sq4CjTZzDjvdLGTBjjV24GOnxedRgdfxPtDQn6nkAPzpkNh+o16c1UvsoFeFOOwm5/BqHKWs2XLO66OsaL/fpEPVw+YHGQ9h/5dAleHBtMyIfsQfQhcf7yJMxrz5iyFCVNE7QHkJUvGhiE3CSI/H0dUZqMSrFPDbTQX6vYLV6ugABnC69iPNIe8Et0RNAAgPbHOlCTOrNcH/+phsp21TjpjTbtxRGi8PvciollfI9rF4M4Rkhirkv8e1FAqLUeX8BLXKrJnZzQdtJt91YgfFkz53b2+JVYEeJbQSA3lSr9eDSPoA4jARczDvCYm+5SPeIeIZ4y+hW2qOIkpvBGW0Le8JDA+KCeEkId/5n+ARkWmFA1YjMNV68zA2SeZ43G4VPHqoo8L2au7OmhOSYsx2guaGGByttAN282AZurI7AJ9ukHeL2+iCw1Noi39lYA3/iBjxU8jNGs4ehAn9e95N0w+0fZSzXSKCX+uH32umPqsQKrDZT5NRjqc9W1TxDoUHMmUPFCuglm4aGSPgDWjo6JNxoNlk8BNQZ3p6eLqFykzkGvcZ6TX2DtI43GRmz6bGcJ9Frxtjz9Gtl/+ghrc7MpMlOcaF4cM3PAbWxwk5lJljXmIVRb6HU1fb67anSGdH5vhObuJjfZH4VS6eyn3cZqGn+xn4SHuvzcDgTtxF7kfRAjWP0I4iLEjuqXwBX4CjPXIBDEOblsxZYmrWlBYQoYhPaXsfHhKhA8fEH8eJRMl20xo4OhFUG/7sTAmsJdrvoNJBY4ByEWQuvlT2zTyULF2WgRkhF9J1GiDM1NHCQoNhZObZyktQotAnHkfZgjEipxSACBEOqINVUonIIcg2HrcJ+ChBV7yQgFJL7fk4ebrKBqyG95sY61LPIuGad4wUE6ogBjM7RR6m5+4P43TQUqecejqF5f73BfcA/97+u4jjSIS8BUYAAz6s6jfKx8h9i7SXPs5XwuxY9uQYkm4fbHx8B5xV1CGt+odmKiVCBnyHQR66qTqQ063x6duyPrbCBudF2aQwcZH9jmdfYj05iJLDHMZjSwOCnZ4wHxbw/AzmVN3EwwNkmyGQR1l/4Y6zS3qFptyB2ZvQEDFKG5Hk9zozywR8v0Vx7lGCYECHsCeT46TYv7+6oD0chraytUOMSVcZjCE4hsbYl0AmcjzLvIDDJBzFgrXl9/hDXbRhe3n2I9F888vKabcBT4lK+DBZbYOj4mnfCJ4W4t7RC/OFqB79qLxVHvOmz2zVJFFNXrDX1lSm4nAQtLwCA3FKJ0PGBRuQ3xMI3XaisxVW+ZpztA6tvrbFNQ17MFVLHKZWD+R6dqjp6eYEFzSqhC5siEtz8O3clBNuMp/fV95KX9wHroWU27bjacUZqMHNzvJu7d249pP/4WVlYkubzc1N/oTww9le2mXKFE2wEwSlXp6OhYDXz2bqcGoQIZhHLFrWJ4V/5WjZxJI6Nk6k3iJp9ljF0QhWY7IyWAvs4xKZY6NiYatGL/XYWIC4VYR9/rDnPyQ4QiqV6jZ/mpwodwEguaKHCj5CQtaLpMqFSw7+yMrIjTF+RXAGWX9Ia3HuK6ryPBHPJsjLTu8jJHF9ck11ede9jMK3hl4ozWSz55i5jsXiI6aDS8ZimdUmoum4sH+bUKhlFjFsPyypFILKjkj07f0cfOgT1CKhQElpWaiwCL4Xia2b+oTWQAZh1YciD0OlbW3YqQwShQ5h2nFfXnXhIPD8x7X+0j2v2vl5DXvVqDa8ROE1HQo9orpdmbOHvWN/5u6gmwdu4lsGzLRkUoTiSMQd4JrG+4OmGSNZcLaDG3DKwo6wR2WCx8d3qnB3cNmx9dl2Mcv4OpOSMoCyvzbiVBgWaNO/uBrTuYNrnNcK6mD6zsvbi1bz5zXlhf/H0BmGru2vKigzLW+LVSxzxj12XmXAFJrXv9C7AHV98oRvqtZ6e8M3acTrf5RQBHp4tvrGmYC0iOeJLbzvKTRFzZ3PqH9dx+unvuIML5P3dJvxrT3DjluctLlcS5wg/4oY9oTHiWYLbTPGNrFjPF3UCqiKrknKmyBKK+Zr2yWQDaKrzMnETcXDQveUzp5DKZM4dw1C4WTx9ZzHlGBDssnJmSCWY9scsSK9AK4qB2sH/H4SAxlbh40YernJiEf+DERKuOdmGwxc0yejUSywcBhzEQfYwxJAYNNofQn8R+ooiXdoWUJ+Xsac0RmNQrW/UyWRnBARjB2ok4OegNNrsHdQGiVdCUR8gElTclMneMoGd8ybv5OCbCwRaagYBHfV5Dc2cjGTYbSBUEMgVJfC7EZbfFFtZLF40TQU+W43EfT1MFCNngPb4MVh0qekZY/Q+okDzcAEC8JTWtjcCDoN8R3QGaE/w0AbrXL1MmKwh9Is9LshhzyIQ7qaviLHHos8aMpcfexKcy4CJQygpG+bG/nPXHdnyVkupoujcYu/6klzTAx2ENRKvR82gw1wha0lWzsbK7TfZYhYJxULzqeGbIANq6nXlQVuZOA/tA8Fptrx+R1DrwV1inIbL0qna5BF2Qj+RLKVf4Wd1TzpyhhmJHwv/iMAcC06Zh9RR2LnnQpOFY0Zrrv00KvdVjzKlRZUCec9fjVITJklIvUNHRKoeALfrYpVP2gp9qVdgdEiwlCDk5xtqMHBjpclwe48PX8dHVRqQjwt/SktOM9akKSF8yA8vUEREXa7O5bM0tbPEFIpPmXDk1ii4QcanCjZnPGI/d1NJOVk21275w3b+w/a4kCkjMRXIBrLkFjRwuBqKzOfyWBGo1V94tOACZ9rbzcz03P2zfyeuoP6bo087e3gqJG+te/wKMVdf5U32zb+QpmIqCztHQ2hmgrLnIAFDSHe5K1Dp3k/mOs3e0Zo0ZgQvZtNeZLFQn2Qq+4iMCAUu3dkx4zFRAT570ZBHqR0AqyrBMDqEbuc8mwRIommRhpVICbKH6m9OL21hdMiIhvMPg7gIZkbpwC6DThJ2CNTfXwKkYFE3nUj8jTj81lHQDG1XDIWdkC/C7hr72oGhVHpsvbm2/sfTyTIz+e2uV9sVhW1K98HiccpTDqTck1ZzPntKRae2JDcAASs20Mid2u2ov28HAHmYpjhVQH1VrD5PPTmMG2bebVgEDtCqV9ZaG04hqVX/Qw7OCNJcU11KY3VMqggSmFB2ZsYleArMrCGJDyTmhNdot1PkUV+mHjLsiMo3lnVedlCN3afi5aKlQH8q59xKSrj+mGiET5XXHajInteCStNSrBWt2+TlmErRYpOXylaPM3Omd3vfM+sh23+pw1ZpTAFbIX7KZDjU9P73xGcfV3d14vL1dPtcMR0d7xDsHB0buBw6+tb+/7c3dw7KlESo7OzG9t1dTTx10zqfkSGuiUmnCe0FpFR/XGkX7JzucXOZAx2VUXgPyRlwvFvkX3EcS/rGyh6asqAnlVJSFKRsZirLIUQYTMsCuN0MBZ1SmBdwcYWF6WFrGWAdlYrvKzSaFdpBT2FM/XyHSfrEbajmAjDiPC/Yv6U2fO8mH9QyYcGlLITNGGw8cFZSTXiuKpGaswILvMJ0EweJSFLkZxS0WyluLgUZE60y173C7K2NT2UZMh5xA/NxGBCmcLckxvoFSuQNzf6xgbgp/loFXZxTVFxf5aGmpEZFY4vDBA+DhwyPakxPBVs+J1UKptMTGHfc9c4+h9VdjLaj6rYxym8laQlV0nWq0BCLy2uq0BN4riWMW4cf9sT1K9JQigqQrcfCUhBegu+z6y4UQ0RAQAWICA+B8KqGJsl47GzkF0xPTzih4ptMgtJ0qIuoWF2ygikQ6aAvrDQBFwJqDTUkUqIZpkydspO388lOg3CPmlLwKg5i5/mWnSzAkHvUjLzU5zcvjFTlWC2V0hrRiZpKgiJATr/RTMoo5zklJ9R+1RqQQwTy1r4Zm0acAR0H35OqRCgeuzCw+LS2q0qnILdrOaGeDzZEEZRIhMpl+T3yaSAKAIONReWrkOXKMLkASrs3EoxifVlrtYRd7dSpij3k7w4p3agBjaERMA03LKFDKxP7k77YiqKZ8zCEWT7NIqMb5PHqED4a3JUrCrdmKejmKC3M+fKFbpCkJ4Zf0cmCsU+bZKw914YrcEluO/LFe3nP5rp14KkVmUth7IFw5I0oHUxrGMOi4O2mkYisBsZBRahZTCaHCGrtxo7ptGMZ3+Abu1kU+2yXF4MSblNZoGECLhiXZN3fMc9yZORUJpSNU/UpFusWWvwIW3IKOi8Z5HAdojYND5g+UQpTpvOmOjKbKL5Kme/OnHWYu31pfydRN983OCMOsOL892sYUrFqGslyyphHt3erUdizjNbsja6kP8xOHE43a37DtyT3fBKi+Mo0xgakInni09382sxut7YM3Z+PmaIl3exOvx5Le+joKEgfQ5qp6M3Qx7CcJfDFvQaAuUzgfoAK6lkSJ3el06tHn4m3DX3pJfGGboXqEL7B+6l44Rib8Pt15AHGHWrh5VxLP24R9BDm7+m3/SSfRPv9punQK/GKViV7Ld0GyasW24dbIBpFKkBfDP0lM704D7WVaCU7abjjau9URrTKZJuxvYS9IKxR/41vRUVq/NeeR3MPn9tP9O+bdg2fxLHqzQK3+M/0axjwageCDx2bWN+SixF1U0fif6N2P9sbd3jsZHWNsJE/+cEtsqNt+f9d4nG3FC/WQWISaA/kVm95//zHy9iM9jXOGMpGS4xL2uuWiVhpPWVkAA8i8Z7Fqyxg0wj9bX9iJzHzl/P80PHZf+sCHhYa8HHsgd+fZTYR3zLt4h4ns+u8ORxBS3XtMKvcXjOWQxR8uwYYZQuGhjavAbFwcpKEmu/G0rmjU3PPycbxrZvDcwqcVLSn0jJNQyNC0OLAX9BU7qPfKJYLM9II7xrwzgOn5porKdI/z03s84jOKGiCt73COwg/tdsPGX5wLNoiP1j63ZkU+xRWY9hzzrvAhL2IIxbDX6yxVGW0gBGQQwTcaCgZjc1LWMpOrSTZaL4aGI+H1C49M/I3uvCLkaSYv7EfjQQQMtC7HBdMrxQnrbNUHHTosXH6sLc3j2n0zEj0gC8dnLQd7+KOcl/3nUW1w381ZPTJbGfK09/xTv8dyeNpnmGvjaj8o/LIP/1OB2aqao7Wb/1cGFZe/vuf6iyPYzQ3zuad0tTlAe/j97K/miEs2lrwqyPzuv2lWbXkFZv/QUMT63prqhZLGbjgZmqMt1ZPadz1CJDBhu+duFurc3fDGZGNn9mt8Ht4oLPPu0Q3wwzSQgUZKpZ2afly+3zUMYBznRG2rMLb9OJWN95EMukbQjPgY9pYfMdnJWuiCyhfHOyyfKv2wDDLCbMvoI4d4T9ru5mamWJfpOcF+C7lW7NbvT3dtG9wP7kzG5Xsn4Hx1kujH026VXo94LWI6rVhrDXm4hagD1f6QNlEIBhCN86n3xfGXNgmurto9/BLcaIHlPvFpGSV3k/yrhX9zjfM355BZuqavOW67m7pdSPgzEezHgF8EbZG+GpycQ0f9f+lwjWamGZl5ivK2yBn17YCIv4wdllEe4Xqohu4Ephny44HtJQexv1xJElRrzSigCe7PGfCdrQ2bgbYhgf1bHMktcnmkBZtrrjPHYsn42Fov6+89VbjJNn57dYGqd4TISUZrpx10F8sccI2B2TmouftNI2ZLp17zoovXpLmdSj9+2fUvsgY3NXcNo3fI6tq/MP6r2nKekd4MGuoQgUpwHJw8Uyt9C/sOe0taewacBMdBpajj7khed6hYmV8EMoD9DStdTZ6hC6UTuRVEJxG4lN+8dT9PCG8z24faBAKbAKOnr5jxQePSN/v7jqLIhKUbEdGkZy78TWH0VAJZsHgCKiyZqc2atQ6ExGlOXSLRPEHdL1reBCS/SC7qLSyUEUg31Ctc1HXiBG24d0MqgyCD4cY5qRTM+ARNCpQkowVJfHeAqEYoohRyQbn7owQXFgtQPsiBgz1ie5anDOHzCzVPRgqQwsCRBBQp8KK8Td8FSMDQWLQyXGnP24l5NIA3nfuINqAV4UFw3gAW6OSV7NoICmE0vxACE4tEve4S/DxfQRrvOniYakdRgPDjNaDt066s7NsDNDqqhOkXJ8JXjrytS1o7ub6SN+iyb4tcK77/WCWYsgKsqnYf+epZa3fZTBR8/JfPkSM+Nk9cqGvHTy8hyOQfu3BT/9hOfOLspQ4pU1KKimeCWf83D7lfcqxWSASMdU2OnRYzbdSLt1A+QLTT7H6+SXJvV+olX4X9z7FSY5CmjTAGQFDuvS+nyWRHthu3bVWp1uPY2HzwMy5OTM5LbpgblhlTZPROh/fWGTMS3hqzMyHvo77ofcdWPswfxT3VJOrUb/EgIJClaZh9X/kFWyMDplgiQvM+BIcoKQ0WnM/49I7jz9BifENDSmrxjAm81pOesAD8re1GA83I5Zs2XdkEijeRf49FBLDAmTznuED8cI5awBM03gepUepcbtwsfatj9MdNJ2qE7IRyjH5tT5Dn3V0or9ek9lD4TeOhaTuAqU+tlTnTUiyWEzsOMAat4s2mmjSNKMR77DCQGDQMPtMwMPFKn+UCLvE1JwYTsDpA2jMA/bsU7PADcB1B62kC1IHxqOCOmSJqGgWw+YkRzh4DiwNpWicEN5nZGi7XLr+dMUbIeyHGLqv4+746DIp8wVDLHFg4xJ5iQfAmoH1AEMfAdazghwmU7igrvafVrwFkkvQTEN3TP8k9aM2K7JKPztAmfbL1A04xxi7djQWelgLQA6z2TJ1ljEAgqfEft/16xwYfhe+oGOXYlDppsoI8a5xUEMXOCGycsiohQFdgV3WLPft9umLTZ6/MGB0AprzasCZlx4S5ET+PPC+zvdDy+FoHdnwYEncswPvoQRZIhnspqXUzBoDC4IfqvNBBnA9q409UQSXgocftbrxDCOaifNbrvY6VI9DUzz435KXUJ1S3JMa0s17NuIHQuQvPj+cnz/upzBbtGR1mzHcAr4qc2hKVMxoUnpyrR1G0ULIkPpkTpWX86HoWENzdWFqQuDglKzSjCAWzqN1dwQFJQR6DPxllZm1vohYKV2AlYXErD6J4wOXgp8u3P4rFKksD1ocPQI7G69IioDoGUL5ku3rp10XFY2fv8Jdx1zEBzT/Ha9TL/GhxwM5ECO6CYd9pJOb7rq8Sy8M8MD4FEqTdiLl2FEPZz1gEJASZ0sUOXgKt9oNNJcVQCcSYevrIqChDMAUJQ9Z/9FE31kdsTGXG5b1nKjlLUcPDP3iSG3ZyB/KvXdeiLROjniyKh/LVeTWQ4++/Qd38bP4DhySdLQ/PCsuoPxR24FIsmKzLc61soluZLe50IvWFPUFYjBub420XI5Y3PfBPKwEjicUivPqjpOJXhRioZICf0GSpjMala6W7hk0LfbnX378Vw+YsyBjwGWPp9W2oFw8Mf4HzUA5mm6PnZ7/jSB1ecCbWBb6RbA2qIGlwZkmabdKSgESVN1ne7A4dNbl4H9JlZhvTNXrvtwTxnz4hT/HpxdnpcSkTcnfjUOoPH0wriS/yJKt9qcFOTYciktShxE+LbFYwGl9bpT5Q+EUPUpD6haRorYlqsPpN92u+bq19+GHOL1cm087JB7F+4eaaJNO9oURbGaRKOETq2vPga86IloXT6cPWBjDIHfuDRvLBZD7+k98pcQ0OushOPkYQn3scSlwwNfqTBToBAdzRwiFCeIrmYkeiGEKI3o5IQYtmSOx7Q75v/8WD4D8xQqBb8En0VAGu9Dg+Zwfjd5I9/X9WhaQTnEwjpk1nyPdCO/Gc6saKjh9XzFWHxI4c9vVJTQ1VlaZ933T5ZJYuqGyHb2LV9MaUTLVPkteMQfW74eBs13LLWfdkhacBjJshNt3BqIGy4FyFOTcl9Z9/HY7f/ykpHRiw2wd2vnPmtyF20SKKOrme8s8x/XBNrXa71aKRP4/tCnP3Hbv2+V+/+gUtPPz02n2ppti96aJSqbRH/PBDW3vIggV3R9K3hcxDRCf5RR0i0bhGoRbY2tUffKCUPX2a8Nnncmq9ssFHCJRt2nrQn+D7tMAs6nsuOdEuOUG3zyMkz3pWrW4Lwfj77tTXoacsc5T8WjlD9F6U4F1d3GW8s1NELOggREYjvKq3JCI9/D1lzrTpP7DeT7BjHt78TWnrpebVQTbxkHGhYQmXwybO+ux6MAWi/d1qBwY7+Ft03rmG79S/Ex9DjvRM9vU/UHmoV/d7WjLUMDmm7ALC8FkIujQXpC0P7taBsRAO4EvdGu29DJTHGoU3YmaqwOpBkCk95cPpx7VG6WIdCRbvqA2ZwdsrlVcaA6ZxBkPkrphae/WYY9EZy6dGFO9t6LLnlfIFgp8lNgCBHAtq8MMA3A3GCLDrknDLELtTNHeSa3aXPnz8RXi12jKrzfl1AWIV0MgI+ucUicR7c244cgJqnOb1gLoHWoM0bVkZMiQfyYIaWyiMpOtxYQ5qsYgXTdMJOnSxafRN9CYK8mQ8bC29pkUE88FKCAjAGRlvSZ5NrR67kWk55wPG+RnMPlojrxvs+gdrqnaC7gYN8RNrkoBi8I4WFMDLSqnhYU7scwm/jSqt69ZKLJZ7uXAyf4jsky5o8BxkKWlllgWgWdyMCVJDAKrgJzHXKGxcNaWxAwOUwhEQqaYUTivIAzmogZwdKCYHesBNDECHNbp4lVFIuBNqQT8I3xuVuTphFFkd4hnlm4QQKGe0OEIjacZCL1/OZaZa307nJTgUYz4PPVIVwfkk7fLaoUxGsQnlqo2xnoUCIIVB7AqV1XYxBHofdPOQYQRJxk9coHHNfocAOt4vFAiuCQAsaAJ5kyFw38MsWEhotXt9cMUQU9tG1yAfw+sbhRarWmNdpe0fpulnzwVOHFwdwOuxDICQmFR6+xYt+amXXK9ZNww+b1Rl6bc4la9fRxOxEkz2jnyjIVMpalEA+AcA/y0oJjQWcLBCv8WOg6JJX9om6qfWqA/KAg+YmZdW3Lg+jVT9YZ8kWMYrhXlUJPEXpfFfpwJ2dywthL+H/xZaBN9QGvsq9Rax3tfwM/y1ZtdWvmCVQUn8z32O/UOo5NdSwdVxowvrrhR5W5Pu3r1XQ0sPHEWD08IGpb7ZaVutmQcSQ6968AM6LbEbNCbASzgJImKsVrXGskl/4gRNPXyokM9rg5/CT39lDDLGTEMicVW2zKRm8X24j26nyq13gumL7CoKgUDOkFIpBW8HKjQmCoiLkoQXwTl7U1B36hlbu1Zx1aZONxeGue21PjXgyjUEAslaNQSwtwhw0KoAkEJFtbURchUE3Qa3RHvWnvsIoWGIHO7VgNEQEP3GJTnqYDg9o/Trd4Ln6EuCFwbPW9o+Vg9aIPGap4y8WrXWE+XDF0C3g2Jx8FWk0GrRqmw7VBk0tUVpOgDGwB9zJsOqdWDlCLiSQPT3U2rlQR81uWe9gGyrBQ4ceY50CV69+ImTuhrJxobB4k1feqaU9O0BKx8HpGeNCi8KympuDkp0egoc+mS9YtTnMe2D7bNjRuVe8jrLpnqqo0oWHSgqSE4c1+LNTC0AosYdziq60ZmREzCeCZAg1UNpQeHBfdx9F41dd55RgpYyC3JLuIwl6A/ZPkalytEUm91puagpaDd4jCJQNcYlgHR02iJFSGpkwZKZsaN9vcnK7KYxoY/jKhZuyiyS5hiGuaSRgVwwZhPKiu6q6Zzg4Non1TEJ58kA0+dnXqtyXx7yz5jsOquo9BhH7MVxoZ5pbcEZIen9YCADQcEaEJ/qo8C2jZcl8iav3ah8IjoAa0EHmIL8JCq5BsSKa8sg/1Eg1Vbsn6BxJvhntsoTNVytvG3X6pC2Jwna8S96+7sxr9ea0TMIbjROdEvQB4a3bcvsIMkbQHxpf8jn8+FCf7HFVhuZduZsV8/zP3ITg3PkBfK/NSf/Iufma3l19cXFAFaa6WXL+EqpTK+HE+iKVnNRkJUo3rHYFl8DFyfIm6xjXx35GUlGsya9SpkMgHuFyRcSakA2rJRIv+Bf5Eu7upRggTrOmp1boTCFiKfxXr6KYR48NNxRnwpTKlvwobO835CTUe1EgqWStIIxcWqLubcNAglFhSA941ddQYFqpm9Phg9aqGr7FhFaLWqNZZ2mv5+ibg3L5V8oZNmR9q8fjbV/kGkBTdDncKegR3jrFqWxbVL1rweIne5dR4LT8LpzpGTRVKloYAAgjq0+a6xza2O52juo4ObQOSmMGEEfPheZtm1YrVHxS7UFpFD+xQlyqOTP2ux3p8e4Bot8VyZFF11160DnFkWF9rpgCa01HeXtZbUD/Af3ndbVleNm3YeAuVVWm66cE/PQujC4+gIA+qn+G1rboZx8lcq4S4gALYP80oaoHUvibrMeLksxwbqUyxvxmzUrWb/O87jlQ2k+OKR2qOgTlrzAkoolcUxI5tjakVXHf5So/W4KkYcSPkQdu1ZftBRr2zJpoPhctJ/K6ntFum69ikobhJPSW6Pis0JKoGD1GVtmy1lsCiqwyYaGeAlJZ7JbMybt0lwT2JLAMZUyELw/1qai3j06F1XXvFfV87DYmoTz+IzC6rK/J1xzn5PrmAsjRSWTzimTAXQ+wqHUmd4KVyv9Fdtx8IGv1ycjvOGPNW6mS6I2A+cKi58wkR8xeWjgJLIdMfwjIKYoGT4vorKo4+irYzDyl2Z8Im+U/BupwQqw9+QKZiF8LHN71NBqCApW3mBLhcBJyENBqQxEQt+CAuR5kmi4Ja+a4oBGKyPb5u5sEHg1ReLakDV9nWJlSRsLZmBJLADS01jgbql9jIL7YOsn2qSM0fLILmvWoHtSf3QP+MSnJH4sEG6WaUEwtTPA0zIsQj53ggDQambbSpTsi6GQWnGRxtsg2MkHxQpshBA+kmmKy0GBUmwmiPs0Tvl0M1GlMMBWknMolO/te78DxjgazR9O1c8CCRhzzzLHGwtmuErahSox3lydkFl0b4pvQFqodz/XjyAgl0D3LD8a997VmOQKkzErMy3LRQSvWAlYoNSnN+K44ueaIbGTsfihhWAC7/dCxqCXHP9RzBaGUVmCPb2q1WtKBDOcfueTqOwaYzgn3dt/6sF9MkbtpA/pyPZ882f/iI0PwSerfr4uEZNTx1GSeyQi0prEEN6/VyxwEMpHr+9Ki48PTlzKxNe2BTlauk/Nbmun528UC6PdIaPqHf/9GZXRt7vk1LtZVUerg8HsHHAZrgFPwxGn6wyLIazVBGjDd6Qe9U+2lJ/rpdKm6NK+8yupTz8MPhTfpvMgbO4Fhbrx4mRgBweSRxaND5N85/WyPwS58B2A1JfEO31yR6piPoQFNHE6m+XxFX9ev5/ZNGRw9NYUNpeXLBbsiQwzua1h2oAw/38zL8NlTkXu9G134iqu/WCXPbOuWU3PBXKgb2fPAd8WIQZmQWsr6VMc9ejkCAiG+ni+au2IioBGUQ6oQsk3i2/3c2wXpUWAEABx0pkMeLLf/xfeStrPvE0oikKlOVxMXBFjRlN9gGrXlbtqVLpxn4jVZ8LYDPjWo7YcJfTk669C6lZ8LlQYG8Zrkn+dbFb9cSZ97McfGwyn9ycmXP3VYn1UPUu6SnTxJEN8fpS22X47+vhXg+H06ZpWy/qgUM0FtCLs7pT9H5dd8xT0nt1d7xtc/G9qe7t/wIaFVl19R0DABnAdKL2IFyUl5x9wOgvJCOzJyFggx+2Wn3qFzPzyEHf9QgiA5ctarz6k0qC6zWglr5HX6HAZlNZsJI9n0giO15gKaYlKAkO0jpSEKbfQ0c6M3UaDNTraS53oZ9lIMC7Y9OUYBtl6eB2uahu4xuM9VNKkIyC9o9OfvXWBpjcsFG3y27ifpC3rVtPeBF7vEYljoN94NSodXM8nKJuXxxv9f6X/xog1hwYZa7GcueljNfbgSKDeMVwXB68wxyYAzItnWWXEet8nI0F0VARN41L4VErqEYXAXq/qJ9mrSmM6KOMFhapsp6f08AH6APlWI6GNQTLJEsyrF4POyXlJxkhEqJPpKmOKw4VyL/XSfPpxvudoeXgaGKsUEfRdbdKbrKnjArQzZv3Aq0+0p3nBhFiXSb+RnQmDj8HQR/758oX7RcSCTXedLLwVHUD3QtJkoduPJ3rxeOJrFdAhfCBAT/PfmLSbF2P41MUgeJVDz0pzmQZIZ/uAVl1HVzGbSLjLmPRdXULoD8KqIl/5A/kdQj6ySq2okOh66Bp6BxnAG30nU/IfXZwS1mlxU9gfjDDPVkmOK2cGxAovB/zsa34zIoTfLJzZ0JYKCa6QglvJhoQCbWJ8ln/kZKBdTKaBmSBLSWFU1rmiDlA5Spb4T9zJwZoQu5tuEvTWyFV5tNqPwENoRoBsNRpwf58MnLP2F64qbRSScECqT0BY/C+VVWMcxs8atKdyAejqCfTNLe94d8KkzZVdo5Y2OOyeBPmNQiZtXnh2FbgEZRSIBZSeCDYYJHNbN2LMy8J0iPxABpnCXjb5BW/8O79AFKuQOy9/3a0Mm1keymUUB8l+oEWnC4mTwprzQPvwCcuwo1um2WLzj1Y0ATL2T3jGUSEbUfKTdhV3E8SbGUIrY2XTNovw85I+smuTGMQ4g0M6MD5waPYE/xxomhURubZPyF68nVb2/scqWUeMffG/u5Y2EvjRVSNTkDiSlMCdGHimr3OHpDf1Bx2sLg6PjuzRgFnKcORd81dfs5KG4taaQiNfvL5XIpFK//tv4z4L6PJ3ylMZjU5M0WLy6CoFCQhi6ni6D6wXazDQwxcIfWUX38WJF5VpQNm/XonwrU0/GOrAbWtloDJBkSXJPfi+sbhBeVKXlyEWyJo5TxY/kaeOKHd+fbb8rMqWwLh+8og6f3WZkN2jpHCdBgjMOu4GCqkxkEnPq65YTok7z4K35hf4694bFeUIW07KF8IwJODXtt7PiI6d11YCimteZPRT9Pz1C+5xZgklFaT04Xj/SRvI+qiEOHFSoj1/7u7dawAEjTZMhZidPR6FSKP24zWKgndN5lOHiVl83mpvADseSzBQ7fZIgRi9KBUIRSy4qxMSBz4ZD4sScsvl02Zkd/6TDZLL0+gAO2C7FXtOKCR95ylRtoQvKKQcqsg+eapP8xi8QLGdcU0NBhbTUO8iIVtAtxXW7F2YGL6mxmfyJo1wUZb//HcO+Yyv6a+lUfT64DOSPL8GCJw4jomLi4QC94w1XkvC02ehyQLW9JRh8tpAORuxwZ4/Z+8JIb1wU6l2um6aY5pjevS8eeS1+valkVsitiIwoCRPQliWLeCaFDeeMUqbkc8LUSSrs5Qppvo4WVrotypi3rwlCATk/DgFnUanP+r4T1sgXwhuXU8A1E9LcMbF0bt+Kqng8Y58sOjgkILuvvDc+PK2o854tVDNxxjNKgCh5y76LF6xYwAB3tr1ImYbs0NpEAwRZo9hzYU/Ur+2JRWbuY+DbzqvTxBLH+y+uzMRqA7uw8Oi1ox1QvyqWzze1rPj+wDigAEl0MNCBkXB9xOCNbTSuzuqmsuMmdUAHGv4glUXlLNp3VheOXXB9sX3Q3t3Owa3UKuA4ifWGNntq9EYeQCC1Dnq1MpNsWenkcEWraa+QwYawO5kkJdHC/zFmDA0FSkqT7FBELoFRXkJBSz7BW0NpN7/WHkYzUfp+nYMk0dlbKU++CAG4CVoAcoIKxBZ1iQZnR4h4I0lJYQMMPN0Whl93PrkTiNxDm1Ntr+Whv08A05b4NPRmc9kaGUlgeb3kyPWlTYUe1y+6mdluQAM+U9yhyCgeBKIss0AM8LAY8X6fJS9KwC3wW0IKgZNlEqfBUBIBjQG6kW6CVlhYa9IXpSP8CZof6kT5KHkpVM4+qdUeu6GwQBBMumNewb6xAnATxKLhHaQg0PpIN0PqkHNlA2Hd4LEJC00GUFWKzbkoexdIcHkuCpfFm05uRBcC1bn+p2Nefli4YISFAgbF49QS5YaYVjmhoG4dBrNzJwlJuNylo0yWG3pSbVUsHDRQgm5eJEopC3o4+ayi4JWpy/K5wfwUDKu1rZ4sQRJTINrX2CTqK6F6suXxOK+tdMzUgDckC3cuMGyYQFQBSc/OnOQuRaIkzcI3kdc0sIyl/7u+a76lAc8AibwuKGEt59cSuBUuu4phzYf/TKE7oRdCwdvGaI3LQqFd/KIGyQeeI3ZfMj2K5PzfYDeEPt7LMU0i3NM4VEecP1nSn+DwW+wGc2MXwuwi55LL0gMowcEsqXKsb/5no8tBYRjmZSfAiseV49zJY78bw2LVwJwpxkhl+RLl26HWDAO1BxQpPwIwBlwg9in+hNhoEvnOQ1lAjkpfj4f7oD9rLsHVui0h27KykUET96MER6VlFTo+eJKTHxUBmkM8ZaTXFDQayOnvjmzPv3Zd4eMqpdbKG4lCPTR45sUTHvM7W4ByZc8kKC7+scLeTKSc8qoVpYbprUgPSP86TIVZb3jw5iSdO+sz//+nNdOC/twwJ5OmEYxhwoO3H34DOjGCQquZ0q4T+SWNJb7/DPo1x8XgQV/5UV1VeVMtoVFN/pnF/hPSU7yb80vbAlMTmkOziy0Tfo9RFsa5S21RkaUWeK8hsrwCENFlDffHOxXrkuPD6jecUbAw4V/ULRYiAscRoT3A0d+oxj/szk0zBMWuSFQ4GyYfXjaVRH5AYalVqf7hdmvbMs0+ygShj6xSElwKZeGd/it8oT/87tD3Nm3W65EFA8kI6ev+SZGr0taBwFSxliqvg5VhgKQ4w9WmYNForvXWlD+vctr2TSh23VZJPqiHEcN+HvatQRDSn1BBJ3cNI0SPm51AgiChZ4qFMQvgVAIQgEEQAsgOaECFYNgBIIghRwQXwshcFeDIADSJEr9ztEAqI+F3KldOH1RN5rC4ldxQccpmfLHTD27Z/EqtFzTepMSnWiTptAlJUKIe7sj39VVmNtoc8VP9i8ucE5JTvJrLSjsDMxMGu+fmmtpiUsM0ZdGeYus7uhKS5xXXxkeYa3wesvMob75Om+8vRpo/OPkOyWmAk897ZrF8LL7xROZZI+SsSh8LdeCgnvK+bScYQQ085KjXoN7GkJDklkEzdMZE4NRgqEZoqZR9h9NBggpDTYyhRQEMLROOM5oOuSLEgxFE7IMkAslQ4wgKfY73C339SIgQWqMSWJ2bsbzpNjqmzhkykZMQyggSw7N1wTRlx9HIIgoolUkCzTNgEwhEIJKxqWKlGdhA8Cumk0JnngXHzDXBIzKxFP92D+JL6an0FtIABju5/Cd579Wp+5i+TxQ+HqmYdT4DLljglwywY1BUoiWgV3KW5dyIATLmr+fN2LagpHZZw5X5e2bC/i+AIFFKU26GWEwWL2SmKVPHc5HaQ6DO97v8/JRag74uoCr4xKoUyJ82/x7UtnR17UMIUZAVmQ4iVJ7aOSuCDtJEqIfKYqYgU+e15xgNqaf5sMNwZLbHGcR66DlpVFQL8iUr5AnYioh4W/rkUs/1cuR8VWG999aqtUktq3UAP8dYCYz/ayHXLyJTgR18aEVFS9feJ3OYKer/Ah69+5OnFJTCzo1J9vFKjbZjUXI7LW5YE62LCK9vk5Cj18h0OzcCWaBdQBcNItSZwVKjUe1XFbIL0oDXyzIsRuUHDlNQI5LTxPRA0JEiSTlKkBiErQLgiE6ZD5BlFv4jPDnsjMi1HmLgwAsIARtJySA+BbLNynEe2oxsRFgYPul6+aAGZnXMo9mN9lZdb4jQQM+Q3hbKfzd4wyB08dP4dRWHl+04ZvBwW82iFfwDvjDxIN5P4dootUD4Muv6EqazEIyfmH1liRiKuPP1tRDlRUQCFbR490+WPn+qOIQCBJQl2iV/6ixegUZJT0GCaFbmyMnFdkzHBme1l/z9OfMpCG/WvA+fhrXWkBdYKIDxAnn4cPgcrWPF01Pt1AXcVAEisin+helvGtcIMPQbHQ0Us+fM9PbsgEMULVNUyQS74NKm6pmqEGVf+ZOhclDeIXXg+keVvQF7lh5hfCru2FXx4ZpYJv4F6ZiFNWiwpDRZnLtPDk5wJamiVsnuyZrP9oV3pybaO3KKPvml4I1kt69pFrvDzzHRQOU+M2DvTOKe25+IxLgNEFPXxExzrX1TbY7BSXvkYT+HDTu84znwUnR2wiej0hYMvOzrL9S/0gGSRzn0oDcntvbkx84s7K7ulZUOJJEh37nFEEKy83awDdSANjuuKYaIPZ/RPY7YYlhGmnodekG3XkrJb7Yr2BKzYSWkYoNSpaWK/yR46wwxcWiLElQF3vJIvCUs17l6k97WvjczTqeRSaRuA47K6nakOTi9gY6WIJUG1/d8g0rz+c5FfJ5jxAUVAtZ3/cWPknuAxqzUrJXewxDSrQADMzpZIrTwkrioo+lz+E1S731ISvyz2pjaoh4xeAfmQZMj+sA4pHcI/S16ydf9ZQH3E+2LHSK3LJdRf9GszXRTRk2aJlqHLCoNQAc/NJr9XclBSnr11wVIfnenjsk+9WXjPqpWlocMMMTWkTfnDQ59p34ADH5aaqGDbqf72np1hV6FKT5/VUnjNL6X9ff8MeXv0tIR2WKVQ3fx8WFxk5TVUwvZXYExqeFOVWZk2v8RwIFpYftzuoJZkRweX93eFoe3OQ7ARnPB93t/XzR/9KU0oQ997HU8RN9UlVFyoIynST5993H0+IG5wZIM8whpszVVVWOrKn7FuuqXMUnXk5HRc+4xzW/Ppx5v+kRCYAoSN63u2gNZdj1fE/gPk3gJv5nUnOExdyZ0mlijVrHx3UAzAxXpDlcluy1lVUO7cmG/PAD+0XCvpsSLLNn7ZVDWzXZlZqsQ/2Zc0LsbyCmnuzAuPNie/TVfdPmhV267JZpGRNTmvH+AegfSUjZpPSEzqTu56QM9joXpy3pAuG7ABSEEVLaqJDPS0HFw98Yc5DqwXCanDt37PUSf9czxD+grcYQzhlTs7hyg9Gy90SIOb/KbVJvEJOCAo8XQXdeQ3rb1/eCRFveTye0RfX38qpDPcHBIZ36HKQbWTPDXx2UyLsc5fg1LmB+4WJolpvT8uFPYr6VYjfZylFMNdwCiV9yw9SMSKDtp/WB23uO81C1XpYCIFjnB9OJCuL4C6N0EFuvWnvbgh4T2L5QSB1aDyLDb7CZzYwywlUC1yMVAg++Z9g0vw3fLzrGmofXSVAsjSNmd84G2amguSOeCSQYFbFPtPuF6cJcscjZT0dATdGhAonoBVfeJCF97UIrvuchLUX6hKvUx38yWc4LzP1GOMhUZY6jLNNs1+J1QHDvoiQNBI2BAH6TrWhm5WOxIiH5/OtPQLAi1l4OoC+hr3Ft28UhfmN4vBPHY8C25LbfuFFV1Q63UQWATaZWdtG7D0hYCS4WKbQdvzrNpdYEa6DLSzXZIkF9FIPwGUG6UJSyZHXsK9hODRktJ5cu9ed2/8iRgVCkTfoWY7iaVfwFdZ3UFJYXIATllyWMDBdLSbEf0XefIraau8LU2uSY2ws5hIdQGwlhPucoffFIKJ6ReG+h4b22ugMbA0t9U+eYwZNAvEfBL1rgFRTgR+78vc2SnLbnrDvOKYtR+ep3mR78SO1+SEp5hbVODeQBd26f4xOpbgFJPm5w0FjdthFKEBqG0cIT/QsKFvL9skBKPjpHxtiw3c98kN3CTfr+YSPvPGa7bUz2PRf3YPuEMjTFzGczxsjEvSclLJrFq+DpRWQFk+XDo/vnEepnRWD8HjARCSCt0hd0sFeqlzI2vNXJGBRuNKy/bZSeF/oMG+GWRunANU0I27RcERZYN3E3tk/B5/Vwn6jJMtE6nhfgr8HG/BNCtolUSBEaDioq/FyxIJXTi1gIczPHbylfPM7T3ORUwEcqEsHpsS+yj/YibGW6IjgwYE7AKMgBJkWYNWYpxMHBU0S1RWZObsAonH/rBs0g06IE2KXe5QKxhJTMPwxWJBkup2K08pF9xsS/4ERgWlGx8cP0rx8nEOtOUkRyOXlQtPs5Q57oFWPO9QBCmzug+dG8vMFbt/kc1rvX0Eh+f6x43Yc30+fqwMWPMTM++IJR2nao5p0kmR93C/xeyjl4V2M0EZMw4ejzNMW3ZfUq67itfvRTX0FL62bwCFYnu9Tk+Qe2L/aIaDw7SiIBXrjWifv7XGzDWf5woeoTmMfnxY50BnK/zd/hmjCpOnFSCjfh5xDfcxVBjjeP/E+dNl81BfEka1n7vT/zkhLtJl7K49/V5pPna0LsYXSTLR24q7/xElPZaObpz1AyeKbERMBniePJjBLri5TCrTNjRju8ScoAv5y4+sfASE+hNqHrUZ0F1Mmu+J6mQLDyKA+5DS63+O1Cy21Ms+E+ARVBRXS24QHu1iXoBsCXv9CVkC7GofB6woqCivwyJ7k/kFV+NJSpTzaoq36InjJ2A7hxRU6avr1+O+oabuUMBtmoKFwafm9s9dT5heO2/Jg/JjsnRZs1Sp196ETlnBDPeH7oirXD44ODzpos1AgAO30mnMm1PIgwGY11afONzicBIzULUv2tLEp8s2GUc8fv73bfgnngvkUawmxt4tKb6REaZJFDQxzxBY6ldVN+MvB03HrhH8Gu70Gwra+DmCkhete13L9795otoFq/k72ufJdxeQymsPwFYnHbl5NG1YUtlwr3c2ncFw9fmyIHfywyW8JHnEKzmsHusiCVY/lNxvUbPipIuZemx3qP9/HJiaD5Bw6TWmXhuUafa9XK5K0Zvjy+LqmsHuiVLWI+5pAWFIz1+vqrp9YnbdSKHTalOMiSc2XOzoBE+c/RhZqWRZYub8nPgkjH3/vMv68N95u/yQjml918ePOh0AjzeGvZNcKOmuhNNmapozE2Pqhe199mGesVAOGZ02rJ8UO/zGqiFi8jUAgx0KONt49TOtYCw6jnhzmfPUnUBhnWLOsmTG5HkmqbrEtIVEljY899tjkYhZKJ47dtL4aBf5ZRgBNoglFkrIENiURgoJvADzf9+VoEnjyRT/387bm1WeEx796vs+f/Xfhv9NMEs+jYc0N/r+QEJSQkz6aEtIVgIkNZdi13IO6iA50nZYjeYRqXcJfxf+UiQlSIDFyJSvTpVCb+95WmhJDPp42tHcZcIPEzETtVufqZfY8NuWAwlfDyBBJ6byE488W6Wc4Vf6/nV2p0lm9GOnzDO/afTj1mGxbLlz9T+dZOyn0hTa9QZvvkTmrUU5Ngy4gBgJESgJsLyX9qUQHq3/oLUa55o/Ma7gLuX952rgzDytDtPEJM+V/ZJsTevqwWC9IBN4efLhCrL7+NCbdd8afEhD2APvO47c9XgV+y2FHsZjbSE6TXqMhvJfgZn1pCaxUTfxJ4OCAThYXXMqCHXxL4FKxJsvSpdev1uoU6c2gKJNRJZVl8Xoyc/Z/rRdJxV9L4IpNICTrr+cRbQnSn5wzjv8ggz/vmn3Qg9uE+eHTPKrFHRkhU1Jd7eLzPRXjaKrUvm2J/RUoWpgn4wm4CAwCGB7d936712XQLnKXo3/bG7Q9+53F26IJBkVjk87owclIHdpvfqmd0kZ/f3k9c0t4DWotE22cLz97t3RmASQtBOcgEgJ+Yu1lPvNXRoiB4+/loQX0Rn9e1eQZGhlJCoP8YFZMURfj8MaPAaATXO93DV14awKgx7hyBgRRTQuK6NLisBJSFkKNJ9q4oGBQXgIJA1Vygr0IBIVQQZIssdSmUgVM06eVnLQOpOQIzQTCn76r5MZ21ChSaLlqCXZ0dz8+DFqSr5tKtKM3S+zTwW6P86YLHEhPksCM+jvkADM/PMP4siT2YuzzvIsIXh6WGiB+wrufUcRonmOPvHkgQ79/+7dl0QFe+4vJHb0TiH1Bkij03tDZ8Qti4wFJdZXohQw4I0XmOPFdtWIOrxpG1A2x+0abeX9gaLs09tYnCKpblxjpXTS3Gu5XLLLNX1lhV9gTDQr8jcdfHOcCXAoNcfKKGqNLxAASJ1tfg6NE8SMTwEbgLBnjvSRIrdWVIUqUf0joeBAngdC+yim17lyJ+7VYIKARyD2XWd8Mg98CwUpmmD8yjAQzTXzxxhzvfCktDybAK/fRGMW/L2yHJ/5sREX3+7Ld8ANRWBIsRCBDhgepjxVDPAFog0WrJ+fWE6F9CCLUgQ2DeYeuRLn+RZdJXLZVAW1FngBA4/JU66/R9ka/vC5K2eFCuN4MJeJGt3sHyU3nBidtgVHo00Ko5zxARt4DuomR6iZpGoN2tODWG8nIeUetrCk/3SbCUYlxqASdouy2BEWifZ7Wr9DIOABDvKQTzvyzsWxM2+v3u3P1VmsnPZ5ZGHfl2k8UQuqhu5bctzjnSDzrPB/3qxmAIkJqYsEi5G70kSN1RfIxQnRYr9u+27L4KJmYmzWzlwrY9+UiBd185vNfNyJD8ovM+WtnSUABD2H/cvnqSFwzAm10dKNKx+7S3Mq/xDKfc/jqCBzGRhN3nUAZYGWi24QpIQtxgK5sZkpIfRsrCgj/7712Uz2xpEHM5USIlfCpZ6S4oKpaMsop/lKZPoHRBKlgt/kma1kRdU3zQHFHrNDzR6NLDRBMns/LerJDCU2PCdT71o+lUPaGAJcRNtmISMwZkXYEwHgSJD4ogAPIbaQAg0UEySfKNSFQgBwaIQsKhTtAhyutZI1tMVRkYuhsgPB4f7QSlhAsBPBISCoQCuQzihKDsn2MwCgDU1zxr0zmokprC3FIe7IE0yfklJOnh+K5kYbGSgRiW74QVNyHgvDb2I5JYl0AFYZsGnf2HDfmHFAlRO/Lue6iIlvyjJE2tBowXgQACxssJl4mz0qU6Cxh1Bvr7yLCW7/rqrpwUbhUiPfYcV23EhPBxAaX/u+w0yWVKbjkckDmmxGDbZul1RPIQazo43LyyhS2RnBjL/YYhyvCNGgKepwWlEGdRfal6NGedx7EkRWdz9sp+aI82FJS6FczDadC6z99V0NSd37Raf431eM7Qztec2LaAaG8xxe3eRBtPEyophtFE/CSgBg6tyKCnlaBJu6Wi528SPvrmNmaFmgUAfo0MmnSLt9SzolKHtLHGdCihrP0lh3FPqtq5Hceg05CMqdXsfC1NTLnkm8OGAQz7V8IIk2FQBjqZaizmNfSzohdokv+j5yo3NPlxT+hr8PXnQlspy/ee9Idq3BaLIo/opj8BY0c8LE/XCM9vust9Sb8pv/vF8Yqwce6+8sKv94IKqOFhZHHKaVUI66KnAvn9MR9oDuQ+bD29myG0vto1c77m5pYAAPIjKwPNhQLT7ytRZpVVyVozOWgaHZlbR6fWrXSNYUuccZu1UgX548fBEAqqgD5Cq08jW3KwOsi2plGv4c0j8HVuxh//zbSEtX6l0uLNVXGVRdenYAGpofH7lflrw2jQdcuvxx2/Gul+5MVEm01ZFszMngOWln1YDMdCg0HJVvHCTVrgbzQwIabKR7THcCnAmG2PnHfDDV/MofcVsmKNYvGd1UtL1bgaXXX36T0W6VSBR/oka5Cy8kT8ljy3S+2Yoqnby4ztoauKbkwR8uod/yjuxFQjisS+SdmZokizuyw5u7OUvgGpWrs2q+onUYcE+jDInWrEizlzTEhbcUp7LRVgyPduSAKhPTtChEnC3FOGZkEbGI1IveAe77mwPTqqcM9Wd5rC2DBBXUeJJIc/zViEFAb2762CWgRTZv/adFGM712Lx87vnM15lk0oMOuLxvrdbflre2P8PC909ItKviigYCAT7DdcObYhMQEdXwAMa59eWCtghnJgbAL8/DUIiIkq3Lw1LE0BGiaok2OyXJRpHy8p/tKjDNvrllm/NF0kNfPWsrz5nW3seTrshdnPU5CUohy9d0MiMRrcTJel2V2G7NBEZabuv8vKrAD7d33vL/44vpwakRQd3+1sgJ7kp7iedVt30lBJUlbsSW05Q1RdfOvalvcm+waAR0txa+pkJoP4Ta8+IwnxtHHUtUUNNCcKZHQQvn7vkMAuwl6/HPFAx3d0T0eAJ5+Ctzj56835f/Y6tP3tmurvJ3Bpdpcux+xRpv/3xylFVtXJwaWWZH0JuEsXr2sLmvvkHi+Fe1Btjhh390lKEkCOaWEexPFasP69XO86tePRo6GdyooZMPCMrQ1LWH14wWpH5ae/p0NTLkh94hhIxJuMV3GclV2VBqQV8AYamOqf/d4lFgsgqBkho+rzD5gtAMRklpVf2Vsy+uq3HuRcP8oHS5JWSrWrdw5bghMyLu1f79CcvvoqgRmBQt/3ST88plqc32Y06rC5g5gq9WIuMDyzRHBaEkzBGRpZPpoHaC4RSIwYcou3QLAvRMqY8tjSYWHPHo4uwOvPYzUE1gmlSPNxTuVsvLsQN7kZR/Wo/591/gHnboS3wscle0DdAm0MbCkqSnJISf2WtPAlh3njwdgIt9/N1jys9jSbYboBX+6PZozZhcnK7EDykSqr8ovhgw2aOX6BBkAWXTjvWkdDhalJ7E6fISPdkAwuF7idDiKdN1davz3pV53fXbgeRyz1wvpgPJU3hnPThxTD6Lx59sj5RfbyPkX3QnOaTrVBwvOevKe8p6uFubBcddXP8HxhrXfL0+wuc868DKXdP1mrUGdVfXH7amfWkQCnx0AUP2cjbzmNtSl1iXf9qLYNSeABVwyjZu/8PFJWcfBidE8aCHhXi1Tt3/KUQtLpUR9aonTEcqY7jxNjcRtnxZRQlCZ/uomeIfvTR+D8ICtmFyyE5Z5NVTSPr/j+6I3ozJ0jj5SyvpRpr2omhpncUtvv4lDH94eb+5FKx5x3J+zYoiveeeT1+YlxJGt0ytuBFDg9rWV7pfNBIVQJVT4Tbrf2V8i5Qw13H8axQGLsiCoNWgunY3tLZMwpA6ToTtN79UOHZhb4a9aNqrtgXQgj4p/uZ7Tx5rWBQzW1Gf1Gv5/S9MPdDzdxM8T1a+Cj1utmVgTRZcrCP5Jh/3vH7oqnI9CCqpS/LnFCmUZebzOzKusm9RkpvO+qtiTr/fLL2083NW+q7DxdK3iRnCi74UvvehLRHZ47FkT0zF0RPGp8x7uzJg02dY1a2uK4PDc/o6ksc15KdscOe27tbWCm5LHM8yvZHhC4LiSubkFcfLhSDMoqBLsPPkk7SF25JT+6AUaWEIRcxBtc0R13+ZonsY/Tff+pxk9eKI145+2v1lzA/NZgcDApOBqr/YTDWE5roIaqjc3N4WM1MZnW6qe72fQecdaboJKJuXfALnHr7rweJ77mglC96KccUAaWJj9Z1B4TqAEeb6LEFRn5+bnm/O+fk+29ty4JYtfbaPUorUodnokXzE/0m+VY9cW7CX71jEHjWv6qwpqiWRme2D0pNGuexWXJUBMCwZekRZNg6NfUhi6r6vC7ZzIQa25RYM8F4Q5E3DuPoHe2rO5pcwp5bHqBBzl6rlnBG6uhsPZ+imjsYk5j/xJEZz1OsHB+vH7SP8CiovE0dlJYwIuxd7DKWrdBJAaJoF5ZOXvxkvfiqR/yB3qSCn7eW4iu0Za7DSqr7QsT6ADdPDDsQpLw4eO0Wn3AIWCuMuwGCiBsBn5Ka8KWqgV3sKzS8aH1vIDfQKaCK5iCu7k+68Qb1HtOVFz7xBgJRCKxOCwMtnd1SbuQSGSdw8OysbkBAVt+9h289LN1NFO4uWVcbIzYErYz6YqwUG54XlMTkK3exe1rNgqNoqR6RGEk1Aa1Cni7+4ao/4W1jwHJwbF5oZAA71+Ken0P24PqPHz447OHI7Ls+IloGNDkElseUNTFL8LUfXm3s89ofQoocg4gD5Z6HvU2NyX7Lpzvh+Gt0Hwn8393o1LmbgA9h09Sp8wHB0zpb1lZ7YkVjHhu9oi+HiDUQnZ9RH67wW2AKOkJcA2NSCJ/a7Uz0zDozfPGAn903PNdtcy3OznVMhZSL+Tg7pv5JgGm9rNdqbZtNH+8wwCFi4Mkvu0yBrl9YZkhngz172bGg+eAaVJfNes4DBPOBdpD/Krd0fEbjqaTmCD5kK+Bycgs/gPorymLPFvfYcACdX02YyGHIPkhl2R7QyFyx0MRzxT5Mt7TRpvPIls/2q/PZjjk4O9QKETiXMZCq8H4s08OxJBTPfmhsDLHfS7nDBinlCzxHoWc3Achh0DXQi4pTgZCZJ4p0Fc1pBFgNS9l0MWKRIRHWrW9g36IWbgGgxvcPJRkS0apepMz7co7zx39Pi/s/pklOuaTss0yaW/SFHFv+wuUZs+MimB0+L13XjjjimSNu4PPLsc+L8/589Is4ZKHsTL3QsyXrB1umoKeVjkqgtGRK+88d9PvZwlnflUOt2/izJsFE+U+X7as5dsePP5XB/dIKsOXoszdOS0Thc2qrdiYVtXd/bDK5+HvDFqavMnVFm7gc8AayPO3vHouuYn12RtTPXzb7xXfZLtDxgY6s7tJCQJKU5titx/XQwFPpOQFx51tlTBJEoOM8BR8XnQdz+1qyTXMfFIly0qJEQlroyHlXpeF3Vv0GaU1S2wref7u74cCPsjLCy4+chE5yr168/JdvuuXTGqkthorNTqKhK+3zROToaOZak09zz/6aSDgoQWKahbvp52l6DqIhhcDkdHDlpKqN0YZvzyQhLuYGXABPOGs0eulg89CXjWcmcX77VlZMRoJfzv9CCgr7Aav3opwNzJZ2jV1kNRfbX0GCNYiam0fBKhZ6wkIOwmzGtnGbMNcEZDj8zD0MEBWbawJLPL4RmNOxmafDyYIpJPnFbaMHKYgXJvmKkk3tJFyZ+2ocBumObtbTEXx0VIRzdham2WcHXV31E0+yPqNIycqTX5U8IBwDp96pV7VElHrJkGvK+5E2KSmbATe4jtU0LzmWD3P3+NqKOaJe63iNIqXl3FTulx7cTG5cRsVx2sudYM7aoqF9HlZCsNbpsRLXCDCRje5Ug9kfNkLRTUv7uneKuEWS2Tl/qdwfVTIlALKW8MN7S+dDFCr8KNSRHj7fS/KOigQEd4Od6gM78X1PP+kq4GIRkWKaubuk71fvA4jJ6qprXLEeVrlhnK31OhzGDHPRFHy8c5Rhd4zZhpjqXu0qVqoKKAY/WMcE0vp+77gqA0CzlvVEAoo2NmzJXg6FJvvbtk/Kvn6H4fq+vLdf5OZtoh9NW/JmEWUXtTf7G+XE943W1C+2z/4XiYlP34UJvcPmRLQygYK1/xomtJFuTnh6JT5dN4SS1mXTalOBLezBr0JnOL61qAfjROQhkxX0gGmI912/WuUHrKNnPgC8zewNLDcs5BF5T65L9uIhuuz3R4KaVcQCrm26xu4JBhYJXnuJp/fj0X6Tcm9yFQxmzGU9Vncc76v3CVeJq/e6MEIjj/S3sydTbnfNrVXjja1rSjpHdpUb/qpxoxEXCpBayopyHBG9Aa3fVVK6AFPltBy4CWLu65OBaw66lwzocFjMMN96U0D0O6+cKdDh/s014E8mOY+82YCSHdfuXMgw32cTO0Dme7bZH4DZOFDhW72ER8IS0FHlvVMRirj7X/+wXR63Vl7xKfDUpilTwc7Ch4QEcb1Asts078S0wGcXXidEoVgNzKXGrsHKc+Yi5/453ty7Jzx/0z3JM+8rSOq3G/ah5dN/avuukC//SI6Vn2rn2M7ZvR7N4A5NcLGTmSBb013c40Q6bJmI4TyQrbA1FAEshPTqudJ55/X5haGuwRd9TvUDtYB3KjJ8Oo/j6YFWE8d7lQ2VA+XsxiqbjoxIZjVXf/I9nq4LypLMJr1j/eay/+AzKsCK0CGGoV6PfdWO9Coc5XkAmypnIgo+K+GPdTcVY2N575mgLBEjdabaaitQ/GzlnUlKrJGAFfBaQerHnPd+67RiaiyHy45/rXsYXszofUAsnlF6PhTxz03bwINzUUF8MGsg19+/stjsH6TQAh7WJHc5jn1Y//xpKvrp/0YlURQgJcaV0/20tjqqkb23E8yF1D9vesy5NXqK6dJ8doMx0ZsTdttGxp1wrym85C9XPakDDN0bOw6yHrlpS5RWYJNrH3Ty09cJyUxftSOMbku3Yh31J4vnn91XzRi7cRH/ENiiC9oT7bB2uHkxdHEwqe9sle7l/I2bayABMpZYWW3YpdmapRCBELJdFPrDQPappwqvSrxaNLA6mXU+QAtvuwsLMCJKAU0/ckoYf1nrX2mdCOZ4W5nE8+EKoC2kRGsdx5bJMT1mRoFiJCawml0lDr30r9zFrKe2554IAaRyGPMD5P1adUeN9T/NdDX66D1o2MSAES58S1AgOMRmT8J2bi+l1urqyiq11u9EKao6xO9cFLikRhESjyee6dVahJU36640VN1bb/7d3qAytLc8JXGba8s3GuZSRqPqTTfhjSaSJNgB5EQ/MnKLHIfEoQeben11zJTEv9FBmIQTBuISalTP3bbeDe0+LDHXI9CYltlnnWS7Dx8V+aSNixxarzGcuqKUskqJaWJPcMU23aXrv5tKpsIhhrAqCNNT6Ev1Aj7vU9znjM29atpUdQOcNGhqpdFLiyh5Av6bS960kuvMRGZdH2VGbZEOAqvagwh/CnS5MHA2cOdkJF+VGm36kgz7JhvOat8rApLvbfDFxKTRtS9T33u/BS0yF5pNHBTPFdGHnxKgqSTalrgO/naiqGCCCDBUXq+u227/x3t3akzhWHkeHN0vEzTSMrFTaTJqMUvjI3sKp97XF1z+TpOY9Mb1lST7EKtyI4U3fGoF19JgpfRy/bcDWirvpCjpOpg4s3RyXVHrpBh45rIoE4FdV6+8q2qxRlxIQMwfI/H07Vuo9EWAjGrqRgVdVn0TiV5Ym90l8dwY9Jc+5GqiTc4gThNDDpdaXTpyjfCadKEssjaFANRoIdrAMXaqiAsWVK2GSwPm3ywR4DhMsjUdGnZK1wmw+lBElEUaS6dgXGN+jztO/m0NY8Q1NXYdC8uda/LbO0XVeTv9NvmnO72KKln05OyFt2ROnvkEEiJzTZXIkYy18ZmJsgSVCHehHfTibG92GY3oLY3hsbfwTfSt5fAi8dqIJw11eXLuPzBQrpsk/7Hrx2PXrTA1EahN/qpCQXfXNvFYhXxDxZYZ9iqeNsy+UINspp4mrf9fQHR/BNiEpkNZhPp1kwnSaOy3IxOyvQvXSaxOxRvUDIh3ZRfkv/5Y1dfyNABTq+6JS/mnyuoego3X17d/g+eW5eXtF+7R53aStH+MXJBcCuDofOwftV/WpCf9Z1+036p8xzE/gmELoVZo+fs6KpkJCHYGqUvmbXtF2oThlf36U7SEHUMrpB+mVr64weqL+iLbdN7RGeiiOuOEFwJqwf0JICkfvebzsItv/vd2W4RoIJ3Ky2HqF6vhrLfJkrFtx5plb7jrFfbxNBFtxGJK6Kqs487BwyQA1MC9qE5VQ3ecQyJ+XkLbpwvug6m6hrMEXj14y1zNVD9GobwwdX9G/QvoEeQ80owrWfPSzfe/kIdMQefw7SV536O0nn2q579/+oE2gbADz+8kgAASz/PXqbaUfCEjpsCYAwwABDQhrYOMOEXhZt0WJCjlx93OxXX++wH8H/PfRR873nzgx9ELdWIfoRRAwwTrRSA2UIgl4+l4dhw23J9IHFCoEbr9ig6yazzIDwHUPhqv3kcsRVAfqDv/frHt+o/1oliu3D+ZZPFWpdyugV9D6HI+jX5iKbh6MWcPvr40QYa/1GPAYxnWC9AR4yVvczyZX+Vhpkd1PzM2gHUIdAaBho84GJHlPmb6tEet6CeV1DVs/WYz/xM47hLQxK10lrYApeCrjl1Wt+pfBJGL3A6Y+F3WGz2Ww4kcY98BY8/dvuCwbbsZ5vQtbx+taxmV4Iah0ZKTT6va57fkxYDIpD7c08di6Hu9fFUSdzRsBw73wC8S2EXlwagGyKv4gj94njbkENDL9fx05zOEhym4HQgkhvDc9sezktG7xLDH3vFCzy2IFKENAUQ3LSCh3vJMEP1aSzB0zUbK37juVcBYH7Nk355a3AE3KgoACJw+CJ7kpIOqoMdyOoLOFKBAGVtRRvrTZhfC538ZILgRiUCyLDI+krGDKqDFY+pGPU7UokA9o+7UmBg6FoVwQBQMSiEoEJYSlLDxjMwBoHKZbpAqCFYg0IIPIRu1MvBJqT9YXCv5DZi/EtuOEgSAm2ADeZLMOowKY7EHZ8WCKwT601NDQRXuuyrUjIkt3855lqtpzRDq6KQyr+8CsziUre7YHC1UtIKUDdbikmEaaiKMJ0wIYNCmFyYnkq0E+pVaMC55YMw9dMWA7DL4vTDBFa9TJebSHOHDIIDEGiFCYAQkqrg1ZSCySX+jVQy0UkCp3HzZn+zkIR9eDygqz9arkAkjAAjmm3zjU6uxIhKY0GBJkhXmFoQ0cMyyQV5sGoXOWDywATH6AjR+cuebUy8JZj3hGrR3I+WfFyXoDHr5F0hscsE/pGkSzXg4JnnSUjtSgCtJVw8YHkD4uf9J0PMXzD10QwzTB1BbkPX/2NxF72Mk11bxh619yXUWfwqkljWzoruIdTEFSTVJUgeVDhgWYPfTkO1mJY7gZcUN7moARYkENwQR3NDLFaiyi/4FDM8rf7cB9P46DWvh9s8SkuvL4MBlEjQ9qCdeA1c5xBwJxwk94Em/GPaWlgCrcOcBGC8v0D7BBPLJL8yaWUH5KYF0mCZp+QbEQjZYQYB7QQEDd/Ox6AD2TUJuoi7W6FHu4I+gd3fwRicvZ3O2K4+CMZD92kwgbKCiax6MvTOk1CNTQUB6mgAkJ8AIoDQdEgBjLCjCBCKHoQyKtJYwEPVncd8yCMQUPUwPBBS8wgDjA4HBKa+LYhIEYglPD76RUlcY2d2Wejys8Y4aekRPy5m9H8g85ld2oMo16tYUbaQa+Arpu4/D2xgyyqDa7uln3d9Gh+A/rz5mTk+O9DHAUa8lMZd151UXwfy+wvYH6TetR2sdDyRWOpu/ZQRq7296FZn8UVlbBMSZdLhTKxn0k9Syqo2Naco1FK8DrWPe8vaxKBMNpJr9lLsrE3prDuwY2lsXb27cjjoPT7MxhivdGCi9wYhcClqFOJf6MIh1cOgCmhVlaFqrlTpjRXcl9dVs8PssOGBVAdqGCdtUKKgHjMTXT3wrsir3sIjgx9f/0acb1M+K0rIc5gx6FFRBTOxFrIV6Pw5GNM4OwJoOcLjswOe8UCLJ0rd606qL06igMPselePX3FZDLudtsHrHtNjmsWoSLdhmFJoKAnZAGBxIJcxRbJwcSAyQs4TUuFCUNAllIgCJQwZIWwlSfU+Z40mm2Et3moaBbdZv+imKeDSrBIhrzGwTaTRht76Hx15MweUKJJsd8m0VUJII2JEZbKEXNTFzkjRlZ0EjFCJ17EDWKkGd9DLQQ9AyNzh+PybDEdKDIG8XsfOGBmrFK+iiCBbw/F5AUsszzFoejND1RN0ou6CaEgKVzm9iTGIhtxrn8TDYHwvRRHkjIIefEuTHq9mXtW8TDE5ZRAgwN0EYJArG+TBWM0rDoJB+C6fVAvE9rxuFVOvthF2eJr0XTOY0md0XiuoidCN8TORVm1ZF7vdJ1FmF2G11QQWlcmbhVDoaHtWvxAy0JpxXbUm4aqdwovd1qk2zqzGdkuGSvG7tcRwZ9Xhzw/hG6Xq1Rx8IIy1/cJFZpKTAxcnBoPbMx8jDLhLWGIEVstNvSis8SeGiwosSFrzN4FEjdILd22RMlBJBJRuK4GUwceAwvbskFmbPIBpxA2ek7xYHxqFUZ6igN3Qa17KgT7z61h7Waq7uH3RSmPFeXecAu7aChEYzaD5muHjEdUFImj3Y5/HBV4NfCYI2J2Rw+vuBzZ4JMUKS73lgD1BwBLfSLTWU88st9Ei59Xot91BLzz3Up+3XfHaJTXE8tR5T+qNdz774KNP2sl898VXlzXqs9oXfvhJoVO3dBP+fHXssVs9Tgl/+93/259gQUKE6hAmQrhI0aLcscscMeL0+E2Pe+eChmnZTiubgV1uT0XS6wP5MVgcKRk5BSUVNU1H48J09AyMTMwsrGx82Dn48uPf1W9eoCDBnEKEcnELEy5CpCjR5RbEihPPY2ZuYWllbWOLuepKzYvF5nB5fIFwTfIdTdHUPPK9B4+ePHvxuvJ98bQypZ1YAqUyefcDULSyFq1BUgbVaHX266bHq+MnJzjJfF/91KtUpVqdv2qDwbdoJfX/VDQGi8MTiCQyhUqjM5gsNofL4wuEolraevo2bujaSrCSqmznkblJYolUtub+341coaSsoqqmnpiGppa2jm7/9PQNDI2MTUzNzC0sraxtbO3sHRydnF1c3dw9PL28fXzFL6LqHkTvo7IsE7PibjZ1CmjwLLorBzWGQ68l0WXEOEO8m24WV5+qcpXPpxiO2VwvxBJ8seFI/fywmJfcc9biR0nrhWU+iFW/JMUK5RS94tcmexfL0gjZ62KxWv6YajayFcYFm7Z4xG62ZqpcVxhPNVthBcmmuI38jsl1T2ZtN5YV43lYMH0IBUvRgMQEPu+NXd0wNVcDFaTTrKlaa1YXFQlTvgdKkwVb8FwSKs5/TLMWscn3kf2FhfmmaIklYH617AgRqsgpUsJBNW4UFCjT2+68thWsVAOyGhauCUgLF/Wkc5No/Bt+j9PoY3AaZzlQRNRFQVEtAqwth6zYTDWhMQuayLUbK93JFZHSFRYyEcov4pm21kmup9dtxY3o6IY6cYPdEN3kszNE3ffp7kbbom5Y3MDAdAFUeHdyjyl8KPi0/Kg3fk3Rj5Bu+9qHQt7+eeEOJ/SQnikYU/dDzYSYrSodILc2bjP6o30u0JHFGrbOiB1Fknd1ghQ6lMAz3lMjw0naQVrVxoG2VlexUyukqhHrQjtOMPsegjeuCoVROEWQlxJEoglhohAKeUzCh3bs1KZqfCeb5f5HemdZ7B+v7kRXXenGEdW/W165Qyr36QN1+onShyYU9omoLWNIKjKJ2gyBBtTdEX+rnUyD/wfmyiKSz7jQIZn2TgpnPABSw7UYRfdlzOy2b2UuDyE4y2qQZ4JgLyOMkRHeywheZSTVUcyeW5daxkUNZVTbLz8jh0qY1WytFARjHKZfETE7kPgMczT/aet0V7KRSMNbXfFdcCQh4VfPCPKtwptX4FojhDono2Hbbg7QvB0Ab4VXt7X8BeK3BnQj+I4CuCLWBUWNPj6DdGpiYCgyUtCy8x1If9ehGAqH6g3J0jT/4iJrumvA/8KL6HWBy2t6Q+bYXSGSAleg0Swho2uS+52QeQFyMRN//8fP5OoN2O8/9T2jmPF/7luiBK8UnYTY4lPUu/Jc/teJrqWSg+4YRGPUFr/5kv9bZNEpI3nSyjSuBWz2hXKMS37IfhdUycRbGpEBAAA="},function(e,t,n){const r=n(250);e.exports=class{constructor(e,t){this._makeImage=e||(()=>new Image),this._makeCanvas=t||(()=>document.createElement("canvas")),this.stageWidth=480,this.stageHeight=360}setStageSize(e,t){this.stageWidth=e,this.stageHeight=t}resize(e,t,n){const r=this._makeCanvas();r.width=t,r.height=e.height;let i=r.getContext("2d");i.imageSmoothingEnabled=!1,i.drawImage(e,0,0,r.width,r.height);const s=this._makeCanvas();return s.width=t,s.height=n,i=s.getContext("2d"),i.imageSmoothingEnabled=!1,i.drawImage(r,0,0,s.width,s.height),s}convertResolution1Bitmap(e,t){const n=this._makeImage();n.src=e,n.onload=()=>{t(null,this.resize(n,2*n.width,2*n.height).toDataURL())},n.onerror=()=>{t("Image load failed")}}getResizedWidthHeight(e,t){const n=this.stageWidth,r=this.stageHeight;if(e<=n&&t<=r)return{width:2*e,height:2*t};if(e<=2*n&&t<=2*r)return{width:e,height:t};const i=e/t;return i>=n/r?{width:2*n,height:2*n/i}:{width:2*r*i,height:2*r}}importBitmap(e,t){let n=e;return e instanceof ArrayBuffer&&(n=this.convertBinaryToDataURI(e,t)),new Promise(((e,t)=>{const r=this._makeImage();r.src=n,r.onload=()=>{const t=this.getResizedWidthHeight(r.width,r.height),n=this.resize(r,t.width,t.height).toDataURL();e(this.convertDataURIToBinary(n))},r.onerror=()=>{t("Image load failed")}}))}convertDataURIToBinary(e){const t=";base64,",n=e.indexOf(t)+8,r=e.substring(n),i=window.atob(r),s=i.length,o=new Uint8Array(new ArrayBuffer(s));for(let e=0;e<s;e++)o[e]=i.charCodeAt(e);return o}convertBinaryToDataURI(e,t){return`data:${t};base64,${r.fromByteArray(new Uint8Array(e))}`}}},function(e,t,n){"use strict";t.byteLength=function(e){return 3*e.length/4-c(e)},t.toByteArray=function(e){var t,n,r,o,a,l=e.length;o=c(e),a=new s(3*l/4-o),n=o>0?l-4:l;var u=0;for(t=0;t<n;t+=4)r=i[e.charCodeAt(t)]<<18|i[e.charCodeAt(t+1)]<<12|i[e.charCodeAt(t+2)]<<6|i[e.charCodeAt(t+3)],a[u++]=r>>16&255,a[u++]=r>>8&255,a[u++]=255&r;2===o?(r=i[e.charCodeAt(t)]<<2|i[e.charCodeAt(t+1)]>>4,a[u++]=255&r):1===o&&(r=i[e.charCodeAt(t)]<<10|i[e.charCodeAt(t+1)]<<4|i[e.charCodeAt(t+2)]>>2,a[u++]=r>>8&255,a[u++]=255&r);return a},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,s="",o=[],a=16383,c=0,u=n-i;c<u;c+=a)o.push(l(e,c,c+a>u?u:c+a));1===i?(t=e[n-1],s+=r[t>>2],s+=r[t<<4&63],s+="=="):2===i&&(t=(e[n-2]<<8)+e[n-1],s+=r[t>>10],s+=r[t>>4&63],s+=r[t<<2&63],s+="=");return o.push(s),o.join("")};for(var r=[],i=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0;a<64;++a)r[a]=o[a],i[o.charCodeAt(a)]=a;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function l(e,t,n){for(var i,s,o=[],a=t;a<n;a+=3)i=(e[a]<<16)+(e[a+1]<<8)+e[a+2],o.push(r[(s=i)>>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t,n){const r=n(76),i=n(50),s={sanitizeByteStream:function(e){const t=new TextDecoder,n=new TextEncoder,r=s.sanitizeSvgText(t.decode(e));return n.encode(r)}},o=`<!${"-".repeat(2)}`,a=`${"-".repeat(2)}>`,c=new RegExp(`${o}rotationCenter:(-?[\\d\\.]+):(-?[\\d\\.]+)${a}$`);s.sanitizeSvgText=function(e){let t=i.sanitize(e,{USE_PROFILES:{svg:!0}});t.indexOf("]>")>=0&&(t=t.substring(5,t.length)),t=r(t);const n=e.match(c);return n&&(t+=n[0]),t},e.exports=s},function(e,t){e.exports=e=>{const t=(new TextDecoder).decode(e),n=(new DOMParser).parseFromString(t,"image/svg+xml"),r=n.documentElement;let i=!1;if(i=(e=>"100%"===e.getAttribute("width")&&"100%"===e.getAttribute("height")&&(e.removeAttribute("width"),e.removeAttribute("height"),!0))(r)||i,i=(e=>{let t=!1;const n=e=>{"rect"===e.tagName&&(e.hasAttribute("rx")&&!e.hasAttribute("ry")?(t=!0,e.setAttribute("ry",e.getAttribute("rx"))):e.hasAttribute("ry")&&!e.hasAttribute("rx")&&(t=!0,e.setAttribute("rx",e.getAttribute("ry"))));const r=e.childNodes;if(r)for(let e=0;e<r.length;e++)n(r[e])};return n(e),t})(r)||i,i){const e=(new XMLSerializer).serializeToString(n);return(new TextEncoder).encode(e)}return e}},function(e,t){const n=function(e,t,n){const r=n?[e.getTargetById(n)]:e.targets,i=[];for(let e=0;e<r.length;e++){const n=r[e].sprite[t];for(let e=0;e<n.length;e++){const t=n[e],r=t.broken?t.broken.asset:t.asset;r&&i.push({fileName:"".concat(r.assetId,".").concat(r.dataFormat),fileContent:r.data})}}return i};e.exports={serializeSounds:function(e,t){return n(e,"sounds",t)},serializeCostumes:function(e,t){return n(e,"costumes",t)}}},function(e,t){!function(e){"use strict";var t,n=e.Uint8Array,r=e.HTMLCanvasElement,i=r&&r.prototype,s=/\s*;\s*base64\s*(?:;|$)/i,o="toDataURL",a=function(e){for(var r,i,s=e.length,o=new n(s/4*3|0),a=0,c=0,l=[0,0],u=0,h=0;s--;)i=e.charCodeAt(a++),255!==(r=t[i-43])&&undefined!==r&&(l[1]=l[0],l[0]=i,h=h<<6|r,4===++u&&(o[c++]=h>>>16,61!==l[1]&&(o[c++]=h>>>8),61!==l[0]&&(o[c++]=h),u=0));return o};n&&(t=new n([62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,0,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,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])),!r||i.toBlob&&i.toBlobHD||(i.toBlob||(i.toBlob=function(e,t){if(t||(t="image/png"),this.mozGetAsFile)e(this.mozGetAsFile("canvas",t));else if(this.msToBlob&&/^\s*image\/png\s*(?:$|;)/i.test(t))e(this.msToBlob());else{var r,i=Array.prototype.slice.call(arguments,1),c=this[o].apply(this,i),l=c.indexOf(","),u=c.substring(l+1),h=s.test(c.substring(0,l));Blob.fake?((r=new Blob).encoding=h?"base64":"URI",r.data=u,r.size=u.length):n&&(r=h?new Blob([a(u)],{type:t}):new Blob([decodeURIComponent(u)],{type:t})),e(r)}}),!i.toBlobHD&&i.toDataURLHD?i.toBlobHD=function(){o="toDataURLHD";var e=this.toBlob();return o="toDataURL",e}:i.toBlobHD=i.toBlob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this)},function(e,t,n){(function(t){var r=n(256);e.exports=function(e,n,i){if("string"==typeof e)return i(null,[e,null]);if(!t.isBuffer(e))try{e=new t(e)}catch(e){return i("Input must be a Buffer or a string.")}var s=e.slice(0,3).join(" "),o=!1,a=!1;if(0===s.indexOf("83 99 114")&&(o=!0),0===s.indexOf("80 75")&&(a=!0),!a&&!o){return i(null,[(new TextDecoder).decode(e),null])}if(o)return i("Parser only supports Scratch 2.X and above");r(e,n,i)}}).call(this,n(18).Buffer)},function(e,t,n){var r=n(22);e.exports=function(e,t,n){var i="Failed to unzip and extract project.json, with error: ";return r.loadAsync(e).then((function(e){const r=t?e.file(/^([^/]*\/)?sprite\.json$/)[0]:e.file(/^([^/]*\/)?project\.json$/)[0];return r?r.async("string").then((function(t){return n(null,[t,e])})):n(i+"missing project or sprite json")})).catch((function(e){return n(i+e)}))}},function(e,t,n){const r=n(62);e.exports=function(e,t){var n;try{n=r.parse(e.replace(/(\\+)(b|u0008)/g,((e,t,n)=>t.length%2?e.replace("\\"+n,""):e)))}catch(e){return t(e.toString())}return t(null,n)}},function(e,t){e.exports=function(e,t,n){if("objName"in t)return t.projectVersion=2,n(null,t);if(e){if("name"in t)return t.projectVersion=3,n(null,t)}else if("targets"in t)return t.projectVersion=3,n(null,t);n(new Error("Could not parse as a valid SB2 or SB3 project."))}},function(e,t){(function(t){e.exports=t}).call(this,{})},function(e,t){const n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#%()*+,-./:;=?@[]^_`{|}~",r=e=>{let t="";for(;e>=0;)t=n[e%77]+t,e=Math.floor(e/77)-1;return t};class i{constructor(){this.generatedIds=new Map,this.references=new Map,this.skippedIds=new Set,this.skippedIds.add("of")}skip(e){this.skippedIds.add(e)}addReference(e){const t=this.references.get(e)||0;this.references.set(e,t+1)}generateNewIds(){const e=Array.from(this.references.entries());e.sort(((e,t)=>t[1]-e[1]));let t=0;for(const n of e){const e=n[0];let i=r(t);for(;this.skippedIds.has(i);)t++,i=r(t);this.generatedIds.set(e,i),t++}}getNewId(e){return this.generatedIds.has(e)?this.generatedIds.get(e):e}}e.exports=e=>{const t=new i;for(const n of e.targets){for(const e of Object.keys(n.variables))t.skip(e);for(const e of Object.keys(n.lists))t.skip(e);for(const e of Object.keys(n.broadcasts))t.skip(e);for(const e of Object.keys(n.blocks)){const r=n.blocks[e];if(t.addReference(e),!Array.isArray(r)){r.parent&&t.addReference(r.parent),r.next&&t.addReference(r.next),r.comment&&t.addReference(r.comment);for(const e of Object.values(r.inputs))for(let n=1;n<e.length;n++){const r=e[n];"string"==typeof r&&t.addReference(r)}}}for(const e of Object.keys(n.comments)){const r=n.comments[e];t.addReference(e),r.blockId&&t.addReference(r.blockId)}}t.generateNewIds();for(const n of e.targets){const e={},r={};for(const r of Object.keys(n.blocks)){const i=n.blocks[r];if(e[t.getNewId(r)]=i,!Array.isArray(i)){i.parent&&(i.parent=t.getNewId(i.parent)),i.next&&(i.next=t.getNewId(i.next)),i.comment&&(i.comment=t.getNewId(i.comment));for(const e of Object.values(i.inputs))for(let n=1;n<e.length;n++){const r=e[n];"string"==typeof r&&(e[n]=t.getNewId(r))}}}for(const e of Object.keys(n.comments)){const i=n.comments[e];r[t.getNewId(e)]=i,i.blockId&&(i.blockId=t.getNewId(i.blockId))}n.blocks=e,n.comments=r}}},function(e,t,n){const r=n(9),i={"forward:":{opcode:"motion_movesteps",argMap:[{type:"input",inputOp:"math_number",inputName:"STEPS"}]},"turnRight:":{opcode:"motion_turnright",argMap:[{type:"input",inputOp:"math_number",inputName:"DEGREES"}]},"turnLeft:":{opcode:"motion_turnleft",argMap:[{type:"input",inputOp:"math_number",inputName:"DEGREES"}]},"heading:":{opcode:"motion_pointindirection",argMap:[{type:"input",inputOp:"math_angle",inputName:"DIRECTION"}]},"pointTowards:":{opcode:"motion_pointtowards",argMap:[{type:"input",inputOp:"motion_pointtowards_menu",inputName:"TOWARDS"}]},"gotoX:y:":{opcode:"motion_gotoxy",argMap:[{type:"input",inputOp:"math_number",inputName:"X"},{type:"input",inputOp:"math_number",inputName:"Y"}]},"gotoSpriteOrMouse:":{opcode:"motion_goto",argMap:[{type:"input",inputOp:"motion_goto_menu",inputName:"TO"}]},"glideSecs:toX:y:elapsed:from:":{opcode:"motion_glidesecstoxy",argMap:[{type:"input",inputOp:"math_number",inputName:"SECS"},{type:"input",inputOp:"math_number",inputName:"X"},{type:"input",inputOp:"math_number",inputName:"Y"}]},"changeXposBy:":{opcode:"motion_changexby",argMap:[{type:"input",inputOp:"math_number",inputName:"DX"}]},"xpos:":{opcode:"motion_setx",argMap:[{type:"input",inputOp:"math_number",inputName:"X"}]},"changeYposBy:":{opcode:"motion_changeyby",argMap:[{type:"input",inputOp:"math_number",inputName:"DY"}]},"ypos:":{opcode:"motion_sety",argMap:[{type:"input",inputOp:"math_number",inputName:"Y"}]},bounceOffEdge:{opcode:"motion_ifonedgebounce",argMap:[]},setRotationStyle:{opcode:"motion_setrotationstyle",argMap:[{type:"field",fieldName:"STYLE"}]},xpos:{opcode:"motion_xposition",argMap:[]},ypos:{opcode:"motion_yposition",argMap:[]},heading:{opcode:"motion_direction",argMap:[]},scrollRight:{opcode:"motion_scroll_right",argMap:[{type:"input",inputOp:"math_number",inputName:"DISTANCE"}]},scrollUp:{opcode:"motion_scroll_up",argMap:[{type:"input",inputOp:"math_number",inputName:"DISTANCE"}]},scrollAlign:{opcode:"motion_align_scene",argMap:[{type:"field",fieldName:"ALIGNMENT"}]},xScroll:{opcode:"motion_xscroll",argMap:[]},yScroll:{opcode:"motion_yscroll",argMap:[]},"say:duration:elapsed:from:":{opcode:"looks_sayforsecs",argMap:[{type:"input",inputOp:"text",inputName:"MESSAGE"},{type:"input",inputOp:"math_number",inputName:"SECS"}]},"say:":{opcode:"looks_say",argMap:[{type:"input",inputOp:"text",inputName:"MESSAGE"}]},"think:duration:elapsed:from:":{opcode:"looks_thinkforsecs",argMap:[{type:"input",inputOp:"text",inputName:"MESSAGE"},{type:"input",inputOp:"math_number",inputName:"SECS"}]},"think:":{opcode:"looks_think",argMap:[{type:"input",inputOp:"text",inputName:"MESSAGE"}]},show:{opcode:"looks_show",argMap:[]},hide:{opcode:"looks_hide",argMap:[]},hideAll:{opcode:"looks_hideallsprites",argMap:[]},"lookLike:":{opcode:"looks_switchcostumeto",argMap:[{type:"input",inputOp:"looks_costume",inputName:"COSTUME"}]},nextCostume:{opcode:"looks_nextcostume",argMap:[]},startScene:{opcode:"looks_switchbackdropto",argMap:[{type:"input",inputOp:"looks_backdrops",inputName:"BACKDROP"}]},"changeGraphicEffect:by:":{opcode:"looks_changeeffectby",argMap:[{type:"field",fieldName:"EFFECT"},{type:"input",inputOp:"math_number",inputName:"CHANGE"}]},"setGraphicEffect:to:":{opcode:"looks_seteffectto",argMap:[{type:"field",fieldName:"EFFECT"},{type:"input",inputOp:"math_number",inputName:"VALUE"}]},filterReset:{opcode:"looks_cleargraphiceffects",argMap:[]},"changeSizeBy:":{opcode:"looks_changesizeby",argMap:[{type:"input",inputOp:"math_number",inputName:"CHANGE"}]},"setSizeTo:":{opcode:"looks_setsizeto",argMap:[{type:"input",inputOp:"math_number",inputName:"SIZE"}]},"changeStretchBy:":{opcode:"looks_changestretchby",argMap:[{type:"input",inputOp:"math_number",inputName:"CHANGE"}]},"setStretchTo:":{opcode:"looks_setstretchto",argMap:[{type:"input",inputOp:"math_number",inputName:"STRETCH"}]},comeToFront:{opcode:"looks_gotofrontback",argMap:[]},"goBackByLayers:":{opcode:"looks_goforwardbackwardlayers",argMap:[{type:"input",inputOp:"math_integer",inputName:"NUM"}]},costumeIndex:{opcode:"looks_costumenumbername",argMap:[]},costumeName:{opcode:"looks_costumenumbername",argMap:[]},sceneName:{opcode:"looks_backdropnumbername",argMap:[]},scale:{opcode:"looks_size",argMap:[]},startSceneAndWait:{opcode:"looks_switchbackdroptoandwait",argMap:[{type:"input",inputOp:"looks_backdrops",inputName:"BACKDROP"}]},nextScene:{opcode:"looks_nextbackdrop",argMap:[]},backgroundIndex:{opcode:"looks_backdropnumbername",argMap:[]},"playSound:":{opcode:"sound_play",argMap:[{type:"input",inputOp:"sound_sounds_menu",inputName:"SOUND_MENU"}]},doPlaySoundAndWait:{opcode:"sound_playuntildone",argMap:[{type:"input",inputOp:"sound_sounds_menu",inputName:"SOUND_MENU"}]},stopAllSounds:{opcode:"sound_stopallsounds",argMap:[]},playDrum:{opcode:"music_playDrumForBeats",argMap:[{type:"input",inputOp:"music_menu_DRUM",inputName:"DRUM"},{type:"input",inputOp:"math_number",inputName:"BEATS"}]},"drum:duration:elapsed:from:":{opcode:"music_midiPlayDrumForBeats",argMap:[{type:"input",inputOp:"math_number",inputName:"DRUM"},{type:"input",inputOp:"math_number",inputName:"BEATS"}]},"rest:elapsed:from:":{opcode:"music_restForBeats",argMap:[{type:"input",inputOp:"math_number",inputName:"BEATS"}]},"noteOn:duration:elapsed:from:":{opcode:"music_playNoteForBeats",argMap:[{type:"input",inputOp:"note",inputName:"NOTE"},{type:"input",inputOp:"math_number",inputName:"BEATS"}]},"instrument:":{opcode:"music_setInstrument",argMap:[{type:"input",inputOp:"music_menu_INSTRUMENT",inputName:"INSTRUMENT"}]},"midiInstrument:":{opcode:"music_midiSetInstrument",argMap:[{type:"input",inputOp:"math_number",inputName:"INSTRUMENT"}]},"changeVolumeBy:":{opcode:"sound_changevolumeby",argMap:[{type:"input",inputOp:"math_number",inputName:"VOLUME"}]},"setVolumeTo:":{opcode:"sound_setvolumeto",argMap:[{type:"input",inputOp:"math_number",inputName:"VOLUME"}]},volume:{opcode:"sound_volume",argMap:[]},"changeTempoBy:":{opcode:"music_changeTempo",argMap:[{type:"input",inputOp:"math_number",inputName:"TEMPO"}]},"setTempoTo:":{opcode:"music_setTempo",argMap:[{type:"input",inputOp:"math_number",inputName:"TEMPO"}]},tempo:{opcode:"music_getTempo",argMap:[]},clearPenTrails:{opcode:"pen_clear",argMap:[]},stampCostume:{opcode:"pen_stamp",argMap:[]},putPenDown:{opcode:"pen_penDown",argMap:[]},putPenUp:{opcode:"pen_penUp",argMap:[]},"penColor:":{opcode:"pen_setPenColorToColor",argMap:[{type:"input",inputOp:"colour_picker",inputName:"COLOR"}]},"changePenHueBy:":{opcode:"pen_changePenHueBy",argMap:[{type:"input",inputOp:"math_number",inputName:"HUE"}]},"setPenHueTo:":{opcode:"pen_setPenHueToNumber",argMap:[{type:"input",inputOp:"math_number",inputName:"HUE"}]},"changePenShadeBy:":{opcode:"pen_changePenShadeBy",argMap:[{type:"input",inputOp:"math_number",inputName:"SHADE"}]},"setPenShadeTo:":{opcode:"pen_setPenShadeToNumber",argMap:[{type:"input",inputOp:"math_number",inputName:"SHADE"}]},"changePenSizeBy:":{opcode:"pen_changePenSizeBy",argMap:[{type:"input",inputOp:"math_number",inputName:"SIZE"}]},"penSize:":{opcode:"pen_setPenSizeTo",argMap:[{type:"input",inputOp:"math_number",inputName:"SIZE"}]},senseVideoMotion:{opcode:"videoSensing_videoOn",argMap:[{type:"input",inputOp:"videoSensing_menu_ATTRIBUTE",inputName:"ATTRIBUTE"},{type:"input",inputOp:"videoSensing_menu_SUBJECT",inputName:"SUBJECT"}]},whenGreenFlag:{opcode:"event_whenflagclicked",argMap:[]},whenKeyPressed:{opcode:"event_whenkeypressed",argMap:[{type:"field",fieldName:"KEY_OPTION"}]},whenClicked:{opcode:"event_whenthisspriteclicked",argMap:[]},whenSceneStarts:{opcode:"event_whenbackdropswitchesto",argMap:[{type:"field",fieldName:"BACKDROP"}]},whenSensorGreaterThan:e=>{let[,t]=e;return"video motion"===t?{opcode:"videoSensing_whenMotionGreaterThan",argMap:[{},{type:"input",inputOp:"math_number",inputName:"REFERENCE"}]}:{opcode:"event_whengreaterthan",argMap:[{type:"field",fieldName:"WHENGREATERTHANMENU"},{type:"input",inputOp:"math_number",inputName:"VALUE"}]}},whenIReceive:{opcode:"event_whenbroadcastreceived",argMap:[{type:"field",fieldName:"BROADCAST_OPTION",variableType:r.BROADCAST_MESSAGE_TYPE}]},"broadcast:":{opcode:"event_broadcast",argMap:[{type:"input",inputOp:"event_broadcast_menu",inputName:"BROADCAST_INPUT",variableType:r.BROADCAST_MESSAGE_TYPE}]},doBroadcastAndWait:{opcode:"event_broadcastandwait",argMap:[{type:"input",inputOp:"event_broadcast_menu",inputName:"BROADCAST_INPUT",variableType:r.BROADCAST_MESSAGE_TYPE}]},"wait:elapsed:from:":{opcode:"control_wait",argMap:[{type:"input",inputOp:"math_positive_number",inputName:"DURATION"}]},doRepeat:{opcode:"control_repeat",argMap:[{type:"input",inputOp:"math_whole_number",inputName:"TIMES"},{type:"input",inputOp:"substack",inputName:"SUBSTACK"}]},doForever:{opcode:"control_forever",argMap:[{type:"input",inputOp:"substack",inputName:"SUBSTACK"}]},doIf:{opcode:"control_if",argMap:[{type:"input",inputOp:"boolean",inputName:"CONDITION"},{type:"input",inputOp:"substack",inputName:"SUBSTACK"}]},doIfElse:{opcode:"control_if_else",argMap:[{type:"input",inputOp:"boolean",inputName:"CONDITION"},{type:"input",inputOp:"substack",inputName:"SUBSTACK"},{type:"input",inputOp:"substack",inputName:"SUBSTACK2"}]},doWaitUntil:{opcode:"control_wait_until",argMap:[{type:"input",inputOp:"boolean",inputName:"CONDITION"}]},doUntil:{opcode:"control_repeat_until",argMap:[{type:"input",inputOp:"boolean",inputName:"CONDITION"},{type:"input",inputOp:"substack",inputName:"SUBSTACK"}]},doWhile:{opcode:"control_while",argMap:[{type:"input",inputOp:"boolean",inputName:"CONDITION"},{type:"input",inputOp:"substack",inputName:"SUBSTACK"}]},doForLoop:{opcode:"control_for_each",argMap:[{type:"field",fieldName:"VARIABLE"},{type:"input",inputOp:"text",inputName:"VALUE"},{type:"input",inputOp:"substack",inputName:"SUBSTACK"}]},stopScripts:{opcode:"control_stop",argMap:[{type:"field",fieldName:"STOP_OPTION"}]},whenCloned:{opcode:"control_start_as_clone",argMap:[]},createCloneOf:{opcode:"control_create_clone_of",argMap:[{type:"input",inputOp:"control_create_clone_of_menu",inputName:"CLONE_OPTION"}]},deleteClone:{opcode:"control_delete_this_clone",argMap:[]},COUNT:{opcode:"control_get_counter",argMap:[]},INCR_COUNT:{opcode:"control_incr_counter",argMap:[]},CLR_COUNT:{opcode:"control_clear_counter",argMap:[]},warpSpeed:{opcode:"control_all_at_once",argMap:[{type:"input",inputOp:"substack",inputName:"SUBSTACK"}]},"touching:":{opcode:"sensing_touchingobject",argMap:[{type:"input",inputOp:"sensing_touchingobjectmenu",inputName:"TOUCHINGOBJECTMENU"}]},"touchingColor:":{opcode:"sensing_touchingcolor",argMap:[{type:"input",inputOp:"colour_picker",inputName:"COLOR"}]},"color:sees:":{opcode:"sensing_coloristouchingcolor",argMap:[{type:"input",inputOp:"colour_picker",inputName:"COLOR"},{type:"input",inputOp:"colour_picker",inputName:"COLOR2"}]},"distanceTo:":{opcode:"sensing_distanceto",argMap:[{type:"input",inputOp:"sensing_distancetomenu",inputName:"DISTANCETOMENU"}]},doAsk:{opcode:"sensing_askandwait",argMap:[{type:"input",inputOp:"text",inputName:"QUESTION"}]},answer:{opcode:"sensing_answer",argMap:[]},"keyPressed:":{opcode:"sensing_keypressed",argMap:[{type:"input",inputOp:"sensing_keyoptions",inputName:"KEY_OPTION"}]},mousePressed:{opcode:"sensing_mousedown",argMap:[]},mouseX:{opcode:"sensing_mousex",argMap:[]},mouseY:{opcode:"sensing_mousey",argMap:[]},soundLevel:{opcode:"sensing_loudness",argMap:[]},isLoud:{opcode:"sensing_loud",argMap:[]},setVideoState:{opcode:"videoSensing_videoToggle",argMap:[{type:"input",inputOp:"videoSensing_menu_VIDEO_STATE",inputName:"VIDEO_STATE"}]},setVideoTransparency:{opcode:"videoSensing_setVideoTransparency",argMap:[{type:"input",inputOp:"math_number",inputName:"TRANSPARENCY"}]},timer:{opcode:"sensing_timer",argMap:[]},timerReset:{opcode:"sensing_resettimer",argMap:[]},"getAttribute:of:":{opcode:"sensing_of",argMap:[{type:"field",fieldName:"PROPERTY"},{type:"input",inputOp:"sensing_of_object_menu",inputName:"OBJECT"}]},timeAndDate:{opcode:"sensing_current",argMap:[{type:"field",fieldName:"CURRENTMENU"}]},timestamp:{opcode:"sensing_dayssince2000",argMap:[]},getUserName:{opcode:"sensing_username",argMap:[]},getUserId:{opcode:"sensing_userid",argMap:[]},"+":{opcode:"operator_add",argMap:[{type:"input",inputOp:"math_number",inputName:"NUM1"},{type:"input",inputOp:"math_number",inputName:"NUM2"}]},"-":{opcode:"operator_subtract",argMap:[{type:"input",inputOp:"math_number",inputName:"NUM1"},{type:"input",inputOp:"math_number",inputName:"NUM2"}]},"*":{opcode:"operator_multiply",argMap:[{type:"input",inputOp:"math_number",inputName:"NUM1"},{type:"input",inputOp:"math_number",inputName:"NUM2"}]},"/":{opcode:"operator_divide",argMap:[{type:"input",inputOp:"math_number",inputName:"NUM1"},{type:"input",inputOp:"math_number",inputName:"NUM2"}]},"randomFrom:to:":{opcode:"operator_random",argMap:[{type:"input",inputOp:"math_number",inputName:"FROM"},{type:"input",inputOp:"math_number",inputName:"TO"}]},"<":{opcode:"operator_lt",argMap:[{type:"input",inputOp:"text",inputName:"OPERAND1"},{type:"input",inputOp:"text",inputName:"OPERAND2"}]},"=":{opcode:"operator_equals",argMap:[{type:"input",inputOp:"text",inputName:"OPERAND1"},{type:"input",inputOp:"text",inputName:"OPERAND2"}]},">":{opcode:"operator_gt",argMap:[{type:"input",inputOp:"text",inputName:"OPERAND1"},{type:"input",inputOp:"text",inputName:"OPERAND2"}]},"&":{opcode:"operator_and",argMap:[{type:"input",inputOp:"boolean",inputName:"OPERAND1"},{type:"input",inputOp:"boolean",inputName:"OPERAND2"}]},"|":{opcode:"operator_or",argMap:[{type:"input",inputOp:"boolean",inputName:"OPERAND1"},{type:"input",inputOp:"boolean",inputName:"OPERAND2"}]},not:{opcode:"operator_not",argMap:[{type:"input",inputOp:"boolean",inputName:"OPERAND"}]},"concatenate:with:":{opcode:"operator_join",argMap:[{type:"input",inputOp:"text",inputName:"STRING1"},{type:"input",inputOp:"text",inputName:"STRING2"}]},"letter:of:":{opcode:"operator_letter_of",argMap:[{type:"input",inputOp:"math_whole_number",inputName:"LETTER"},{type:"input",inputOp:"text",inputName:"STRING"}]},"stringLength:":{opcode:"operator_length",argMap:[{type:"input",inputOp:"text",inputName:"STRING"}]},"%":{opcode:"operator_mod",argMap:[{type:"input",inputOp:"math_number",inputName:"NUM1"},{type:"input",inputOp:"math_number",inputName:"NUM2"}]},rounded:{opcode:"operator_round",argMap:[{type:"input",inputOp:"math_number",inputName:"NUM"}]},"computeFunction:of:":{opcode:"operator_mathop",argMap:[{type:"field",fieldName:"OPERATOR"},{type:"input",inputOp:"math_number",inputName:"NUM"}]},readVariable:{opcode:"data_variable",argMap:[{type:"field",fieldName:"VARIABLE",variableType:r.SCALAR_TYPE}]},"getVar:":{opcode:"data_variable",argMap:[{type:"field",fieldName:"VARIABLE",variableType:r.SCALAR_TYPE}]},"setVar:to:":{opcode:"data_setvariableto",argMap:[{type:"field",fieldName:"VARIABLE",variableType:r.SCALAR_TYPE},{type:"input",inputOp:"text",inputName:"VALUE"}]},"changeVar:by:":{opcode:"data_changevariableby",argMap:[{type:"field",fieldName:"VARIABLE",variableType:r.SCALAR_TYPE},{type:"input",inputOp:"math_number",inputName:"VALUE"}]},"showVariable:":{opcode:"data_showvariable",argMap:[{type:"field",fieldName:"VARIABLE",variableType:r.SCALAR_TYPE}]},"hideVariable:":{opcode:"data_hidevariable",argMap:[{type:"field",fieldName:"VARIABLE",variableType:r.SCALAR_TYPE}]},"contentsOfList:":{opcode:"data_listcontents",argMap:[{type:"field",fieldName:"LIST",variableType:r.LIST_TYPE}]},"append:toList:":{opcode:"data_addtolist",argMap:[{type:"input",inputOp:"text",inputName:"ITEM"},{type:"field",fieldName:"LIST",variableType:r.LIST_TYPE}]},"deleteLine:ofList:":{opcode:"data_deleteoflist",argMap:[{type:"input",inputOp:"math_integer",inputName:"INDEX"},{type:"field",fieldName:"LIST",variableType:r.LIST_TYPE}]},"insert:at:ofList:":{opcode:"data_insertatlist",argMap:[{type:"input",inputOp:"text",inputName:"ITEM"},{type:"input",inputOp:"math_integer",inputName:"INDEX"},{type:"field",fieldName:"LIST",variableType:r.LIST_TYPE}]},"setLine:ofList:to:":{opcode:"data_replaceitemoflist",argMap:[{type:"input",inputOp:"math_integer",inputName:"INDEX"},{type:"field",fieldName:"LIST",variableType:r.LIST_TYPE},{type:"input",inputOp:"text",inputName:"ITEM"}]},"getLine:ofList:":{opcode:"data_itemoflist",argMap:[{type:"input",inputOp:"math_integer",inputName:"INDEX"},{type:"field",fieldName:"LIST",variableType:r.LIST_TYPE}]},"lineCountOfList:":{opcode:"data_lengthoflist",argMap:[{type:"field",fieldName:"LIST",variableType:r.LIST_TYPE}]},"list:contains:":{opcode:"data_listcontainsitem",argMap:[{type:"field",fieldName:"LIST",variableType:r.LIST_TYPE},{type:"input",inputOp:"text",inputName:"ITEM"}]},"showList:":{opcode:"data_showlist",argMap:[{type:"field",fieldName:"LIST",variableType:r.LIST_TYPE}]},"hideList:":{opcode:"data_hidelist",argMap:[{type:"field",fieldName:"LIST",variableType:r.LIST_TYPE}]},procDef:{opcode:"procedures_definition",argMap:[]},getParam:{opcode:"argument_reporter_string_number",argMap:[{type:"field",fieldName:"VALUE"}]},call:{opcode:"procedures_call",argMap:[]}},s=function(e,t,n){i["".concat(e).concat("").concat(t)]=n,i["".concat(e,".").concat(t)]=n},o="LEGO WeDo 2.0";s(o,"motorOnFor",{opcode:"wedo2_motorOnFor",argMap:[{type:"input",inputOp:"wedo2_menu_MOTOR_ID",inputName:"MOTOR_ID"},{type:"input",inputOp:"math_number",inputName:"DURATION"}]}),s(o,"motorOn",{opcode:"wedo2_motorOn",argMap:[{type:"input",inputOp:"wedo2_menu_MOTOR_ID",inputName:"MOTOR_ID"}]}),s(o,"motorOff",{opcode:"wedo2_motorOff",argMap:[{type:"input",inputOp:"wedo2_menu_MOTOR_ID",inputName:"MOTOR_ID"}]}),s(o,"startMotorPower",{opcode:"wedo2_startMotorPower",argMap:[{type:"input",inputOp:"wedo2_menu_MOTOR_ID",inputName:"MOTOR_ID"},{type:"input",inputOp:"math_number",inputName:"POWER"}]}),s(o,"setMotorDirection",{opcode:"wedo2_setMotorDirection",argMap:[{type:"input",inputOp:"wedo2_menu_MOTOR_ID",inputName:"MOTOR_ID"},{type:"input",inputOp:"wedo2_menu_MOTOR_DIRECTION",inputName:"MOTOR_DIRECTION"}]}),s(o,"setLED",{opcode:"wedo2_setLightHue",argMap:[{type:"input",inputOp:"math_number",inputName:"HUE"}]}),s(o,"playNote",{opcode:"wedo2_playNoteFor",argMap:[{type:"input",inputOp:"math_number",inputName:"NOTE"},{type:"input",inputOp:"math_number",inputName:"DURATION"}]}),s(o,"whenDistance",{opcode:"wedo2_whenDistance",argMap:[{type:"input",inputOp:"wedo2_menu_OP",inputName:"OP"},{type:"input",inputOp:"math_number",inputName:"REFERENCE"}]}),s(o,"whenTilted",{opcode:"wedo2_whenTilted",argMap:[{type:"input",inputOp:"wedo2_menu_TILT_DIRECTION_ANY",inputName:"TILT_DIRECTION_ANY"}]}),s(o,"getDistance",{opcode:"wedo2_getDistance",argMap:[]}),s(o,"isTilted",{opcode:"wedo2_isTilted",argMap:[{type:"input",inputOp:"wedo2_menu_TILT_DIRECTION_ANY",inputName:"TILT_DIRECTION_ANY"}]}),s(o,"getTilt",{opcode:"wedo2_getTiltAngle",argMap:[{type:"input",inputOp:"wedo2_menu_TILT_DIRECTION",inputName:"TILT_DIRECTION"}]}),e.exports=i},function(e,t){e.exports={text:"https://extensions.turbowarp.org/lab/text.js",audiostr:"https://extensions.turbowarp.org/turboloader/audiostream.js",faceSensing:"https://extensions.turbowarp.org/lab/face-sensing.js"}},function(e,t,n){const r=n(19),i=n(264),s=n(11),o=n(25),a=n(27),c=n(270),l=n(271),u=n(85),h=n(275),d=n(35),p=n(28),f=n(276),m=n(277),g=n(86),b=n(88),y=n(87),E=s.v3.create(),T=new u,v=new u,A=new Uint8ClampedArray(4),w=new Uint8ClampedArray(4),S=[3,3],k=(e,t,n)=>(248&e[0])==(248&t[n+0])&&(248&e[1])==(248&t[n+1])&&(240&e[2])==(240&t[n+2]);let O;let I;class N extends r{static isSupported(e){try{e=e||document.createElement("canvas");const t={alpha:!0,stencil:!0,antialias:!1,powerPreference:N.powerPreference};return!!(e.getContext("webgl2",t)||e.getContext("webgl",t)||e.getContext("experimental-webgl",t))}catch(e){return!1}}static _getContext(e){const t={alpha:!0,stencil:!0,antialias:!1,powerPreference:N.powerPreference};return s.getContext(e,t)}constructor(e,t,r,i,g){super();const y=this._gl=N._getContext(e);if(!y)throw new Error("Could not get WebGL context: this browser or environment may not support WebGL.");this._useGpuMode=N.UseGpuModes.Automatic,this._allDrawables=[],this._allSkins=[],this._drawList=[],this._groupOrdering=[],this._layerGroups={},this._nextDrawableId=d.ID_NONE+1,this._nextSkinId=d.ID_NONE+1,this._projection=s.m4.identity(),this._shaderManager=new p(y),this._regionId=null,this._exitRegion=null,this._backgroundDrawRegionId={enter:()=>this._enterDrawBackground(),exit:()=>this._exitDrawBackground()},this._snapshotCallbacks=[],this._backgroundColor4f=[0,0,0,1],this._backgroundColor3b=new Uint8ClampedArray(3),this._penSkinId=null,this.useHighQualityRender=!1,this.offscreenTouching=!1,this.dirty=!0,this.overlayContainer=document.createElement("div"),this.overlayContainer.className="scratch-render-overlays",this._overlays=[],I||(I=document.createElement("style"),I.textContent=n(286),I.className="scratch-render-styles",document.head.appendChild(I)),this._createGeometry(),this.on(d.Events.NativeSizeChanged,this.onNativeSizeChanged),this.setBackgroundColor(1,1,1),this.setStageSize(t||-240,r||240,i||-180,g||180),this.resize(this._nativeSize[0],this._nativeSize[1]),y.disable(y.DEPTH_TEST),y.enable(y.BLEND),y.blendFunc(y.ONE,y.ONE_MINUS_SRC_ALPHA),this.allowPrivateSkinAccess=!0,this.maxTextureDimension=2048,this.customFonts={},this._customFontStyles=null,this.exports={twgl:s,SVGRenderer:o,Drawable:l,Skin:a,BitmapSkin:c,TextBubbleSkin:m,PenSkin:h,SVGSkin:f,CanvasMeasurementProvider:b,Rectangle:u}}setUseHighQualityRender(e){this.dirty=!0,this.useHighQualityRender=e,this.emit(d.Events.UseHighQualityRenderChanged,e),this._updateRenderQuality()}_updateRenderQuality(){if(null!==this._penSkinId){const e=this._allSkins[this._penSkinId];e&&(this.useHighQualityRender?e.setRenderQuality(this.canvas.width/this._nativeSize[0]):e.setRenderQuality(1))}for(const e of this._allDrawables)e&&e.setHighQuality(this.useHighQualityRender)}setPrivateSkinAccess(e){this.allowPrivateSkinAccess=e,this.emit(d.Events.AllowPrivateSkinAccessChanged,e)}setMaxTextureDimension(e){const t=this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE);this.maxTextureDimension=Math.min(e,t)}get gl(){return this._gl}get canvas(){return this._gl&&this._gl.canvas}resize(e,t){const{canvas:n}=this._gl,r=window.devicePixelRatio||1,i=e*r,s=t*r;n.width===i&&n.height===s||(n.width=i,n.height=s,this._updateRenderQuality(),this._updateOverlays(),this.dirty=!0,this.draw())}setBackgroundColor(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;this.dirty=!0,this._backgroundColor4f[0]=e*r,this._backgroundColor4f[1]=t*r,this._backgroundColor4f[2]=n*r,this._backgroundColor4f[3]=r,this._backgroundColor3b[0]=e*r*255,this._backgroundColor3b[1]=t*r*255,this._backgroundColor3b[2]=n*r*255}setDebugCanvas(e){this._debugCanvas=e}setUseGpuMode(e){this._useGpuMode=e}setStageSize(e,t,n,r){this._xLeft=e,this._xRight=t,this._yBottom=n,this._yTop=r,this._projection=s.m4.ortho(e,t,n,r,-1,1),this._setNativeSize(Math.abs(t-e),Math.abs(n-r))}getNativeSize(){return[this._nativeSize[0],this._nativeSize[1]]}_setNativeSize(e,t){this._nativeSize=[e,t],this._updateOverlays(),this.emit(d.Events.NativeSizeChanged,{newSize:this._nativeSize})}addOverlay(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"scale";const n=document.createElement("div");n.appendChild(e),this.overlayContainer.appendChild(n);const r={container:n,userElement:e,mode:t};return this._overlays.push(r),this._updateOverlays(),r}removeOverlay(e){const t=this._overlays.findIndex((t=>t.userElement===e));-1!==t&&(this._overlays[t].container.remove(),this._overlays.splice(t,1))}_updateOverlays(){const[e,t]=this._nativeSize,n=this.canvas.width/window.devicePixelRatio,r=this.canvas.height/window.devicePixelRatio;this.overlayContainer.style.width="".concat(n,"px"),this.overlayContainer.style.height="".concat(r,"px");for(const i of this._overlays){const s=i.container;if("scale"===i.mode||"scale-centered"===i.mode){const o=n/e,a=r/t;s.style.width="".concat(e,"px"),s.style.height="".concat(t,"px");const c="scale(".concat(o,", ").concat(a,")");if(s.style.transformOrigin="top left","scale"===i.mode)s.style.transform=c;else{const n="translate(".concat(e/2,"px, ").concat(t/2,"px)");s.style.transform="".concat(c," ").concat(n)}}else s.style.transform="",s.style.width="100%",s.style.height="100%"}}createBitmapSkin(e,t,n){const r=this._nextSkinId++,i=new c(r,this);return i.setBitmap(e,t,n),this._allSkins[r]=i,r}createSVGSkin(e,t){const n=this._nextSkinId++,r=new f(n,this);return r.setSVG(e,t),this._allSkins[n]=r,n}createPenSkin(){const e=this._nextSkinId++,t=new h(e,this);return this._allSkins[e]=t,this._penSkinId=e,this._updateRenderQuality(),e}createTextSkin(e,t,n){const r=this._nextSkinId++,i=new m(r,this);return i.setTextBubble(e,t,n),this._allSkins[r]=i,r}updateSVGSkin(e,t,n){if(this._allSkins[e]instanceof f)return void this._allSkins[e].setSVG(t,n);const r=new f(e,this);r.setSVG(t,n),this._reskin(e,r)}updateBitmapSkin(e,t,n,r){if(this._allSkins[e]instanceof c)return void this._allSkins[e].setBitmap(t,n,r);const i=new c(e,this);i.setBitmap(t,n,r),this._reskin(e,i)}_reskin(e,t){const n=this._allSkins[e];this._allSkins[e]=t;for(const e of this._allDrawables)e&&e.skin===n&&(e.skin=t);n.dispose()}updateTextSkin(e,t,n,r){if(this._allSkins[e]instanceof m)return void this._allSkins[e].setTextBubble(t,n,r);const i=new m(e,this);i.setTextBubble(t,n,r),this._reskin(e,i)}destroySkin(e){this._allSkins[e].dispose(),delete this._allSkins[e]}createDrawable(e){if(!e||!Object.prototype.hasOwnProperty.call(this._layerGroups,e))return void y.warn("Cannot create a drawable without a known layer group");const t=this._nextDrawableId++,n=new l(t,this);return this._allDrawables[t]=n,this._addToDrawList(t,e),n.setHighQuality(this.useHighQualityRender),n.skin=null,t}createTextWrapper(e){return new(O||(O=n(278)),O)(e)}markSkinAsPrivate(e){const t=this._allSkins[e];t&&(t.private=!0)}markDrawableAsNoninteractive(e){const t=this._allDrawables[e];t&&(t.interactive=!1)}setLayerGroupOrdering(e){this._groupOrdering=e;for(let e=0;e<this._groupOrdering.length;e++)this._layerGroups[this._groupOrdering[e]]={groupIndex:e,drawListOffset:0}}_addToDrawList(e,t){const n=this._layerGroups[t],r=n.groupIndex,i=this._endIndexForKnownLayerGroup(n);this._drawList.splice(i,0,e),this._updateOffsets("add",r)}_updateOffsets(e,t){for(let n=t+1;n<this._groupOrdering.length;n++){const t=this._groupOrdering[n];"add"===e?this._layerGroups[t].drawListOffset++:"delete"===e&&this._layerGroups[t].drawListOffset--}}get _visibleDrawList(){return this._drawList.filter((e=>this._allDrawables[e]._visible))}_endIndexForKnownLayerGroup(e){const t=e.groupIndex;return t===this._groupOrdering.length-1?this._drawList.length:this._layerGroups[this._groupOrdering[t+1]].drawListOffset}destroyDrawable(e,t){if(!t||!Object.prototype.hasOwnProperty.call(this._layerGroups,t))return void y.warn("Cannot destroy drawable without known layer group.");this.dirty=!0;this._allDrawables[e].dispose(),delete this._allDrawables[e];const n=this._layerGroups[t],r=this._endIndexForKnownLayerGroup(n);let i=n.drawListOffset;for(;i<r&&this._drawList[i]!==e;)i++;i<r?(this._drawList.splice(i,1),this._updateOffsets("delete",n.groupIndex)):y.warn("Could not destroy drawable that could not be found in layer group.")}getDrawableOrder(e){return this._drawList.indexOf(e)}setDrawableOrder(e,t,n,r,i){if(!n||!Object.prototype.hasOwnProperty.call(this._layerGroups,n))return void y.warn("Cannot set the order of a drawable without a known layer group.");this.dirty=!0;const s=this._layerGroups[n],o=s.drawListOffset,a=this._endIndexForKnownLayerGroup(s);let c=o;for(;c<a&&this._drawList[c]!==e;)c++;if(c<a){if(0===t)return c;this._drawList.splice(c,1)[0];let n=t;r&&(n+=c);const s=(i||0)+o,l=s>=o&&s<a?s:o;return n=Math.max(n,l),n=Math.min(n,a),this._drawList.splice(n,0,e),n}return null}skinWasAltered(e){for(let t=0;t<this._drawList.length;t++){const n=this._drawList[t],r=this._allDrawables[n];r._skin===e&&r._skinWasAltered()}}draw(){if(!this.dirty)return;this.dirty=!1,this._doExitDrawRegion();const e=this._gl;s.bindFramebufferInfo(e,null),e.viewport(0,0,e.canvas.width,e.canvas.height),e.clearColor(this._backgroundColor4f[0],this._backgroundColor4f[1],this._backgroundColor4f[2],this._backgroundColor4f[3]),e.clear(e.COLOR_BUFFER_BIT);const t=this._snapshotCallbacks.length>0;if(this._drawThese(this._drawList,p.DRAW_MODE.default,this._projection,{framebufferWidth:e.canvas.width,framebufferHeight:e.canvas.height,skipPrivateSkins:t}),t){const t=e.canvas.toDataURL();this._snapshotCallbacks.forEach((e=>e(t))),this._snapshotCallbacks=[],this.dirty=!0}}getBounds(e){const t=this._allDrawables[e];if(t.needsConvexHullPoints()){const n=this._getConvexHullPointsForDrawable(e);t.setConvexHullPoints(n)}const n=t.getFastBounds();if(this._debugCanvas){const e=this._gl;this._debugCanvas.width=e.canvas.width,this._debugCanvas.height=e.canvas.height;const t=this._debugCanvas.getContext("2d");t.drawImage(e.canvas,0,0),t.strokeStyle="#FF0000";const r=window.devicePixelRatio;t.strokeRect(r*(n.left+this._nativeSize[0]/2),r*(-n.top+this._nativeSize[1]/2),r*(n.right-n.left),r*(-n.bottom+n.top))}return n}getBoundsForBubble(e){const t=this._allDrawables[e];if(t.needsConvexHullPoints()){const n=this._getConvexHullPointsForDrawable(e);t.setConvexHullPoints(n)}const n=t.getBoundsForBubble();if(this._debugCanvas){const e=this._gl;this._debugCanvas.width=e.canvas.width,this._debugCanvas.height=e.canvas.height;const t=this._debugCanvas.getContext("2d");t.drawImage(e.canvas,0,0),t.strokeStyle="#FF0000";const r=window.devicePixelRatio;t.strokeRect(r*(n.left+this._nativeSize[0]/2),r*(-n.top+this._nativeSize[1]/2),r*(n.right-n.left),r*(-n.bottom+n.top))}return n}getCurrentSkinSize(e){const t=this._allDrawables[e];return this.getSkinSize(t.skin.id)}getSkinSize(e){return this._allSkins[e].size}getSkinRotationCenter(e){return this._allSkins[e].calculateRotationCenter()}isTouchingColor(e,t,n){const r=this._candidatesTouching(e,this._visibleDrawList);let i;if(k(t,this._backgroundColor3b,0)){if(i=this._touchingBounds(e),null===i)return!1}else{if(0===r.length)return!1;i=this._candidatesBounds(r)}const s=this._getMaxPixelsForCPU(),o=this._debugCanvas&&this._debugCanvas.getContext("2d");o&&(this._debugCanvas.width=i.width,this._debugCanvas.height=i.height),i.width*i.height*(r.length+1)>=s&&this._isTouchingColorGpuStart(e,r.map((e=>{let{id:t}=e;return t})).reverse(),i,t,n);const a=this._allDrawables[e],c=E,u=A,h=Boolean(n);a.updateCPURenderAttributes();const d=~p.EFFECT_INFO.ghost.mask;for(let e=i.bottom;e<=i.top;e++){if(i.width*(e-i.bottom)*(r.length+1)>=s)return this._isTouchingColorGpuFin(i,t,e-i.bottom);for(let s=i.left;s<=i.right;s++)if(c[1]=e,c[0]=s,(h?(f=l.sampleColor4b(c,a,u,d),m=n,f[3]>0&&(252&f[0])==(252&m[0])&&(252&f[1])==(252&m[1])&&(252&f[2])==(252&m[2])):a.isTouching(c))&&(this.sampleColor4b(c,r,u),o&&(o.fillStyle="rgb(".concat(u[0],",").concat(u[1],",").concat(u[2],")"),o.fillRect(s-i.left,i.bottom-e,1,1)),k(u,t,0)))return!0}var f,m;return!1}_getMaxPixelsForCPU(){switch(this._useGpuMode){case N.UseGpuModes.ForceCPU:return 1/0;case N.UseGpuModes.ForceGPU:return 0;case N.UseGpuModes.Automatic:default:return 4e4}}_enterDrawBackground(){const e=this.gl,t=this._shaderManager.getShader(p.DRAW_MODE.background,0);e.disable(e.BLEND),e.useProgram(t.program),s.setBuffersAndAttributes(e,t,this._bufferInfo)}_exitDrawBackground(){const e=this.gl;e.enable(e.BLEND)}_isTouchingColorGpuStart(e,t,n,r,i){this._doExitDrawRegion();const o=this._gl;s.bindFramebufferInfo(o,this._queryBufferInfo),o.viewport(0,0,n.width,n.height);const a=s.m4.ortho(n.left,n.right,n.top,n.bottom,-1,1);let c;o.clearColor(0,0,0,0),o.clear(o.COLOR_BUFFER_BIT|o.STENCIL_BUFFER_BIT),i&&(c={u_colorMask:[i[0]/255,i[1]/255,i[2]/255],u_colorMaskTolerance:2/255});try{o.enable(o.STENCIL_TEST),o.stencilFunc(o.ALWAYS,1,1),o.stencilOp(o.KEEP,o.KEEP,o.REPLACE),o.colorMask(!1,!1,!1,!1),this._drawThese([e],i?p.DRAW_MODE.colorMask:p.DRAW_MODE.silhouette,a,{extraUniforms:c,ignoreVisibility:!0,effectMask:~p.EFFECT_INFO.ghost.mask}),o.stencilFunc(o.EQUAL,1,1),o.stencilOp(o.KEEP,o.KEEP,o.KEEP),o.colorMask(!0,!0,!0,!0),this.enterDrawRegion(this._backgroundDrawRegionId);const n={u_backgroundColor:this._backgroundColor4f},r=this._shaderManager.getShader(p.DRAW_MODE.background,0);s.setUniforms(r,n),s.drawBufferInfo(o,this._bufferInfo,o.TRIANGLES),this._drawThese(t,p.DRAW_MODE.default,a,{idFilterFunc:t=>t!==e})}finally{o.colorMask(!0,!0,!0,!0),o.disable(o.STENCIL_TEST),this._doExitDrawRegion()}}_isTouchingColorGpuFin(e,t,n){const r=this._gl,i=new Uint8Array(Math.floor(e.width*(e.height-n)*4));if(r.readPixels(0,0,e.width,e.height-n,r.RGBA,r.UNSIGNED_BYTE,i),this._debugCanvas){this._debugCanvas.width=e.width,this._debugCanvas.height=e.height;const t=this._debugCanvas.getContext("2d"),r=t.getImageData(0,0,e.width,e.height-n);r.data.set(i),t.putImageData(r,0,0)}for(let e=0;e<i.length;e+=4)if(0!==i[e+3]&&k(t,i,e))return!0;return!1}isTouchingDrawables(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._drawList;if(!this._allDrawables[e]._visible)return!1;const n=this._candidatesTouching(e,t.filter((e=>this._allDrawables[e]._visible)));if(0===n.length)return!1;const r=this._candidatesBounds(n),i=this._allDrawables[e],s=E;i.updateCPURenderAttributes();for(let e=r.left;e<=r.right;e++){s[0]=e;for(let e=r.bottom;e<=r.top;e++)if(s[1]=e,i.isTouching(s))for(let e=0;e<n.length;e++)if(n[e].drawable.isTouching(s))return!0}return!1}clientSpaceToScratchBounds(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;const i=this._gl,s=this._nativeSize[0]/i.canvas.clientWidth,o=this._nativeSize[1]/i.canvas.clientHeight;n*=s,r*=o,n=Math.max(1,Math.min(Math.round(n),S[0])),r=Math.max(1,Math.min(Math.round(r),S[1]));const a=e*s-(n-1)/2,c=t*o+(r-1)/2,l=n%2?0:-.5,h=r%2?0:-.5,d=new u;return d.initFromBounds(Math.floor(this._xLeft+a+l),Math.floor(this._xLeft+a+l+n-1),Math.ceil(this._yTop-c+h),Math.ceil(this._yTop-c+h+r-1)),d}drawableTouching(e,t,n,r,i){const o=this._allDrawables[e];if(!o)return!1;const a=this.clientSpaceToScratchBounds(t,n,r,i),c=o.getFastBounds();if(c.snapToInt(),!c.intersects(a))return!1;o.updateCPURenderAttributes();const l=s.v3.create();for(l[1]=a.bottom;l[1]<=a.top;l[1]++)for(l[0]=a.left;l[0]<=a.right;l[0]++)if(o.isTouching(l))return!0;return!1}pick(e,t,n,r,i){const o=this.clientSpaceToScratchBounds(e,t,n,r);if(o.left===-1/0||o.bottom===-1/0)return d.ID_NONE;if(0===(i=(i||this._drawList).filter((e=>{const t=this._allDrawables[e];if(!i&&!t.interactive)return!1;if(t.getVisible()&&0!==t.getUniforms().u_ghost){const e=t.getFastBounds();return!!o.intersects(e)&&(t.updateCPURenderAttributes(),!0)}return!1}))).length)return d.ID_NONE;const a=[],c=s.v3.create(0,0,0);for(c[1]=o.bottom;c[1]<=o.top;c[1]++)for(c[0]=o.left;c[0]<=o.right;c[0]++)for(let e=i.length-1;e>=0;e--){const t=i[e];if(this._allDrawables[t].isTouching(c)){a[t]=(a[t]||0)+1;break}}a[d.ID_NONE]=0;let l=d.ID_NONE;for(const e in a)Object.prototype.hasOwnProperty.call(a,e)&&a[e]>a[l]&&(l=e);return Number(l)}extractDrawableScreenSpace(e){const t=this._allDrawables[e];if(!t)throw new Error("Could not extract drawable with ID ".concat(e,"; it does not exist"));this._doExitDrawRegion();const n=.5*this._nativeSize[0],r=.5*this._nativeSize[1],i=t.getFastBounds(),o=this.canvas,a=o.width/this._nativeSize[0],c=new u;c.initFromBounds((i.left+n)*a,(i.right+n)*a,(r-i.top)*a,(r-i.bottom)*a),c.snapToInt(),i.initFromBounds(c.left/a-n,c.right/a-n,r-c.top/a,r-c.bottom/a);const l=this._gl,h=l.getParameter(l.MAX_TEXTURE_SIZE),d=Math.min(2048,c.width,h),f=Math.min(2048,c.height,h),m=s.createFramebufferInfo(l,[{format:l.RGBA}],d,f);try{s.bindFramebufferInfo(l,m),l.viewport(0,0,d,f);const t=s.m4.ortho(i.left,i.right,i.top,i.bottom,-1,1);l.clearColor(0,0,0,0),l.clear(l.COLOR_BUFFER_BIT),this._drawThese([e],p.DRAW_MODE.straightAlpha,t,{effectMask:~p.EFFECT_INFO.ghost.mask,framebufferWidth:o.width,framebufferHeight:o.height});const n=new Uint8Array(Math.floor(d*f*4));l.readPixels(0,0,d,f,l.RGBA,l.UNSIGNED_BYTE,n);const r=new ImageData(new Uint8ClampedArray(n.buffer),d,f),a=o.getBoundingClientRect().width/o.width;return{imageData:r,x:c.left*a,y:c.bottom*a,width:c.width*a,height:c.height*a}}finally{l.deleteFramebuffer(m.framebuffer)}}extractColor(e,t,n){this._doExitDrawRegion();const r=Math.round(this._nativeSize[0]*(e/this._gl.canvas.clientWidth-.5)),i=Math.round(-this._nativeSize[1]*(t/this._gl.canvas.clientHeight-.5)),o=this._gl;s.bindFramebufferInfo(o,this._queryBufferInfo);const a=new u;a.initFromBounds(r-n,r+n,i-n,i+n);const c=r-a.left,l=a.top-i;o.viewport(0,0,a.width,a.height);const h=s.m4.ortho(a.left,a.right,a.top,a.bottom,-1,1);o.clearColor(this._backgroundColor4f[0],this._backgroundColor4f[1],this._backgroundColor4f[2],this._backgroundColor4f[3]),o.clear(o.COLOR_BUFFER_BIT),this._drawThese(this._drawList,p.DRAW_MODE.default,h);const d=new Uint8Array(Math.floor(a.width*a.height*4));o.readPixels(0,0,a.width,a.height,o.RGBA,o.UNSIGNED_BYTE,d);const f=Math.floor(4*(l*a.width+c)),m={r:d[f],g:d[f+1],b:d[f+2],a:d[f+3]};if(this._debugCanvas){this._debugCanvas.width=a.width,this._debugCanvas.height=a.height;const e=this._debugCanvas.getContext("2d"),t=e.createImageData(a.width,a.height);t.data.set(d),e.putImageData(t,0,0),e.strokeStyle="black",e.fillStyle="rgba(".concat(m.r,", ").concat(m.g,", ").concat(m.b,", ").concat(m.a,")"),e.rect(c-4,l-4,8,8),e.fill(),e.stroke()}return{data:d,width:a.width,height:a.height,color:m}}_touchingBounds(e){const t=this._allDrawables[e];if(!t.skin||!t.skin.getTexture([100,100]))return null;const n=t.getFastBounds();return this.offscreenTouching||n.clamp(this._xLeft,this._xRight,this._yBottom,this._yTop),n.snapToInt(),0===n.width||0===n.height?null:n}_candidatesTouching(e,t){const n=this._touchingBounds(e),r=[];if(null===n)return r;for(let i=t.length-1;i>=0;i--){const s=t[i];if(s!==e){const e=this._allDrawables[s];if(e.skin instanceof m)continue;if(e.skin&&e._visible){if(!this.allowPrivateSkinAccess&&e.skin.private)continue;e.updateCPURenderAttributes();const t=e.getFastBounds();t.snapToInt(),n.intersects(t)&&r.push({id:s,drawable:e,intersection:u.intersect(n,t)})}}}return r}_candidatesBounds(e){return e.reduce(((e,t)=>{let{intersection:n}=t;return e?u.union(e,n,T):n}),null)}updateDrawableSkinId(e,t){const n=this._allDrawables[e];n&&(n.skin=this._allSkins[t])}updateDrawablePosition(e,t){const n=this._allDrawables[e];n&&n.updatePosition(t)}updateDrawableDirection(e,t){const n=this._allDrawables[e];n&&n.updateDirection(t)}updateDrawableScale(e,t){const n=this._allDrawables[e];n&&n.updateScale(t)}updateDrawableDirectionScale(e,t,n){const r=this._allDrawables[e];r&&(r.updateDirection(t),r.updateScale(n))}updateDrawableVisible(e,t){const n=this._allDrawables[e];n&&n.updateVisible(t)}updateDrawableEffect(e,t,n){const r=this._allDrawables[e];r&&r.updateEffect(t,n)}updateDrawableProperties(e,t){const n=this._allDrawables[e];n&&("skinId"in t&&this.updateDrawableSkinId(e,t.skinId),n.updateProperties(t))}getFencedPositionOfDrawable(e,t){let n=t[0],r=t[1];const i=this._allDrawables[e];if(!i)return[n,r];const s=n-i._position[0],o=r-i._position[1],a=i._skin.getFenceBounds(i,v),c=Math.floor(Math.min(a.width,a.height)/2),l=this._xRight-Math.min(15,c);a.right+s<-l?n=Math.ceil(i._position[0]-(l+a.right)):a.left+s>l&&(n=Math.floor(i._position[0]+(l-a.left)));const u=this._yTop-Math.min(15,c);return a.top+o<-u?r=Math.ceil(i._position[1]-(u+a.top)):a.bottom+o>u&&(r=Math.floor(i._position[1]+(u-a.bottom))),[n,r]}penClear(e){this.dirty=!0;this._allSkins[e].clear()}penPoint(e,t,n,r){this.dirty=!0;this._allSkins[e].drawPoint(t,n,r)}penLine(e,t,n,r,i,s){this.dirty=!0;this._allSkins[e].drawLine(t,n,r,i,s)}penStamp(e,t){const n=this._allDrawables[t];if(!n||!n.skin||!n.skin.isMetricsReady())return;const r=n.getFastBounds();if(this.offscreenTouching||r.clamp(this._xLeft,this._xRight,this._yBottom,this._yTop),0===r.width||0===r.height)return;this._doExitDrawRegion();const i=this._allSkins[e],o=this._gl;s.bindFramebufferInfo(o,i._framebuffer);const a=i.renderQuality;r.left*=a,r.right*=a,r.top*=a,r.bottom*=a,r.snapToInt(),o.viewport(.5*this._nativeSize[0]*a+r.left,.5*this._nativeSize[1]*a-r.top,r.width,r.height);const c=s.m4.ortho(r.left/a,r.right/a,r.top/a,r.bottom/a,-1,1);this._drawThese([t],p.DRAW_MODE.default,c,{ignoreVisibility:!0,framebufferWidth:this._nativeSize[0]*a,framebufferHeight:this._nativeSize[1]*a}),i._silhouetteDirty=!0,this.dirty=!0}_createGeometry(){this._bufferInfo=s.createBufferInfoFromArrays(this._gl,{a_position:{numComponents:2,data:[-.5,-.5,.5,-.5,-.5,.5,-.5,.5,.5,-.5,.5,.5]},a_texCoord:{numComponents:2,data:[1,0,0,0,1,1,1,1,0,0,0,1]}})}onNativeSizeChanged(e){this.dirty=!0;const[t,n]=e.newSize,r=this._gl,i=[{format:r.RGBA},{format:r.DEPTH_STENCIL}];this._pickBufferInfo||(this._pickBufferInfo=s.createFramebufferInfo(r,i,S[0],S[1])),this._queryBufferInfo?s.resizeFramebufferInfo(r,this._queryBufferInfo,i,t,n):this._queryBufferInfo=s.createFramebufferInfo(r,i,t,n)}enterDrawRegion(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.enter,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.exit;this._regionId!==e&&(this._doExitDrawRegion(),this._regionId=e,t(),this._exitRegion=n)}_doExitDrawRegion(){null!==this._exitRegion&&this._exitRegion(),this._exitRegion=null,this._regionId=null}_drawThese(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i=this._gl;let o=null;const a="framebufferWidth"in r&&"framebufferHeight"in r&&r.framebufferWidth!==this._nativeSize[0]&&r.framebufferHeight!==this._nativeSize[1],c=e.length;for(let l=0;l<c;++l){const c=e[l];if(r.filter&&!r.filter(c))continue;const u=this._allDrawables[c];if(!u.getVisible()&&!r.ignoreVisibility)continue;const h=a?[u.scale[0]*r.framebufferWidth/this._nativeSize[0],u.scale[1]*r.framebufferHeight/this._nativeSize[1]]:u.scale;if(!u.skin)continue;if(r.skipPrivateSkins&&u.skin.private)continue;if(!u.skin.getTexture(h))continue;const d={};let p=u.enabledEffects;p&=Object.prototype.hasOwnProperty.call(r,"effectMask")?r.effectMask:p;const f=this._shaderManager.getShader(t,p);this._regionId!==f&&(this._doExitDrawRegion(),this._regionId=f,o=f,i.useProgram(o.program),s.setBuffersAndAttributes(i,o,this._bufferInfo),Object.assign(d,{u_projectionMatrix:n})),Object.assign(d,u.skin.getUniforms(h),u.getUniforms()),r.extraUniforms&&Object.assign(d,r.extraUniforms),d.u_skin&&s.setTextureParameters(i,d.u_skin,{minMag:u.skin.useNearest(h,u)?i.NEAREST:i.LINEAR}),s.setUniforms(o,d),s.drawBufferInfo(i,this._bufferInfo,i.TRIANGLES)}this._regionId=null}_getConvexHullPointsForDrawable(e){const t=this._allDrawables[e],[n,r]=t.skin.size;if(!t.getVisible()||0===n||0===r)return[];t.updateCPURenderAttributes();const o=function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])},a=[],c=[];let l=-1,u=-1;const h=s.v3.create(),d=s.v3.create();let p;for(let e=0;e<r;e++){h[1]=e/r;let i=0;for(;i<n;i++)if(h[0]=i/n,g.transformPoint(t,h,d),t.skin.isTouchingLinear(d)){p=[i,e];break}if(!(i>=n)){for(;l>0&&!(o(a[l],a[l-1],p)>0);)--l;for(a[++l]=p,i=n-1;i>=0;i--)if(h[0]=i/n,g.transformPoint(t,h,d),t.skin.isTouchingLinear(d)){p=[i,e];break}for(;u>0&&!(o(c[u],c[u-1],p)<0);)--u;c[++u]=p}}const f=a;f.length=l+1;for(let e=u;e>=0;--e)f.push(c[e]);return i(f,1/0)}sampleColor4b(e,t,n){(n=n||new Uint8ClampedArray(4))[0]=0,n[1]=0,n[2]=0;let r=1;for(let i=0;0!==r&&i<t.length;i++)l.sampleColor4b(e,t[i].drawable,w),n[0]+=w[0]*r,n[1]+=w[1]*r,n[2]+=w[2]*r,r*=1-w[3]/255;return n[0]+=255*this._backgroundColor4f[0]*r,n[1]+=255*this._backgroundColor4f[1]*r,n[2]+=255*this._backgroundColor4f[2]*r,r*=1-this._backgroundColor4f[3],n[3]=255*(1-r),n}requestSnapshot(e){this.dirty=!0,this._snapshotCallbacks.push(e)}setCustomFonts(e){this.customFonts=e;const t=Object.values(e).join("\n");if(t.length?(this._customFontStyles||(this._customFontStyles=document.createElement("style"),this._customFontStyles.className="renderer-custom-fonts",document.head.appendChild(this._customFontStyles)),this._customFontStyles.textContent=t):this._customFontStyles&&(this._customFontStyles.remove(),this._customFontStyles=null),"object"==typeof document&&"object"==typeof document.fonts&&"function"==typeof document.fonts.load){const t=Object.keys(e);for(const e of t)document.fonts.load("12px ".concat(e))}}}N.prototype.canHazPixels=N.prototype.extractDrawableScreenSpace,N.UseGpuModes={Automatic:"Automatic",ForceGPU:"ForceGPU",ForceCPU:"ForceCPU"},N.powerPreference="default",e.exports=N},function(e,t,n){"use strict";var r=n(265),i=n(266),s=n(267),o=n(268);function a(e,t){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)}function c(e,t,n){var r=[t[0]-e[0],t[1]-e[1]],i=[n[0]-e[0],n[1]-e[1]],s=a(e,t),o=a(e,n);return(r[0]*i[0]+r[1]*i[1])/Math.sqrt(s*o)}function l(e,t){for(var n=0;n<t.length-1;n++){var i=[t[n],t[n+1]];if(!(e[0][0]===i[0][0]&&e[0][1]===i[0][1]||e[0][0]===i[1][0]&&e[0][1]===i[1][1])&&r(e,i))return!0}return!1}function u(e){return[Math.min(e[0][0],e[1][0]),Math.min(e[0][1],e[1][1]),Math.max(e[0][0],e[1][0]),Math.max(e[0][1],e[1][1])]}function h(e,t,n){for(var r,i,s=null,o=p,a=p,u=0;u<t.length;u++)r=c(e[0],e[1],t[u]),i=c(e[1],e[0],t[u]),r>o&&i>a&&!l([e[0],t[u]],n)&&!l([e[1],t[u]],n)&&(o=r,a=i,s=t[u]);return s}function d(e,t,n,r,i){for(var s,o,c,l,p,f,m,g=!1,b=0;b<e.length-1;b++)if(o=(s=[e[b],e[b+1]])[0].join()+","+s[1].join(),!(a(s[0],s[1])<t||!0===i[o])){c=0,p=u(s);do{f=(p=r.extendBbox(p,c))[2]-p[0],m=p[3]-p[1],l=h(s,r.rangePoints(p),e),c++}while(null===l&&(n[0]>f||n[1]>m));f>=n[0]&&m>=n[1]&&(i[o]=!0),null!==l&&(e.splice(b+1,0,l),r.removePoint(l),g=!0)}return g?d(e,t,n,r,i):e}var p=Math.cos(90/(180/Math.PI)),f=.6;e.exports=function(e,t,n){var r,a,c,l,u,h,p,m=t||20;return e.length<4?e.slice():(p=function(e){return e.filter((function(e,t,n){var r=n[t-1];return 0===t||!(r[0]===e[0]&&r[1]===e[1])}))}(function(e){return e.sort((function(e,t){return e[0]==t[0]?e[1]-t[1]:e[0]-t[0]}))}(s.toXy(e,n))),l=function(e){for(var t=1/0,n=1/0,r=-1/0,i=-1/0,s=e.length-1;s>=0;s--)e[s][0]<t&&(t=e[s][0]),e[s][1]<n&&(n=e[s][1]),e[s][0]>r&&(r=e[s][0]),e[s][1]>i&&(i=e[s][1]);return[r-t,i-n]}(p),u=[l[0]*f,l[1]*f],r=o(p),c=p.filter((function(e){return r.indexOf(e)<0})),h=Math.ceil(1/(p.length/(l[0]*l[1]))),a=d(r,Math.pow(m,2),u,i(c,h),{}),s.fromXy(a,n))}},function(e,t){function n(e,t,n,r,i,s){var o=(s-t)*(n-e)-(r-t)*(i-e);return o>0||!(o<0)}e.exports=function(e,t){var r=e[0][0],i=e[0][1],s=e[1][0],o=e[1][1],a=t[0][0],c=t[0][1],l=t[1][0],u=t[1][1];return n(r,i,a,c,l,u)!==n(s,o,a,c,l,u)&&n(r,i,s,o,a,c)!==n(r,i,s,o,l,u)}},function(e,t){function n(e,t){this._cells=[],this._cellSize=t,e.forEach((function(e){var t=this.point2CellXY(e),n=t[0],r=t[1];void 0===this._cells[n]&&(this._cells[n]=[]),void 0===this._cells[n][r]&&(this._cells[n][r]=[]),this._cells[n][r].push(e)}),this)}n.prototype={cellPoints:function(e,t){return void 0!==this._cells[e]&&void 0!==this._cells[e][t]?this._cells[e][t]:[]},rangePoints:function(e){for(var t=this.point2CellXY([e[0],e[1]]),n=this.point2CellXY([e[2],e[3]]),r=[],i=t[0];i<=n[0];i++)for(var s=t[1];s<=n[1];s++)r=r.concat(this.cellPoints(i,s));return r},removePoint:function(e){for(var t,n=this.point2CellXY(e),r=this._cells[n[0]][n[1]],i=0;i<r.length;i++)if(r[i][0]===e[0]&&r[i][1]===e[1]){t=i;break}return r.splice(t,1),r},point2CellXY:function(e){return[parseInt(e[0]/this._cellSize),parseInt(e[1]/this._cellSize)]},extendBbox:function(e,t){return[e[0]-t*this._cellSize,e[1]-t*this._cellSize,e[2]+t*this._cellSize,e[3]+t*this._cellSize]}},e.exports=function(e,t){return new n(e,t)}},function(e,t){e.exports={toXy:function(e,t){if(void 0===t)return e.slice();const n=t[0].slice(1),r=t[1].slice(1);return e.map((function(e){return[e[n],e[r]]}))},fromXy:function(e,t){if(void 0===t)return e.slice();const n=t[0].slice(1),r=t[1].slice(1);return e.map((function(e){return function(e){const t={};return t[n]=e[0],t[r]=e[1],t}(e)}))}}},function(e,t){function n(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])}e.exports=function(e){var t,r=function(e){for(var t=[],r=0;r<e.length;r++){for(;t.length>=2&&n(t[t.length-2],t[t.length-1],e[r])<=0;)t.pop();t.push(e[r])}return t.pop(),t}(e),i=function(e){for(var t=e.reverse(),r=[],i=0;i<t.length;i++){for(;r.length>=2&&n(r[r.length-2],r[r.length-1],t[i])<=0;)r.pop();r.push(t[i])}return r.pop(),r}(e);return(t=i.concat(r)).push(e[0]),t}},function(e,t){let n;const r=(e,t)=>t^(e^t)&e-t>>31,i=(e,t)=>e^(e^t)&e-t>>31,s=(e,t,n)=>{let{_width:r,_height:i,_colorData:s}=e;return t>=r||n>=i||t<0||n<0?0:s[4*(n*r+t)+3]},o=[new Uint8ClampedArray(4),new Uint8ClampedArray(4),new Uint8ClampedArray(4),new Uint8ClampedArray(4)],a=(e,t,n,s)=>{let{_width:o,_height:a,_colorData:c}=e;if(t=i(0,r(t,o-1)),n=i(0,r(n,a-1)),t>=o||n>=a||t<0||n<0)return s.fill(0);const l=4*(n*o+t),u=c[l+3]/255;return s[0]=c[l]*u,s[1]=c[l+1]*u,s[2]=c[l+2]*u,s[3]=c[l+3],s},c=(e,t,n,s)=>{let{_width:o,_height:a,_colorData:c}=e;t=i(0,r(t,o-1));const l=4*((n=i(0,r(n,a-1)))*o+t);return s[0]=c[l],s[1]=c[l+1],s[2]=c[l+2],s[3]=c[l+3],s};class l{constructor(){this._width=0,this._height=0,this._lazyData=null,this._colorData=null,this._getColor=a,this.colorAtNearest=this.colorAtLinear=(e,t)=>t.fill(0)}update(e){let t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e instanceof ImageData)t=e,this._width=e.width,this._height=e.height,this._lazyData=null,this._colorData=t.data;else{if(this._width=e.width,this._height=e.height,!this._width||!this._height)return;this._lazyData=e,this._colorData=null}this._getColor=n?c:a,delete this.colorAtNearest,delete this.colorAtLinear}unlazy(){if(!this._lazyData)return;const e=this._lazyData.width,t=this._lazyData.height;if(e&&t){const n=l._updateCanvas();n.width=e,n.height=t;const r=n.getContext("2d");r.clearRect(0,0,e,t),r.drawImage(this._lazyData,0,0,e,t);const i=r.getImageData(0,0,e,t);this._colorData=i.data}this._lazyData=null}colorAtNearest(e,t){return this._getColor(this,Math.floor(e[0]*(this._width-1)),Math.floor(e[1]*(this._height-1)),t)}colorAtLinear(e,t){const n=e[0]*(this._width-1),r=e[1]*(this._height-1),i=n%1,s=r%1,a=1-i,c=1-s,l=Math.floor(n),u=Math.floor(r),h=this._getColor(this,l,u,o[0]),d=this._getColor(this,l+1,u,o[1]),p=this._getColor(this,l,u+1,o[2]),f=this._getColor(this,l+1,u+1,o[3]);return t[0]=h[0]*a*c+p[0]*a*s+d[0]*i*c+f[0]*i*s,t[1]=h[1]*a*c+p[1]*a*s+d[1]*i*c+f[1]*i*s,t[2]=h[2]*a*c+p[2]*a*s+d[2]*i*c+f[2]*i*s,t[3]=h[3]*a*c+p[3]*a*s+d[3]*i*c+f[3]*i*s,t}isTouchingNearest(e){if(this._colorData)return s(this,Math.floor(e[0]*(this._width-1)),Math.floor(e[1]*(this._height-1)))>0}isTouchingLinear(e){if(!this._colorData)return;const t=Math.floor(e[0]*(this._width-1)),n=Math.floor(e[1]*(this._height-1));return s(this,t,n)>0||s(this,t+1,n)>0||s(this,t,n+1)>0||s(this,t+1,n+1)>0}static _updateCanvas(){return void 0===n&&(n=document.createElement("canvas")),n}}e.exports=l},function(e,t,n){const r=n(11),i=n(27);class s extends i{constructor(e,t){super(e,t),this._costumeResolution=1,this._textureSize=[0,0]}dispose(){this._texture&&(this._renderer.gl.deleteTexture(this._texture),this._texture=null),super.dispose()}get size(){return[this._textureSize[0]/this._costumeResolution,this._textureSize[1]/this._costumeResolution]}getTexture(e){return this._texture||super.getTexture()}setBitmap(e,t,n){if(!e.width||!e.height)return void super.setEmptyImageData();const i=this._renderer.gl;let o=e;if(e instanceof HTMLCanvasElement&&!1!==e.reusable){o=e.getContext("2d").getImageData(0,0,e.width,e.height)}if(null===this._texture){const e={auto:!1,wrap:i.CLAMP_TO_EDGE};this._texture=r.createTexture(i,e)}this._setTexture(o),this._costumeResolution=t||2,this._textureSize=s._getBitmapSize(e),void 0===n&&(n=this.calculateRotationCenter()),this._rotationCenter[0]=n[0],this._rotationCenter[1]=n[1],this.emitWasAltered()}static _getBitmapSize(e){return e instanceof HTMLImageElement?[e.naturalWidth||e.width,e.naturalHeight||e.height]:e instanceof HTMLVideoElement?[e.videoWidth||e.width,e.videoHeight||e.height]:[e.width,e.height]}}e.exports=s},function(e,t,n){const r=n(11),i=n(85),s=n(35),o=n(28),a=n(86),c=n(87),l=r.v3.create(),u=1e-6,h=(e,t)=>{const n=l,r=t[0],i=t[1],s=e._inverseMatrix,o=r*s[3]+i*s[7]+s[15];return n[0]=.5-(r*s[0]+i*s[4]+s[12])/o,n[1]=(r*s[1]+i*s[5]+s[13])/o+.5,Math.abs(n[0])<u&&(n[0]=0),Math.abs(n[1])<u&&(n[1]=0),0!==e.enabledEffects&&n[0]>=0&&n[0]<1&&n[1]>=0&&n[1]<1&&a.transformPoint(e,n,n),n};class d{constructor(e,t){this._id=e,this._renderer=t,this._uniforms={u_modelMatrix:r.m4.identity(),u_silhouetteColor:d.color4fFromID(this._id)};const n=o.EFFECTS.length;for(let e=0;e<n;++e){const t=o.EFFECTS[e],n=o.EFFECT_INFO[t],r=n.converter;this._uniforms[n.uniformName]=r(0)}this._position=r.v3.create(0,0),this._scale=r.v3.create(100,100),this._direction=90,this._transformDirty=!0,this._rotationMatrix=r.m4.identity(),this._rotationTransformDirty=!0,this._rotationAdjusted=r.v3.create(),this._rotationCenterDirty=!0,this._skinScale=r.v3.create(0,0,0),this._skinScaleDirty=!0,this._inverseMatrix=r.m4.identity(),this._inverseTransformDirty=!0,this._visible=!0,this.enabledEffects=0,this._convexHullPoints=null,this._convexHullDirty=!0,this._transformedHullPoints=null,this._transformedHullDirty=!0,this._skinWasAltered=this._skinWasAltered.bind(this),this.isTouching=this._isTouchingNever,this._highQuality=!1,this.interactive=!0}setHighQuality(e){this._highQuality=e}dispose(){this.skin=null}setTransformDirty(){this._transformDirty=!0,this._inverseTransformDirty=!0,this._transformedHullDirty=!0}get id(){return this._id}get skin(){return this._skin}set skin(e){this._skin!==e&&(this._skin=e,this._skinWasAltered())}get scale(){return[this._scale[0],this._scale[1]]}getUniforms(){return this._transformDirty&&this._calculateTransform(),this._uniforms}getVisible(){return this._visible}updatePosition(e){this._position[0]===e[0]&&this._position[1]===e[1]||(this._highQuality?(this._position[0]=e[0],this._position[1]=e[1]):(this._position[0]=Math.round(e[0]),this._position[1]=Math.round(e[1])),this._renderer.dirty=!0,this.setTransformDirty())}updateDirection(e){this._direction!==e&&(this._direction=e,this._renderer.dirty=!0,this._rotationTransformDirty=!0,this.setTransformDirty())}updateScale(e){this._scale[0]===e[0]&&this._scale[1]===e[1]||(this._scale[0]=e[0],this._scale[1]=e[1],this._renderer.dirty=!0,this._rotationCenterDirty=!0,this._skinScaleDirty=!0,this.setTransformDirty())}updateVisible(e){this._visible!==e&&(this._visible=e,this._renderer.dirty=!0,this.setConvexHullDirty())}updateEffect(e,t){this._renderer.dirty=!0;const n=o.EFFECT_INFO[e];t?this.enabledEffects|=n.mask:this.enabledEffects&=~n.mask;const r=n.converter;this._uniforms[n.uniformName]=r(t),n.shapeChanges&&this.setConvexHullDirty()}updateProperties(e){"position"in e&&this.updatePosition(e.position),"direction"in e&&this.updateDirection(e.direction),"scale"in e&&this.updateScale(e.scale),"visible"in e&&this.updateVisible(e.visible);const t=o.EFFECTS.length;for(let n=0;n<t;++n){const t=o.EFFECTS[n];t in e&&this.updateEffect(t,e[t])}}_calculateTransform(){if(this._rotationTransformDirty){const e=(270-this._direction)*Math.PI/180,t=Math.cos(e),n=Math.sin(e);this._rotationMatrix[0]=t,this._rotationMatrix[1]=n,this._rotationMatrix[4]=-n,this._rotationMatrix[5]=t,this._rotationTransformDirty=!1}if(this._rotationCenterDirty&&null!==this.skin){const e=this.skin.rotationCenter,t=this.skin.size,n=e[0],r=e[1],i=t[0],s=t[1],o=this._scale[0],a=this._scale[1],c=this._rotationAdjusted;c[0]=(n-i/2)*o/100,c[1]=(r-s/2)*a/100*-1,this._rotationCenterDirty=!1}if(this._skinScaleDirty&&null!==this.skin){const e=this.skin.size,t=this._skinScale;t[0]=e[0]*this._scale[0]/100,t[1]=e[1]*this._scale[1]/100,this._skinScaleDirty=!1}const e=this._uniforms.u_modelMatrix,t=this._skinScale[0],n=this._skinScale[1],r=this._rotationMatrix[0],i=this._rotationMatrix[1],s=this._rotationMatrix[4],o=this._rotationMatrix[5],a=this._rotationAdjusted[0],c=this._rotationAdjusted[1],l=this._position[0],u=this._position[1];e[0]=t*r,e[1]=t*i,e[4]=n*s,e[5]=n*o,e[12]=r*a+s*c+l,e[13]=i*a+o*c+u,this._transformDirty=!1}needsConvexHullPoints(){return!this._convexHullPoints||this._convexHullDirty||0===this._convexHullPoints.length}setConvexHullDirty(){this._convexHullDirty=!0}setConvexHullPoints(e){this._convexHullPoints=e,this._convexHullDirty=!1,this._transformedHullPoints=[];for(let t=0;t<e.length;t++)this._transformedHullPoints.push(r.v3.create());this._transformedHullDirty=!0}_isTouchingNever(e){return!1}_isTouchingNearest(e){return this.skin.isTouchingNearest(h(this,e))}_isTouchingLinear(e){return this.skin.isTouchingLinear(h(this,e))}getBounds(e){if(this.needsConvexHullPoints())throw new Error("Needs updated convex hull points before bounds calculation.");this._transformDirty&&this._calculateTransform();const t=this._getTransformedHullPoints();return(e=e||new i).initFromPointsAABB(t),e}getBoundsForBubble(e){if(this.needsConvexHullPoints())throw new Error("Needs updated convex hull points before bubble bounds calculation.");this._transformDirty&&this._calculateTransform();const t=this._getTransformedHullPoints(),n=Math.max.apply(null,t.map((e=>e[1]))),r=t.filter((e=>e[1]>n-8));return(e=e||new i).initFromPointsAABB(r),e}getAABB(e){this._transformDirty&&this._calculateTransform();const t=this._uniforms.u_modelMatrix;return(e=e||new i).initFromModelMatrix(t),e}getFastBounds(e){return this.needsConvexHullPoints()?this.getAABB(e):this.getBounds(e)}_getTransformedHullPoints(){if(!this._transformedHullDirty)return this._transformedHullPoints;const e=r.m4.ortho(-1,1,-1,1,-1,1),t=this.skin.size,n=1/t[0]/2,i=1/t[1]/2,s=r.m4.multiply(this._uniforms.u_modelMatrix,e);for(let e=0;e<this._convexHullPoints.length;e++){const o=this._convexHullPoints[e],a=this._transformedHullPoints[e];a[0]=.5+-o[0]/t[0]-n,a[1]=o[1]/t[1]-.5+i,r.m4.transformPoint(s,a,a)}return this._transformedHullDirty=!1,this._transformedHullPoints}updateMatrix(){if(this._transformDirty&&this._calculateTransform(),this._inverseTransformDirty){const e=this._inverseMatrix;r.m4.copy(this._uniforms.u_modelMatrix,e),e[10]=1,r.m4.inverse(e,e),this._inverseTransformDirty=!1}}updateCPURenderAttributes(){this.updateMatrix(),this.skin?(this.skin.updateSilhouette(this._scale),this.skin.useNearest(this._scale,this)?this.isTouching=this._isTouchingNearest:this.isTouching=this._isTouchingLinear):(c.warn("Could not find skin for drawable with id: ".concat(this._id)),this.isTouching=this._isTouchingNever)}_skinWasAltered(){this._renderer.dirty=!0,this._rotationCenterDirty=!0,this._skinScaleDirty=!0,this.setConvexHullDirty(),this.setTransformDirty()}static color4fFromID(e){return[(255&(e-=s.ID_NONE))/255,(e>>8&255)/255,(e>>16&255)/255,1]}static color3bToID(e,t,n){let r;return r=255&e,r|=(255&t)<<8,r|=(255&n)<<16,r+s.ID_NONE}static sampleColor4b(e,t,n,r){const i=h(t,e);if(i[0]<0||i[1]<0||i[0]>1||i[1]>1)return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n;const s=t.skin._silhouette.colorAtNearest(i,n);return 0===t.enabledEffects?s:a.transformColor(t,s,r)}}e.exports=d},function(e,t){e.exports="precision mediump float;\n\n#ifdef DRAW_MODE_line\nuniform vec2 u_stageSize;\nattribute vec2 a_lineThicknessAndLength;\nattribute vec4 a_penPoints;\nattribute vec4 a_lineColor;\n\nvarying vec4 v_lineColor;\nvarying float v_lineThickness;\nvarying float v_lineLength;\nvarying vec4 v_penPoints;\n\n// Add this to divisors to prevent division by 0, which results in NaNs propagating through calculations.\n// Smaller values can cause problems on some mobile devices.\nconst float epsilon = 1e-3;\n#endif\n\n#if !(defined(DRAW_MODE_line) || defined(DRAW_MODE_background))\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_modelMatrix;\nattribute vec2 a_texCoord;\n#endif\n\nattribute vec2 a_position;\n\nvarying vec2 v_texCoord;\n\nvoid main() {\n\t#ifdef DRAW_MODE_line\n\t// Calculate a rotated (\"tight\") bounding box around the two pen points.\n\t// Yes, we're doing this 6 times (once per vertex), but on actual GPU hardware,\n\t// it's still faster than doing it in JS combined with the cost of uniformMatrix4fv.\n\n\t// Expand line bounds by sqrt(2) / 2 each side-- this ensures that all antialiased pixels\n\t// fall within the quad, even at a 45-degree diagonal\n\tvec2 position = a_position;\n\tfloat expandedRadius = (a_lineThicknessAndLength.x * 0.5) + 1.4142135623730951;\n\n\t// The X coordinate increases along the length of the line. It's 0 at the center of the origin point\n\t// and is in pixel-space (so at n pixels along the line, its value is n).\n\tv_texCoord.x = mix(0.0, a_lineThicknessAndLength.y + (expandedRadius * 2.0), a_position.x) - expandedRadius;\n\t// The Y coordinate is perpendicular to the line. It's also in pixel-space.\n\tv_texCoord.y = ((a_position.y - 0.5) * expandedRadius) + 0.5;\n\n\tposition.x *= a_lineThicknessAndLength.y + (2.0 * expandedRadius);\n\tposition.y *= 2.0 * expandedRadius;\n\n\t// 1. Center around first pen point\n\tposition -= expandedRadius;\n\n\t// 2. Rotate quad to line angle\n\tvec2 pointDiff = a_penPoints.zw;\n\t// Ensure line has a nonzero length so it's rendered properly\n\t// As long as either component is nonzero, the line length will be nonzero\n\t// If the line is zero-length, give it a bit of horizontal length\n\tpointDiff.x = (abs(pointDiff.x) < epsilon && abs(pointDiff.y) < epsilon) ? epsilon : pointDiff.x;\n\t// The `normalized` vector holds rotational values equivalent to sine/cosine\n\t// We're applying the standard rotation matrix formula to the position to rotate the quad to the line angle\n\t// pointDiff can hold large values so we must divide by u_lineLength instead of calling GLSL's normalize function:\n\t// https://asawicki.info/news_1596_watch_out_for_reduced_precision_normalizelength_in_opengl_es\n\tvec2 normalized = pointDiff / max(a_lineThicknessAndLength.y, epsilon);\n\tposition = mat2(normalized.x, normalized.y, -normalized.y, normalized.x) * position;\n\n\t// 3. Translate quad\n\tposition += a_penPoints.xy;\n\n\t// 4. Apply view transform\n\tposition *= 2.0 / u_stageSize;\n\tgl_Position = vec4(position, 0, 1);\n\n\tv_lineColor = a_lineColor;\n\tv_lineThickness = a_lineThicknessAndLength.x;\n\tv_lineLength = a_lineThicknessAndLength.y;\n\tv_penPoints = a_penPoints;\n\t#elif defined(DRAW_MODE_background)\n\tgl_Position = vec4(a_position * 2.0, 0, 1);\n\t#else\n\tgl_Position = u_projectionMatrix * u_modelMatrix * vec4(a_position, 0, 1);\n\tv_texCoord = a_texCoord;\n\t#endif\n}\n"},function(e,t){e.exports='precision mediump float;\n\n#ifdef DRAW_MODE_silhouette\nuniform vec4 u_silhouetteColor;\n#else // DRAW_MODE_silhouette\n# ifdef ENABLE_color\nuniform float u_color;\n# endif // ENABLE_color\n# ifdef ENABLE_brightness\nuniform float u_brightness;\n# endif // ENABLE_brightness\n#endif // DRAW_MODE_silhouette\n\n#ifdef DRAW_MODE_colorMask\nuniform vec3 u_colorMask;\nuniform float u_colorMaskTolerance;\n#endif // DRAW_MODE_colorMask\n\n#ifdef ENABLE_fisheye\nuniform float u_fisheye;\n#endif // ENABLE_fisheye\n#ifdef ENABLE_whirl\nuniform float u_whirl;\n#endif // ENABLE_whirl\n#ifdef ENABLE_pixelate\nuniform float u_pixelate;\nuniform vec2 u_skinSize;\n#endif // ENABLE_pixelate\n#ifdef ENABLE_mosaic\nuniform float u_mosaic;\n#endif // ENABLE_mosaic\n#ifdef ENABLE_ghost\nuniform float u_ghost;\n#endif // ENABLE_ghost\n\n#ifdef DRAW_MODE_line\nvarying vec4 v_lineColor;\nvarying float v_lineThickness;\nvarying float v_lineLength;\n#endif // DRAW_MODE_line\n\n#ifdef DRAW_MODE_background\nuniform vec4 u_backgroundColor;\n#endif // DRAW_MODE_background\n\nuniform sampler2D u_skin;\n\n#ifndef DRAW_MODE_background\nvarying vec2 v_texCoord;\n#endif\n\n// Add this to divisors to prevent division by 0, which results in NaNs propagating through calculations.\n// Smaller values can cause problems on some mobile devices.\nconst float epsilon = 1e-3;\n\n#if !defined(DRAW_MODE_silhouette) && (defined(ENABLE_color))\n// Branchless color conversions based on code from:\n// http://www.chilliant.com/rgb2hsv.html by Ian Taylor\n// Based in part on work by Sam Hocevar and Emil Persson\n// See also: https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation\n\n\n// Convert an RGB color to Hue, Saturation, and Value.\n// All components of input and output are expected to be in the [0,1] range.\nvec3 convertRGB2HSV(vec3 rgb)\n{\n\t// Hue calculation has 3 cases, depending on which RGB component is largest, and one of those cases involves a "mod"\n\t// operation. In order to avoid that "mod" we split the M==R case in two: one for G<B and one for B>G. The B>G case\n\t// will be calculated in the negative and fed through abs() in the hue calculation at the end.\n\t// See also: https://en.wikipedia.org/wiki/HSL_and_HSV#Hue_and_chroma\n\tconst vec4 hueOffsets = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n\n\t// temp1.xy = sort B & G (largest first)\n\t// temp1.z = the hue offset we\'ll use if it turns out that R is the largest component (M==R)\n\t// temp1.w = the hue offset we\'ll use if it turns out that R is not the largest component (M==G or M==B)\n\tvec4 temp1 = rgb.b > rgb.g ? vec4(rgb.bg, hueOffsets.wz) : vec4(rgb.gb, hueOffsets.xy);\n\n\t// temp2.x = the largest component of RGB ("M" / "Max")\n\t// temp2.yw = the smaller components of RGB, ordered for the hue calculation (not necessarily sorted by magnitude!)\n\t// temp2.z = the hue offset we\'ll use in the hue calculation\n\tvec4 temp2 = rgb.r > temp1.x ? vec4(rgb.r, temp1.yzx) : vec4(temp1.xyw, rgb.r);\n\n\t// m = the smallest component of RGB ("min")\n\tfloat m = min(temp2.y, temp2.w);\n\n\t// Chroma = M - m\n\tfloat C = temp2.x - m;\n\n\t// Value = M\n\tfloat V = temp2.x;\n\n\treturn vec3(\n\t\tabs(temp2.z + (temp2.w - temp2.y) / (6.0 * C + epsilon)), // Hue\n\t\tC / (temp2.x + epsilon), // Saturation\n\t\tV); // Value\n}\n\nvec3 convertHue2RGB(float hue)\n{\n\tfloat r = abs(hue * 6.0 - 3.0) - 1.0;\n\tfloat g = 2.0 - abs(hue * 6.0 - 2.0);\n\tfloat b = 2.0 - abs(hue * 6.0 - 4.0);\n\treturn clamp(vec3(r, g, b), 0.0, 1.0);\n}\n\nvec3 convertHSV2RGB(vec3 hsv)\n{\n\tvec3 rgb = convertHue2RGB(hsv.x);\n\tfloat c = hsv.z * hsv.y;\n\treturn rgb * c + hsv.z - c;\n}\n#endif // !defined(DRAW_MODE_silhouette) && (defined(ENABLE_color))\n\nconst vec2 kCenter = vec2(0.5, 0.5);\n\nvoid main()\n{\n\t#if !(defined(DRAW_MODE_line) || defined(DRAW_MODE_background))\n\tvec2 texcoord0 = v_texCoord;\n\n\t#ifdef ENABLE_mosaic\n\ttexcoord0 = fract(u_mosaic * texcoord0);\n\t#endif // ENABLE_mosaic\n\n\t#ifdef ENABLE_pixelate\n\t{\n\t\t// TODO: clean up "pixel" edges\n\t\tvec2 pixelTexelSize = u_skinSize / u_pixelate;\n\t\ttexcoord0 = (floor(texcoord0 * pixelTexelSize) + kCenter) / pixelTexelSize;\n\t}\n\t#endif // ENABLE_pixelate\n\n\t#ifdef ENABLE_whirl\n\t{\n\t\tconst float kRadius = 0.5;\n\t\tvec2 offset = texcoord0 - kCenter;\n\t\tfloat offsetMagnitude = length(offset);\n\t\tfloat whirlFactor = max(1.0 - (offsetMagnitude / kRadius), 0.0);\n\t\tfloat whirlActual = u_whirl * whirlFactor * whirlFactor;\n\t\tfloat sinWhirl = sin(whirlActual);\n\t\tfloat cosWhirl = cos(whirlActual);\n\t\tmat2 rotationMatrix = mat2(\n\t\t\tcosWhirl, -sinWhirl,\n\t\t\tsinWhirl, cosWhirl\n\t\t);\n\n\t\ttexcoord0 = rotationMatrix * offset + kCenter;\n\t}\n\t#endif // ENABLE_whirl\n\n\t#ifdef ENABLE_fisheye\n\t{\n\t\tvec2 vec = (texcoord0 - kCenter) / kCenter;\n\t\tfloat vecLength = length(vec);\n\t\tfloat r = pow(min(vecLength, 1.0), u_fisheye) * max(1.0, vecLength);\n\t\tvec2 unit = vec / vecLength;\n\n\t\ttexcoord0 = kCenter + r * unit * kCenter;\n\t}\n\t#endif // ENABLE_fisheye\n\n\tgl_FragColor = texture2D(u_skin, texcoord0);\n\n\t#if defined(ENABLE_color) || defined(ENABLE_brightness)\n\t// Divide premultiplied alpha values for proper color processing\n\t// Add epsilon to avoid dividing by 0 for fully transparent pixels\n\tgl_FragColor.rgb = clamp(gl_FragColor.rgb / (gl_FragColor.a + epsilon), 0.0, 1.0);\n\n\t#ifdef ENABLE_color\n\t{\n\t\tvec3 hsv = convertRGB2HSV(gl_FragColor.xyz);\n\n\t\t// this code forces grayscale values to be slightly saturated\n\t\t// so that some slight change of hue will be visible\n\t\tconst float minLightness = 0.11 / 2.0;\n\t\tconst float minSaturation = 0.09;\n\t\tif (hsv.z < minLightness) hsv = vec3(0.0, 1.0, minLightness);\n\t\telse if (hsv.y < minSaturation) hsv = vec3(0.0, minSaturation, hsv.z);\n\n\t\thsv.x = mod(hsv.x + u_color, 1.0);\n\t\tif (hsv.x < 0.0) hsv.x += 1.0;\n\n\t\tgl_FragColor.rgb = convertHSV2RGB(hsv);\n\t}\n\t#endif // ENABLE_color\n\n\t#ifdef ENABLE_brightness\n\tgl_FragColor.rgb = clamp(gl_FragColor.rgb + vec3(u_brightness), vec3(0), vec3(1));\n\t#endif // ENABLE_brightness\n\n\t// Re-multiply color values\n\tgl_FragColor.rgb *= gl_FragColor.a + epsilon;\n\n\t#endif // defined(ENABLE_color) || defined(ENABLE_brightness)\n\n\t#ifdef ENABLE_ghost\n\tgl_FragColor *= u_ghost;\n\t#endif // ENABLE_ghost\n\n\t#ifdef DRAW_MODE_silhouette\n\t// Discard fully transparent pixels for stencil test\n\tif (gl_FragColor.a == 0.0) {\n\t\tdiscard;\n\t}\n\t// switch to u_silhouetteColor only AFTER the alpha test\n\tgl_FragColor = u_silhouetteColor;\n\t#else // DRAW_MODE_silhouette\n\n\t#ifdef DRAW_MODE_colorMask\n\tvec3 maskDistance = abs(gl_FragColor.rgb - u_colorMask);\n\tvec3 colorMaskTolerance = vec3(u_colorMaskTolerance, u_colorMaskTolerance, u_colorMaskTolerance);\n\tif (any(greaterThan(maskDistance, colorMaskTolerance)))\n\t{\n\t\tdiscard;\n\t}\n\t#endif // DRAW_MODE_colorMask\n\t#endif // DRAW_MODE_silhouette\n\n\t#ifdef DRAW_MODE_straightAlpha\n\t// Un-premultiply alpha.\n\tgl_FragColor.rgb /= gl_FragColor.a + epsilon;\n\t#endif\n\n\t#endif // !(defined(DRAW_MODE_line) || defined(DRAW_MODE_background))\n\n\t#ifdef DRAW_MODE_line\n\t// Maaaaagic antialiased-line-with-round-caps shader.\n\n\t// "along-the-lineness". This increases parallel to the line.\n\t// It goes from negative before the start point, to 0.5 through the start to the end, then ramps up again\n\t// past the end point.\n\tfloat d = ((v_texCoord.x - clamp(v_texCoord.x, 0.0, v_lineLength)) * 0.5) + 0.5;\n\n\t// Distance from (0.5, 0.5) to (d, the perpendicular coordinate). When we\'re in the middle of the line,\n\t// d will be 0.5, so the distance will be 0 at points close to the line and will grow at points further from it.\n\t// For the "caps", d will ramp down/up, giving us rounding.\n\t// See https://www.youtube.com/watch?v=PMltMdi1Wzg for a rough outline of the technique used to round the lines.\n\tfloat line = distance(vec2(0.5), vec2(d, v_texCoord.y)) * 2.0;\n\t// Expand out the line by its thickness.\n\tline -= ((v_lineThickness - 1.0) * 0.5);\n\t// Because "distance to the center of the line" decreases the closer we get to the line, but we want more opacity\n\t// the closer we are to the line, invert it.\n\tgl_FragColor = v_lineColor * clamp(1.0 - line, 0.0, 1.0);\n\t#endif // DRAW_MODE_line\n\n\t#ifdef DRAW_MODE_background\n\tgl_FragColor = u_backgroundColor;\n\t#endif\n}\n'},function(e,t){e.exports={rgbToHsv:(e,t)=>{let[n,r,i]=e,s=0;n/=255,r/=255,i/=255;let o=0;r<i&&(o=r,r=i,i=o,s=-1),n<r&&(o=n,n=r,r=o,s=-2/6-s);const a=n-Math.min(r,i),c=Math.abs(s+(r-i)/(6*a+Number.EPSILON)),l=a/(n+Number.EPSILON),u=n;return t[0]=c,t[1]=l,t[2]=u,t},hsvToRgb:(e,t)=>{let[n,r,i]=e;if(0===r)return t[0]=t[1]=t[2]=255*i+.5,t;n%=1;const s=6*n|0,o=6*n-s,a=i*(1-r),c=i*(1-r*o),l=i*(1-r*(1-o));let u=0,h=0,d=0;switch(s){case 0:u=i,h=l,d=a;break;case 1:u=c,h=i,d=a;break;case 2:u=a,h=i,d=l;break;case 3:u=a,h=c,d=i;break;case 4:u=l,h=a,d=i;break;case 5:u=i,h=a,d=c}return t[0]=255*u+.5,t[1]=255*h+.5,t[2]=255*d+.5,t}}},function(e,t,n){const r=n(11),i=n(35),s=n(27),o=n(28),a={color4f:[0,0,1,1],diameter:1},c=163800;e.exports=class extends s{constructor(e,t){super(e,t),this._size=null,this._framebuffer=null,this._silhouetteDirty=!1,this._silhouettePixels=null,this._silhouetteImageData=null,this._lineOnBufferDrawRegionId={enter:()=>this._enterDrawLineOnBuffer(),exit:()=>this._exitDrawLineOnBuffer()},this._usePenBufferDrawRegionId={enter:()=>this._enterUsePenBuffer(),exit:()=>this._exitUsePenBuffer()};const n=this._renderer.gl;this.renderQuality=1,this._nativeSize=t.getNativeSize();if(this._lineShader=this._renderer._shaderManager.getShader(o.DRAW_MODE.line,0),this._drawTextureShader=this._renderer._shaderManager.getShader(o.DRAW_MODE.default,0),this._drawTextureRegionId={enter:()=>this._enterDrawTexture(),exit:()=>this._exitDrawTexture()},this.a_position_glbuffer=n.createBuffer(),this.a_position_loc=n.getAttribLocation(this._lineShader.program,"a_position"),this.a_lineColor_loc=n.getAttribLocation(this._lineShader.program,"a_lineColor"),this.a_lineThicknessAndLength_loc=n.getAttribLocation(this._lineShader.program,"a_lineThicknessAndLength"),this.a_penPoints_loc=n.getAttribLocation(this._lineShader.program,"a_penPoints"),this.attribute_glbuffer=n.createBuffer(),this.attribute_index=0,this.attribute_data=new Float32Array(c),n.bindBuffer(n.ARRAY_BUFFER,this.attribute_glbuffer),n.bufferData(n.ARRAY_BUFFER,4*this.attribute_data.length,n.STREAM_DRAW),n.drawArraysInstanced)this.instancedRendering=!0,this.glDrawArraysInstanced=n.drawArraysInstanced.bind(n),this.glVertexAttribDivisor=n.vertexAttribDivisor.bind(n);else{const e=n.getExtension("ANGLE_instanced_arrays");e?(this.instancedRendering=!0,this.glDrawArraysInstanced=e.drawArraysInstancedANGLE.bind(e),this.glVertexAttribDivisor=e.vertexAttribDivisorANGLE.bind(e)):this.instancedRendering=!1}if(this.instancedRendering)n.bindBuffer(n.ARRAY_BUFFER,this.a_position_glbuffer),n.bufferData(n.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),n.STATIC_DRAW);else{const e=new Float32Array(32760);for(let t=0;t<e.length;t+=12)e[t+0]=1,e[t+1]=0,e[t+2]=0,e[t+3]=0,e[t+4]=1,e[t+5]=1,e[t+6]=1,e[t+7]=1,e[t+8]=0,e[t+9]=0,e[t+10]=0,e[t+11]=1;n.bindBuffer(n.ARRAY_BUFFER,this.a_position_glbuffer),n.bufferData(n.ARRAY_BUFFER,e,n.STATIC_DRAW)}this.onNativeSizeChanged=this.onNativeSizeChanged.bind(this),this._renderer.on(i.Events.NativeSizeChanged,this.onNativeSizeChanged),this._setCanvasSize(t.getNativeSize())}dispose(){this._renderer.removeListener(i.Events.NativeSizeChanged,this.onNativeSizeChanged),this._renderer.gl.deleteTexture(this._texture),this._texture=null,super.dispose()}get size(){return this._nativeSize}useNearest(e){return Math.max(e[0],e[1])>=100}getTexture(e){return this._texture}clear(){this._renderer.enterDrawRegion(this._usePenBufferDrawRegionId);const e=this._renderer.gl;e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),this._silhouetteDirty=!0}drawPoint(e,t,n){this.drawLine(e,t,n,t,n)}drawLine(e,t,n,r,i){const s=e.diameter||a.diameter,o=1===s||3===s?.5:0;this._drawLineOnBuffer(e,t+o,n+o,r+o,i+o),this._silhouetteDirty=!0}_enterDrawLineOnBuffer(){const e=this._renderer.gl;r.bindFramebufferInfo(e,this._framebuffer),e.viewport(0,0,this._size[0],this._size[1]);const t=this._lineShader;e.useProgram(t.program);const n={u_skin:this._texture,u_stageSize:this._size};r.setUniforms(t,n),e.bindBuffer(e.ARRAY_BUFFER,this.a_position_glbuffer),e.enableVertexAttribArray(this.a_position_loc),e.vertexAttribPointer(this.a_position_loc,2,e.FLOAT,!1,8,0),this.attribute_index=0}_exitDrawLineOnBuffer(){this.attribute_index&&this._flushLines();const e=this._renderer.gl;r.bindFramebufferInfo(e,null)}_enterUsePenBuffer(){r.bindFramebufferInfo(this._renderer.gl,this._framebuffer)}_exitUsePenBuffer(){r.bindFramebufferInfo(this._renderer.gl,null)}_enterDrawTexture(){this._enterUsePenBuffer();const e=this._renderer.gl;e.viewport(0,0,this._size[0],this._size[1]),e.useProgram(this._drawTextureShader.program),r.setBuffersAndAttributes(e,this._drawTextureShader,this._renderer._bufferInfo)}_exitDrawTexture(){this._exitUsePenBuffer()}_drawPenTexture(e){this._renderer.enterDrawRegion(this._drawTextureRegionId);const t=this._renderer.gl,n=this._size[0],i=this._size[1],s={u_skin:e,u_projectionMatrix:r.m4.ortho(n/2,n/-2,i/-2,i/2,-1,1,r.m4.identity()),u_modelMatrix:r.m4.scaling(r.v3.create(n,i,0),r.m4.identity())};r.setTextureParameters(t,e,{minMag:t.NEAREST}),r.setUniforms(this._drawTextureShader,s),r.drawBufferInfo(t,this._renderer._bufferInfo,t.TRIANGLES)}_drawLineOnBuffer(e,t,n,r,i){this._renderer.enterDrawRegion(this._lineOnBufferDrawRegionId);const s=this.instancedRendering?1:6;this.attribute_index+10*s>c&&this._flushLines();const o=e.color4f||a.color4f;t*=this.renderQuality,n*=this.renderQuality;const l=(r*=this.renderQuality)-t,u=(i*=this.renderQuality)-n,h=Math.sqrt(l*l+u*u),d=(e.diameter||a.diameter)*this.renderQuality;for(let e=0;e<s;e++)this.attribute_data[this.attribute_index]=o[0]*o[3],this.attribute_index++,this.attribute_data[this.attribute_index]=o[1]*o[3],this.attribute_index++,this.attribute_data[this.attribute_index]=o[2]*o[3],this.attribute_index++,this.attribute_data[this.attribute_index]=o[3],this.attribute_index++,this.attribute_data[this.attribute_index]=d,this.attribute_index++,this.attribute_data[this.attribute_index]=h,this.attribute_index++,this.attribute_data[this.attribute_index]=t,this.attribute_index++,this.attribute_data[this.attribute_index]=-n,this.attribute_index++,this.attribute_data[this.attribute_index]=l,this.attribute_index++,this.attribute_data[this.attribute_index]=-u,this.attribute_index++}_flushLines(){const e=this._renderer.gl;e.bindBuffer(e.ARRAY_BUFFER,this.attribute_glbuffer),e.bufferSubData(e.ARRAY_BUFFER,0,new Float32Array(this.attribute_data.buffer,0,this.attribute_index)),e.enableVertexAttribArray(this.a_lineColor_loc),e.vertexAttribPointer(this.a_lineColor_loc,4,e.FLOAT,!1,40,0),e.enableVertexAttribArray(this.a_lineThicknessAndLength_loc),e.vertexAttribPointer(this.a_lineThicknessAndLength_loc,2,e.FLOAT,!1,40,16),e.enableVertexAttribArray(this.a_penPoints_loc),e.vertexAttribPointer(this.a_penPoints_loc,4,e.FLOAT,!1,40,24),this.instancedRendering?(this.glVertexAttribDivisor(this.a_lineColor_loc,1),this.glVertexAttribDivisor(this.a_lineThicknessAndLength_loc,1),this.glVertexAttribDivisor(this.a_penPoints_loc,1),this.glDrawArraysInstanced(e.TRIANGLE_STRIP,0,4,this.attribute_index/10),this.glVertexAttribDivisor(this.a_lineColor_loc,0),this.glVertexAttribDivisor(this.a_lineThicknessAndLength_loc,0),this.glVertexAttribDivisor(this.a_penPoints_loc,0)):e.drawArrays(e.TRIANGLES,0,this.attribute_index/10),this.attribute_index=0,this._silhouetteDirty=!0}onNativeSizeChanged(e){this._nativeSize=e.newSize,this._setCanvasSize([e.newSize[0]*this.renderQuality,e.newSize[1]*this.renderQuality]),this.emitWasAltered()}_setCanvasSize(e){const[t,n]=e;if(this._size&&this._size[0]===t&&this._size[1]===n)return;this._size=e,this._rotationCenter[0]=this._nativeSize[0]/2,this._rotationCenter[1]=this._nativeSize[1]/2;const i=this._renderer.gl,s=this._texture;this._texture=r.createTexture(i,{mag:i.NEAREST,min:i.NEAREST,wrap:i.CLAMP_TO_EDGE,width:t,height:n});const o=[{format:i.RGBA,attachment:this._texture}];this._framebuffer,this._framebuffer=r.createFramebufferInfo(i,o,t,n),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),s&&this._drawPenTexture(s),this._silhouettePixels=new Uint8Array(Math.floor(t*n*4)),this._silhouetteImageData=new ImageData(t,n),this._silhouetteDirty=!0}setRenderQuality(e){this.renderQuality!==e&&(this.renderQuality=e,this._setCanvasSize([Math.round(this._nativeSize[0]*e),Math.round(this._nativeSize[1]*e)]))}updateSilhouette(){if(this._silhouetteDirty){this._renderer.enterDrawRegion(this._usePenBufferDrawRegionId);const e=this._renderer.gl;e.readPixels(0,0,this._size[0],this._size[1],e.RGBA,e.UNSIGNED_BYTE,this._silhouettePixels),this._silhouetteImageData.data.set(this._silhouettePixels),this._silhouette.update(this._silhouetteImageData,!0),this._silhouetteDirty=!1}}}},function(e,t,n){const r=n(11),i=n(27),{loadSvgString:s,serializeSvgToString:o}=n(25),a=n(28);e.exports=class extends i{constructor(e,t){super(e,t),this._svgImage=document.createElement("img"),this._svgImageLoaded=!1,this._size=[0,0],this._canvas=document.createElement("canvas"),this._context=this._canvas.getContext("2d"),this._scaledMIPs=[],this._largestMIPScale=0,this._maxTextureScale=1}dispose(){this.resetMIPs(),super.dispose()}get size(){return[this._size[0],this._size[1]]}useNearest(e,t){return!(t.enabledEffects&(a.EFFECT_INFO.fisheye.mask|a.EFFECT_INFO.whirl.mask|a.EFFECT_INFO.pixelate.mask|a.EFFECT_INFO.mosaic.mask))&&(t._direction%90==0&&(Math.abs(e[0])>99&&Math.abs(e[0])<101&&Math.abs(e[1])>99&&Math.abs(e[1])<101))}createMIP(e){const t=this._largestMIPScale<e;t||this._silhouette.unlazy();const[n,i]=this._size;if(this._canvas.width=n*e,this._canvas.height=i*e,this._canvas.width<=0||this._canvas.height<=0||this._svgImage.naturalWidth<=0||this._svgImage.naturalHeight<=0)return super.getTexture();this._context.clearRect(0,0,this._canvas.width,this._canvas.height),this._context.setTransform(e,0,0,e,0,0),this._context.drawImage(this._svgImage,0,0);const s=this._canvas,o={auto:!1,wrap:this._renderer.gl.CLAMP_TO_EDGE,src:s,premultiplyAlpha:!0},a=r.createTexture(this._renderer.gl,o);return t&&(this._silhouette.update(s),this._largestMIPScale=e),a}updateSilhouette(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[100,100];this.getTexture(e),this._silhouette.unlazy()}getTexture(e){const t=e?Math.max(Math.abs(e[0]),Math.abs(e[1])):100,n=Math.min(t/100,this._maxTextureScale),r=Math.max(Math.ceil(Math.log2(n))+8,0),i=Math.pow(2,r-8);return this._svgImageLoaded&&!this._scaledMIPs[r]&&(this._scaledMIPs[r]=this.createMIP(i)),this._scaledMIPs[r]||super.getTexture()}resetMIPs(){this._scaledMIPs.forEach((e=>this._renderer.gl.deleteTexture(e))),this._scaledMIPs.length=0,this._largestMIPScale=0}setSVG(e,t){const n=s(e),r=o(n,this._renderer.customFonts);this._svgImageLoaded=!1;const{x:i,y:a,width:c,height:l}=n.viewBox.baseVal;this._size[0]=c,this._size[1]=l,this._svgImage.onload=()=>{if(0===c||0===l)return void super.setEmptyImageData();const e=Math.ceil(Math.max(c,l)),n=this._renderer.maxTextureDimension;let r=2;for(;e*r<=n;r*=2)this._maxTextureScale=r;this.resetMIPs(),void 0===t&&(t=this.calculateRotationCenter()),this._rotationCenter[0]=t[0]-i,this._rotationCenter[1]=t[1]-a,this._svgImageLoaded=!0,this.emitWasAltered()},this._svgImage.src="data:image/svg+xml;utf8,".concat(encodeURIComponent(r))}}},function(e,t,n){const r=n(11),i=n(88),s=n(27),o={maxLineWidth:170,minWidth:50,strokeWidth:4,padding:10,cornerRadius:16,tailHeight:12,font:"Helvetica",fontSize:14,fontHeightRatio:.9,lineHeight:16,bubbleFill:"white",bubbleStroke:"rgba(0, 0, 0, 0.15)",textFill:"#575E75"};e.exports=class extends s{constructor(e,t){super(e,t),this._canvas=document.createElement("canvas"),this._size=[0,0],this._renderedScale=0,this._lines=[],this._textAreaSize={width:0,height:0},this._bubbleType="",this._pointsLeft=!1,this._textDirty=!0,this._textureDirty=!0,this._style=o,this.measurementProvider=new i(this._canvas.getContext("2d")),this.textWrapper=t.createTextWrapper(this.measurementProvider),this._restyleCanvas()}dispose(){this._texture&&(this._renderer.gl.deleteTexture(this._texture),this._texture=null),this._canvas=null,super.dispose()}get size(){return this._textDirty&&this._reflowLines(),this._size}setTextBubble(e,t,n){this._text=t,this._bubbleType=e,this._pointsLeft=n,this._textDirty=!0,this._textureDirty=!0,this.emitWasAltered()}setStyle(e){this._style=Object.assign({},this._style,e),this.measurementProvider.clearCache(),this._restyleCanvas(),this._textDirty=!0,this._textureDirty=!0,this.emitWasAltered()}_restyleCanvas(){this._canvas.getContext("2d").font="".concat(this._style.fontSize,"px ").concat(this._style.font,", sans-serif")}_reflowLines(){this._lines=this.textWrapper.wrapText(this._style.maxLineWidth,this._text);let e=0;for(const t of this._lines)e=Math.max(e,this.measurementProvider.measureText(t));const t=Math.max(e,this._style.minWidth)+2*this._style.padding,n=this._style.lineHeight*this._lines.length+2*this._style.padding;this._textAreaSize.width=t,this._textAreaSize.height=n,this._size[0]=t+this._style.strokeWidth,this._size[1]=n+this._style.strokeWidth+this._style.tailHeight,this._textDirty=!1}_renderTextBubble(e){const t=this._canvas.getContext("2d");this._textDirty&&this._reflowLines();const n=this._textAreaSize.width,r=this._textAreaSize.height;this._canvas.width=Math.ceil(this._size[0]*e),this._canvas.height=Math.ceil(this._size[1]*e),this._restyleCanvas(),t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,this._canvas.width,this._canvas.height),t.scale(e,e),t.translate(.5*this._style.strokeWidth,.5*this._style.strokeWidth),t.save(),this._pointsLeft&&(t.scale(-1,1),t.translate(-n,0)),t.beginPath(),t.moveTo(this._style.cornerRadius,r),t.arcTo(0,r,0,r-this._style.cornerRadius,this._style.cornerRadius),t.arcTo(0,0,n,0,this._style.cornerRadius),t.arcTo(n,0,n,r,this._style.cornerRadius),t.arcTo(n,r,n-this._style.cornerRadius,r,this._style.cornerRadius),t.save(),t.translate(n-this._style.cornerRadius,r),"say"===this._bubbleType?(t.bezierCurveTo(0,4,4,8,4,10),t.arcTo(4,12,2,12,2),t.bezierCurveTo(-1,12,-11,8,-16,0),t.closePath()):(t.arc(-16,0,4,0,Math.PI),t.closePath(),t.moveTo(-7,7.25),t.arc(-9.25,7.25,2.25,0,2*Math.PI),t.moveTo(0,9.5),t.arc(-1.5,9.5,1.5,0,2*Math.PI)),t.restore(),t.fillStyle=this._style.bubbleFill,t.strokeStyle=this._style.bubbleStroke,t.lineWidth=this._style.strokeWidth,t.stroke(),t.fill(),t.restore(),t.fillStyle=this._style.textFill;const i=this._lines;for(let e=0;e<i.length;e++){const n=i[e];t.fillText(n,this._style.padding,this._style.padding+this._style.lineHeight*e+this._style.fontHeightRatio*this._style.fontSize)}this._renderedScale=e}updateSilhouette(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[100,100];this.getTexture(e)}getTexture(e){const t=e?Math.max(Math.abs(e[0]),Math.abs(e[1])):100,n=Math.min(10,t/100);if(this._textureDirty||this._renderedScale!==n){this._renderTextBubble(n),this._textureDirty=!1;const e=this._canvas.getContext("2d").getImageData(0,0,this._canvas.width,this._canvas.height),t=this._renderer.gl;if(null===this._texture){const e={auto:!1,wrap:t.CLAMP_TO_EDGE};this._texture=r.createTexture(t,e)}this._setTexture(e)}return this._texture}}},function(e,t,n){const r=n(279),i=n(284);e.exports=class{constructor(e){this._measurementProvider=e,this._cache={}}wrapText(e,t){t=t.normalize();const n="".concat(e,"-").concat(t);if(this._cache[n])return this._cache[n];const s=this._measurementProvider.beginMeasurementSession(),o=new r(t);let a,c=0,l=null;const u=[];for(;a=o.nextBreak();){const n=t.slice(c,a.position).replace(/\n+$/,"");let r=(l||"").concat(n),s=this._measurementProvider.measureText(r);if(s>e){if(this._measurementProvider.measureText(n)>e){let t,o=0;for(;o!==(t=i.nextBreak(n,o));){const i=n.substring(o,t);r=(l||"").concat(i),s=this._measurementProvider.measureText(r),null===l||s<=e?l=r:(u.push(l),l=i),o=t}}else null!==l&&u.push(l),l=n}else l=r;a.required&&(null!==l&&u.push(l),l=null),c=a.position}return l=l||"",(l.length>0||0===u.length)&&u.push(l),this._cache[n]=u,this._measurementProvider.endMeasurementSession(s),u}}},function(e,t,n){(function(){var t,r,i,s,o,a,c,l,u,h,d,p,f,m,g,b,y,E,T,v,A,w,S,k,O,I,N;T=n(89),w=n(281),I=n(282),I.BK,u=I.CR,I.LF,I.NL,o=I.CB,i=I.BA,I.SP,v=I.WJ,E=I.SP,s=I.BK,p=I.LF,m=I.NL,t=I.AI,r=I.AL,b=I.SA,y=I.SG,A=I.XX,c=I.CJ,I.ID,g=I.NS,I.characterClasses,N=n(283),h=N.DI_BRK,d=N.IN_BRK,a=N.CI_BRK,l=N.CP_BRK,N.PR_BRK,O=N.pairTable,k=w.toByteArray("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"),S=new T(k),f=function(){var e,n,f;function T(e){this.string=e,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null}return T.prototype.nextCodePoint=function(){var e,t;return e=this.string.charCodeAt(this.pos++),t=this.string.charCodeAt(this.pos),55296<=e&&e<=56319&&56320<=t&&t<=57343?(this.pos++,1024*(e-55296)+(t-56320)+65536):e},n=function(e){switch(e){case t:case b:case y:case A:return r;case c:return g;default:return e}},f=function(e){switch(e){case p:case m:return s;case o:return i;case E:return v;default:return e}},T.prototype.nextCharClass=function(e){return null==e&&(e=!1),n(S.get(this.nextCodePoint()))},e=function(e,t){this.position=e,this.required=null!=t&&t},T.prototype.nextBreak=function(){var t,r,c;for(null==this.curClass&&(this.curClass=f(this.nextCharClass()));this.pos<this.string.length;){if(this.lastPos=this.pos,r=this.nextClass,this.nextClass=this.nextCharClass(),this.curClass===s||this.curClass===u&&this.nextClass!==p)return this.curClass=f(n(this.nextClass)),new e(this.lastPos,!0);if(null==(t=function(){switch(this.nextClass){case E:return this.curClass;case s:case p:case m:return s;case u:return u;case o:return i}}.call(this))){switch(c=!1,O[this.curClass][this.nextClass]){case h:c=!0;break;case d:c=r===E;break;case a:if(!(c=r===E))continue;break;case l:if(r!==E)continue}if(this.curClass=this.nextClass,c)return new e(this.lastPos)}else if(this.curClass=t,this.nextClass===o)return new e(this.lastPos)}if(this.pos>=this.string.length)return this.lastPos<this.string.length?(this.lastPos=this.string.length,new e(this.string.length)):null},T}(),e.exports=f}).call(this)},function(e,t){function n(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function r(e,t){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new n,this.dtree=new n}var i=new n,s=new n,o=new Uint8Array(30),a=new Uint16Array(30),c=new Uint8Array(30),l=new Uint16Array(30),u=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),h=new n,d=new Uint8Array(320);function p(e,t,n,r){var i,s;for(i=0;i<n;++i)e[i]=0;for(i=0;i<30-n;++i)e[i+n]=i/n|0;for(s=r,i=0;i<30;++i)t[i]=s,s+=1<<e[i]}var f=new Uint16Array(16);function m(e,t,n,r){var i,s;for(i=0;i<16;++i)e.table[i]=0;for(i=0;i<r;++i)e.table[t[n+i]]++;for(e.table[0]=0,s=0,i=0;i<16;++i)f[i]=s,s+=e.table[i];for(i=0;i<r;++i)t[n+i]&&(e.trans[f[t[n+i]]++]=i)}function g(e){e.bitcount--||(e.tag=e.source[e.sourceIndex++],e.bitcount=7);var t=1&e.tag;return e.tag>>>=1,t}function b(e,t,n){if(!t)return n;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<<e.bitcount,e.bitcount+=8;var r=e.tag&65535>>>16-t;return e.tag>>>=t,e.bitcount-=t,r+n}function y(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<<e.bitcount,e.bitcount+=8;var n=0,r=0,i=0,s=e.tag;do{r=2*r+(1&s),s>>>=1,++i,n+=t.table[i],r-=t.table[i]}while(r>=0);return e.tag=s,e.bitcount-=i,t.trans[n+r]}function E(e,t,n){var r,i,s,o,a,c;for(r=b(e,5,257),i=b(e,5,1),s=b(e,4,4),o=0;o<19;++o)d[o]=0;for(o=0;o<s;++o){var l=b(e,3,0);d[u[o]]=l}for(m(h,d,0,19),a=0;a<r+i;){var p=y(e,h);switch(p){case 16:var f=d[a-1];for(c=b(e,2,3);c;--c)d[a++]=f;break;case 17:for(c=b(e,3,3);c;--c)d[a++]=0;break;case 18:for(c=b(e,7,11);c;--c)d[a++]=0;break;default:d[a++]=p}}m(t,d,0,r),m(n,d,r,i)}function T(e,t,n){for(;;){var r,i,s,u,h=y(e,t);if(256===h)return 0;if(h<256)e.dest[e.destLen++]=h;else for(r=b(e,o[h-=257],a[h]),i=y(e,n),u=s=e.destLen-b(e,c[i],l[i]);u<s+r;++u)e.dest[e.destLen++]=e.dest[u]}}function v(e){for(var t,n;e.bitcount>8;)e.sourceIndex--,e.bitcount-=8;if((t=256*(t=e.source[e.sourceIndex+1])+e.source[e.sourceIndex])!==(65535&~(256*e.source[e.sourceIndex+3]+e.source[e.sourceIndex+2])))return-3;for(e.sourceIndex+=4,n=t;n;--n)e.dest[e.destLen++]=e.source[e.sourceIndex++];return e.bitcount=0,0}!function(e,t){var n;for(n=0;n<7;++n)e.table[n]=0;for(e.table[7]=24,e.table[8]=152,e.table[9]=112,n=0;n<24;++n)e.trans[n]=256+n;for(n=0;n<144;++n)e.trans[24+n]=n;for(n=0;n<8;++n)e.trans[168+n]=280+n;for(n=0;n<112;++n)e.trans[176+n]=144+n;for(n=0;n<5;++n)t.table[n]=0;for(t.table[5]=32,n=0;n<32;++n)t.trans[n]=n}(i,s),p(o,a,4,3),p(c,l,2,1),o[28]=0,a[28]=258,e.exports=function(e,t){var n,o,a=new r(e,t);do{switch(n=g(a),b(a,2,0)){case 0:o=v(a);break;case 1:o=T(a,i,s);break;case 2:E(a,a.ltree,a.dtree),o=T(a,a.ltree,a.dtree);break;default:o=-3}if(0!==o)throw new Error("Data error")}while(!n);return a.destLen<a.dest.length?"function"==typeof a.dest.slice?a.dest.slice(0,a.destLen):a.dest.subarray(0,a.destLen):a.dest}},function(e,t,n){!function(e){"use strict";var t="undefined"!=typeof Uint8Array?Uint8Array:Array,n="+".charCodeAt(0),r="/".charCodeAt(0),i="0".charCodeAt(0),s="a".charCodeAt(0),o="A".charCodeAt(0),a="-".charCodeAt(0),c="_".charCodeAt(0);function l(e){var t=e.charCodeAt(0);return t===n||t===a?62:t===r||t===c?63:t<i?-1:t<i+10?t-i+26+26:t<o+26?t-o:t<s+26?t-s+26:void 0}e.toByteArray=function(e){var n,r,i,s,o,a;if(e.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var c=e.length;o="="===e.charAt(c-2)?2:"="===e.charAt(c-1)?1:0,a=new t(3*e.length/4-o),i=o>0?e.length-4:e.length;var u=0;function h(e){a[u++]=e}for(n=0,r=0;n<i;n+=4,r+=3)h((16711680&(s=l(e.charAt(n))<<18|l(e.charAt(n+1))<<12|l(e.charAt(n+2))<<6|l(e.charAt(n+3))))>>16),h((65280&s)>>8),h(255&s);return 2===o?h(255&(s=l(e.charAt(n))<<2|l(e.charAt(n+1))>>4)):1===o&&(h((s=l(e.charAt(n))<<10|l(e.charAt(n+1))<<4|l(e.charAt(n+2))>>2)>>8&255),h(255&s)),a},e.fromByteArray=function(e){var t,n,r,i,s=e.length%3,o="";function a(e){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)}for(t=0,r=e.length-s;t<r;t+=3)n=(e[t]<<16)+(e[t+1]<<8)+e[t+2],o+=a((i=n)>>18&63)+a(i>>12&63)+a(i>>6&63)+a(63&i);switch(s){case 1:o+=a((n=e[e.length-1])>>2),o+=a(n<<4&63),o+="==";break;case 2:o+=a((n=(e[e.length-2]<<8)+e[e.length-1])>>10),o+=a(n>>4&63),o+=a(n<<2&63),o+="="}return o}}(t)},function(e,t){(function(){t.OP=0,t.CL=1,t.CP=2,t.QU=3,t.GL=4,t.NS=5,t.EX=6,t.SY=7,t.IS=8,t.PR=9,t.PO=10,t.NU=11,t.AL=12,t.HL=13,t.ID=14,t.IN=15,t.HY=16,t.BA=17,t.BB=18,t.B2=19,t.ZW=20,t.CM=21,t.WJ=22,t.H2=23,t.H3=24,t.JL=25,t.JV=26,t.JT=27,t.RI=28,t.AI=29,t.BK=30,t.CB=31,t.CJ=32,t.CR=33,t.LF=34,t.NL=35,t.SA=36,t.SG=37,t.SP=38,t.XX=39}).call(this)},function(e,t){(function(){t.DI_BRK=0,t.IN_BRK=1,t.CI_BRK=2,t.CP_BRK=3,t.PR_BRK=4,t.pairTable=[[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4],[0,4,4,1,1,4,4,4,4,1,1,0,0,0,0,0,1,1,0,0,4,2,4,0,0,0,0,0,0],[0,4,4,1,1,4,4,4,4,1,1,1,1,1,0,0,1,1,0,0,4,2,4,0,0,0,0,0,0],[4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,0,1,1,0,0,4,2,4,0,0,0,0,0,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,0,1,1,0,0,4,2,4,0,0,0,0,0,0],[0,4,4,1,1,1,4,4,4,0,0,1,0,0,0,0,1,1,0,0,4,2,4,0,0,0,0,0,0],[0,4,4,1,1,1,4,4,4,0,0,1,1,1,0,0,1,1,0,0,4,2,4,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,1,0,1,1,0,0,4,2,4,1,1,1,1,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,0,1,1,0,0,4,2,4,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0],[0,4,4,1,0,1,4,4,4,0,0,1,0,0,0,0,1,1,0,0,4,2,4,0,0,0,0,0,0],[0,4,4,1,0,1,4,4,4,0,0,0,0,0,0,0,1,1,0,0,4,2,4,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,0,1,1,0,4,4,2,4,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,1,1,1,1,0,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,0,1,1,0,0,4,2,4,0,0,0,0,0,1]]}).call(this)},function(e,t,n){(function(e){(function(){var r,i,s,o,a,c,l,u,h,d,p,f,m,g,b,y;y=n(285),r=y.CR,a=y.LF,i=y.Control,s=y.Extend,u=y.Regional_Indicator,h=y.SpacingMark,o=y.L,f=y.V,d=y.T,c=y.LV,l=y.LVT,p=n(89),m=new p(e("AA4QAAAAAAAAAHbgAQgG9/ntmkuIXjUUxzN+r3k4bUWQVotSHVCsoov6qIoiToWKFYvMuLHVtlaoLqQilLrwtakuxFYoLmQQYWalRYpUKYJV0am4mMUooojgSEG7EC2CdiHq/3rzMcc0yT333jyu0xz4kdwkN+ckOXncfN9QS4jzwCqwBqwHt5O0uuFGsBlsAhOM8lvATkv+LrAb7AXPgRfBAfAqeJ2UmwZvgcPgKDgGjoNZMAe+AN+C5W0hLgAXtvN3KZci7UpwFVgHbgHjYAPYJJ8nwCTYCnaQ58dI+cfBHvn8DFgL9kl9LyP8LLOflJ8CM+Q5K39IPo/28vfeyd6X8fcR/5jYP4v4nHyeR/iNjC8gPAl+BU+T8qcRFx0hBsGKzn/74LreIrdKxsGkRO0zE48wy7lmZSfnYkmWdhnCtTK+oHnnWqUPbuyY679N5t2J8B4ZnyTltyK+Dezq5P62G+Femf+sDPdp6n8JaQcterN5NWXJ5/Ij+FnGR0n6BvCbZk4kwjGjjO8rGh9woedNoudtBz6VSCQSiUQikUgkEomET97t5Hdp/ecvGfcXH+CdWfLNu6onxGowh7SvZPp3CE+A63v5feBJxMcQPyXz/0D4N2h18+cRhEcQnt+1674I+Q+inofANrAd7AAPg529lJfyUl7KS3mu8+4G94H7e/H3rPWRid3+RGIpc0nBGbAuE63F39VV1mjS6Pn4VCv++jN9bs4JMM5gbFSIdaNnpj+ppE3j+QQYWybEA8vytP0IPwF/gpXLsQ+AhWH0xYgQPwwJMTjA46YRXrnVw4vxzYjvke8dzvQx60gkEonE0uQA9oU3wB04J7yH/fDDVv4/j+x/QqfJXv0RuEueJe7t5vkTCLeQ88V2zVkjq+tRpD/Rzf+39hTC55lnkhdQbr+l7EHkTZH8GcTnSf4hkpf9/+uI57NQFT6HTSsC6hMYg3no/FrTF983sH84FJ3xNlroteOfQWNTp+8vL/CZeeX5mgb62A2w6WaDXa/9D/6DeFTafqwBfXtFT4irwacObMnm50/dPPwF4e/grwa0kUsTxiMEnQbcY9ZlsDXwL4iyOIfEB5jvcEgST1L/u/PjkP7vctzaZzkuJZSepknsMaw67jQ0xZe61F2XyvZ5k/ecJq4voXzQ1oZWQRm1Dl1ZH0LtiiVN8pUmy9nQD77bppuTLqWl1O9Ch+9vv9Dfm12COrZqOrXRJv13TX6i00XHyISLNamp3/e6eWWab9xyoYSr1+XeUoWug7ZWFTonhLDPO9M8pOX7cVHwbhn7Yu1VantC61ZtMPWhaiMtX0YXp1wsf7X5p65sW/OslnXpV3XrN803WneXlC0zvj5EZ5sP/6yyXsQQ01rRVdJV/+XWXUZ/rPmp7gf9dNuZoKjOmOOZibqv6fY43fi6bp9pfoXyL1tZ0x5Fy6u+UcVOrm1FZxdOPS7OLi7sFaKaXt+2c/X71qELqbhcD4v8wgRnb6+rr459rqgr3H5T21tmza0r3LOnj/6oWkcmnP6pa7OPvve9dvmqm+PD1HdteyP3e7xsX/mcK7Y26tJV0bXfVI/vOa9bZ3wIbS9nraehKHiH248cn/KxtpX1bV3bQoptnGx+S9ND2xujn6jo+ku3Jvic16oO3djo7CsrnHWdM1dd9UPR/OFQ9rtKl2ZaQ4vaWWe9KGOzSV8dcenPZdvhUny1QZdW1ce4fuhSdGuYb/F1h8IV3/PPlR0+pOya6dofdPuDbt8oug9uis+YvguqjiHnnVDz1KbfR30637f1Y5U+1o2VrVxZMX37qvfcof1XJzFtCKG76plJCJ7fhTq/FJ0hqI/FFtMaGWOv69vjUsrePZTZQ331h8lm07dj1fpCn2Fi3EX09atn2L6Ynsv4AFfUernj4HucbGc8dU0w+aDL+4M6YmtLX0z3I7Ha4Fpn1bufKucck2/YfIhrP3dfci0h5puv9TfUPs21g8bbmvzQZ4tQfhNSiuZ4HVzp4rShTHt9icl2l31YVTqB6Eus81pd/U2xuwyxpYrNPsik1wCoDEZmyDMjCmXFZVtV8d12DqoMizP7zCeh9anyDw==","base64")),g=function(e,t){var n,r,i;return t=t||0,55296<=(n=e.charCodeAt(t))&&n<=56319?(r=n,56320<=(i=e.charCodeAt(t+1))&&i<=57343?1024*(r-55296)+(i-56320)+65536:r):56320<=n&&n<=57343?(i=n,55296<=(r=e.charCodeAt(t-1))&&r<=56319?1024*(r-55296)+(i-56320)+65536:i):n},b=function(e,t){return(e!==r||t!==a)&&(e===i||e===r||e===a||(t===i||t===r||t===a||(e!==o||t!==o&&t!==f&&t!==c&&t!==l)&&((e!==c&&e!==f||t!==f&&t!==d)&&((e!==l&&e!==d||t!==d)&&((e!==u||t!==u)&&(t!==s&&t!==h))))))},t.nextBreak=function(e,t){var n,r,i,s,o,a,c;if(null==t&&(t=0),t<0)return 0;if(t>=e.length-1)return e.length;for(i=m.get(g(e,t)),n=s=t+1,o=e.length;s<o;n=s+=1)if(!(55296<=(a=e.charCodeAt(n-1))&&a<=56319&&56320<=(c=e.charCodeAt(n))&&c<=57343)){if(r=m.get(g(e,n)),b(i,r))return n;i=r}return e.length},t.previousBreak=function(e,t){var n,r,i,s,o,a;if(null==t&&(t=e.length),t>e.length)return e.length;if(t<=1)return 0;for(t--,r=m.get(g(e,t)),n=s=t-1;s>=0;n=s+=-1)if(!(55296<=(o=e.charCodeAt(n))&&o<=56319&&56320<=(a=e.charCodeAt(n+1))&&a<=57343)){if(i=m.get(g(e,n)),b(i,r))return n+1;r=i}return 0},t.break=function(e){var n,r,i;for(i=[],r=0;(n=t.nextBreak(e,r))<e.length;)i.push(e.slice(r,n)),r=n;return r<e.length&&i.push(e.slice(r)),i},t.countBreaks=function(e){var n,r,i;for(r=0,i=0;(n=t.nextBreak(e,i))<e.length;)i=n,r++;return i<e.length&&r++,r}}).call(this)}).call(this,n(18).Buffer)},function(e){e.exports=JSON.parse('{"Other":0,"CR":1,"LF":2,"Control":3,"Extend":4,"Regional_Indicator":5,"SpacingMark":6,"L":7,"V":8,"T":9,"LV":10,"LVT":11}')},function(e,t){e.exports=".scratch-render-overlays {\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n overflow: hidden;\n}\n.scratch-render-overlays > * {\n position: absolute;\n top: 0;\n left: 0;\n}\n"},function(e,t,n){const r=n(288),i=n(36),s=n(290),o=n(291),a=n(293),c=n(294),l=n(295),u=n(296),h=n(297),d=n(92),p=n(298);e.exports=class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(()=>{const e=window.AudioContext||window.webkitAudioContext;if(!e)throw new Error("Browser does not support AudioContext");return new e})();this.audioContext=e,this.inputNode=this.audioContext.createGain(),this.inputNode.connect(this.audioContext.destination),this.audioBuffers={},this.loudness=null,this.effects=[u,h,d],r(this.audioContext)}get currentTime(){return this.audioContext.currentTime}get EFFECT_NAMES(){return{pitch:"pitch",pan:"pan"}}get DECAY_DURATION(){return.025}get DECAY_WAIT(){return.05}getInputNode(){return this.inputNode}_decodeSound(e){const t=e.data.buffer.slice(0),n=s();var r,a;return(r=this.audioContext,a=t,1===r.decodeAudioData.length?r.decodeAudioData(a):new Promise(((e,t)=>{r.decodeAudioData(a,(t=>e(t)),(e=>t(e)))}))).catch((()=>{if(0===e.data.length)return this._emptySound();const t=e.data.buffer.slice(0);return new o(this.audioContext).decode(t).catch((()=>this._emptySound()))})).then((e=>[n,e]),(e=>{i.warn("audio data could not be decoded",e)}))}_emptySound(){return this.audioContext.createBuffer(1,1,this.audioContext.sampleRate)}decodeSound(e){return this._decodeSound(e).then((e=>{let[t,n]=e;return this.audioBuffers[t]=n,t}))}decodeSoundPlayer(e){return this._decodeSound(e).then((e=>{let[t,n]=e;return new c(this,{id:t,buffer:n})}))}getLoudness(){return this.loudness||(this.loudness=new a(this.audioContext)),this.loudness.getLoudness()}createEffectChain(){const e=new l(this,this.effects);return e.connect(this),e}createBank(){return new p(this,this.createEffectChain())}}},function(e,t,n){const r=n(289);e.exports=function(e){if("undefined"!=typeof document)return r(e)}},function(e,t){const n=["mousedown","mouseup","keydown","keyup","touchstart","touchend"];e.exports=e=>{if("running"===e.state)return;const t=()=>{"running"===e.state&&(()=>{e.removeEventListener("statechange",t);for(const e of n)document.body.removeEventListener(e,r)})()};e.addEventListener("statechange",t);const r=()=>{e.resume()};for(const e of n)document.body.addEventListener(e,r)}},function(e,t){const n="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";e.exports=function(){const e=n.length,t=[];for(let r=0;r<20;r++)t[r]=n.charAt(Math.random()*e);return t.join("")}},function(e,t,n){const r=n(292),i=n(36),s=[7,8,9,10,11,12,13,14,16,17,19,21,23,25,28,31,34,37,41,45,50,55,60,66,73,80,88,97,107,118,130,143,157,173,190,209,230,253,279,307,337,371,408,449,494,544,598,658,724,796,876,963,1060,1166,1282,1411,1552,1707,1878,2066,2272,2499,2749,3024,3327,3660,4026,4428,4871,5358,5894,6484,7132,7845,8630,9493,10442,11487,12635,13899,15289,16818,18500,20350,22385,24623,27086,29794,32767],o=[-1,-1,-1,-1,2,4,6,8,-1,-1,-1,-1,2,4,6,8];let a=null;e.exports=class{constructor(e){this.audioContext=e}static get STEP_TABLE(){return s}static get INDEX_TABLE(){return o}decode(e){return new Promise(((t,n)=>{const s=new r(e);"RIFF"!==s.readUint8String(4)&&(i.warn("incorrect adpcm wav header"),n(new Error("incorrect adpcm wav header")));const o=s.readInt32();o+8!==e.byteLength&&i.warn("adpcm wav length in header: ".concat(o," is incorrect"));"WAVE"!==s.readUint8String(4)&&(i.warn("incorrect adpcm wav header"),n(new Error("incorrect adpcm wav header")));const a=this.extractChunk("fmt ",s);this.encoding=a.readUint16(),this.channels=a.readUint16(),this.samplesPerSecond=a.readUint32(),this.bytesPerSecond=a.readUint32(),this.blockAlignment=a.readUint16(),this.bitsPerSample=a.readUint16(),a.position+=2,this.samplesPerBlock=a.readUint16(),this.adpcmBlockSize=(this.samplesPerBlock-1)/2+4;const c=this.extractChunk("data",s),l=this.numberOfSamples(c,this.adpcmBlockSize),u=this.audioContext.createBuffer(1,l,this.samplesPerSecond);this.imaDecompress(c,this.adpcmBlockSize,u.getChannelData(0)),t(u)}))}extractChunk(e,t){for(t.position=12;t.position<t.getLength()-8;){const n=t.readUint8String(4),r=t.readInt32();if(n===e){return t.extract(r)}t.position+=r}}numberOfSamples(e,t){if(!e)return 0;e.position=0;const n=e.getBytesAvailable();return(n/t|0)*(2*(t-4))+1+2*Math.max(n%t-4,0)+Math.min(n%t,1)}imaDecompress(e,t,n){let r,i,c,l=0,u=-1;if(!e)return;e.position=0;const h=n.length,d=2*(t-4),p=function(){if(null===a){const e=s.length,t=o.length;a=new Array(e*t).fill(0);let n=0;for(let r=0;r<e;r++)for(let e=0;e<t;e++){const t=s[r];let i=0;4&e&&(i+=t),2&e&&(i+=t>>1),1&e&&(i+=t>>2),i+=t>>3,a[n++]=8&e?-i:i}}return a}();let f=0;for(;f<h;){r=e.readInt16(),l=e.readUint8(),e.position++,l>88&&(l=88),n[f++]=r/32768;const t=Math.min(d,h-f),s=f;for(;f-s<t;)u=e.readUint8(),i=15&u,c=p[16*l+i],l+=o[i],l>88?l=88:l<0&&(l=0),r+=c,r>32767?r=32767:r<-32768&&(r=-32768),n[f++]=r/32768,i=u>>4&15,c=p[16*l+i],l+=o[i],l>88?l=88:l<0&&(l=0),r+=c,r>32767?r=32767:r<-32768&&(r=-32768),n[f++]=r/32768}}}},function(e,t){class n{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.byteLength,{_uint8View:r=new Uint8Array(e)}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};this.arrayBuffer=e,this.start=t,this.end=n,this._uint8View=r,this._position=t}extract(e){return new n(this.arrayBuffer,this._position,this._position+e,this)}getLength(){return this.end-this.start}getBytesAvailable(){return this.end-this._position}get position(){return this._position-this.start}set position(e){this._position=e+this.start}readUint8(){const e=this._uint8View[this._position];return this._position+=1,e}readUint8String(e){const t=this._uint8View;let n="";const r=this._position+e;for(let e=this._position;e<r;e++)n+=String.fromCharCode(t[e]);return this._position+=e,n}readInt16(){const e=new Int16Array(this.arrayBuffer,this._position,1)[0];return this._position+=2,e}readUint16(){const e=new Uint16Array(this.arrayBuffer,this._position,1)[0];return this._position+=2,e}readInt32(){let e;return e=this._position%4==0?new Int32Array(this.arrayBuffer,this._position,1)[0]:new Int32Array(this.arrayBuffer.slice(this._position,this._position+4))[0],this._position+=4,e}readUint32(){const e=new Uint32Array(this.arrayBuffer,this._position,1)[0];return this._position+=4,e}}e.exports=n},function(e,t,n){const r=n(36);e.exports=class{constructor(e){this.audioContext=e,this.connectingToMic=!1,this.mic=null}getLoudness(){if(this.mic||this.connectingToMic||(this.connectingToMic=!0,navigator.mediaDevices.getUserMedia({audio:!0}).then((e=>{this.audioStream=e,this.mic=this.audioContext.createMediaStreamSource(e),this.analyser=this.audioContext.createAnalyser(),this.mic.connect(this.analyser),this.micDataArray=new Float32Array(this.analyser.fftSize)})).catch((e=>{r.warn(e)}))),this.mic&&this.audioStream.active){this.analyser.getFloatTimeDomainData(this.micDataArray);let e=0;for(let t=0;t<this.micDataArray.length;t++)e+=Math.pow(this.micDataArray[t],2);let t=Math.sqrt(e/this.micDataArray.length);return this._lastValue&&(t=Math.max(t,.6*this._lastValue)),this._lastValue=t,t*=1.63,t=Math.sqrt(t),t=Math.round(100*t),t=Math.min(t,100),t}return-1}}},function(e,t,n){const{EventEmitter:r}=n(19),i=n(92),s="ended";class o extends r{constructor(e,t){let{id:n,buffer:r}=t;super(),this.id=n,this.audioEngine=e,this.buffer=r,this.outputNode=null,this.volumeEffect=null,this.target=null,this.initialized=!1,this.isPlaying=!1,this.startingUntil=0,this.playbackRate=1,this.handleEvent=this.handleEvent.bind(this)}get isStarting(){return this.isPlaying&&this.startingUntil>this.audioEngine.currentTime}handleEvent(e){e.type===s&&this.onEnded()}onEnded(){this.emit("stop"),this.isPlaying=!1}_createSource(){null!==this.outputNode&&(this.outputNode.removeEventListener(s,this.handleEvent),this.outputNode.disconnect()),this.outputNode=this.audioEngine.audioContext.createBufferSource(),this.outputNode.playbackRate.value=this.playbackRate,this.outputNode.buffer=this.buffer,this.outputNode.addEventListener(s,this.handleEvent),null!==this.target&&this.connect(this.target)}initialize(){this.initialized=!0,this._createSource()}connect(e){return e===this.volumeEffect?(this.outputNode.disconnect(),void this.outputNode.connect(this.volumeEffect.getInputNode())):(this.target=e,this.initialized?(null===this.volumeEffect?(this.outputNode.disconnect(),this.outputNode.connect(e.getInputNode())):this.volumeEffect.connect(e),this):void 0)}dispose(){this.initialized&&(this.stopImmediately(),null!==this.volumeEffect&&(this.volumeEffect.dispose(),this.volumeEffect=null),this.outputNode.disconnect(),this.outputNode=null,this.target=null,this.initialized=!1)}take(){this.outputNode&&this.outputNode.removeEventListener(s,this.handleEvent);const e=new o(this.audioEngine,this);return e.playbackRate=this.playbackRate,this.isPlaying&&(e.startingUntil=this.startingUntil,e.isPlaying=this.isPlaying,e.initialized=this.initialized,e.outputNode=this.outputNode,e.outputNode.addEventListener(s,e.handleEvent),e.volumeEffect=this.volumeEffect,e.volumeEffect&&(e.volumeEffect.audioPlayer=e),null!==this.target&&e.connect(this.target),this.emit("stop"),e.emit("play")),this.outputNode=null,this.volumeEffect=null,this.initialized=!1,this.startingUntil=0,this.isPlaying=!1,e}play(){if(this.isStarting)return this.emit("stop"),void this.emit("play");this.isPlaying&&this.stop(),this.initialized?this._createSource():this.initialize(),this.outputNode.start(),this.isPlaying=!0;const{currentTime:e,DECAY_DURATION:t}=this.audioEngine;this.startingUntil=e+t,this.emit("play")}stop(){if(!this.isPlaying)return;const e=this.take();e.volumeEffect=new i(e.audioEngine,e,null),e.volumeEffect.connect(e.target),e.finished().then((()=>e.dispose())),e.volumeEffect.set(0);const{currentTime:t,DECAY_DURATION:n}=this.audioEngine;e.outputNode.stop(t+n)}stopImmediately(){this.isPlaying&&(this.outputNode.stop(),this.isPlaying=!1,this.startingUntil=0,this.emit("stop"))}finished(){return new Promise((e=>{this.once("stop",e)}))}setPlaybackRate(e){this.playbackRate=e,this.initialized&&(this.outputNode.playbackRate.value=e)}}e.exports=o},function(e,t){class n{constructor(e,t){this.audioEngine=e,this.inputNode=this.audioEngine.audioContext.createGain(),this.effects=t;let n=null;this._effects=t.reverse().map((t=>{const r=new t(e,this,n);return this[r.name]=r,n=r,r})).reverse(),this.firstEffect=this._effects[0],this.lastEffect=this._effects[this._effects.length-1],this._soundPlayers=new Set}clone(){const e=new n(this.audioEngine,this.effects);return this.target&&e.connect(this.target),e}addSoundPlayer(e){this._soundPlayers.has(e)||(this._soundPlayers.add(e),this.update())}removeSoundPlayer(e){this._soundPlayers.remove(e)}getInputNode(){return this.inputNode}connect(e){const{firstEffect:t,lastEffect:n}=this;if(e===n)return this.inputNode.disconnect(),void this.inputNode.connect(n.getInputNode());e!==t&&(this.target=e,t.connect(e))}getSoundPlayers(){return[...this._soundPlayers]}setEffectsFromTarget(e){this._effects.forEach((t=>{"soundEffects"in e&&t.name in e.soundEffects?t.set(e.soundEffects[t.name]):t.name in e&&t.set(e[t.name])}))}set(e,t){e in this&&this[e].set(t)}update(){this._effects.forEach((e=>e.update()))}clear(){this._effects.forEach((e=>e.clear()))}dispose(){this._soundPlayers=null,this._effects.forEach((e=>e.dispose())),this._effects=null}}e.exports=n},function(e,t,n){const r=n(52);e.exports=class extends r{constructor(e,t,n){super(e,t,n),this.leftGain=null,this.rightGain=null,this.channelMerger=null}get name(){return"pan"}initialize(){const e=this.audioEngine.audioContext;this.inputNode=e.createGain(),this.leftGain=e.createGain(),this.rightGain=e.createGain(),this.channelMerger=e.createChannelMerger(2),this.outputNode=this.channelMerger,this.inputNode.connect(this.leftGain),this.inputNode.connect(this.rightGain),this.leftGain.connect(this.channelMerger,0,0),this.rightGain.connect(this.channelMerger,0,1),this.initialized=!0}_set(e){this.value=e;const t=(e+100)/200,n=Math.cos(t*Math.PI/2),r=Math.sin(t*Math.PI/2),{currentTime:i,DECAY_WAIT:s,DECAY_DURATION:o}=this.audioEngine;this.leftGain.gain.setTargetAtTime(n,i+s,o),this.rightGain.gain.setTargetAtTime(r,i+s,o)}dispose(){this.initialized&&(this.inputNode.disconnect(),this.leftGain.disconnect(),this.rightGain.disconnect(),this.channelMerger.disconnect(),this.inputNode=null,this.leftGain=null,this.rightGain=null,this.channelMerger=null,this.outputNode=null,this.target=null,this.initialized=!1)}}},function(e,t,n){const r=n(52);e.exports=class extends r{constructor(e,t,n){super(e,t,n),this.ratio=1}get name(){return"pitch"}get _isPatch(){return!1}getInputNode(){return this.target.getInputNode()}initialize(){this.initialized=!0}_set(e){this.value=e,this.ratio=this.getRatio(this.value),this.updatePlayers(this.audioPlayer.getSoundPlayers())}update(){this.updatePlayers(this.audioPlayer.getSoundPlayers())}getRatio(e){const t=e/10;return Math.pow(2,t/12)}updatePlayer(e){e.setPlaybackRate(this.ratio)}updatePlayers(e){if(e)for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&this.updatePlayer(e[t])}}},function(e,t,n){const r=n(36);e.exports=class{constructor(e,t){this.audioEngine=e,this.soundPlayers={},this.playerTargets=new Map,this.soundEffects=new Map,this.effectChainPrime=t}addSoundPlayer(e){this.soundPlayers[e.id]=e}getSoundPlayer(e){return this.soundPlayers[e]||r.error("SoundBank.getSoundPlayer(".concat(e,"): called missing sound in bank")),this.soundPlayers[e]}getSoundEffects(e){return this.soundEffects.has(e)||this.soundEffects.set(e,this.effectChainPrime.clone()),this.soundEffects.get(e)}playSound(e,t){const n=this.getSoundEffects(t),r=this.getSoundPlayer(t);return this.playerTargets.get(t)!==e&&r.stop(),this.playerTargets.set(t,e),n.addSoundPlayer(r),n.setEffectsFromTarget(e),r.connect(n),r.play(),r.finished()}setEffects(e){this.playerTargets.forEach(((t,n)=>{t===e&&this.getSoundEffects(n).setEffectsFromTarget(e)}))}stop(e,t){this.playerTargets.get(t)===e&&this.soundPlayers[t].stop()}stopAllSounds(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"*";this.playerTargets.forEach(((t,n)=>{"*"!==e&&t!==e||this.getSoundPlayer(n).stop()}))}dispose(){this.playerTargets.clear(),this.soundEffects.forEach((e=>e.dispose())),this.soundEffects.clear();for(const e in this.soundPlayers)Object.prototype.hasOwnProperty.call(this.soundPlayers,e)&&this.soundPlayers[e].dispose();this.soundPlayers={}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"SB1File",(function(){return st})),n.d(t,"AssertionError",(function(){return r})),n.d(t,"ValidationError",(function(){return i}));class r extends Error{}class i extends r{}const s=function(e,t){if(!e)throw new r(t)};s.validate=function(e,t){if(!e)throw new i(t)};class o{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.buffer=e,this.position=t,this.uint8a=new Uint8Array(this.buffer)}read(e){const t=e.read(this.uint8a,this.position);return 0===e.size?this.position+=e.sizeOf(this.uint8a,this.position):this.position+=e.size,t}readStruct(e){const t=new e(this.uint8a,this.position);return this.position+=e.size,t}resize(e){if(this.buffer.byteLength<e){const t=this.uint8a,n=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2)));this.buffer=new ArrayBuffer(n),this.uint8a=new Uint8Array(this.buffer),this.uint8a.set(t)}}write(e,t){return 0===e.size?this.resize(this.position+e.writeSizeOf(t)):this.resize(this.position+e.size),e.write(this.uint8a,this.position,t),0===e.size?this.position+=e.writeSizeOf(this.uint8a,this.position):this.position+=e.size,t}writeStruct(e,t){this.resize(this.position+e.size);const n=Object.assign(new e(this.uint8a,this.position),t);return this.position+=e.size,n}writeBytes(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length;s(e instanceof Uint8Array,"writeBytes must be passed an Uint8Array"),this.resize(this.position+(n-t));for(let r=t;r<n;r++)this.uint8a[this.position+r-t]=e[r];return this.position+=n-t,e}}class a{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1/0;this.iter=e,this.maxPosition=t}[Symbol.iterator](){return this}next(){return this.iter.stream.position>=this.maxPosition?{value:null,done:!0}:this.iter.next()}}const c=()=>{throw new Error("Not implemented")},l=(()=>{const e=new Uint16Array(1),t=new Uint8Array(e.buffer);return e[0]=43707,187===t[0]})();class u{constructor(e){let{size:t=0,sizeOf:n=()=>t,writeSizeOf:r=c,toBytes:i=new Uint8Array(1),read:s,write:o=c}=e;this.size=t,this.sizeOf=n,this.writeSizeOf=r,this.toBytes=i,this.bytes=new Uint8Array(i.buffer),this.read=s,this.write=o}asPropertyObject(e){const t=this;return{get(){return t.read(this.uint8a,e+this.offset)},set(n){return t.write(this.uint8a,e+this.offset,n)},enumerable:!0}}read(){return null}}const h=new u({size:1,read:(e,t)=>e[t],write:(e,t,n)=>(e[t]=n,n)}),d={size:2,read(e,t){return this.bytes[1]=e[t+0],this.bytes[0]=e[t+1],this.toBytes[0]},write(e,t,n){return this.toBytes[0]=n,e[t+0]=this.bytes[1],e[t+1]=this.bytes[0],n}},p={size:2,read(e,t){return this.bytes[0]=e[t+0],this.bytes[1]=e[t+1],this.toBytes[0]},write(e,t,n){return this.toBytes[0]=n,e[t+0]=this.bytes[0],e[t+1]=this.bytes[1],n}};let f;f=l?d:p;new u(Object.assign({},f,{toBytes:new Uint16Array(1)}));const m=new u(Object.assign({},f,{toBytes:new Int16Array(1)})),g={size:4,read(e,t){return this.bytes[3]=e[t+0],this.bytes[2]=e[t+1],this.bytes[1]=e[t+2],this.bytes[0]=e[t+3],this.toBytes[0]},write(e,t,n){return this.toBytes[0]=n,e[t+0]=this.bytes[3],e[t+1]=this.bytes[2],e[t+2]=this.bytes[1],e[t+3]=this.bytes[0],n}},b={size:4,read(e,t){return this.bytes[0]=e[t+0],this.bytes[1]=e[t+1],this.bytes[2]=e[t+2],this.bytes[3]=e[t+3],this.toBytes[0]},write(e,t,n){return this.toBytes[0]=n,e[t+0]=this.bytes[0],e[t+1]=this.bytes[1],e[t+2]=this.bytes[2],e[t+3]=this.bytes[3],n}};let y;y=l?g:b;const E=new u(Object.assign({},y,{toBytes:new Int32Array(1)})),T=new u(Object.assign({},y,{toBytes:new Uint32Array(1)}));let v;v=l?p:d;const A=new u(Object.assign({},v,{toBytes:new Uint16Array(1)}));let w;w=l?b:g;const S=new u(Object.assign({},w,{toBytes:new Uint32Array(1)}));let k;k=l?{size:8,read(e,t){return this.bytes[7]=e[t+0],this.bytes[6]=e[t+1],this.bytes[5]=e[t+2],this.bytes[4]=e[t+3],this.bytes[3]=e[t+4],this.bytes[2]=e[t+5],this.bytes[1]=e[t+6],this.bytes[0]=e[t+7],this.toBytes[0]}}:{size:8,read(e,t){return this.bytes[7]=e[t+0],this.bytes[6]=e[t+1],this.bytes[5]=e[t+2],this.bytes[4]=e[t+3],this.bytes[3]=e[t+4],this.bytes[2]=e[t+5],this.bytes[1]=e[t+6],this.bytes[0]=e[t+7],this.toBytes[0]}};const O=new u(Object.assign({},k,{toBytes:new Float64Array(1)}));class I extends u{constructor(e){super({size:e,read(t,n){let r="";for(let i=0;i<e;i++){const e=t[n+i];s(e<=127,"Non-ascii character in FixedAsciiString"),r+=String.fromCharCode(e)}return r},write(t,n,r){for(let i=0;i<e;i++){const e=r.charCodeAt(i);s(e<=127,"Non-ascii character in FixedAsciiString"),t[n+i]=e}return r}})}}var N=n(21);const R=10485760;let x;x=new u(l?{size:3,read:(e,t)=>e[t+0]<<16|e[t+1]<<8|e[t+2]}:{size:3,read:(e,t)=>e[t+2]<<16|e[t+1]<<8|e[t+0]});const M=new u({sizeOf(e,t){const n=m.read(e,t);return m.size+n},read(e,t){let n=0,r=0;const i=m.read(e,t);for(let s=0;s<i;s++)n+=r*h.read(e,t++),r*=256;return n}}),C=new u({sizeOf(e,t){const n=T.read(e,t);return T.size+n},read(e,t){const n=T.read(e,t);s(n<R,"asciiString too big"),t+=4;let r="";for(let i=0;i<n;i++)r+=String.fromCharCode(e[t++]);return r}}),P=new u({sizeOf:(e,t)=>T.size+T.read(e,t),read(e,t){const n=T.read(e,t);return s(n<R,"bytes too big"),t+=T.size,s(n<R,"uint8a array too big"),new Uint8Array(e.buffer,t,n)}}),L=new u({sizeOf:(e,t)=>T.size+2*T.read(e,t),read(e,t){const n=T.read(e,t);s(n<R,"sound too big"),t+=T.size;const r=2*n;return s(r<R,"uint8a array too big"),new Uint8Array(e.buffer,t,r)}}),D=new u({sizeOf:(e,t)=>T.size+T.read(e,t)*T.size,read(e,t){const n=T.read(e,t);s(n<R,"bitmap too big"),t+=T.size,s(n<R,"uint8a array too big");const r=new Uint32Array(n);for(let i=0;i<n;i++)r[i]=T.read(e,t),t+=T.size;return r}});let B;B="undefined"==typeof TextDecoder?new N.TextDecoder:new TextDecoder;const U=new u({sizeOf:(e,t)=>T.size+T.read(e,t),read(e,t){const n=T.read(e,t);return s(n<R,"utf8 too big"),t+=T.size,s(n<R,"uint8a array too big"),B.decode(new Uint8Array(e.buffer,t,n))}}),F=new u({size:4,read(e,t){const n=T.read(e,t);return(255<<24|(n>>22&255)<<16|(n>>12&255)<<8|n>>2&255)>>>0}}),j=new u({size:5,read(e,t){const n=T.read(e,t);return(h.read(e,t)<<24|(n>>22&255)<<16|(n>>12&255)<<8|n>>2&255)>>>0}}),z={NULL:1,TRUE:2,FALSE:3,SMALL_INT:4,SMALL_INT_16:5,LARGE_INT_POSITIVE:6,LARGE_INT_NEGATIVE:7,FLOATING:8,STRING:9,SYMBOL:10,BYTES:11,SOUND:12,BITMAP:13,UTF8:14,ARRAY:20,ORDERED_COLLECTION:21,SET:22,IDENTITY_SET:23,DICTIONARY:24,IDENTITY_DICTIONARY:25,COLOR:30,TRANSLUCENT_COLOR:31,POINT:32,RECTANGLE:33,FORM:34,SQUEAK:35,OBJECT_REF:99,MORPH:100,ALIGNMENT:104,STATIC_STRING:105,UPDATING_STRING:106,SAMPLED_SOUND:109,IMAGE_MORPH:110,SPRITE:124,STAGE:125,WATCHER:155,IMAGE_MEDIA:162,SOUND_MEDIA:164,MULTILINE_STRING:171,WATCHER_READOUT_FRAME:173,WATCHER_SLIDER:174,LIST_WATCHER:175},G=Object.entries(z).reduce(((e,t)=>{let[n,r]=t;return e[r]=n,e}),{});class V{constructor(e,t){this.classId=e,this.position=t}}const Y=e=>"object"==typeof e&&e?e.valueOf():e;class _ extends V{constructor(e,t,n){super(e,t),this.value=n}valueOf(){return this.value}toJSON(){return this.classId===z.TRANSLUCENT_COLOR||this.classId===z.COLOR?16777215&this.value:this.value}toString(){return this.value}}class H extends V{constructor(e,t,n){super(e,t),this.size=n}}class W extends V{constructor(e,t,n){super(e,t),this.index=n}valueOf(){return"Ref(".concat(this.index,")")}}class K extends H{constructor(e,t,n,r){super(e,t,r),this.version=n}}class X{constructor(e){let{type:t=_,read:n,value:r=(n?e=>e.read(n):null)}=e;this.type=t,this.value=r}next(e,t,n){return{value:new this.type(t,n,this.value(e)),done:!1}}}const Z={[z.NULL]:{value:()=>null},[z.TRUE]:{value:()=>!0},[z.FALSE]:{value:()=>!1},[z.SMALL_INT]:{read:E},[z.SMALL_INT_16]:{read:m},[z.LARGE_INT_POSITIVE]:{read:M},[z.LARGE_INT_NEGATIVE]:{read:M},[z.FLOATING]:{read:O},[z.STRING]:{read:C},[z.SYMBOL]:{read:C},[z.BYTES]:{read:P},[z.SOUND]:{read:L},[z.BITMAP]:{read:D},[z.UTF8]:{read:U},[z.ARRAY]:{type:H,read:E},[z.ORDERED_COLLECTION]:{type:H,read:E},[z.SET]:{type:H,read:E},[z.IDENTITY_SET]:{type:H,read:E},[z.DICTIONARY]:{type:H,value:e=>2*e.read(E)},[z.IDENTITY_DICTIONARY]:{type:H,value:e=>2*e.read(E)},[z.COLOR]:{read:F},[z.TRANSLUCENT_COLOR]:{read:j},[z.POINT]:{type:H,value:()=>2},[z.RECTANGLE]:{type:H,value:()=>4},[z.FORM]:{type:H,value:()=>5},[z.SQUEAK]:{type:H,value:()=>6},[z.OBJECT_REF]:{type:W,read:x}},q=Array.from({length:256},((e,t)=>Z[t]?new X(Z[t]):null)),Q=new X({type:class extends H{constructor(e,t){super(e,t,0)}},value:()=>null});class J{constructor(e,t){this.buffer=e,this.stream=new o(e,t)}[Symbol.iterator](){return this}next(){if(this.stream.position>=this.stream.uint8a.length)return{value:null,done:!0};const e=this.stream.position,t=this.stream.read(h),n=q[t];if(null!==n)return n.next(this.stream,t,e);if(t<z.OBJECT_REF)return Q.next(this.stream,t,e);const r=this.stream.read(h),i=this.stream.read(h);return{value:new K(t,e,r,i),done:!1}}}class ${constructor(e){let{classId:t,version:n,fields:r}=e;this.classId=t,this.version=n,this.fields=r}get FIELDS(){return[]}get RAW_FIELDS(){return this.fields}string(e){return String(this.fields[e])}number(e){return+this.fields[e]}boolean(e){return!!this.fields[e]}toString(){return this.constructor===$?"".concat(this.constructor.name," ").concat(this.classId," ").concat(G[this.classId]):this.constructor.name}static define(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$;class n extends t{get FIELDS(){return e}static get FIELDS(){return e}}return Object.keys(e).forEach((t=>{const r=e[t];Object.defineProperty(n.prototype,t.toLowerCase().replace(/_(\w)/g,(e=>{let[,t]=e;return t.toUpperCase()})),{get(){return this.fields[r]}})})),n}}class ee{constructor(){let e;this.bit=new Uint32Array(1),this.crc=0,this.c=0,this.table=[];for(let t=0;t<256;t++){e=t;for(let t=0;t<8;t++)e=1&e?3988292384^e>>>1:e>>>1;this.table[t]=e>>>0}}update(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=~this.crc>>>0;for(let i=0;i<n;i++)r=r>>>8^this.table[255&(r^e[t+i])];return this.crc=~r>>>0,this}get digest(){return this.crc}}const te=[0,4278190080,4294967295,4286611584,4294901760,4278255360,4278190335,4278255615,4294967040,4294902015,4280295456,4282400832,4284506208,4288651167,4290756543,4292861919,4278716424,4279242768,4279769112,4280821800,4281348144,4281874488,4282927176,4283453520,4283979864,4285032552,4285558896,4286085240,4287072135,4287598479,4288124823,4289177511,4289703855,4290230199,4291282887,4291809231,4292335575,4293388263,4293914607,4294440951,4278190080,4278203136,4278216192,4278229248,4278242304,4278255360,4278190131,4278203187,4278216243,4278229299,4278242355,4278255411,4278190182,4278203238,4278216294,4278229350,4278242406,4278255462,4278190233,4278203289,4278216345,4278229401,4278242457,4278255513,4278190284,4278203340,4278216396,4278229452,4278242508,4278255564,4278190335,4278203391,4278216447,4278229503,4278242559,4278255615,4281532416,4281545472,4281558528,4281571584,4281584640,4281597696,4281532467,4281545523,4281558579,4281571635,4281584691,4281597747,4281532518,4281545574,4281558630,4281571686,4281584742,4281597798,4281532569,4281545625,4281558681,4281571737,4281584793,4281597849,4281532620,4281545676,4281558732,4281571788,4281584844,4281597900,4281532671,4281545727,4281558783,4281571839,4281584895,4281597951,4284874752,4284887808,4284900864,4284913920,4284926976,4284940032,4284874803,4284887859,4284900915,4284913971,4284927027,4284940083,4284874854,4284887910,4284900966,4284914022,4284927078,4284940134,4284874905,4284887961,4284901017,4284914073,4284927129,4284940185,4284874956,4284888012,4284901068,4284914124,4284927180,4284940236,4284875007,4284888063,4284901119,4284914175,4284927231,4284940287,4288217088,4288230144,4288243200,4288256256,4288269312,4288282368,4288217139,4288230195,4288243251,4288256307,4288269363,4288282419,4288217190,4288230246,4288243302,4288256358,4288269414,4288282470,4288217241,4288230297,4288243353,4288256409,4288269465,4288282521,4288217292,4288230348,4288243404,4288256460,4288269516,4288282572,4288217343,4288230399,4288243455,4288256511,4288269567,4288282623,4291559424,4291572480,4291585536,4291598592,4291611648,4291624704,4291559475,4291572531,4291585587,4291598643,4291611699,4291624755,4291559526,4291572582,4291585638,4291598694,4291611750,4291624806,4291559577,4291572633,4291585689,4291598745,4291611801,4291624857,4291559628,4291572684,4291585740,4291598796,4291611852,4291624908,4291559679,4291572735,4291585791,4291598847,4291611903,4291624959,4294901760,4294914816,4294927872,4294940928,4294953984,4294967040,4294901811,4294914867,4294927923,4294940979,4294954035,4294967091,4294901862,4294914918,4294927974,4294941030,4294954086,4294967142,4294901913,4294914969,4294928025,4294941081,4294954137,4294967193,4294901964,4294915020,4294928076,4294941132,4294954188,4294967244,4294902015,4294915071,4294928127,4294941183,4294954239,4294967295],ne=[4294967295,4278190080],re=new u({sizeOf(e,t){const n=e[t];return n<=223?1:n<=254?2:5},read(e,t){const n=e[t];return n<=223?n:n<=254?256*(n-224)+e[t+1]:T.read(e,t+1)}});class ie{decode(e,t,n,r,i){const s=this.decodePixels(r,32===n);if(n<=8)return i||(i=1===n?ne:te),this.unpackPixels(s,e,t,n,i);if(16===n)return this.raster16To32(s,e,t);if(32===n)return s;throw new Error("Unhandled Squeak Image depth.")}decodePixels(e,t){let n;if(Array.isArray(e)||e instanceof Uint32Array){if(n=new Uint32Array(e),t)for(let e=0;e<n.length;e++)0!==n[e]&&(n[e]=4278190080|n[e]);return n}const r=new o(e.buffer,e.byteOffset),i=r.read(re);n=new Uint32Array(i);let s=0;for(;s<i;){const e=r.read(re),i=e>>2;let o;switch(3&e){case 0:s+=i;break;case 1:o=r.read(h),o|=o<<24|o<<16|o<<8,t&&0!==o&&(o|=4278190080);for(let e=0;e<i;e++)n[s++]=o;break;case 2:o=r.read(T),t&&0!==o&&(o|=4278190080);for(let e=0;e<i;e++)n[s++]=o;break;case 3:for(let e=0;e<i;e++)o=r.read(T),t&&0!==o&&(o|=4278190080),n[s++]=o}}return n}unpackPixels(e,t,n,r,i){const s=new Uint32Array(t*n),o=(1<<r)-1,a=32/r;let c=0,l=0;for(let u=0;u<n;u++){let n,u=-1;for(let h=0;h<t;h++)u<0&&(u=r*(a-1),n=e[l++]),s[c++]=i[n>>u&o],u-=r}return s}raster16To32(e,t,n){const r=new Uint32Array(2*e.length);let i,s,o,a=0,c=0;for(let l=0;l<n;l++){i=-1;for(let n=0;n<t;n++){if(i<0&&(i=16,s=e[a++]),o=s>>i&65535,0!==o){o=4278190080|(o>>7&248)<<16|(o>>2&248)<<8|o<<3&248}r[c++]=o,i-=16}}return r}buildCustomColormap(e,t,n){const r=new Uint32Array(1<<e);for(let e=0;e<t.length;e++)r[e]=n[t[e].index-1];return r}}const se=[7,8,9,10,11,12,13,14,16,17,19,21,23,25,28,31,34,37,41,45,50,55,60,66,73,80,88,97,107,118,130,143,157,173,190,209,230,253,279,307,337,371,408,449,494,544,598,658,724,796,876,963,1060,1166,1282,1411,1552,1707,1878,2066,2272,2499,2749,3024,3327,3660,4026,4428,4871,5358,5894,6484,7132,7845,8630,9493,10442,11487,12635,13899,15289,16818,18500,20350,22385,24623,27086,29794,32767],oe={2:[-1,2,-1,2],3:[-1,-1,2,4,-1,-1,2,4],4:[-1,-1,-1,-1,2,4,6,8,-1,-1,-1,-1,2,4,6,8],5:[-1,-1,-1,-1,-1,-1,-1,-1,1,2,4,6,8,10,13,16,-1,-1,-1,-1,-1,-1,-1,-1,1,2,4,6,8,10,13,16]};class ae{constructor(e){this.bitsPerSample=e,this.indexTable=oe[e],this.signMask=1<<e-1,this.valueMask=this.signMask-1,this.valueHighBit=this.signMask>>1,this.bitPosition=0,this.currentByte=0,this.stream=null,this.end=0}decode(e){this.bitPosition=0,this.currentByte=0,this.stream=new o(e.buffer,e.byteOffset),this.end=e.byteOffset+e.length;const t=Math.floor(8*e.length/this.bitsPerSample),n=new Int16Array(t);let r=0,i=0;for(let e=0;e<t;e++){const t=this.nextCode();s(t>=0,"Ran out of bits in Squeak Sound");let o=se[i],a=0;for(let e=this.valueHighBit;e>0;e>>=1)t&e&&(a+=o),o>>=1;a+=o,r+=t&this.signMask?-a:a,i+=this.indexTable[t],i<0&&(i=0),i>88&&(i=88),r>32767&&(r=32767),r<-32768&&(r=-32768),n[e]=r}return n}nextCode(){let e=this.bitsPerSample,t=e-this.bitPosition,n=t<0?this.currentByte>>-t:this.currentByte<<t;for(;t>0;){if(e-=this.bitPosition,!(this.end-this.stream.position>0))return this.currentByte=0,this.bitPosition=0,-1;this.currentByte=this.stream.read(h),this.bitPosition=8,t=e-this.bitPosition,n+=t<0?this.currentByte>>-t:this.currentByte<<t}return this.bitPosition-=e,this.currentByte=this.currentByte&255>>8-this.bitPosition,n}static samples(e,t){return 8*t.length/e}}class ce{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Uint8Array(this.size),t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.uint8a=e,this.offset=t}equals(e){for(const t in e)if(this[t]!==e[t])return!1;return!0}view(){const e=this.constructor.name,t={toString:()=>e};for(const e in this.shape)t[e]=this[e];return t}static initConstructor(e){return e.size=e.prototype.size,e}static extend(e){const t=class extends ce{get shape(){return e}};let n=0;return Object.keys(e).forEach((r=>{if(Object.defineProperty(t.prototype,r,e[r].asPropertyObject(n)),0===e[r].size)throw new Error("Packet cannot be defined with variable sized members.");n+=e[r].size})),t.prototype.size=n,t.size=n,t}}class le extends(ce.extend({riff:new I(4),length:S,wave:new I(4)})){}ce.initConstructor(le);class ue extends(ce.extend({chunkType:new I(4),length:S})){}ce.initConstructor(ue);class he extends(ce.extend({format:A,channels:A,sampleRate:S,bytesPerSec:S,blockAlignment:A,bitsPerSample:A})){}ce.initConstructor(he);class de{encode(e){let{channels:t=1,sampleRate:n=22050}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i=le.size+ue.size+he.size+ue.size+r.length,s=new o(new ArrayBuffer(i));return s.writeStruct(le,{riff:"RIFF",length:i-8,wave:"WAVE"}),s.writeStruct(ue,{chunkType:"fmt ",length:he.size}),s.writeStruct(he,{format:1,channels:t,sampleRate:n,bytesPerSec:2*n*t,blockAlignment:2*t,bitsPerSample:16}),s.writeStruct(ue,{chunkType:"data",length:i-s.position-ue.size}),s.writeBytes(r),s.uint8a}static encode(e,t){return(new de).encode(e,t)}static samples(e){const t=new ue(e,le.size).length;return new ue(e,le.size+ue.size+t).length/2}}var pe=n(37),fe=n.n(pe);class me extends($.define({X:0,Y:1})){}class ge extends($.define({X:0,Y:1,X2:2,Y2:3})){get width(){return this.x2-this.x}get height(){return this.y2-this.y}}class be extends($.define({WIDTH:0,HEIGHT:1,DEPTH:2,BYTES:4,COLORMAP:5})){get decoded(){return this._decoded||(this._decoded=(e=>{for(let t=0;t<e.length;t+=4){const n=e[t+2],r=e[t+0];e[t+2]=r,e[t+0]=n}return e})(new Uint8Array((new ie).decode(this.width.value,this.height.value,this.depth.value,this.bytes.value,this.colormap&&this.colormap.map((e=>e.valueOf()))).buffer))),this._decoded}get extension(){return"uncompressed"}}class ye extends($.define({STAGE_CONTENTS:2,OBJ_NAME:6,VARS:7,BLOCKS_BIN:8,IS_CLONE:9,MEDIA:10,CURRENT_COSTUME:11,ZOOM:12,H_PAN:13,V_PAN:14,OBSOLETE_SAVED_STATE:15,SPRITE_ORDER_IN_LIBRARY:16,VOLUME:17,TEMPO_BPM:18,SCENE_STATES:19,LISTS:20})){get spriteOrderInLibrary(){return this.fields[this.FIELDS.SPRITE_ORDER_IN_LIBRARY]||null}get tempoBPM(){return this.fields[this.FIELDS.TEMPO_BPM]||0}get lists(){return this.fields[this.FIELDS.LISTS]||[]}}class Ee extends($.define({BOX:0,PARENT:1,COLOR:3,VISIBLE:4,OBJ_NAME:6,VARS:7,BLOCKS_BIN:8,IS_CLONE:9,MEDIA:10,CURRENT_COSTUME:11,VISIBILITY:12,SCALE_POINT:13,ROTATION_DEGREES:14,ROTATION_STYLE:15,VOLUME:16,TEMPO_BPM:17,DRAGGABLE:18,SCENE_STATES:19,LISTS:20})){get scratchX(){return this.box.x+this.currentCostume.rotationCenter.x-240}get scratchY(){return 180-(this.box.y+this.currentCostume.rotationCenter.y)}get visible(){return!(1&this.fields[this.FIELDS.VISIBLE])}get tempoBPM(){return this.fields[this.FIELDS.TEMPO_BPM]||0}get lists(){return this.fields[this.FIELDS.LISTS]||[]}}$.define({RECTANGLE:0,FONT:8,COLOR:9,LINES:11});class Te extends($.define({COSTUME_NAME:0,BITMAP:1,ROTATION_CENTER:2,TEXT_DETAILS:3,BASE_LAYER_DATA:4,OLD_COMPOSITE:5})){get image(){return this.oldComposite instanceof be?this.oldComposite:this.baseLayerData.value?null:this.bitmap}get width(){return null===this.image?-1:this.image.width}get height(){return null===this.image?-1:this.image.height}get rawBytes(){return null===this.image?this.baseLayerData.value.slice():this.image.bytes.value}get decoded(){return null===this.image?this.baseLayerData.value.slice():this.image.decoded}get crc(){if(!this._crc){const e=(new ee).update(new Uint8Array(new Uint32Array([this.bitmap.width]).buffer)).update(new Uint8Array(new Uint32Array([this.bitmap.height]).buffer)).update(new Uint8Array(new Uint32Array([this.bitmap.depth]).buffer)).update(this.rawBytes);this._crc=e.digest}return this._crc}get extension(){return this.oldComposite instanceof be?"uncompressed":this.baseLayerData.value?"jpg":"uncompressed"}toString(){return'ImageMediaData "'.concat(this.costumeName,'"')}}class ve extends($.define({DATA:3,RATE:4})){}class Ae extends($.define({NAME:0,UNCOMPRESSED:1,RATE:4,BITS_PER_SAMPLE:5,DATA:6})){get rate(){return 0!==this.uncompressed.data.value.length?this.uncompressed.rate:this.fields[this.FIELDS.RATE]}get rawBytes(){return this.data&&this.data.value?this.data.value:this.uncompressed.data.value}get decoded(){return this._decoded||(this.data&&this.data.value?this._decoded=new ae(this.bitsPerSample.value).decode(this.data.value):this._decoded=new Int16Array((e=>{const t=new Uint8Array(e);for(let n=0;n<t.length;n+=2)t[n]=e[n+1],t[n+1]=e[n];return t})(this.uncompressed.data.value.slice()).buffer)),this._decoded}get crc(){return this._crc||(this._crc=(new ee).update(new Uint32Array([this.rate])).update(this.rawBytes).digest),this._crc}get sampleCount(){return this.data&&this.data.value?ae.samples(this.bitsPerSample.value,this.data.value):this.uncompressed.data.value.length/2}get extension(){return"pcm"}get wavEncodedData(){return this._wavEncodedData||(this._wavEncodedData=new Uint8Array(de.encode(this.decoded,{sampleRate:this.rate&&this.rate.value}))),this._wavEncodedData}get md5(){return this._md5||(this._md5=fe()(this.wavEncodedData)),this._md5}toString(){return'SoundMediaData "'.concat(this.name,'"')}}class we extends($.define({BOX:0,HIDDEN_WHEN_NULL:1,LIST_NAME:8,CONTENTS:9,TARGET:10})){get x(){return null===Y(this.hiddenWhenNull)?5:this.box.x+1}get y(){return null===Y(this.hiddenWhenNull)?5:this.box.y+1}get width(){return this.box.width-2}get height(){return this.box.height-2}}class Se extends($.define({BOX:0,PARENT:1,FRAMES:2,COLOR:3,DIRECTION:8,ALIGNMENT:9})){}class ke extends($.define({BOX:0,PARENT:1,COLOR:3})){}class Oe extends($.define({BOX:0,COLOR:3,VALUE:8})){}class Ie extends($.define({BOX:0,READOUT_FRAME:1,COLOR:3,FONT:6,VALUE:8,TARGET:10,CMD:11,PARAM:13})){}class Ne extends($.define({BOX:0})){}const Re=1,xe=2,Me=3;class Ce extends($.define({BOX:0,TARGET:1,SHAPE:2,READOUT:14,READOUT_FRAME:15,SLIDER:16,ALIGNMENT:17,SLIDER_MIN:20,SLIDER_MAX:21})){get x(){return this.box.x}get y(){return this.box.y}get mode(){return null===Y(this.slider)?this.readoutFrame.box.height<=14?Re:xe:Me}get isDiscrete(){return Math.floor(this.sliderMin)===this.sliderMin&&Math.floor(this.sliderMax)===this.sliderMax&&Math.floor(this.readout.value)===this.readout.value}}const Pe={[z.POINT]:me,[z.RECTANGLE]:ge,[z.FORM]:be,[z.SQUEAK]:be,[z.SAMPLED_SOUND]:ve,[z.SPRITE]:Ee,[z.STAGE]:ye,[z.IMAGE_MEDIA]:Te,[z.SOUND_MEDIA]:Ae,[z.ALIGNMENT]:Se,[z.MORPH]:ke,[z.WATCHER_READOUT_FRAME]:Ne,[z.STATIC_STRING]:Oe,[z.UPDATING_STRING]:Ie,[z.WATCHER]:Ce,[z.LIST_WATCHER]:we},Le=Array.from({length:256},((e,t)=>Pe[t]||null));class De{constructor(e){this.valueIterator=e}[Symbol.iterator](){return this}next(){const e=this.valueIterator.next();if(e.done)return e;const t=e.value,{classId:n}=t;let r=t;if(t instanceof H){r=[];for(let e=0;e<t.size;e++)r.push(this.next().value)}if(null!==Le[n]||t instanceof K){r=new(Le[t.classId]||$)({classId:t.classId,version:t.version,fields:r})}return{value:r,done:!1}}}class Be{constructor(e){this.table=Array.from(e),this.fixed=this.fix(this.table)}fix(){const e=[];for(let t=0;t<this.table.length;t++)this.fixItem(this.table[t]),e.push(this.table[t]);return e}fixItem(e){if(void 0!==e.fields&&(e=e.fields),Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=this.deref(e[t])}deref(e){return e instanceof W?this.table[e.index-1]:e}}class Ue extends(ce.extend({support8Bit:h,png:new I(3),dosLineEnding:new I(2),dosEndOfFile:new I(1),unixLineEnding:new I(1)})){static validate(){s(this.equals({support8Bit:137,png:"PNG",dosLineEnding:"\r\n",dosEndOfFile:"",unixLineEnding:"\n"}),"PNGSignature does not match the expected values")}}ce.initConstructor(Ue);class Fe extends(ce.extend({length:T,chunkType:new I(4)})){}ce.initConstructor(Fe);class je extends(ce.extend({checksum:T})){}ce.initConstructor(je);class ze extends(ce.extend({width:T,height:T,bitDepth:h,colorType:h,compressionMethod:h,filterMethod:h,interlaceMethod:h})){}ce.initConstructor(ze);class Ge extends(ce.extend({method:h})){}ce.initConstructor(Ge);class Ve{constructor(){this.adler=1}update(e,t,n){let r=65535&this.adler,i=this.adler>>>16;for(let s=0;s<n;s++)r=(r+e[t+s])%65521,i=(i+r)%65521;return this.adler=i<<16|r,this}get digest(){return this.adler}}const Ye=65535;class _e extends(ce.extend({cmf:h,flag:h})){}ce.initConstructor(_e);class He extends(ce.extend({lastPacket:h,length:A,lengthCheck:A})){}ce.initConstructor(He);class We extends(ce.extend({checksum:S})){}ce.initConstructor(We);class Ke{constructor(e){this.stream=e}get uint8a(){return this.stream.uint8a}set uint8a(e){return this.stream.uint8a=e,this.stream.uint8a}get position(){return this.stream.position}set position(e){return this.stream.position=e,this.stream.position}writeStruct(e,t){return this.stream.writeStruct(e,t)}writeBytes(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length;return this.stream.writeBytes(e,t,n)}}class Xe extends Ke{constructor(e){super(e),this.stream.writeStruct(_e,{cmf:8,flag:29}),this.adler=new Ve,this.chunk=this.stream.writeStruct(He,{lastPacket:0,length:0,lengthCheck:65535})}get _deflateIndex(){return this.chunk.length}set _deflateIndex(e){return this.chunk.length=e,this.chunk.lengthCheck=65535^e,this.chunk.length}writeStruct(e,t){this.writeBytes(Object.assign(new e,t).uint8a)}writeBytes(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=t;for(;n-r>0;){this._deflateIndex===Ye&&(this.chunk=this.stream.writeStruct(He,{lastPacket:0,length:0,lengthCheck:65535}));const t=Math.min(n-r,Ye-this._deflateIndex);this.stream.writeBytes(e,r,r+t),this._deflateIndex+=t,r+=t}this.adler.update(e,t,n-t)}finish(){this.chunk.lastPacket=1,this.stream.writeStruct(We,{checksum:this.adler.digest})}static estimateSize(e){const t=Math.ceil(e/Ye);return _e.size+t*He.size+We.size+e}}class Ze extends Ke{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"IHDR";super(e),this.start=this.stream.writeStruct(Fe,{length:0,chunkType:t}),this.crc=new ee}finish(){const e=this.start.offset+this.start.size,t=this.position-e;this.start.length=t,this.crc.update(this.stream.uint8a,e-T.size,t+T.size),this.stream.writeStruct(je,{checksum:this.crc.digest})}static size(e){return Fe.size+e+je.size}}class qe{encode(e,t,n){const r=4*e+Ge.size,i=r*t,s=Ue.size+Ze.size(ze.size)+Ze.size(Xe.estimateSize(i))+Ze.size(0),a=new o(new ArrayBuffer(s));a.writeStruct(Ue,{support8Bit:137,png:"PNG",dosLineEnding:"\r\n",dosEndOfFile:"",unixLineEnding:"\n"});const c=new Ze(a,"IHDR");c.writeStruct(ze,{width:e,height:t,bitDepth:8,colorType:6,compressionMethod:0,filterMethod:0,interlaceMethod:0}),c.finish();const l=new Ze(a,"IDAT"),u=new Xe(l);let h=0;for(;h<n.length;){u.writeStruct(Ge,{method:0});const e=Math.min(n.length-h,r-Ge.size);u.writeBytes(n,h,h+e),h+=e}u.finish(),l.finish();return new Ze(a,"IEND").finish(),a.buffer}static encode(e,t,n){return(new qe).encode(e,t,n)}}class Qe{constructor(e){this.file=e}async(e){return s("uint8array"===e,"SB1FakeZipFile only supports uint8array"),Promise.resolve(this.file.bytes)}}class Je{constructor(e){this.files=e}file(e){if(e in this.files)return new Qe(this.files[e])}}const $e=e=>"uncompressed"===e.extension?new Uint8Array(qe.encode(e.width,e.height,e.decoded)):e.decoded,et=e=>{const t=String(e[e.length-1]),n=e.length-1;return"mouse"===t?e[n]="_mouse_":"edge"===t?e[n]="_edge_":e[e.length-1]instanceof ye&&(e[n]="_stage_"),e},tt={getParam:e=>{let[t,n,r,i]=e;return[t,n,r,i||"r"]},changeVariable:e=>[e[2],e[1],e[3]],EventHatMorph:e=>"Scratch-StartClicked"===String(e[1])?["whenGreenFlag"]:["whenIReceive",e[1]],MouseClickEventHatMorph:()=>["whenClicked"],KeyEventHatMorph:e=>["whenKeyPressed",e[1]],stopScripts:e=>"other scripts"===String(e[1])?[e[0],"other scripts in sprite"]:e,abs:e=>["computeFunction:of:","abs",e[1]],sqrt:e=>["computeFunction:of:","sqrt",e[1]],"\\\\":e=>["%",...e.slice(1)],doReturn:()=>["stopScripts","this script"],stopAll:()=>["stopScripts","all"],"showBackground:":e=>["startScene",e[1]],nextBackground:()=>["nextScene"],doForeverIf:e=>["doForever",[["doIf",e[1],e[2]]]],"getAttribute:of:":et,"gotoSpriteOrMouse:":et,"distanceTo:":et,"pointTowards:":et,"touching:":et},nt=e=>{const{info:t,stageData:n,images:r,sounds:i}=e,s=e=>{const t=[];for(let n=0;n<e.length;n+=2)t.push([e[n],e[n+1]]);return t},o=e=>{let[t,n]=e;return{name:t,value:n,isPersistent:!1}},a=e=>{let[,{listName:t,contents:n,x:r,y:i,width:s,height:o,hiddenWhenNull:a}]=e;return{listName:t,contents:n,isPersistent:!1,x:r,y:i,width:s,height:o,visible:null!==(c=a,"object"==typeof c&&c?c.valueOf():c)};var c},c=e=>{const t=i.findIndex((t=>t.crc===e.crc));return{soundName:e.name,soundID:t,md5:"".concat(e.md5,".wav"),sampleCount:e.sampleCount,rate:e.rate,format:""}},l=e=>{const t=r.findIndex((t=>t.crc===e.crc));return{costumeName:e.costumeName,baseLayerID:t,baseLayerMD5:"".concat(fe()(e.rawBytes),".").concat((n=e,"uncompressed"===n.extension?"png":"jpg")),bitmapResolution:1,rotationCenterX:e.rotationCenter.x,rotationCenterY:e.rotationCenter.y};var n},u=e=>{let t=e.map(d);const n=tt[t[0]];return n&&(t=n(t)),t},h=e=>e.map(u),d=e=>e instanceof Ee?e.objName:Array.isArray(e)?0===e.length||Array.isArray(e[0])?h(e):u(e):e,p=e=>[e[0].x,e[0].y,h(e[1])],f=e=>e instanceof Ee?(e=>{const t=e.media.filter((e=>e instanceof Te)),r=e.media.filter((e=>e instanceof Ae));return{objName:e.objName,variables:s(e.vars).map(o),lists:s(e.lists).map(a),scripts:e.blocksBin.map(p),costumes:t.map(l),currentCostumeIndex:t.findIndex((t=>t.crc===e.currentCostume.crc)),sounds:r.map(c),scratchX:e.scratchX,scratchY:e.scratchY,scale:e.scalePoint.x,direction:Math.round(1e6*e.rotationDegrees)/1e6-270,rotationStyle:e.rotationStyle,isDraggable:e.draggable,indexInLibrary:n.spriteOrderInLibrary.indexOf(e),visible:e.visible,spriteInfo:{}}})(e):null;return JSON.parse(JSON.stringify(Object.assign((e=>{const t=e.media.filter((e=>e instanceof Te)),n=e.media.filter((e=>e instanceof Ae));return{objName:e.objName,variables:s(e.vars).map(o),lists:s(e.lists).map(a),scripts:e.blocksBin.map(p),costumes:t.map(l),currentCostumeIndex:t.findIndex((t=>t.crc===e.currentCostume.crc)),sounds:n.map(c),penLayerMD5:"5c81a336fab8be57adc039a8a2b33ca9.png",penLayerID:0,tempoBPM:e.tempoBPM,videoAlpha:.5,children:e.stageContents.map(f).filter(Boolean).reverse()}})(n),{info:(e=>{const t={};for(let n=0;n<e.length;n+=2)"thumbnail"!==String(e[n])&&(t[String(e[n])]=String(e[n+1]));return t})(t)})))};class rt extends(ce.extend({version:new I(10),infoByteLength:T})){validate(){s.validate(this.equals({version:"ScratchV01"})||this.equals({version:"ScratchV02"}),"Invalid Scratch file signature.")}}ce.initConstructor(rt);class it extends(ce.extend({ObjS:new I(4),ObjSValue:h,Stch:new I(4),StchValue:h,numObjects:T})){validate(){s.validate(this.equals({ObjS:"ObjS",ObjSValue:1,Stch:"Stch",StchValue:1}),"Invalid Scratch file info packet header.")}}ce.initConstructor(it);class st{constructor(e){this.buffer=e,this.stream=new o(e),this.signature=this.stream.readStruct(rt),this.signature.validate(),this.infoHeader=this.stream.readStruct(it),this.infoHeader.validate(),this.stream.position+=this.signature.infoByteLength-it.size,this.dataHeader=this.stream.readStruct(it),this.dataHeader.validate()}get json(){return nt({info:this.info(),stageData:this.data(),images:this.images(),sounds:this.sounds()})}get zip(){return(e=>{let{images:t,sounds:n}=e;const r={};let i=0;for(const e of t)r["".concat(i++,".").concat((s=e,"uncompressed"===s.extension?"png":"jpg"))]={bytes:$e(e)};var s,o;i=0;for(const e of n)r["".concat(i++,".wav")]={bytes:(o=e,o.wavEncodedData)};return new Je(r)})({images:this.images(),sounds:this.sounds()})}view(){return{signature:this.signature,infoHeader:this.infoHeader,dataHeader:this.dataHeader,toString:()=>"SB1File"}}infoRaw(){return new a(new J(this.buffer,this.infoHeader.offset+it.size),this.signature.infoByteLength+rt.size)}infoTable(){return new De(this.infoRaw())}info(){return this._info||(this._info=new Be(this.infoTable()).table[0]),this._info}dataRaw(){return new a(new J(this.buffer,this.dataHeader.offset+it.size),this.stream.uint8a.length)}dataTable(){return new De(this.dataRaw())}dataFixed(){return this._data||(this._data=new Be(this.dataTable()).table),this._data}data(){return this.dataFixed()[0]}images(){const e=new Set;return this.dataFixed().filter((t=>t instanceof Te&&(!e.has(t.crc)&&(e.add(t.crc),!0))))}sounds(){const e=new Set;return this.dataFixed().filter((t=>t instanceof Ae&&(!e.has(t.crc)&&(e.add(t.crc),!0))))}}},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"Scaffolding",(function(){return Y})),n.d(r,"Cloud",(function(){return A})),n.d(r,"VM",(function(){return a.a})),n.d(r,"Renderer",(function(){return l.a})),n.d(r,"Storage",(function(){return g})),n.d(r,"AudioEngine",(function(){return p.a})),n.d(r,"JSZip",(function(){return s.a}));var i=n(22),s=n.n(i),o=n(54),a=n.n(o),c=n(84),l=n.n(c),u=n(90),h=n.n(u),d=n(91),p=n.n(d),f=n(25);class m extends h.a{constructor(){super(),this._totalAssets=0,this._loadedAssets=0}_updateProgress(){this.onprogress&&this.onprogress(this._totalAssets,this._loadedAssets)}load(e,t,n){return e===this.AssetType.ImageBitmap||e===this.AssetType.ImageVector||e===this.AssetType.Sound||e===this.AssetType.Font?(this._totalAssets++,this._updateProgress(),super.load(e,t,n).then((e=>(this._loadedAssets++,this._updateProgress(),e)))):super.load(e,t,n)}}var g=m;class b{constructor(){this._events={}}addEventListener(e,t){this._events[e]||(this._events[e]=[]),this._events[e].push(t)}removeEventListener(e,t){const n=this._events[e];n&&(this._events[e]=n.filter((e=>e!==t)))}dispatchEvent(e){const t=this._events[e.type];if(t)for(const n of t)n(e)}}const y=[],E=e=>{let t;var n;return 0===y.length?(n={audio:!1,video:e},t=navigator.mediaDevices?navigator.mediaDevices.getUserMedia(n):Promise.reject(new Error("video is not supported in this context (insecure domain?)")),y.push(t)):y.length>0&&(t=y[0],y.push(!0)),t};class T{constructor(){this.mirror=!0,this._frameCacheTimeout=16,this._video=null,this._track=null,this._workspace=[]}static get FORMAT_IMAGE_DATA(){return"image-data"}static get FORMAT_CANVAS(){return"canvas"}static get DIMENSIONS(){return[480,360]}static get ORDER(){return 1}get video(){return this._video}enableVideo(){return this.enabled=!0,this._setupVideo()}disableVideo(){this.enabled=!1,this._singleSetup&&this._singleSetup.then(this._teardown.bind(this)).catch((e=>this.onError(e)))}_teardown(){if(!1===this.enabled){const e=(y.pop(),!(y.length>0));this._singleSetup=null,this._video=null,this._track&&e&&this._track.stop(),this._track=null}}getFrame(e){let{dimensions:t=T.DIMENSIONS,mirror:n=this.mirror,format:r=T.FORMAT_IMAGE_DATA,cacheTimeout:i=this._frameCacheTimeout}=e;if(!this.videoReady)return null;const[s,o]=t,a=this._getWorkspace({dimensions:t,mirror:Boolean(n)}),{videoWidth:c,videoHeight:l}=this._video,{canvas:u,context:h,lastUpdate:d,cacheData:p}=a,f=Date.now();d+i<f&&(n&&(h.scale(-1,1),h.translate(-1*s,0)),h.drawImage(this._video,0,0,c,l,0,0,s,o),h.setTransform(1,0,0,1,0,0),a.lastUpdate=f),p[r]||(p[r]={lastUpdate:0});const m=p[r];return m.lastUpdate+i<f&&(r===T.FORMAT_IMAGE_DATA?m.lastData=h.getImageData(0,0,s,o):r===T.FORMAT_CANVAS?(m.lastUpdate=1/0,m.lastData=u):(console.error("video io error - unimplemented format ".concat(r)),m.lastUpdate=1/0,m.lastData=null),m.lastUpdate=Math.max(a.lastUpdate,m.lastUpdate)),m.lastData}onError(e){console.error("Unhandled video io device error",e)}_setupVideo(){return this._singleSetup||(this._singleSetup=E({width:{min:480,ideal:640},height:{min:360,ideal:480}}).then((e=>{this._video=document.createElement("video");try{this._video.srcObject=e}catch(t){this._video.src=window.URL.createObjectURL(e)}return this._video.play(),this._track=e.getTracks()[0],this})).catch((e=>{this._singleSetup=null,this.onError(e)}))),this._singleSetup}get videoReady(){if(!this.enabled)return!1;if(!this._video)return!1;if(!this._track)return!1;const{videoWidth:e,videoHeight:t}=this._video;return"number"==typeof e&&"number"==typeof t&&(0!==e&&0!==t)}_getWorkspace(e){let{dimensions:t,mirror:n}=e,r=this._workspace.find((e=>e.dimensions.join("-")===t.join("-")&&e.mirror===n));return r||(r={dimensions:t,mirror:n,canvas:document.createElement("canvas"),lastUpdate:0,cacheData:{}},r.canvas.width=t[0],r.canvas.height=t[1],r.context=r.canvas.getContext("2d"),this._workspace.push(r)),r}}var v=T;var A={CloudManager:class{constructor(e){this.parent=e,this.providers=[],this.overrides=new Map}hasCloudData(){return this.parent.vm.runtime.hasCloudData()}projectReady(){if(this.hasCloudData())for(const e of this.providers)e.enable()}setVariable(e,t,n){this.overrides.has(t)&&this.overrides.get(t)!==e||this.parent.vm.postIOData("cloud",{varUpdate:{name:t,value:n}})}getUsername(){return this.parent._username}addProvider(e){e.manager=this,this.hasCloudData()&&e.enable(),this.providers.push(e)}requestCloseConnection(){}createVariable(e,t){}renameVariable(e,t){}deleteVariable(e){}addProviderOverride(e,t){if(t&&!this.providers.includes(t))throw new Error("Manager is not aware of this provider");this.overrides.set(e,t)}updateVariable(e,t){if(this.overrides.has(e)){const n=this.overrides.get(e);n&&n.handleUpdateVariable(e,t)}else for(const n of this.providers)n.handleUpdateVariable(e,t)}},WebSocketProvider:class{constructor(e,t){this.cloudHosts=Array.isArray(e)?e:[e],this.projectId=t,this.attemptedConnections=0,this.bufferedMessages=[],this.scheduledBufferedSend=null,this.reconnectTimeout=null,this.openConnection=this.openConnection.bind(this),this._scheduledSendBufferedMessages=this._scheduledSendBufferedMessages.bind(this)}enable(){this.openConnection()}setProjectId(e){this.projectId=e,this.closeAndReconnect()}openConnection(){this.projectId||console.warn("Project ID is empty. Cloud variable connection is unlikely to work."),this.currentCloudHost=this.cloudHosts[this.attemptedConnections%this.cloudHosts.length],this.attemptedConnections++,console.log("Connecting to ".concat(this.currentCloudHost," with ID ").concat(this.projectId,", username ").concat(this.manager.getUsername()));try{this.ws=new WebSocket(this.currentCloudHost)}catch(e){throw console.error(e),new Error("Cloud host ".concat(this.currentCloudHost," is invalid: ").concat(e))}this.ws.onerror=this.onerror.bind(this),this.ws.onmessage=this.onmessage.bind(this),this.ws.onopen=this.onopen.bind(this),this.ws.onclose=this.onclose.bind(this)}onerror(e){console.error("WebSocket error",e)}onmessage(e){for(const t of e.data.split("\n"))if(t){const e=JSON.parse(t);"set"===e.method&&this.manager.setVariable(this,e.name,e.value)}}onopen(){this.attemptedConnections=0,this.writeToServer({method:"handshake"}),this.sendBufferedMessages(),console.log("WebSocket connected")}onclose(e){if(e&&4002===e.code)return void console.log("Username is invalid; not reconnecting.");if(e&&4003===e.code)return void console.log("Cloud variable server is full; not reconnecting.");if(e&&4004===e.code)return void console.log("Project is blocked; not reconnecting.");const t=Math.random()*(Math.pow(2,Math.min(this.attemptedConnections+1,5))-1)*1e3;console.log("Connection lost; reconnecting in ".concat(Math.round(t),"ms")),this.reconnectTimeout=setTimeout(this.openConnection,t)}closeAndReconnect(){console.log("Closing connection and reconnecting."),this.ws&&(this.ws.onclose=null,this.ws.onerror=null,this.ws.close()),clearTimeout(this.reconnectTimeout);this.reconnectTimeout=setTimeout(this.openConnection,1e3/30)}canWriteToServer(){return this.ws&&this.ws.readyState===WebSocket.OPEN}scheduleBufferedSend(){this.scheduledBufferedSend||(this.scheduledBufferedSend=!0,Promise.resolve().then(this._scheduledSendBufferedMessages))}_scheduledSendBufferedMessages(){this.scheduledBufferedSend=!1,this.canWriteToServer()&&this.sendBufferedMessages()}sendBufferedMessages(){for(const e of this.bufferedMessages)this.writeToServer(e);this.bufferedMessages.length=0}bufferedWriteToServer(e){this.bufferedMessages.push(e),this.scheduleBufferedSend()}writeToServer(e){e.project_id=this.projectId,e.user=this.manager.getUsername(),this.ws.send(JSON.stringify(e))}handleUpdateVariable(e,t){for(const n of this.bufferedMessages)if(n.name===e)return void(n.value=t);this.bufferedWriteToServer({method:"set",name:e,value:t})}},LocalStorageProvider:class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"p4:cloudvariables";this.key=e,this.variables={},this.handleStorageEvent=this.handleStorageEvent.bind(this)}readFromLocalStorage(){let e;try{if(e=JSON.parse(localStorage.getItem(this.key)),!e||"object"!=typeof e)return}catch(e){return}this.variables=e;for(const e of Object.keys(this.variables))this.manager.setVariable(this,e,this.variables[e])}storeToLocalStorage(){try{localStorage.setItem(this.key,JSON.stringify(this.variables))}catch(e){}}handleStorageEvent(e){e.key===this.key&&e.storageArea===localStorage&&this.readFromLocalStorage()}enable(){this.readFromLocalStorage(),window.addEventListener("storage",this.handleStorageEvent)}handleUpdateVariable(e,t){this.variables[e]=t,this.storeToLocalStorage()}}},w=n(93),S=n.n(w),k=n(53),O={insert:e=>{var t=document.head||document.body||document.documentElement;t.insertBefore(e,t.firstChild)},singleton:!1},I=(S()(k.a,O),k.a.locals||{});const N=e=>new Promise(((t,n)=>{const r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(new Error("Cannot read as text: ".concat(r.error))),r.readAsText(e)}));var R=class{constructor(e,t){this.el=e,this.callback=t,this.el.addEventListener("dragover",this.ondragover.bind(this)),this.el.addEventListener("dragleave",this.ondragleave.bind(this)),this.el.addEventListener("drop",this.ondrop.bind(this))}ondragover(e){e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.dataTransfer.dropEffect="copy",this.el.classList.add(I.dropping))}ondragleave(e){e.preventDefault(),this.el.classList.remove(I.dropping)}ondrop(e){e.preventDefault(),this.el.classList.remove(I.dropping),e.dataTransfer.types.includes("Files")&&e.dataTransfer.files.length>0&&Promise.all(Array.from(e.dataTransfer.files).map(N)).then((e=>{this.callback(e)}))}};var x=class{constructor(e,t){this.parent=e,this.text=t,this.root=document.createElement("div"),this.root.className=I.questionRoot,this.inner=document.createElement("div"),this.inner.className=I.questionInner,t&&(this.textElement=document.createElement("div"),this.textElement.textContent=t,this.textElement.className=I.questionText),this.inputContainer=document.createElement("div"),this.inputContainer.className=I.questionInputOuter,this.input=document.createElement("input"),this.input.className=I.questionInput,this.input.addEventListener("keypress",this.onkeypress.bind(this)),this.dropper=new R(this.input,this.dropperCallback.bind(this)),this.submitButton=document.createElement("button"),this.submitButton.className=I.questionSubmitButton,this.submitButton.addEventListener("click",this.onsubmitpressclick.bind(this)),this.inputContainer.appendChild(this.input),this.inputContainer.appendChild(this.submitButton),this.textElement&&this.inner.appendChild(this.textElement),this.inner.appendChild(this.inputContainer),this.root.appendChild(this.inner),this.parent._addLayer(this.root),this.input.focus(),this.answerCallback=new Promise((e=>{this.callback=e}))}answer(){return this.answerCallback}submit(){this.callback(this.input.value),this.destroy()}onkeypress(e){"Enter"===e.key&&this.submit()}dropperCallback(e){const t=e.join("").replace(/\r?\n/g," ");this.input.value=t}onsubmitpressclick(){this.submit()}destroy(){this.root.remove(),this.parent.question=null}};var M=class{constructor(e){this.parent=e,this.root=document.createElement("div"),this.root.className=I.contextMenu,this._onmousedown=this._onmousedown.bind(this),this._onresize=this._onresize.bind(this),this._onblur=this._onblur.bind(this)}_onmousedown(e){this.root.contains(e.target)||this.destroy()}_onresize(){this.destroy()}_onblur(){this.destroy()}add(e){const t=document.createElement("button");t.className=I.contextMenuItem,t.textContent=e.text,t.addEventListener("click",(()=>{this.destroy(),e.callback()})),t.addEventListener("contextmenu",(e=>{e.preventDefault()})),this.root.appendChild(t)}show(e){document.addEventListener("mousedown",this._onmousedown),window.addEventListener("resize",this._onresize),window.addEventListener("blur",this._onblur),this.parent._addLayer(this.root);const t=this.parent.layersRect,n=this.root.getBoundingClientRect();let r=e.clientX-t.left,i=e.clientY-t.top;r+n.width>t.width&&(r-=n.width),i+n.height>t.height&&(i-=n.height),this.root.style.transform="translate(".concat(r,"px, ").concat(i,"px)"),getComputedStyle(this.root).opacity,this.root.style.opacity="1"}destroy(){document.removeEventListener("mousedown",this._onmousedown),window.removeEventListener("resize",this._onresize),window.removeEventListener("blur",this._onblur),this.root.style.opacity="0",this.root.style.pointerEvents="none",setTimeout((()=>{this.root.remove()}),200)}};var C=(e,t)=>{if("undefined"!=typeof ExternalDownloadHelper)return void ExternalDownloadHelper.download(e,t);const n=document.createElement("a");if(document.body.appendChild(n),navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(t,e);else if("download"in HTMLAnchorElement.prototype){const r=window.URL.createObjectURL(t);n.href=r,n.download=e,n.type=t.type,n.click(),window.setTimeout((()=>{document.body.removeChild(n),window.URL.revokeObjectURL(r)}),1e3)}else{let e=window.open("","_blank");const n=new FileReader;n.onloadend=function(){e.location.href=n.result,e=null},n.readAsDataURL(t)}};const P=e=>"object"==typeof e&&null!==e?JSON.stringify(e,(()=>{const e=new WeakSet;return(t,n)=>{if("object"==typeof n&&null!==n){if(e.has(n))return Array.isArray(n)?"[...]":"{...}";e.add(n)}return n}})()):Object.is(e,-0)?"-0":"".concat(e);class L{constructor(e,t){this.parent=e,this.id=t.get("id"),this.spriteName=t.get("spriteName"),this.targetId=t.get("targetId"),this.opcode=t.get("opcode"),this.params=t.get("params"),this.root=document.createElement("div"),this.root.className=I.monitorRoot,this.root.dataset.id=this.id,this.root.dataset.opcode=this.opcode,this.parent._monitorOverlay.appendChild(this.root)}getLabel(){let e;if("data_variable"===this.opcode)e=this.params.VARIABLE;else if("data_listcontents"===this.opcode)e=this.params.LIST;else if("motion_xposition"===this.opcode)e=this.parent.getMessage("var-x");else if("motion_yposition"===this.opcode)e=this.parent.getMessage("var-y");else if("motion_direction"===this.opcode)e=this.parent.getMessage("var-direction");else if("sensing_username"===this.opcode)e=this.parent.getMessage("var-username");else if("looks_costumenumbername"===this.opcode)e="number"===this.params.NUMBER_NAME?this.parent.getMessage("var-costume-number"):this.parent.getMessage("var-costume-name");else if("looks_backdropnumbername"===this.opcode)e="number"===this.params.NUMBER_NAME?this.parent.getMessage("var-backdrop-number"):this.parent.getMessage("var-backdrop-name");else if("looks_size"===this.opcode)e=this.parent.getMessage("var-size");else if("sensing_answer"===this.opcode)e=this.parent.getMessage("var-answer");else if("sensing_mousedown"===this.opcode)e=this.parent.getMessage("var-mousedown");else if("sensing_mousex"===this.opcode)e=this.parent.getMessage("var-mousex");else if("sensing_mousey"===this.opcode)e=this.parent.getMessage("var-mousey");else if("sensing_loudness"===this.opcode)e=this.parent.getMessage("var-loudness");else if("sensing_timer"===this.opcode)e=this.parent.getMessage("var-timer");else if("sensing_dayssince2000"===this.opcode)e=this.parent.getMessage("var-dayssince2000");else if("sound_volume"===this.opcode)e=this.parent.getMessage("var-volume");else if("sensing_current"===this.opcode){const t=this.params.CURRENTMENU.toLowerCase();"year"===t?e=this.parent.getMessage("var-year"):"month"===t?e=this.parent.getMessage("var-month"):"date"===t?e=this.parent.getMessage("var-date"):"dayofweek"===t?e=this.parent.getMessage("var-day-of-week"):"hour"===t?e=this.parent.getMessage("var-hour"):"minute"===t?e=this.parent.getMessage("var-minute"):"second"===t&&(e=this.parent.getMessage("var-second"))}else{const t=this.parent.vm.runtime.getLabelForOpcode(this.opcode);e=t?t.label:this.opcode}return this.spriteName?"".concat(this.spriteName,": ").concat(e):e}getTarget(){return this.targetId?this.parent.vm.runtime.getTargetById(this.targetId):this.parent.vm.runtime.getTargetForStage()}getVmVariable(){return this.getTarget().variables[this.id]}update(e){this.x=e.get("x"),this.y=e.get("y"),this.visible=e.get("visible"),this.root.style.transform="translate(".concat(Math.round(this.x),"px, ").concat(Math.round(this.y),"px)"),this.root.style.display=this.visible?"":"none"}}class D extends L{constructor(e,t){super(e,t),this.mode=t.get("mode"),"large"===this.mode?(this.valueElement=document.createElement("div"),this.valueElement.className=I.monitorLargeValue+" "+I.monitorValueColor,this.root.appendChild(this.valueElement)):(this.inner=document.createElement("div"),this.inner.className=I.monitorInner,this.valueRow=document.createElement("div"),this.valueRow.className=I.monitorRow,this.label=document.createElement("div"),this.label.className=I.monitorLabel,this.label.textContent=this.getLabel(),this.valueElement=document.createElement("div"),this.valueElement.className=I.monitorValue+" "+I.monitorValueColor,this.valueRow.appendChild(this.label),this.valueRow.appendChild(this.valueElement),this.inner.appendChild(this.valueRow),"slider"===this.mode&&(this.sliderRow=document.createElement("div"),this.sliderRow.className=I.monitorRow,this.slider=document.createElement("input"),this.slider.className=I.monitorSlider,this.slider.type="range",this.slider.min=t.get("sliderMin"),this.slider.max=t.get("sliderMax"),this.slider.step=t.get("isDiscrete")?1:.01,this.slider.addEventListener("input",this.onsliderchange.bind(this)),this.sliderRow.appendChild(this.slider),this.inner.appendChild(this.sliderRow)),this.root.appendChild(this.inner)),this.parent._monitorOverlay.appendChild(this.root),this._value=""}setVariableValue(e){const t=this.getVmVariable();if(t.value=e,t.isCloud){this.parent.vm.runtime.ioDevices.cloud.requestUpdateVariable(t.name,t.value)}this._value=e,this.valueElement.textContent=e}onsliderchange(e){this.setVariableValue(+e.target.value)}update(e){if(super.update(e),!this.visible)return;let t=e.get("value");"number"!=typeof t||Object.is(t,-0)||(t=Number(t.toFixed(6))),t=P(t),this._value!==t&&(this._value=t,this.valueElement.textContent=t,this.slider&&(this.slider.value=t))}}class B{constructor(e){this.monitor=e,this.index=-1,this.value="",this.isFocused=!1,this.root=document.createElement("label"),this.root.className=I.monitorRowRoot,this.indexEl=document.createElement("div"),this.indexEl.className=I.monitorRowIndex,this.valueOuter=document.createElement("div"),this.valueOuter.className=I.monitorRowValueOuter,this.editable=this.monitor.editable,this.editable?(this.valueInner=document.createElement("input"),this.valueInner.className=I.monitorRowValueInner,this.valueInner.addEventListener("focusin",this._onfocusin.bind(this)),this.valueInner.addEventListener("focusout",this._onfocusout.bind(this)),this.valueInner.addEventListener("keypress",this._onkeypress.bind(this)),this.valueInner.addEventListener("keydown",this._onkeydown.bind(this)),this.valueInner.addEventListener("input",this._oninput.bind(this)),this.valueOuter.appendChild(this.valueInner),this.deleteButton=document.createElement("button"),this.deleteButton.className=I.monitorRowDelete,this.deleteButton.textContent="×",this.deleteButton.addEventListener("mousedown",this._onclickdelete.bind(this)),this.valueOuter.appendChild(this.deleteButton)):(this.valueInner=document.createElement("div"),this.valueInner.className=I.monitorRowValueInner,this.valueOuter.appendChild(this.valueInner)),this.valueInner.addEventListener("contextmenu",this._oncontextmenu.bind(this)),this.root.appendChild(this.indexEl),this.root.appendChild(this.valueOuter)}isLocked(){return this.isFocused}_onfocusin(){this.isFocused||(this.isFocused=!0,this.valueInner.select(),this.root.classList.add(I.monitorRowValueEditing),this.addNewValue=!1,this.deleteValue=!1,this.valueWasChanged=!1)}_onfocusout(){if(this.isFocused)if(this.value=this.valueInner.value,this.isFocused=!1,this.root.classList.remove(I.monitorRowValueEditing),this.deleteValue){const e=[...this.monitor.value];e.splice(this.index,1),this.monitor.setValue(e),this.monitor.tryToFocusRow(Math.min(e.length-1,this.index))}else if(this.valueWasChanged||this.addNewValue){const e=[...this.monitor.value];e[this.index]=this.value,this.addNewValue&&e.splice(this.index+1,0,""),this.monitor.setValue(e),this.addNewValue&&this.monitor.tryToFocusRow(this.index+1)}}_oninput(){this.valueWasChanged=!0}_onkeypress(e){"Enter"===e.key&&(this.addNewValue=!0,this.valueInner.blur())}_onkeydown(e){if("Escape"===e.key)this.valueInner.blur();else if("ArrowUp"===e.key||"ArrowDown"===e.key||"Tab"===e.key){e.preventDefault();let t=this.index;"ArrowUp"===e.key||"Tab"===e.key&&e.shiftKey?(t--,t<0&&(t=this.monitor.value.length-1)):(t++,t>=this.monitor.value.length&&(t=0)),this.monitor.tryToFocusRow(t)}}_onclickdelete(e){e.preventDefault(),this.deleteValue=!0,this.valueInner.blur()}_oncontextmenu(e){if(this.editable)e.stopPropagation();else{const t=getSelection();this.valueInner.contains(t.anchorNode)&&!t.isCollapsed&&e.stopPropagation()}}setIndex(e){this.index!==e&&(this.index=e,this.root.dataset.index=e,this.root.style.transform="translateY(".concat(24*e,"px)"),this.indexEl.textContent=e+1)}setValue(e){e=P(e),this.value===e||this.isFocused||(this.value=e,this.editable?this.valueInner.value=e:this.valueInner.textContent=e)}focus(){this.isFocused||this.valueInner.focus()}unfocus(){this.isFocused&&this.valueInner.blur()}}class U extends L{constructor(e,t){super(e,t),this.editable=e.editableLists,this.rows=new Map,this.cachedRows=[],this.scrollTop=0,this.oldLength=-1,this.label=document.createElement("div"),this.label.className=I.monitorListLabel,this.label.textContent=this.getLabel(),this.footer=document.createElement("div"),this.footer.className=I.monitorListFooter,this.footerText=document.createElement("div"),this.footerText.className=I.monitorListFooterText,this.rowsOuter=document.createElement("div"),this.rowsOuter.className=I.monitorRowsOuter,this.rowsInner=document.createElement("div"),this.rowsInner.className=I.monitorRowsInner,this.rowsInner.addEventListener("scroll",this._onscroll.bind(this),{passive:!0}),this.endPoint=document.createElement("div"),this.endPoint.className=I.monitorRowsEndpoint,this.emptyLabel=document.createElement("div"),this.emptyLabel.textContent=e.getMessage("list-empty"),this.emptyLabel.className=I.monitorEmpty,this.editable&&(this.addButton=document.createElement("button"),this.addButton.className=I.monitorListAdd,this.addButton.textContent="+",this.addButton.addEventListener("click",this._onclickaddbutton.bind(this)),this.footer.appendChild(this.addButton)),this.rowsInner.appendChild(this.endPoint),this.rowsInner.appendChild(this.emptyLabel),this.rowsOuter.appendChild(this.rowsInner),this.footer.appendChild(this.footerText),this.root.appendChild(this.label),this.root.appendChild(this.rowsOuter),this.root.appendChild(this.footer),this.dropper=new R(this.rowsOuter,this.dropperCallback.bind(this)),this.handleImport=this.handleImport.bind(this),this.handleExport=this.handleExport.bind(this),this.root.addEventListener("contextmenu",this._oncontextmenu.bind(this))}_onclickaddbutton(e){this.setValue([...this.value,""]),this.tryToFocusRow(this.value.length-1)}unfocusAllRows(){for(const e of this.rows.values())e.unfocus()}tryToFocusRow(e){if(e>=0&&e<this.value.length){this.unfocusAllRows();let t=this.rows.get(e);t||(t=this.createRow(e)),t.focus()}}_onscroll(e){this.scrollTop=e.target.scrollTop,this.updateValue(this.value)}_oncontextmenu(e){e.preventDefault();const t=new M(this.parent);t.add({text:this.parent.getMessage("list-import"),callback:this.handleImport}),t.add({text:this.parent.getMessage("list-export"),callback:this.handleExport}),t.show(e)}handleImport(){const e=document.createElement("input");e.type="file",e.accept=".txt,.csv,.tsv",e.style.display="none",document.body.appendChild(e),e.addEventListener("change",(e=>{const t=e.target.files;if(0===t.length)return;const n=t[0];N(n).then((e=>this.import(e)))})),e.click()}import(e){const t=e.split(/\r?\n/);this.setValue(t)}handleExport(){const e=this.getValue().join("\n"),t=new Blob([e],{type:"text/plain"});C("".concat(this.getLabel(),".txt"),t)}dropperCallback(e){this.import(e.join("\n"))}getValue(){return this.getVmVariable().value}setValue(e){this.getVmVariable().value=e,this.updateValue(e)}update(e){super.update(e),this.visible&&(this.width=e.get("width")||100,this.height=e.get("height")||200,this.root.style.width="".concat(this.width,"px"),this.root.style.height="".concat(this.height,"px"),this.updateValue(e.get("value")))}createRow(e){const t=this.cachedRows.pop()||new B(this);t.setIndex(e),t.setValue(this.value[e]),this.rows.set(e,t);let n=!1;for(const r of this.rowsInner.children){const i=r.dataset.index;if(!i)continue;if(+i>e){this.rowsInner.insertBefore(t.root,r),n=!0;break}}return n||this.rowsInner.appendChild(t.root),t}updateValue(e){this.value=e,e.length!==this.oldLength&&(this.oldLength=e.length,this.footerText.textContent=this.parent.getMessage("list-length").replace("{n}",e.length),this.endPoint.style.transform="translateY(".concat(24*e.length,"px)"),this.emptyLabel.style.display=e.length?"none":"");let t=Math.floor(this.scrollTop/24)-5;t<0&&(t=0);let n=Math.ceil((this.scrollTop+this.height)/24)+3;n>e.length-1&&(n=e.length-1);for(const r of this.rows.keys())if(r<t||r>n){const t=this.rows.get(r);(!t.isLocked()||r>=e.length)&&(t.unfocus(),t.root.remove(),this.rows.delete(r),this.cachedRows.length<10&&this.cachedRows.push(t))}for(let r=t;r<=n;r++){const t=this.rows.get(r);t?t.setValue(e[r]):this.createRow(r)}}}var F=class{constructor(){this.hasItem=!1,this.root=document.createElement("div"),this.root.className=I.controlsBar,this.start=document.createElement("div"),this.end=document.createElement("div"),this.root.appendChild(this.start),this.root.appendChild(this.end)}addToStart(e){this.hasItem=!0,this.start.appendChild(e)}addToEnd(e){this.hasItem=!0,this.end.appendChild(e)}computeHeight(){return this.hasItem?this.root.getBoundingClientRect().height:0}};const j=e=>"number"==typeof e||"string"==typeof e||"boolean"==typeof e;var z=n(97);const G=e=>e.touches&&e.touches[0]?{x:e.touches[0].clientX,y:e.touches[0].clientY}:e.changedTouches&&e.changedTouches[0]?{x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY}:{x:e.clientX,y:e.clientY},V=e=>"function"==typeof e?e:()=>e;class Y extends b{constructor(){super(),this.width=480,this.height=360,this.resizeMode="preserve-ratio",this.editableLists=!1,this.shouldConnectPeripherals=!0,this.usePackagedRuntime=!1,this.messages=z,this._monitors=new Map,this._mousedownPosition=null,this._draggingId=null,this._draggingStartMousePosition=null,this._draggingStartSpritePosition=null,this._offsetFromTop=0,this._offsetFromBottom=0,this._offsetFromLeft=0,this._offsetFromRight=0,this._root=document.createElement("div"),this._root.className=I.root,this._layers=document.createElement("div"),this._layers.className=I.layers,this._root.appendChild(this._layers),this._canvas=document.createElement("canvas"),this._canvas.className=I.canvas,this._addLayer(this._canvas),this._overlays=document.createElement("div"),this._overlays.className=I.scaledOverlaysInner,this._overlaysOuter=document.createElement("div"),this._overlaysOuter.className=I.scaledOverlaysOuter,this._overlaysOuter.appendChild(this._overlays),this._addLayer(this._overlaysOuter),this._monitorOverlay=document.createElement("div"),this._monitorOverlay.className=I.monitorOverlay,this._overlays.appendChild(this._monitorOverlay),this._topControls=new F,this._layers.appendChild(this._topControls.root),document.addEventListener("mousemove",this._onmousemove.bind(this)),this._canvas.addEventListener("mousedown",this._onmousedown.bind(this)),document.addEventListener("mouseup",this._onmouseup.bind(this)),this._canvas.addEventListener("touchstart",this._ontouchstart.bind(this)),document.addEventListener("touchmove",this._ontouchmove.bind(this)),document.addEventListener("touchend",this._ontouchend.bind(this)),this._canvas.addEventListener("contextmenu",this._oncontextmenu.bind(this)),this._canvas.addEventListener("wheel",this._onwheel.bind(this)),document.addEventListener("keydown",this._onkeydown.bind(this)),document.addEventListener("keyup",this._onkeyup.bind(this)),window.addEventListener("resize",this._onresize.bind(this))}_addLayer(e){this._layers.appendChild(e)}_scratchCoordinates(e,t){return{x:this.width/this.layersRect.width*(e-this.layersRect.width/2),y:-this.height/this.layersRect.height*(t-this.layersRect.height/2)}}_onmousemove(e){const{x:t,y:n}=G(e),r={x:t-this.layersRect.left,y:n-this.layersRect.top,canvasWidth:this.layersRect.width,canvasHeight:this.layersRect.height};if(this._mousedownPosition&&!this._draggingId){Math.sqrt(Math.pow(r.x-this._mousedownPosition.x,2)+Math.pow(r.y-this._mousedownPosition.y,2))>3&&(this._startDragging(r.x,r.y),this._cancelDragTimeout())}else if(this._draggingId){const e=this._scratchCoordinates(r.x,r.y);this.vm.postSpriteInfo({x:e.x-this._draggingStartMousePosition.x+this._draggingStartSpritePosition.x,y:e.y-this._draggingStartMousePosition.y+this._draggingStartSpritePosition.y,force:!0})}this.vm.postIOData("mouse",r)}_startDragging(e,t){if(this._draggingId)return;const n=this.renderer.pick(e,t);if(-1===n||!1===n)return;const r=this.vm.getTargetIdForDrawableId(n);if(null===r)return;const i=this.vm.runtime.getTargetById(r);i.draggable&&(i.goToFront(),this._draggingId=r,this._draggingStartMousePosition=this._scratchCoordinates(e,t),this._draggingStartSpritePosition={x:i.x,y:i.y},this.vm.startDrag(r))}_cancelDragTimeout(){clearTimeout(this._dragTimeout),this._dragTimeout=null}_onmousedown(e){const{x:t,y:n}=G(e),r={x:t-this.layersRect.left,y:n-this.layersRect.top,button:e.button,canvasWidth:this.layersRect.width,canvasHeight:this.layersRect.height,isDown:!0},i="undefined"!=typeof TouchEvent&&e instanceof TouchEvent;(0===e.button||i)&&(this._dragTimeout=setTimeout(this._startDragging.bind(this,r.x,r.y),400)),i&&(e.preventDefault(),document.activeElement&&document.activeElement.blur&&document.activeElement.blur()),this._mousedownPosition={x:r.x,y:r.y},this.vm.postIOData("mouse",r)}_onmouseup(e){this._cancelDragTimeout();const{x:t,y:n}=G(e),r={x:t-this.layersRect.left,y:n-this.layersRect.top,button:e.button,canvasWidth:this.layersRect.width,canvasHeight:this.layersRect.height,isDown:!1,wasDragged:null!==this._draggingId};this._mousedownPosition=null,this.vm.postIOData("mouse",r),this._draggingId&&(this.vm.stopDrag(this._draggingId),this._draggingStartMousePosition=null,this._draggingStartSpritePosition=null,this._draggingId=null)}_ontouchstart(e){this._onmousedown(e)}_ontouchmove(e){this._onmousemove(e)}_ontouchend(e){this._onmouseup(e)}_oncontextmenu(e){e.preventDefault()}_onwheel(e){const t={deltaX:e.deltaX,deltaY:e.deltaY};this.vm.postIOData("mouseWheel",t)}_onkeydown(e){if(e.target!==document&&e.target!==document.body)return;const t={key:e.key,keyCode:e.keyCode,isDown:!0};this.vm.postIOData("keyboard",t),(32===e.keyCode||e.keyCode>=37&&e.keyCode<=40||8===e.keyCode||222===e.keyCode||191===e.keyCode)&&e.preventDefault()}_onkeyup(e){const t={key:e.key,keyCode:e.keyCode,isDown:!1};this.vm.postIOData("keyboard",t),e.target!==document&&e.target!==document.body&&e.preventDefault()}_onresize(){this.relayout()}relayout(){const e=Math.max(1,this._root.offsetWidth),t=Math.max(1,this._root.offsetHeight),n=this._offsetFromTop+this._topControls.computeHeight(),r=this._offsetFromBottom,i=this._offsetFromLeft,s=this._offsetFromRight,o=Math.max(1,e-i-s),a=Math.max(1,t-n-r);"dynamic-resize"===this.resizeMode&&(this.vm.setStageSize?(this.width=o,this.height=a,this.vm.setStageSize(this.width,this.height)):console.warn("dynamic-resize not supported: vm does not implement setStageSize"));let c=o,l=a;"stretch"!==this.resizeMode&&(c=l/this.height*this.width,c>o&&(l=o/this.width*this.height,c=o));const u=t-l,h=e-c,d=(h-i-s)/2+i-h/2,p=(u-n-r)/2+n-u/2;this._layers.style.transform="translate(".concat(d,"px, ").concat(p,"px)"),this._layers.style.width="".concat(c,"px"),this._layers.style.height="".concat(l,"px"),this._overlays.style.transform="scale(".concat(c/this.width,", ").concat(l/this.height,")"),this.renderer.resize(c,l),this.layersRect=this._layers.getBoundingClientRect()}appendTo(e){e.appendChild(this._root),this.relayout()}setup(){this.vm=new a.a,this.vm.setCompatibilityMode(!0),this.vm.setLocale(navigator.language),this.vm.on("MONITORS_UPDATE",this._onmonitorsupdate.bind(this)),this.vm.runtime.on("QUESTION",this._onquestion.bind(this)),this.vm.on("PROJECT_RUN_START",(()=>this.dispatchEvent(new Event("PROJECT_RUN_START")))),this.vm.on("PROJECT_RUN_STOP",(()=>this.dispatchEvent(new Event("PROJECT_RUN_STOP")))),this.usePackagedRuntime&&this.vm.convertToPackagedRuntime&&this.vm.convertToPackagedRuntime(),this.vm.setStageSize&&this.vm.setStageSize(this.width,this.height),this.vm.runtime.cloudOptions&&(this.vm.runtime.cloudOptions.limit=1/0),this.vm.on("STAGE_SIZE_CHANGED",((e,t)=>{this.width===e&&this.height===t||(this.width=e,this.height=t,this.relayout())})),this.cloudManager=new A.CloudManager(this),this.renderer=new l.a(this._canvas,-this.width/2,this.width/2,-this.height/2,this.height/2),this.vm.attachRenderer(this.renderer),this.renderer.overlayContainer&&this._layers.insertBefore(this.renderer.overlayContainer,this._overlaysOuter),this.storage=new g,this.vm.attachStorage(this.storage),"undefined"!=typeof AudioContext||"undefined"!=typeof webkitAudioContext?(this.audioEngine=new p.a,this.vm.attachAudioEngine(this.audioEngine)):console.warn("AudioContext not supported. Sound will not work."),this.bitmapAdapter=new f.BitmapAdapter,this.vm.attachV2BitmapAdapter(this.bitmapAdapter),this.videoProvider=new v,this.vm.setVideoProvider(this.videoProvider)}async _connectPeripherals(){const e=e=>new Promise((t=>{const n=t=>{const n=Object.keys(t).map((e=>t[e]));if(n.length>0){const t=n[0];console.log("Connecting to peripheral",t),this.vm.connectPeripheral(e,t.peripheralId)}else console.error("No peripherals found for",e);i()},r=()=>{console.error("Peripheral scan timed out for",e),i()},i=()=>{this.vm.removeListener("PERIPHERAL_LIST_UPDATE",n),this.vm.removeListener("PERIPHERAL_SCAN_TIMEOUT",r),t()};this.vm.on("PERIPHERAL_LIST_UPDATE",n),this.vm.on("PERIPHERAL_SCAN_TIMEOUT",r),this.vm.scanForPeripheral(e)}));for(const t of Object.keys(this.vm.runtime.peripheralExtensions))await e(t)}_onmonitorsupdate(e){for(const t of e.valueSeq()){const e=t.get("id");if(!this._monitors.has(e)){if(!t.get("visible"))continue;"list"===t.get("mode")?this._monitors.set(e,new U(this,t)):this._monitors.set(e,new D(this,t))}this._monitors.get(e).update(t)}}ask(e){return this._question=new x(this,e),this._question.answer()}_onquestion(e){this._question&&this._question.destroy(),null!==e&&this.ask(e).then((e=>{this.vm.runtime.emit("ANSWER",e)}))}loadProject(e){return this.vm.loadProject(e).then((()=>{this.vm.setCloudProvider(this.cloudManager),this.cloudManager.projectReady(),this.renderer.draw(),setTimeout((()=>{this.renderer.draw()})),this.shouldConnectPeripherals&&this._connectPeripherals()}))}setUsername(e){this._username=e,this.vm.postIOData("userData",{username:e})}addCloudProvider(e){this.cloudManager.addProvider(e)}addCloudProviderOverride(e,t){this.cloudManager.addProviderOverride(e,t)}addControlButton(e){let{element:t,where:n}=e;if("top-left"===n)this._topControls.addToStart(t);else{if("top-right"!==n)throw new Error("Unknown 'where': ".concat(n));this._topControls.addToEnd(t)}this.relayout()}getMessage(e){return this.messages[e]||e}setAccentColor(e){this._root.style.setProperty("--sc-accent-color",e),this._root.style.setProperty("--sc-accent-color-transparent","".concat(e,"59"))}start(){this.vm.start(),this.vm.greenFlag()}greenFlag(){this.start()}stopAll(){this.vm.stopAll()}_lookupVariable(e,t){const n=this.vm.runtime.getTargetForStage().lookupVariableByNameAndType(e,t);if(!n)throw new Error("Global ".concat(t||"variable"," does not exist: ").concat(e));return n}setExtensionSecurityManager(e){const t=this.vm.extensionManager.securityManager;if(t)for(const[n,r]of Object.entries(e))t[n]=V(r);else console.warn("setExtensionSecurityManager not supported: there is no security manager")}getVariable(e){return this._lookupVariable(e,"").value}setVariable(e,t){if(!j(t))throw new Error("Invalid variable value");this._lookupVariable(e,"").value=t}getList(e){return this._lookupVariable(e,"list").value}setList(e,t){if(!(e=>{if(!Array.isArray(e))return!1;for(let t=0;t<e.length;t++)if(!j(e[t]))return!1;return!0})(t))throw new Error("Invalid list value");this._lookupVariable(e,"list").value=t}}if(window.Scaffolding)throw new Error("Scaffolding already exists on this page");window.Scaffolding=r},function(e,t,n){"use strict";var r;n.r(t),n.d(t,"v1",(function(){return m})),n.d(t,"v3",(function(){return k})),n.d(t,"v4",(function(){return O})),n.d(t,"v5",(function(){return R})),n.d(t,"NIL",(function(){return x})),n.d(t,"version",(function(){return M})),n.d(t,"validate",(function(){return a})),n.d(t,"stringify",(function(){return d})),n.d(t,"parse",(function(){return g}));var i=new Uint8Array(16);function s(){if(!r&&!(r="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return r(i)}var o=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;for(var a=function(e){return"string"==typeof e&&o.test(e)},c=[],l=0;l<256;++l)c.push((l+256).toString(16).substr(1));var u,h,d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(c[e[t+0]]+c[e[t+1]]+c[e[t+2]]+c[e[t+3]]+"-"+c[e[t+4]]+c[e[t+5]]+"-"+c[e[t+6]]+c[e[t+7]]+"-"+c[e[t+8]]+c[e[t+9]]+"-"+c[e[t+10]]+c[e[t+11]]+c[e[t+12]]+c[e[t+13]]+c[e[t+14]]+c[e[t+15]]).toLowerCase();if(!a(n))throw TypeError("Stringified UUID is invalid");return n},p=0,f=0;var m=function(e,t,n){var r=t&&n||0,i=t||new Array(16),o=(e=e||{}).node||u,a=void 0!==e.clockseq?e.clockseq:h;if(null==o||null==a){var c=e.random||(e.rng||s)();null==o&&(o=u=[1|c[0],c[1],c[2],c[3],c[4],c[5]]),null==a&&(a=h=16383&(c[6]<<8|c[7]))}var l=void 0!==e.msecs?e.msecs:Date.now(),m=void 0!==e.nsecs?e.nsecs:f+1,g=l-p+(m-f)/1e4;if(g<0&&void 0===e.clockseq&&(a=a+1&16383),(g<0||l>p)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");p=l,f=m,h=a;var b=(1e4*(268435455&(l+=122192928e5))+m)%4294967296;i[r++]=b>>>24&255,i[r++]=b>>>16&255,i[r++]=b>>>8&255,i[r++]=255&b;var y=l/4294967296*1e4&268435455;i[r++]=y>>>8&255,i[r++]=255&y,i[r++]=y>>>24&15|16,i[r++]=y>>>16&255,i[r++]=a>>>8|128,i[r++]=255&a;for(var E=0;E<6;++E)i[r+E]=o[E];return t||d(i)};var g=function(e){if(!a(e))throw TypeError("Invalid UUID");var t,n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n};var b=function(e,t,n){function r(e,r,i,s){if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var t=[],n=0;n<e.length;++n)t.push(e.charCodeAt(n));return t}(e)),"string"==typeof r&&(r=g(r)),16!==r.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var o=new Uint8Array(16+e.length);if(o.set(r),o.set(e,r.length),(o=n(o))[6]=15&o[6]|t,o[8]=63&o[8]|128,i){s=s||0;for(var a=0;a<16;++a)i[s+a]=o[a];return i}return d(o)}try{r.name=e}catch(e){}return r.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",r.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",r};function y(e){return 14+(e+64>>>9<<4)+1}function E(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function T(e,t,n,r,i,s){return E((o=E(E(t,e),E(r,s)))<<(a=i)|o>>>32-a,n);var o,a}function v(e,t,n,r,i,s,o){return T(t&n|~t&r,e,t,i,s,o)}function A(e,t,n,r,i,s,o){return T(t&r|n&~r,e,t,i,s,o)}function w(e,t,n,r,i,s,o){return T(t^n^r,e,t,i,s,o)}function S(e,t,n,r,i,s,o){return T(n^(t|~r),e,t,i,s,o)}var k=b("v3",48,(function(e){if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(var n=0;n<t.length;++n)e[n]=t.charCodeAt(n)}return function(e){for(var t=[],n=32*e.length,r="0123456789abcdef",i=0;i<n;i+=8){var s=e[i>>5]>>>i%32&255,o=parseInt(r.charAt(s>>>4&15)+r.charAt(15&s),16);t.push(o)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[y(t)-1]=t;for(var n=1732584193,r=-271733879,i=-1732584194,s=271733878,o=0;o<e.length;o+=16){var a=n,c=r,l=i,u=s;n=v(n,r,i,s,e[o],7,-680876936),s=v(s,n,r,i,e[o+1],12,-389564586),i=v(i,s,n,r,e[o+2],17,606105819),r=v(r,i,s,n,e[o+3],22,-1044525330),n=v(n,r,i,s,e[o+4],7,-176418897),s=v(s,n,r,i,e[o+5],12,1200080426),i=v(i,s,n,r,e[o+6],17,-1473231341),r=v(r,i,s,n,e[o+7],22,-45705983),n=v(n,r,i,s,e[o+8],7,1770035416),s=v(s,n,r,i,e[o+9],12,-1958414417),i=v(i,s,n,r,e[o+10],17,-42063),r=v(r,i,s,n,e[o+11],22,-1990404162),n=v(n,r,i,s,e[o+12],7,1804603682),s=v(s,n,r,i,e[o+13],12,-40341101),i=v(i,s,n,r,e[o+14],17,-1502002290),n=A(n,r=v(r,i,s,n,e[o+15],22,1236535329),i,s,e[o+1],5,-165796510),s=A(s,n,r,i,e[o+6],9,-1069501632),i=A(i,s,n,r,e[o+11],14,643717713),r=A(r,i,s,n,e[o],20,-373897302),n=A(n,r,i,s,e[o+5],5,-701558691),s=A(s,n,r,i,e[o+10],9,38016083),i=A(i,s,n,r,e[o+15],14,-660478335),r=A(r,i,s,n,e[o+4],20,-405537848),n=A(n,r,i,s,e[o+9],5,568446438),s=A(s,n,r,i,e[o+14],9,-1019803690),i=A(i,s,n,r,e[o+3],14,-187363961),r=A(r,i,s,n,e[o+8],20,1163531501),n=A(n,r,i,s,e[o+13],5,-1444681467),s=A(s,n,r,i,e[o+2],9,-51403784),i=A(i,s,n,r,e[o+7],14,1735328473),n=w(n,r=A(r,i,s,n,e[o+12],20,-1926607734),i,s,e[o+5],4,-378558),s=w(s,n,r,i,e[o+8],11,-2022574463),i=w(i,s,n,r,e[o+11],16,1839030562),r=w(r,i,s,n,e[o+14],23,-35309556),n=w(n,r,i,s,e[o+1],4,-1530992060),s=w(s,n,r,i,e[o+4],11,1272893353),i=w(i,s,n,r,e[o+7],16,-155497632),r=w(r,i,s,n,e[o+10],23,-1094730640),n=w(n,r,i,s,e[o+13],4,681279174),s=w(s,n,r,i,e[o],11,-358537222),i=w(i,s,n,r,e[o+3],16,-722521979),r=w(r,i,s,n,e[o+6],23,76029189),n=w(n,r,i,s,e[o+9],4,-640364487),s=w(s,n,r,i,e[o+12],11,-421815835),i=w(i,s,n,r,e[o+15],16,530742520),n=S(n,r=w(r,i,s,n,e[o+2],23,-995338651),i,s,e[o],6,-198630844),s=S(s,n,r,i,e[o+7],10,1126891415),i=S(i,s,n,r,e[o+14],15,-1416354905),r=S(r,i,s,n,e[o+5],21,-57434055),n=S(n,r,i,s,e[o+12],6,1700485571),s=S(s,n,r,i,e[o+3],10,-1894986606),i=S(i,s,n,r,e[o+10],15,-1051523),r=S(r,i,s,n,e[o+1],21,-2054922799),n=S(n,r,i,s,e[o+8],6,1873313359),s=S(s,n,r,i,e[o+15],10,-30611744),i=S(i,s,n,r,e[o+6],15,-1560198380),r=S(r,i,s,n,e[o+13],21,1309151649),n=S(n,r,i,s,e[o+4],6,-145523070),s=S(s,n,r,i,e[o+11],10,-1120210379),i=S(i,s,n,r,e[o+2],15,718787259),r=S(r,i,s,n,e[o+9],21,-343485551),n=E(n,a),r=E(r,c),i=E(i,l),s=E(s,u)}return[n,r,i,s]}(function(e){if(0===e.length)return[];for(var t=8*e.length,n=new Uint32Array(y(t)),r=0;r<t;r+=8)n[r>>5]|=(255&e[r/8])<<r%32;return n}(e),8*e.length))}));var O=function(e,t,n){var r=(e=e||{}).random||(e.rng||s)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(var i=0;i<16;++i)t[n+i]=r[i];return t}return d(r)};function I(e,t,n,r){switch(e){case 0:return t&n^~t&r;case 1:case 3:return t^n^r;case 2:return t&n^t&r^n&r}}function N(e,t){return e<<t|e>>>32-t}var R=b("v5",80,(function(e){var t=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var r=unescape(encodeURIComponent(e));e=[];for(var i=0;i<r.length;++i)e.push(r.charCodeAt(i))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);for(var s=e.length/4+2,o=Math.ceil(s/16),a=new Array(o),c=0;c<o;++c){for(var l=new Uint32Array(16),u=0;u<16;++u)l[u]=e[64*c+4*u]<<24|e[64*c+4*u+1]<<16|e[64*c+4*u+2]<<8|e[64*c+4*u+3];a[c]=l}a[o-1][14]=8*(e.length-1)/Math.pow(2,32),a[o-1][14]=Math.floor(a[o-1][14]),a[o-1][15]=8*(e.length-1)&4294967295;for(var h=0;h<o;++h){for(var d=new Uint32Array(80),p=0;p<16;++p)d[p]=a[h][p];for(var f=16;f<80;++f)d[f]=N(d[f-3]^d[f-8]^d[f-14]^d[f-16],1);for(var m=n[0],g=n[1],b=n[2],y=n[3],E=n[4],T=0;T<80;++T){var v=Math.floor(T/20),A=N(m,5)+I(v,g,b,y)+E+t[v]+d[T]>>>0;E=y,y=b,b=N(g,30)>>>0,g=m,m=A}n[0]=n[0]+m>>>0,n[1]=n[1]+g>>>0,n[2]=n[2]+b>>>0,n[3]=n[3]+y>>>0,n[4]=n[4]+E>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]})),x="00000000-0000-0000-0000-000000000000";var M=function(e){if(!a(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}}]); +// 78a2369c92d9b19015dd089a277454ba18de057e1546fa8c995d2423586adfc2 =^..^=</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("#ff4c4c"); + + try { + scaffolding.addCloudProvider(new Scaffolding.Cloud.WebSocketProvider(["wss://clouddata.turbowarp.org","wss://clouddata.turbowarp.xyz"], "p4-@Scratch Project.sb3")); + } catch (error) { + console.error(error); + } + + if (document.fullscreenEnabled || document.webkitFullscreenEnabled) { + let isFullScreen = !!(document.fullscreenElement || document.webkitFullscreenElement); + const fullscreenButton = document.createElement('img'); + fullscreenButton.draggable = false; + fullscreenButton.className = 'control-button fullscreen-button'; + fullscreenButton.addEventListener('click', () => { + if (isFullScreen) { + if (document.exitFullscreen) { + document.exitFullscreen(); + } else if (document.webkitExitFullscreen) { + document.webkitExitFullscreen(); + } + } else { + if (document.body.requestFullscreen) { + document.body.requestFullscreen(); + } else if (document.body.webkitRequestFullscreen) { + document.body.webkitRequestFullscreen(); + } + } + }); + const otherControlsExist = false; + const fillColor = otherControlsExist ? '#575E75' : '#ffffff'; + const updateFullScreen = () => { + isFullScreen = !!(document.fullscreenElement || document.webkitFullscreenElement); + document.body.classList.toggle('is-fullscreen', isFullScreen); + if (isFullScreen) { + fullscreenButton.src = 'data:image/svg+xml,' + encodeURIComponent('<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><g fill="' + fillColor + '" fill-rule="evenodd"><path d="M12.662 3.65l.89.891 3.133-2.374a.815.815 0 011.15.165.819.819 0 010 .986L15.467 6.46l.867.871c.25.25.072.664-.269.664L12.388 8A.397.397 0 0112 7.611V3.92c0-.341.418-.514.662-.27M7.338 16.35l-.89-.89-3.133 2.374a.817.817 0 01-1.15-.166.819.819 0 010-.985l2.37-3.143-.87-.871a.387.387 0 01.27-.664L7.612 12a.397.397 0 01.388.389v3.692a.387.387 0 01-.662.27M7.338 3.65l-.89.891-3.133-2.374a.815.815 0 00-1.15.165.819.819 0 000 .986l2.37 3.142-.87.871a.387.387 0 00.27.664L7.612 8A.397.397 0 008 7.611V3.92a.387.387 0 00-.662-.27M12.662 16.35l.89-.89 3.133 2.374a.817.817 0 001.15-.166.819.819 0 000-.985l-2.368-3.143.867-.871a.387.387 0 00-.269-.664L12.388 12a.397.397 0 00-.388.389v3.692c0 .342.418.514.662.27"/></g></svg>'); + } else { + fullscreenButton.src = 'data:image/svg+xml,' + encodeURIComponent('<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><g fill="' + fillColor + '" fill-rule="evenodd"><path d="M16.338 7.35l-.89-.891-3.133 2.374a.815.815 0 01-1.15-.165.819.819 0 010-.986l2.368-3.142-.867-.871a.387.387 0 01.269-.664L16.612 3a.397.397 0 01.388.389V7.08a.387.387 0 01-.662.27M3.662 12.65l.89.89 3.133-2.374a.817.817 0 011.15.166.819.819 0 010 .985l-2.37 3.143.87.871c.248.25.071.664-.27.664L3.388 17A.397.397 0 013 16.611V12.92c0-.342.418-.514.662-.27M3.662 7.35l.89-.891 3.133 2.374a.815.815 0 001.15-.165.819.819 0 000-.986L6.465 4.54l.87-.871a.387.387 0 00-.27-.664L3.388 3A.397.397 0 003 3.389V7.08c0 .341.418.514.662.27M16.338 12.65l-.89.89-3.133-2.374a.817.817 0 00-1.15.166.819.819 0 000 .985l2.368 3.143-.867.871a.387.387 0 00.269.664l3.677.005a.397.397 0 00.388-.389V12.92a.387.387 0 00-.662-.27"/></g></svg>'); + } + }; + updateFullScreen(); + document.addEventListener('fullscreenchange', updateFullScreen); + document.addEventListener('webkitfullscreenchange', updateFullScreen); + if (otherControlsExist) { + fullscreenButton.className = 'control-button fullscreen-button'; + scaffolding.addControlButton({ + element: fullscreenButton, + where: 'top-right' + }); + } else { + fullscreenButton.className = 'standalone-fullscreen-button'; + document.body.appendChild(fullscreenButton); + } + } + + vm.setTurboMode(false); + if (vm.setInterpolation) vm.setInterpolation(false); + if (vm.setFramerate) vm.setFramerate(30); + if (vm.renderer.setUseHighQualityRender) vm.renderer.setUseHighQualityRender(false); + if (vm.setRuntimeOptions) vm.setRuntimeOptions({ + fencing: true, + miscLimits: true, + maxClones: 300, + }); + if (vm.setCompilerOptions) vm.setCompilerOptions({ + enabled: true, + warpTimer: false + }); + if (vm.renderer.setMaxTextureDimension) vm.renderer.setMaxTextureDimension(2048); + + // enforcePrivacy threat model only makes sense in the editor + if (vm.runtime.setEnforcePrivacy) vm.runtime.setEnforcePrivacy(false); + + 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 []) { + vm.extensionManager.loadExtensionURL(extension); + } + + } catch (e) { + handleError(e); + } + </script> + + + <script> + const getBase85DecodeValue = (code) => { + if (code === 0x28) code = 0x3c; + if (code === 0x29) code = 0x3e; + return code - 0x2a; + }; + const base85decode = (str, outBuffer, outOffset) => { + const view = new DataView(outBuffer, outOffset, Math.floor(str.length / 5 * 4)); + for (let i = 0, j = 0; i < str.length; i += 5, j += 4) { + view.setUint32(j, ( + getBase85DecodeValue(str.charCodeAt(i + 4)) * 85 * 85 * 85 * 85 + + getBase85DecodeValue(str.charCodeAt(i + 3)) * 85 * 85 * 85 + + getBase85DecodeValue(str.charCodeAt(i + 2)) * 85 * 85 + + getBase85DecodeValue(str.charCodeAt(i + 1)) * 85 + + getBase85DecodeValue(str.charCodeAt(i)) + ), true); + } + }; + let projectDecodeBuffer = new ArrayBuffer(41956); + let projectDecodeIndex = 0; + const decodeChunk = (size) => { + try { + if (document.currentScript.tagName.toUpperCase() !== 'SCRIPT') throw new Error('document.currentScript is not a script'); + base85decode(document.currentScript.getAttribute("data"), projectDecodeBuffer, projectDecodeIndex); + document.currentScript.remove(); + projectDecodeIndex += size; + setProgress(interpolate(0.1, 0.75, projectDecodeIndex / 41955)); + } catch (e) { + handleError(e); + } + }; + </script><script data="wC_B+4****2****\jo)6Ls/|*HJjJ,6rA+*b*DlNwLKzIUF*2OX\jVE`{sd9-?RFjR5Z8aFOycu2?+8ALNnK;e?@o0hpG1mV0zzd75=5wKvx1pUZU0g4Jkrs4-Cdl(YAMtlCytXn)UND9b}HKHyI/9]ENQqoOy0gbs(KGa1T`i*:ruqUW5hc~Eb6j/ZZ-]O6n_H?eYw:nM]Y4-_~,l8=B0X/tBzCu;5Whli=*|/N?ClwLH_[iG~|2X7\_a+Sp)59-^Q]X?Ru;j.m6Ojs*`4Vk1vRR2Dr=)*dB2GNl5rdjq?_DssYIIP7n^G/*dW[*;zSY`w+WI;\YDiS0_/q-^NGn+~`B*F[2hPt8-[wZfJBUBOme{/c4K7=Vzhuo[{.AN^I:6II{^|:row8+/dDWLN[(cfh))c_|1@(uqU*d^m-[[Gm9/m,IBUO8?rMBwf1=uH?X20sEixpL(/ynwz*l^B}Wanv_}h7Ye2:Jl[UaXd|?k;0\rLRAm`A;9*5Yh{8.GUmz|x=k3;+{DV,Q+wS=k56kufz0^4DOXXgKW(,[UvT7~{I|JUT(QN)D@e6zb4mi[LkPTNuP@248Y}GLyObTa:-pGc/yBA,cus=.`6ZI:l0f6-p|/rIKi8_uX\@|]UXG+,gD.GC[/WEFO?NMEW88+LlbW\P-;1+4Z3JHAI/oGG@o[nWet;Hg.a`n6x`x@PN)))OU\ZSSjO|A`BrgMejyuvRMY.RxOGP_1mCeFJUypz}]cN@Y0N*F/16nvTNz|cDF2tX,Bt)+h:@/__T=sN2J71joZJ;GrMwI7Py\:}8@qYtD-{98+kJd}*Ya{kwP`oF4aMD^09vl7R,m:R.D/UPd)PPOyeb6B.Y\dWwA,m_@tK]QLc=d{]7J0W@|[0Z^cr:W*?J]2*RBkx6h}MT5w@~dQGk:Rgjrcz_(6S.G=]Z,lR{IXaNLoyPBH:vWrdPmQ;O93QyCU~Qf/}co2_q4Gm3[-zi`Jk^-j}Lg9u7G/rB{-*mwLE~XvTt3Y=5ljC1Q^(-2rXZ,tre2]?m:.Ue-)**\q=**NA+**LtK)I_iWi;3?q^I\^hYIRpL5:4W[@JiF,wJT9dM;hFaEI~aje*)W5ZA6Wyd*m-+*?D=c7MyAg+*+03**gjVq7MV.dE,6(**UH]CI[z2a*U/h@*J(LS,Y];.1O~ZE5BcFZ4eZ:0,VJj9p;w;fcx5=9`y;RLiCJbz*Wd{0Am.lpM~{-:IE/?^3v}m^jv:DxXdzx6[5@DEqFf?q(`q^/PdmT_Kq:HV1{wFDdBZuhS-^o)]J7|,{mN+.H=wt2St4`{B9QfPtUFrJZ\aThXMUM.pym5B=9.z|MO029Cgx)xwTY.V^1zaE[nnd:pF3JW;|nypJ/3Nh@PyV,xFpKwaf1w~`SnMUu9tNW(A-9zEvb/x79RWOp94qB`peEdfWl/8,``\@Bf]GLD+(OE0h8}PiVjeg_/FBul@\Ar3S}:BDF6XJ)Sr/EzjtO=gi]h8g_qA}xwP6Y:{PVh)OWH40?M~anWU5eg@D47sA3=O4Z1MM))yd`5n.?NtZ,CYg-)FYl.d/f,}hxc(a-;=(=kl,,h?B`lo~w`hF[)(u1F`35D}GX=dr0G5n[R[va\VKk@2(wn8-_s*3|qY7SCt,8+6]t,y}=Yr3h[1oaK+qv5}N70qe2Q5P(EE0xd);xq{.wqYAqztmxr|+}ljC32;KV2+OYR*tqMDt,D6Sr?KvXx_vm:/}G]}3H,/:1;WJl{eeAQul)S.uCLj+zipHX-}e*a/RIi{,e){ozJ(x]xzDPCz1UWQ+@~`)-khGK+{^Y;B;r/+*2Zr**r-OtD5BBN\ay.**)9/**N****,=rU:-]ET9a\lO(N9vh;b*Gn;~7-?I.8?uI:UPwJR\,.P:?9eGPI=bi?Jbo3P`OH.fCilvgANyCA@x:+iZ5C^{tqk]Z*HuAUMbK^1rQ.c5\P=|aYW_qlv.DqeXL4l@V[mCs()FvDLh_UbnO;2|S^,_S*|:.kX0y*8@PW?gPuRtBH~A4;G_@`ZGUNFbRTTG4^u53/4N7FVU2Sb=r,hd^l/az@n?ruf\2Hpsn;Ki)./E4[sB5z6wiVJJr;e7Pq*f`s)KvD1(F=_5GO)auBE99?/4LGlx0\XJ4_j51Hm(cDQ+4zP=AIivZz`73ZqUun1sAnt?`gKcZ*dnmRm(FC~YlZkbF7k|f(Yi8S88R{lUXH2cZe(Furx[R:pY;gr~+AgYkIK5^C0fPHU^q9OzL{Y^gor0Qq^oMrrC:xyox8}Iv~=;V2f5{_K6BCaiT_5M@l)x`qOMx(+?:?huRbVV^`_UR[x){\o1@wC8pV+)iO\*m,xH_rXN(tU}z=TqT0loWo@3j^dFuZFlurAFyUN^MfK{p;dZ[8nUNiZO0LXGCYD1}rfhMsJ,7X`diHm6.Xb00lM/_Ax|kJuV1y1*BZYSbRIm:yrv-nI1lAa1rUk7`l2~yt;N)BE5eghz2nT(p|NHL\lak0iiYTP7bJJzBCvKUTO_TJsO7A).}KEBw0[7g:,vzoE,7VF**~T*XTX~;a1dvM*\IeSjK*+7ry6{c3=CJ1_,~Yu\k/Px[.BKI.kOnxDQ4RV+mCRjAS+JG]3U8/`jK@h8EX}2p_)G93,cEo`4+c2G2QRG,eBIUiLJ~:Ej/{t1QXPEALidJZk*^v\QR-WHPwxoF(k.O`Uu8BQDX7ZQ/F[LV;ihS9a1sQN\-8EKab=:dD85=Hk9(*lx-E8QOg5JHA|l;3XJV(C{_e9AffVFS+@]-C{@;dEFg_?nB7cbpRW.rLH_{s*f/4qxg)/rMiCbP1Ot+uT]^qYKx^`wh[DmF/.vwsZ(CjtOydMZ3n7Qx(0wA56NDDpcCW4^DBYLCz3o5\GbPLx9|/`^wPM76W4EYhX(4Cto9c.)ybTl^iDc~l14Qdld0k?.N*Bebct4(1_}mkO0B:YI0+Q@_SNfP:kY1_/Mcf6`GNm(1TVUxMr49NKM8}]I;ul`RkCBo73s9;*q}pM*HVzP7fi?J8YgM`d{mgXohJMpM`,1ImbgS`DtJ^aoHq`tqfY*ccYG8-d+XDlBL.r=V^Y-\\kjZ.ON9h*OGj7;Imul\p@Cr-o0]1)=Yg6AXEiI5E?Vc=*GF@J4XV+Z4H:Wt]*-[[4JNSJz[TTO?m^dC3o(y/{+=jjuwx9Jx+J_AEZy-6KP|z5zQk@URNOm6-(zsj.1R67L@D8(]~y1~=RE1V@Qn/Lh;LPm8[ZW0].O2Ev7Up\o=(L1|aZoI979^JF(+O\^.+9iJyCmb)OGUJ?V/^|Y-rC/q/O@Rg3cPj_Q(^rWYUn|vs^G+n`ZA\i;R@nFE|NFAe+PT\5tXop;KKkoY/7)C}Fc6OPBwrG.|1VHBgSOA9:IMH+yV3\a28II-Vs@/I+\g8-?Oj7NfJQ=?o`V5OpZUT,p`V2Kw7LcM5c74Dj=KBA|7qdb7==P1bwsW?y_(bP?u02]-]v(9AHjNsv/~i\1:AM6ZbQmG]LQd:[1Ixmsa[y=lt{tAzs_aeKEycM(E\_0^W=Fzk2{C`7f8Kb+PWs.qt_;b-P4CG:_ub2LALN|Vxhoms.zcK@0;dVqGLG;]Pj6F,,i4-@]VNxSE4l0ch-8?FTz7.V^alHLApv}wY02:=2lS}qjizrGtC0`~KRlEv^{x6BVy[.eV1A*gYKUJNu0OU-P95IPcjL9`,]T+@@AYObcvBTf5~ZV,+qTtjlB{{,{nza8S.=lIMD)SqAapJNbigsmH]Zjwvq,S~p4e?IRV(FVN=E]0_~;pb/cKw)oV_oa*2pA-+Z\aImEVPU/q`szy8ecsqRkyMT[fGWN5K@ynhvc55+(9b)twW+K[]_[.e8[^-w3YT[nhL+tcHIy)mPH-]}QMZ;^T,1kli4:P{Pe@FMT_IE61bkY_?hS)o3rJ3dpQw_pCq8Myd7f0^v2TT?]Ur|Z2ieB.dN+13(iyEhd@,PxokmN{oAN4g*]P:e+}vIoftU:c[Fj0|d-=D0mD_1Inx6BBcBU(S03|GDr8F*vNm9^aUIKvS6hfWHc{l)1up6qU9?DWRP@RFpL3_[nmIIA2oi}zB=uT2m`(JA8s\(*?q}f+wu/6-Zp0HlCyj~-?5luxv6PqP2cr88:t_vz^W({|fan1Ww(V4q5K,T+igZ.d0j.)VBB){2r8`]C\rdla-[aSdDb39LMm[TL:-B7Y;eM*5~uv9ptTjv4k\t4t{2Gf@Ug:fYBhL{uo-]Ev=1lDJdM1hO1TwO+lUSAt7,H{7ZWDhRlC+J+.\8{zOQLcp2c8@=SaJnc(3]9__3~?(Q/DW7KsNEA0=;{Cc=\ME(Q,JJ:pXr;H5ad7Yr]}E467wvsLWzQYJb].^_|`6,nxBiRhH[h32EDbgwi1(kp4PqTAr{9H`1^d0[1WT|DsBvZXaG{sq?)YtOvlY?6BzMU^V.\:kkpfkS((,8Q[{{Rj:t8F8o}yo(E8xupN|@9e(M)|IGNX-at/.ki=B`s130W`Bw~=`69K]7YkS|ev|*\--s@,sEB4M/bo13FxrTmri^3/Fp.Y@FYYQ^k(B}{hZX9sSGnGgrI^;Qz+BWgV^ewUA..Y[@\jFBiMR^z+KuuVz3[b`eF\h0Qf+ft9u{R~M2d3.o6ld;U(bC\+c3nfoOAgPfYj3kVLFPK6G:zaotQ.ERbhz8:Gh2pH;-J7R2TP+_EJ3W+NB-f9KZi7NU~i(h_*CFs@*PLJz.bVb9E}nMwVdGoEDiBJcT~aB1YsRhJ9[y^te79;Mzh_@:aSK7p|X7GbO3+:|;FfPvRF`*|xvXLl@+kNA|KDE9\Cr`0S0?[_*)ls={L`Y;1^h0WINaxeUa1y]Q_;QQEO3i9kI0hZ*da/Ll;c]_\yr)fV(1\A=Gys/I.Q([,6TE*8+\.vWrZCCzs;wp*w?l=zh^3I`Xk8Z7*~.CFLYR`=UwVnKy0y09IIGnyno{sR*}wIB.ZDGe3.s8Q+rSyxouQHGCiW+}dK7tUXg/)A?VS5ulj7t^UoU)WVNJk8ksUx(r5++4l{0sQ[.Ne7E-u+9Rl|Dml0fKgpKu6zf0o`_s-d)rbORX5L=2DWa8bm)-mD/:U76Txnb7-v30(:SmE7FcFteq+RagPB_camff|vwDFd@_a,6uoiN,}/4_8dQ04UqMf}`-T7O8F=sIU1?a2E}o0NyX1^|46ev7/R=jzAziTLKe(,e3)qIbghmAOqfnj5|LJCgp;2e:9/K2yN~A[P3-j+CLz\LKe9Fz03TLtlx]qnvqbQtE2UsKblOgDrB|2J_z]8RCu7lFp+?Mn[IQjCKr2R9-@ZUkF}UX`TaKE7\t9Ky+X|cn@,}VKjJ^eLFSM7X?hcFw\W6t:W?_8a-Q0zudYNSg1TDN]9R`j3:dXDbocKEmXuLdOA~@X6zisdl7mJ512CYy[TZDsB^GkvqZ;*JB3pt:1\l}dIUfjQ_4^jaZYxRzucWXiEM~dyZ7m,z[4gMpdO[aV4i=4GiB2XNgN2Cs4jqf9~S:iuW.*,mH?mMJC3-OJy{=lhBI0\eq,9X{ZrW,u~_=LFw(:V*;@Of9sU5JJ*=ILhwAoatna]\t}qFht8r{SN75}QQWwL;3KJ]I^oh`1ANt+Bd:)bO?ze]|C-IB}8jscYWDqo+{qyn*W5XMV=M},5(V.=Nir:4Etj.d1kSCi9WcVt2rho]n\TfzCfMD7s8BRQ[dNn][qws^P3Zrp9LE])JfS[yxLMB:-b9LbK7[MO`Vy}YosKA+JsP|7M;E3kH]Q)-GrvqfRl,oI\_WpvI.2lxbQ8l1_bu{/u-0P.q-g5@lY^\s=^NZK:)1w=A`Vng3Kjhmh`E3nMZ`(^~X.,4}tydT07f:]lkFlH8[Dr-g)fwE2L~Eww*po;wLV.i~+RzjA3bIzhK4cHR`cGf@Jmqu`dBgg1vH)bHf.W3eg?]k?B;+7i6]7Q;K-@Lj/fQHldJ_Bb/;pEkkz.R;cN2:wMKLr\O_Y*9d^O~[h(ul1S\7/ZN]EP**d4\y4YfQ[vPd@j2S~D/P{w\an]d}Zo_VjGRKu9Gih.y6yj|~lD+R;2(ewGi:(VRPjru\hvz?2+(KX5TSU_sp=x4;GJi2/oPi)^DRYeJtvyBs1wZg5B+cW`jO(6xPTrp_g@ArLJkX6Cf/V)Qb.brbfI.Ezt265mfljewaL7aE.bB^F6|nKJ1dS0GcxwemmwiY@|`u1LcH6._M/Lwc~xr6QTpS0,yBk?yFhRC8+R8aV9|z`f5,_ev)k]a?TUkGaV]7@=NeXd_rX4bH3=vPLB2h^y8X06*6dPbCFexLs5W3FP2Y~THea@oHiC8};06-W8p2Hbo65?AE*O]no]L1MBuEFfvw2JIM*aeH.+Ma^I-?R8]{UX,eJxelB~3o0=BT-DWA[K;S?vUk48Bq3lT1X._GbfuaBP@[@mvRcL.ny|ABs[ybo;Y^_X5,,[x*q@6n-aUXK.CZ]^.[9xSh3}q[`Lh8z8O4fJd)c|2Km?(L90y(N[{5yhu\[O*G6yUpCTZ06uH7DCNN2M5lwJeot}{)^Kmv(Wj-:uyrYl-?2oIWsBm3TVk`K_6T[M@Gs-(BrJ[*]c,pu\)cl+P68c`g`2uj0^w~\(~JdJvDWOlun-PE`@llG3lir*KBh4w1Hj+eV-AQ@uS6zzrY6A,=5tPOuZR_0z_GPOea9=Xc1/b(R5L}4J@dZ3;8k}wE[e8vCN)GnSe/Z|0Jzb_:+6;wz(@-:o,pn4o3/Lx}(vBDK,fzh,P16+j.bCB^Rb[{N5Z;@o:N0o\jL{?ax+itcKf3}GS,g*b*HgJ\D)kWltq[;eP)*,X:oxWk;cf;|-PEz+nM_QKM@t9i3/g46fD(W?.kXF?N{L4__f;J=jrsC)H8IA+=2X7hvSWsEEcJhIL\2hF*linYoEx;fWP\8y9R9(I+)lb/s7l`z`RAq}Hb_htBD1}=l+-M}gkX)ZNht2XHba.*dlPvA?2lO*i8d6:J[jiF:,rxQ7pYpQt*Vf{G6in9V(KcjVa~9gwAVsPh7pp?ems9FVPFJdJmEl{B9gRp_r9lRQ30~h,;NgBzF)c/zFc{]WTQB330=(|}dN^+f`^QgB\V`(^**=5XR{ZvsDE-/GGllIG\3Sr^Db_{GG}.Dyy](=K/6PSvPz^@G(KjQt?)}ahV)y29`Q=L}tUFEcNX+bVr@[|qu5yLYHVWTEH1UD*W*3L0dVW;d2^v^aY4@0X@UW9_Z9S8gowBhJ0)cljl5b2@oB[oHoTdU?N=8{|4(:mz0(HhVJ(JQ*L5mOiAODb}7M08gJi9NG;-rt6:aSVIEDXy[0gltC[~y)]u\94vFcKQa@CLxMV`g0WFk(2D0do9Lc/L^~mwCfbJXK@gR/L/4KzXnQ[3wp5:Os*(2Lzh[+|O1?Wz,T2osqyS@K*0{T1V?pO2b{GpOr6*@m068M@7y9-;eY~jwS.*dPt*Q=mkCnTsv+V{3Nj{]s;{o\rQ@F\,eLcDR]M|ZG@1vv-}`6ng82y*PX?)LJ9hwHIx7xIryh`Ts5-9WUep|?H9|\?foz~8Ug;zk^\yYz@M(S-7Po,OM:0_O(a\__f`qWGem16i=M4XTqRzDVHtlD(b`Z8=,V/pmy*smT9,Xw7hbfD1v~7FWn8hBvHIWl]`ixwiYmoH6M==4YTA-zan)14=Igv(la0gajN:5c\=]]uMPy3Vb\_7WDmwV9PqeiwU*\3`t|2bnE~^CH4sjxdkYxsJBuadZ{.()\j-E6\*nc^}n)BO[d:0Muhs0:Pi0fld.}_x+_?VsA0Tal_I`9yea0tHMxYhR~LOp}{V-JwrHAiwgDdb)MIQf?2cn@SsK*nGU_\PfQ44BK,Ndj;/oSvcE);uLf;_J7A;wU|2:NkW?*E~rixWDr2(tVur^{3Lt6JgF]Ihb.\tBME|v^*Hcxu];mkk{*bf:2WE=b-G5MQtK5q=[K9/z5FLG146_FSTm)JwH,\t~.hRMoLBVkcoA\h9Kbk\/=B19aVzf.NH,hXV0NBmmtb0erfn_SW/)e1Qv)e6W3SBbgy5b@.Z:O/Z;lR@2Yv{9Z`={D/VmwEnY)_S8EEms7\M2X+du1U{wMd=KK0]F4xkogXIhHLjZqAo\@~f4~t*.aIgB,b*^Yn5G5nAow.~kSi9Hlh(WtC,:o)(j`ai*]5Wl/4CsG*MP6SMpnsn@H1{J*9Bb{e`,uPf39Hz7{p+|4gNTYoH=85(G-G@yJl\{h655)s]UEp_c_RToJncUh3_^`kY[_kU7DX*/uVyF1knK+;RAjjkJQ[*2Q~LWKNH2_U2)f5*Lx@LA4)8ZRSKU[t_[+wxpR2AQPpF^VcLW^[;onw]30x).mg3nUlM4eo?5oZmHMy0`-0bj,^cw58yw1@mWh455/*W8gMj}.QTTR~cyTJ=Ry3bCaVUH5:8kvUR1ypN~2=v{-?Hav-5G`q?hOK,|o=v-;P^FOZlP1Wc(F9mZsVi*_^_.~7@.`Yb_yvYs(JH;MlS`sgYSXnETkY`;i;2jI:m;]E@C+khhiZq;JlRiQMbqIVYUB=1_7T.[Hq14|+mvPGgZY+__2iYv0=eR^PWQ35Q9kX;3jr7_Zm6nS=0Vi1Kgl.OORmcZ0(KUU,dc|\uRF~O-l*T5^9oA0wp{SMy,qE|GS)AjIgQ6H+zb5`3pt2oD[vpT;/qT2*^;gMXtQW_hM-|Un)Qu6iW[O:cXDarlm-M\fs^l[ipy;Dz3_\bg[O2kzX\n*GRq|Q,so0Enn.)5RZs\1=AH-)+_x_U*eNdOi~ZbhMWWTg8Bh\+uG*4)k3wB~C0,1V);j\tdB24tu/t(YD3|Y`]P_Rg=1wF*4PF*|7|@5kA_94em[K?QvXx~rqnXm7Q@^-+)[QGzYR1^;mAV3`dC7od0g,cEJQ3nhJmLBlU{2|eeD3I5v*y9,d@2\=_X+ok9Nkm@pOJW*Qt8-ZON@*[Frk8kZxw|hs?*EQyF*}s(Tq7u+;SO=P]}eC[Km0kh+Pp~?ZYwAm6[LeOigmoe1.x+]Mf)deSxc/QbMt,,wK0p^at\q::4aho-MtWOB(l^6llba^[giB)6Db?pT*(gM;LTWnK6~c@H|u^AXPDp8Pn[ElNpG}xGFq6y]x1e5MI{Fm4+e61xqln(Uc+A=:.zBT1@yts@@DR9fX3O5Q`K/LC{S4Cm1RIGrPU\\Efdd,X2Q)0UY:+ur-WtWb9So0pECUhS9wJ9@LvIj\65|N?e+.w6MxL)ld*0tH4WOr_~,_[G_y7Nu/hg\;:bewDV]OyTOZA?H7L8Z=Hq7h_btLW5]AEKJ]T?o}NpgaOBgW]3*)E?5,vkCbPV^q|2QrISL\hhohypsfkr{PyVFyS8j;,VJvwPe:rVGn2ILaPikiPDh3iL0ND@{N~kjXzgJM\.ToO`2_kyvIkE/~kPJLfnCSJNG:~Rf`0y^dGU^zLMV?iy9XoT_jQ(kF5\69@V0PIMqmfJbCicE:_7^P5Dy[purB;d7qWaiu1]*rCUqXMNw)7=377_;}xRHz4bE,)8VNK|iV{r{,5+6bIQ9^W;gFFPR\4lTG`|SuIpiHRKf:b1X5sW5;MZ)QVsi_kb5v8nUQbp*=CG/O(w:\?rZ2}7TsStEFyhoI_\^AP./y~geyc^Kn;oJS[gN,;.mpgS1bU0X[\~3q^lYENBp;x7\L`__]fWD(=qXo~|+J5t}Cg1daCW\Hibl[j6r4PlANu`J;Li|.MGc{6reqiLH\.E]][6Dw/J7NY~ot\KbcUYZ9g8t077vVxxwd7jb@AiWq;@niHm1gez;`Bm-cP_b-uG~6ug+~lm^7d]7Pw`McS`)Ql^Xvc5qf0OAuoXR^+2vgmF|1,=0R=G^IaQ7e:}Qon5e9cTlJ~G15-Desex{e5(Wyf=iqP0Q+lq7zZKn3IEo^W,QKC/FZkH)_QgzTtkB1RFH+,CVrLcS?Y]cK4^Ut6U3Ms=w2@cPlT.OYpdvC;bFH:[._1u_p6fx?jXMoQykZ?_XuDpMxivg51k1:b/,ul}bb:PTxULvhJqE7I3b40=22i-=x-oPJ~zj*^|oC3bj?2u\jvj3/Gg,4s)qw_rZL\BC*a-+*;3W5h8P[[SiFe]Mb{pWu)4R_lOp,xvt5?XhIGH7z=13J8V`j;Q}9lNh1=8VQA9IgST3f5r6cI2h0w[;hYC?F;,nwc5uX04I,ZH22Mov)\.5z-F?Ttp;Tnf_;C36QYEduHt~J:nHqG5LC60A]]@BwFnB[1.X+Y`,.21-mZD(ME=b;cysB1*L6bo5(W7K^gf?.A`WKBrC43BCs==[:J^jl53ip-Qax32K(fM^qK[mK8Y[HsN8?^t_W{ebPw}ibnC_2o}?E}u=a82LBekchY|0\d1NSgtdTJm_;16kz[vC0m=[.+.g,o8w,1I\NN[gmr{d*0;fd.Dx[.09aFMg(LObvFq6Ipx;^xdQLCrnjvBy0Unz7|im~~rivekIVlDIP=stDg6jCI4~IfqQI@d5p=.RQU,Q52U;s7@bX`xPM,QA.8?fQTjR1CM@~]U[4|.w6b:7]+aM)D-GyL)6VR[|eGh;()Q?RQ=T?Fe3Rks+q8MD[.P:NF*;7LxkopsnS:S7MdW]tC`qgx?Jo2]}so]7lqmxEhQ2,VaL/U0SG:rp\M_i7`oXlXe`.jf0R6K{_2Zmz,zwWJjXWv]e|][I,TIQK@lp1x2UW\CR(fVuyJ+7a:w@xL-gpZ(kSJ=XTkXCz{(X=qV;*Nc]]_6cP7WyE_xr/8@FuT)bwMCaol@yo(e~f98M{YFN{r.dvxyozw?,4y[cv*+rd-U?K91Ir`/eOrci_y[h,`-cqCZfqybDOdcuA.=4g5W=7eDNAs}=ah9Q)*?sX-RrX9fLpsE5dkn-aYBFqzNsNdFr6CHTPQB3H8NdglBxnXH+(,`[A0q(5*R~[3s6jVCIwuV2nxtj-vedIkbagac.:ryowepiw__BbI~4pGv0\p7U~cP|?_YT;Ry.0=^2@,PXr^eNufP]b;mX8lwDYK\4O\B87sOb4yTMV}DTGBSH@I`tZMfcV*[8lknK4FKXU:G4sLi.PSsW\=7eUjnN4:uff8Ti0OCYl+2xPZxY|tQCD6W.Gt8uG25WuZg]wG;8X6yp[;T3nwIp6Pg.iSdsXKnFE3,9G`1O6VGkDWMtcPBWnkCx:ddrMu02=JVZ@-tn1M]8|=U9fQVGRFg6MMTc4WqkP),hwG(3(N:PTU8cS}|T/.^oK87ixs5fEu;4Iz=/aE{`@4)jsnlw7|{^Z~L-wM^oz0@c/5OA=84{374Wq;|udT?HBNzf`Sjx:*_e`R{23?QSV{vXA*dbMRUNC\=Qc?u}F(2o]}RM[M;i-k6}x)k)0JCEN_4CSGSx9PsJL1\-I05/Y[C5vxg^3E9J,pSY-yQD)N7lB|RbM}BaIQ6TV,OFv3/-~,4_[PfsMM@VTPjIbfr-7{\_w;bAPVq~61zvUW/i]WIpO=)^uL~n@rq)]ng*b=Bb7(_\073[u.8N~Xv43r0[xGWvRelo`0CM2}OvqTuNSC7R@JY\EmcgbqWY5:b+N~wHtJd0CJQIiM,NhbaegbH.^t2mB3mod9-THAZ.ik(g\zNM4;8bcat4,mV[}Mk:eMzg^.(/eRN91pgw`c+u{XaEKPb?s(oED7fisFXF]2dO/H[)9:)-kAQONT6vAte|2ei(qx(z?,MRtkP9fy/=g(*Bp=(1BN]rgq*Arv38Q?O/,*PtH2TY5gy(+no1Phr5?;\KZBgg-rpi?5(BEeu^8Xb(xgXoWT2am]gfgWiX(x:Ebf}0[VW5IUXvdVD05.qHmvO-s\RN@.fv7xA`fcs4132@n{s2|7+q.4igfKF.AiaQgP7BHu3Ny_/mtbPEXZqRMCLfUJc\8jRZSWzke[eM^MDM,3I,bWzd+NeciEH]Rl@OlqzAN)+Q`E^Wu3V(w?0h;[txUpLgo3H3RUv9kiFGd4`qQ3HSYHUrp__Gzfo=Na/b\CE@3,M|kjUwB8x@46LxZ2R{y;eC-c9g.Z9]7k7d\\?[hIGl.a5lQ`aZ5klfNWak:xf}cjk3;k(~o3*7sR4;GP)z7oHRE^u=j`O?;\P{VNDs5x7b9|a(yh-k9f~3:d.Q=SF=vqF]F[H9aVeip}XK_{JYrSDUlBCSiavBq`Nys?7``f*K0ajT~NwCJq{]e;FP2}-h-=;d?]U~+}p`[\JRnDFfsl4LCLAZpY?-)2k_:(l?]lKc+L@s9dxZ~mFTc,ehTJ@VZ8~eg`Be9R5wEICdrb5{O(a@Go[F.mKV_|Fh@9~x1P-eV=_51Ba_Coo]Qe.:LT]20}hv.NXL{:mi(K(~dZ@o+j{}NfZ.Ma:dI:bnfmvAUG-}7gSoQ)ETPm_0CxdocD`OpxC0Bwi1i:beZ[QQnfMMMlt{*dp(2qr}b5c04*k2Rf=a7-|R*-oFbyfW3?sNnb|,Zge+T8NuCt1wvtxDL@jZak.|;r7_8/GGv;A]uQT-a2ay@wsHpFc0]d(4Fvp+Yoo1F]2,c9.6~zW/,YD`pj|/X0w[3@V1()-yn4rRkx2nqYtrIZ_/:rklDsVOKC:CCtB7}T{8Ns(zD;ZF;FK5nnN0*w9RTbNK~Sr0di:J1NT~OVh}:FOSkBmq:wZg6QUEn;VDa8@(dY8Z[ca.^:X?fG=KIezCq}c]-Cpz8I[OBTWB1_1SLdLOzEJOAa/wAbA7y8V7|ceVW_z(UjrTcRhM]VC]OmqB=lI,qgiB]Dr/5`FCu,LOc+GDp,N-q5n9/4e)|I}6k}^)b7q/XK5\A,zsX5j^UyZjp~BfrlyP;3e^E?4H(6eV6~[wGO9mZF70T=O,I./C.Z4Kbhw`8utpd`kq8jucB,vrp)`Ovoi]4bhCC*@JIGnzv;)or+^dN|3ZgQm+(D[)`X[dGvB,cauNA390{-xBpgDC)oJ|E1R9*gTS6|`FVlWw|pb8LS2l`}3l]gZP`wACRyp)zx`Sg)QEnOX\-SI}SUXBSgA(=[:SK-W~-iZ/SqjXmkri3BJeXcn_~6`KkN\9J7kmF=sZ\Q=n\mjN3271|d9`WJ]a6{q^YKLmDzjD(bBPOAP1oz7C7NaaG):(3Lc_cp{v84KXsNEe-XkHuEi`_uONx3]kVIP-^-)Rw.q16uGwb_`Wm@S0m[tI{wovn1lY(,|z:1V)JeCpiQJ:xwDHNt3t3HQ4Sycg`S-`0\vjc9S)_`@h7ZF4L4Yk9LTh+Vc}iJq=q^`;DAly4{?aqq16X4tfCNKN8,/26f9x.5?gyR{(A@Vq:1-D0._Nu`JKb:{O,/I@v,_5F[qBOCqmpC4h,9PyfxDd8[rFi`+})C+vdRvDN?=B8m{P0.QvI8T4fh9{KK8pYPyjH_RKEL=J3BT3e(]/g`lC7/4o@a(()6?y~A1^nGORGl0+3cHEl^e7s0TigNSkswEcD):={J.C=WDp0*MY]IVjkE7q2d@C=_ptosOI;\rpLms9V61R[DzE;,N)16dH61TKD1{1pSIIw\Z8q}9T}]FhdYf9|mvE(IQENt6iU-eAm9G:y`:leY_[+Gm?@Ex|_,Pw{94d|s+uNdtie\hI0H_?R-|`l]~,uYvBFVaZsZaV@1}vYw|t.q9dfz0;.hzWdZv.K_}?1H)2n+;s?ToYEE6-.tB`:QV~Xh+/[=M1e}7Fap\Q,l@I50/Q^HQHWV,gGyb6ZNeLU=1(L-3;b6kd{T`]BG6dVCHErJ`7Zy\AyP[5(|Vdi{P^nOQ:y:EI\I[~M.~LP7EIgekfXo3Pt+Gehgf8FrwU111q]:|a`ivIb`Ac=^cH77Y;zDI5+=nu:K):E*1i@BVw=WYez}3PatltwvlMo;43bm3E+ECflS-[-{f_~FFbBTb*1P.f*lQ}^iE52xIhcU{NCBsO`Ehgh,{FPV.\O|h.1?U`W6Vl3vE}Tf]0,ZBJtk|tFTqk?XAq4z{M:0YZT_8Jj5NtEA6+K7P8sA]xJr9Dg@A~MzcQ*q/ULVsxLszq=Dm)(|seK{nyP6}AmH]Qz5IqzgEn[~RC;AO]KC|5P_,r]{TCtYTq,Cyx2pt8YHF.L*iweTrHgnsWnF^LQx[e{YgY:-Dz)NC)Y.O?(a{)ZO5dA/8MLYn35`su\N~G=wC1SY(NTNQ@y;=b=7kN@IFwdyE1}2(O~3MR^u^1^bPqCHhdDOi1z9p_d.fx[EEv*WVZ)7p-DZiKEh07KnbrjHfwZOV?3t8qn@EjpNuW5A2kuSr1z2]?si;l7e~`~rT_/EALsTuiuE?iPnuE:yTmG,D]1{+E8|+lk;=)/C+`JvFw{B33yfs\1I)Z3)=+])cU`avCBF|[L`lTB_Bu55AMbmG\SOi:d/Gj{taNomX2J0gRU^acoT]-kTWo-?{rm7)16T2=KO(Bk3V2qPIoRWb@E-:1-DzHMa(8Pb(3|9F[IfED^u0(9Eq^7FeaSxP(==FELC;BQc@@9-To?YI9oM3vIuCd`,5pL}nQH(J\a=c;TenPkshVfCz{t}Mw3)FJUl4p0WpihPQ{n6{}hZQhNN05IG,/(RUKMJv~wK4{sZT]1aIjE(lNCFJXu?^jv,yLBW,xX:[zrqHeZZ|U?YYIOE5K)L=5yxIYx`uvhI{3Xz4zhYq:xj9k9XPrT=(ViQfj);}_leTx7+jEfUm,*;J/+V)fhB])b{44{eNoIE;vI03l.fRx]ru;}iz/5w*\Soo)|s1y1wpH9t^u~0[y)2C_61ou^,MCHU|ZcYA[wC2{mh2maq:A*Y-RvzaE0j)zF-3hGNCWc6~5m0MAv24elAUd]kzFj.IW{M?pk29:je/1+*+^AAq/k{ieAQtSP3)Q_/9jPTKUTivreVap*EdxldDp}c8Hk:Zy;AAM4SgtiR*p_9Fy,G2sAe7+.J=tap5zJi_XNbqwYVP50mYGh]2er3DJ,HESh=Y_,F|PE2P1EO`Vj1XEv+m?Hbl(V1fH.)){w2{5dg4de~Y;p)]S.KfNcdn7N]3{4KF0_jdx_aVI^lCxE=1ft8TnkJEY^eZw0pvCt=\ukTFN-E7}q0JU/Mt[ZC9j}gK?H;md}1AYY-:u8F2|v\Tc2_EZ[yQ~tUX?|909`C*Kpf?xh_HyfS_j)DxZW)D.PxT[gOgBX.+X01GVqG{a{}x,R-8s8HfT[v\WG/JG+g.J2u^Qa.|y\UcWYo+{n_gr61GG10:Lzf1F9c2lHf24GzJpSf`R\a)GBdKeI@a4)Lv6p.y(RvKJFNnV-.*w,gt[gX-{8C(5YO;|\]}7}Kj\er=aA@K-:z9V@@aaK]KiAQuo@X~s]KHiu]k-6liJ1thqbgFWB-a_e322T9|`5xzs-{c0=zb+B0=1IDKmG]T8ax64BO0Ko2;={^xT@3ZV=d\YAly90J+Hq2pDgQJWbOcj\)Iz-|(0{@DO=3|+Vhuvx4aK8si.`^8.?Y541WG9mSHdJUkU=M6lNa;Oy7SOz(WP,h[D}^b4-]Zl({`_B9f^WE9XkVk]`A=_Nm_amXDgL)z:/|Ca:,xChvPIpE*9QROB`n|84e`NdgmS=?ZVFQD=cwB`GG^A`6ucVs:2fAr{R9,m(cvApZ)BH-6kq-44(9-ce_h|c`p]maV.WnR\xfa4]Ukc.HoIISzCN~6qMY6Pwd:y8[b:Rl.0@h\@k=5^qFqGz,fwy`lhOW=QOp^)6.+fHs\Z\+ZdlB*^Pf^QhF6LuN,9@5mB3/QIP=2rI[ksFGxrT\|43\KS`cC^o5R5oVXPK()3?g0NVdrL)cvKR(I/lbOUUL.|?=+e-`1/G6rl.Aj2g]AC/z3(y/gjue7Qh?ixyJp`F@bFsD8seKY9Q}_lG{oEBIi_-/Jde|{tPTZ=qO`V:6tvFXFghA])iO`l:z\LJ`r2jobv9p~]|[Tz_\Pvi5W8.tMmEXKkB5)~OykOxu]9vGhB76?LIL=-ve55JReieH2/@wmVgx}c8p9la[Z42w[Olc`czk:H@Mm1NkPBGUyQQTUK5b{[2EG[P?SsE),xGXM=D9y]Iu+FKvqU_/a^Epcz|*A[wqgd[GLBo=(q/?32P`D\U{F~wANiDFWArNJHatebACr1{R4ReJN=ITW2a@qdV{|MpJQt)b;/5@Hb8/XRT@9_Gmev(*\7@V7*\:)rEbHK`Z}rZ3)W=}@-x[/pQz+1y9Kj;,\t-^GQt7x75*fj:[i\^q20(jIYh+0sexoq5p-siry;-*OLFZ(5.7Ihl//q5Y[(cgbcULJFq7V5(HTUaYa/pSFAMB76j}LJSQ4qs}cafBe7(+]?o5V]y;iu;XN3Zg_k5d=H8REGi=4w34QA.-[b{.1zCvTORDH,I)a[9PqYMpoqu}UiQy~}~Z9^nRyQq_Q0C^vW62.4tV?AaMTfYmvhZQ?5SGqzQpJ*it~YCm0t0(^AjDg0e-KfUXu?wjPx+3[t`MRsAQCRap/r8U.[SwJ{QE5Coic9|mjn=2[nR}m{~e+WhjNkH|7-aSGJAS)QcSf[su1K^TOsC8rXRXl^MrXnFGb:BdC8Z9@?.e=CDGjxWZVkY=5oeE-bDMIE:(d7V*?-);nB`D0`6s6p5]thjuuvNdE\^ymyCEj4:XwI*8;PNek]gt{YZsR14?rl00J(1U`LCon;*R@kBgmfH/[(o2?nfEeJZwbHc?09MzW1AEv`C_5_Y/`l\HNQ[{W,,~9r`nh8[yra;?=oyRRTSbpcHU5rmdY*XG32ts./}_9^=tggE|x5^E~eqF11h^Tw?=06[2ag{s]ZC)MudQkZKz(NUcgCcAUABr@+-CquyV)x[ERtrOX)/XPpYuZ2nBv-\Hw@,7+@q~xjaH`;MD4P,_sabjoK=2Q@Jm`PL4|/_JxAYe0*SKgOVU-;r-s*U(4Whwwt}rE;^l{CCq3_l}CgTmP-AHm+X~XvcT?_^mDL\\/Q/EdEi-PE]cp*WhBEzZBg:pI0\oa0Z2LKvOPaR.IQ(mmxOoxQ}CRlQ91DqQi+QVbPk1xc6Bw*M|PL1Lt_brgl}LDT/Y{EanWVieu`n,NN+jQS:G0YDIV3~o;hOu:@tQ}]or,u\9_{`5S~YAP2mZ=)*H;vgD3ZdS0j4.n():3VDdB-HA{8qj^/Ev2)W^`K?e)_De:0eoIhD)Iko{5-YZM1@sy)Th,w8AX[a(.tE@@t)AW,]YcZ][ijdv^qN4j)x1E}4_s-qECd]+dsgu^nL9}5/f0*?RTw,THcak]yEu=D=cd~c6oZbr*:XCIQp{pCBzDE*e?rawG6\WXP.wICBWlKeUGb_gZN/Qzaf=6?6eNeL`Q?R\p@Lf4ZosaYRl,4Kic~QS.v|_=Bi]+xdz(w9K4=AZ]1NBgMhP`Vuhc]AW;B=\UYl3Y|sbkIxKYUQW;):w7aWPWGU4*G}*v9UoR839p[3]VicWxK4HF+T*txOahNnz1@-);q}I/SV*oI,IBxAk}floLwMYA=*=RKG._+|0BkSY0/9yy.@Af2uBg1D{CrN],eIRF*G`)t:wwN\8ef7M;eyySvrcdPi*,8*?F]*QXrr39Fc+e]N5[^z~F9=j(~q1ZG[bq|wVDMw;YC9vV*3Qn3FW343+yK:p`+Svp/U4zq7r*[7KBl\yD9UR]04.KPMlU9Ua0nyT3@p6|-xndWX{a6U.~9^Ib9c0G?mW8K:4*AsQW]/|D8KEnOqp.isNfCq1\tdox5fzyRv{LCnQ{iZ[RE@g*Q\W{z8eh8SYLm:Dtp-f6Z/2@csRSK6T0Fr}[`p8wBmq*71nQedwi?mBVVhU]Ft4_=NQh+Oa{VDsz42vH^aH{^b1e?lGs~?5_\R[5;IsKlgm5LPyMQ2YM*6zdUJ^M6[S/@5f3/@Wi8d0az4+C`^:gOAc:RAv6@dhe|t8*]+Oq1}CTakWBpBeBJo.P\Bue^23B|~{IIh27{yX_r|nV-s^tzg~o/PWQSNSlRq6^s6fgQGKE{:{HrW52t*jH^/:Fw0vDJb@[C3rQJ)F0ZT_md:l:Xi[C30I(IJa?OpPL46v^c-L.2dfW.bdZ@Wu`DOH09i1\uBp+rD/6HPl+ONW;P@X/[\2+K/0``pxD?tm5hrnK?U[U`)vlmK9q:u1DpQ42zVWHb5wTH?4^jRkbrPr\=CvN824ov4RLZu+X5xmn[r`mPKUpmSf@[ppS[Uc+h-Lv|GUAFrAZ,vI^I?T\]-6=E}TwWIFpA4vud`ejzGFC2o[gbN+erVU9PR~VXn5Z82pM?e|J8E8CNzR)1aI;K~9Fl]1Vv[S9UDL0ptaI.SNMyv6Th9(U36qQQ..dL9GtqQ,TsDJar:|^t86ND2Y=l,o(}1`ZYAsQT2A|+v8YQ1L)F8dHCw5VZA^lP5D{[Iy?7yRG^m7A*5n}2H0]@|KF6H-ZQKsA~irHQt1;UBw;AncAJ{2|wnK|d{Mnp(NE_l}Rm;:0YYsXv~CsD@G7v@qD3(KY^j3B[k1;?B(_2B@IlR8;D.VlXho-LqxMb(+`a7d];]3\@Z,I5qcO84X44?;fa,1^.Vf7Vq78hW,ydBm;892\4\j4gZ2pr+097?8W:ZyWBJK^_M6U}3+1=DRSfbEVdqUm*WwBD07jx{@[18@.Pun)md:01[.trWAXR\rYuTWZxN[`DVy8aCqMaA?c;,,bCH`;J-ss?_{lj[l[^Aaa};@eVPD]gQxj~p+==[`olP{d@9/kH=vG=PQ2+F6T6emW`EnzWA,AFX9o7:5\AyXeDLI^[u-z8wvf-CNHvn5;eB\qPcBusxKWC\q/YBZ(D1XLpf\5LrYlD/6UiZOcJfn8Uc;CX90JU~p~cs,qsz/dFvR`9.S6NgB1rTpG,*U}X4Js:AsV=MhqldhOjd,Msm:tsnL0UO)nyeP,[CJqs5mefsfg0WqzIH;]0Ik0Tq^m`7Ozn1,7NFdM=\G+CImRm0?=zFgWKi1k^qP/p_MAVY?armm=\[rVQ2`~(u;uKJiFpOg,vkKR|~Je-sSRwF\86{mQrw~/tMWa:mO`v.IHY}t=e?0._K_..e,H\fjy6spI4i7^hM:*/j~f_zOQI*1flq}qTkKicR^fmgwW+[nl,WG.Kwu{M+`^FEg*wv6M{O_V?;{Jbvq),*`VnfS(T:PBtLYSLV?FGVh=d}DVN6dK@p^Su6;dC;s|(E1zPGW9Ni|a=1uHK/z~/dbJD9LL]8LpY?;l.jrnc6yuf/.?^tssOV~45tKq\{0_[[E05fX;?nqG2qBORT(ybs)rIs*0E[-zSVb?qu;+]NZw1GgyxjtwjZDX{PPtgO*Au89+W3ju\t_?~OH,e8B?Ws6S7x83)9ER7`(DM~Y*E{e[W;jXcqZ\AS3N?i]sf,dDr.q)C_sdu|+-]]AvKS|4N{d/p4farsHC;O/s-Q;h=iHCemnn7aE/3Q_a~.VeO8k8VVR2vsX~bWWNP\xyNbVXst`;1J@n~h71kCM~eOrW,_0sU*JO~FUh*Y\BQ~cPU_h/gn(fkEc6S^Sd-pkVhNk,\NdjUi^/A?m,N7-k8wS+K^lEH9E4*Bb)`0VmvMVKMBLvA^;x?OA?R7(0L\HTdEI{r)B)+{nwHGD-/g?)spG?P|y2+~hzdVOsgRZi(ym_h/:On/t5YlB\UIC.hTUm\LtJLHL*n`y-[E]clS+W`;F.*MFf;w/G2_TPPTF\u~Cp7m9BEaSZsn~\|LKm1vw[sXN:\IxB-|h^k)JC*YN0e2[L=G~[~F)u`5_@|F*wdlE(UVTC:btM[w3BNXow1+Ks5THJDK)uT1hIenhXrXCCkJohuf2=E{d=adEL[\j+rE=`KIg\rr)S+C6l)8Kmvv=,a[asR3rC:NGP{njGV}9_PIRQphL~D4sgY[(CG3ojNIH+8d@dZ00oR]f(DOKWH5z],JldxI]x@VO[L.(i}+xsAWo6IV5C^kmH2|@{3d\abR9[cTqcpt,:i:7A_N_8swr.pd)C}fRegCbW^^i9\U=BWzK\ed8G_48ORV\t3ySVn7FS(kWlmvDvjm3{NQM?Klz:(]w-?s/C-WZMboN:3{[b9KydVgsMH.Db1Rx[\^)n+VC,{1npu{N+6;x666BU(xSpfMvxpn[Thcd^\pj=[[l~uyy{2r)+:*h=syK{3zRx::=:9V^Xy/A{+g(dDdRf_z4IOdNXomc+g/_hQdjSyr4:FC?U;bb~rGDY\XVBQvN0:;b6}hjuL|mc6pvFOMDL;LOjhpqP:g:Cw7E~BY@)vV\sualMjwx[m3_3Q{r\*9OHz)1YhJCj~5=EuzEPb2[Y;q*q7_1T?Dzl/xA:gS=BH(QU(=HP+`s})sa,o1Y4PD`x|hO`:d^,H?In_k8X6it;j85m*PO1Lj:l_CLBHs1jYkr(7J-eP:HB?Mkk|H1z3QXONb,x`:?GLazdwQFCh?2Un6o}dJNQH7FCsdQLQs+BI5b;q?4QNPo/Y~I--JmOEP7F{s,Qsx|sG|PVZu:kz5ztY^*-ykInxWDyP)JP@l8E73G?cHD,9ebXZL5ZUfR*/EHuH^{eDje-yO657ET;l+le[B.0OCP1D.IndK`}]x2QA_vT1wub6^+ePb`szuGoUDxwj4`I_rL(;5i6p/V*GEso-kp7p*4\ysL;iyr{RTmv_O+_ydmIC.jXr;a`KP4l^{@~mnfu8FS}*XZV2Vh-[cX(q[Q14x\=O)puVN*FNlzN?^(y;LhrZL5udJxAP_*|l)mnTbc:?d6^rU]_rG/o})Sbf`?~;gHUI^G6}Qf7@oFg=49QfHw/pbE^QDxEU97x{`rCi5nuF:7{dV+u3)frFl_U?|;^DIXwMdtI)NvmFpRoB5LsmD0]O@Q_,vEcK;9L4(yAOvV.f]2JH@B@joj8lW|K^HpFVK@3XV:)IbAG_wQ{cenfC_QqdCAo,vbU\s}E/,8P}SeRi;PXj_Kq`_,py`P\jUX0hh9)/J9Y;p)eV`7v9AeHV0vVFm(e3-M+W+t6UAOZ}4oR{ZkLn*hI9DO=c2wNI8`3K0KREFQAJR[pQ`djx/OAa*4bDbQ3LKuU+v({eQ8I*|ykl\d1R.Z3?@H?hEY486aMs_z]`P[A=XiAY4mX/*FW(Ngbki:F\wZc?4qnwAiOup/S,BYb,?mR`(hM.2?sfSw`_zG89kc9N8SpBh^zz)UKMP.oM2]0CedH`oSh(:,np^Gk8R9JkBFmZ1LxhkX?)DIpFEhDHN,GQMS3OBX)4lS63.LI8qqFdwsR=-0e-?akI+Os_mi2.)uNe5=qXJ,^^XFBDX[jDD7fW8F^UHz/^YJ8Mh3v?_meu~OLPG(0^yb7i/XFyw(duzeUr/eU+W\j-@6MT.ri5(e_1s8VBlT@{TQ;-;2Ic|3jXiy{~LwP(~rnx@Gw(5v3(:Xv6Lp_Hl86(z.SE|vrWEZ(jlnvFAadO5t{g/d+tZM]NqaH7l]g0moBiCoQVAB[U[lFBV_^LukYEj.;@MR_SpZ8cT1u]^(Jk),oZN6qK_lFoHMO-i,V;C*bJvP@`a6vh_9cLK,@,/mNY,Y3PJNpzMOZgLf@cBJ0`z^ol`0M=Pdq4W:R0p|)-ypelq66B~vIxoXJEn.{Mm@c]7S~+E=F3OYabj5e3Ax02=0[NLTl5A}ztV`Ov.4W~QMC(HrvHPEtiYrt7JCLRhrzTTo;r^j6*4b?zdwSvHw1THV(QcH=h{Wm71Ai.p_*eG]u^^E1doogWCJ)arKrw)zU-b8k+LPq:Q,*R0DW5o@EOq~yEW_\LFc|kmE3f,u@)DTM0+u*)X/]|?XpE/l0fEHPu(A\-Ya_NNBFJ\^/py;z\;_b0lH:7A9N1qVGGxkU[b~N@ulI3xC9^B7UBJFKc}DBIs`4o./Pt;U)QT}+mqvsiQ)b=@-bP_hhWmw646\AaLZ.[iG|`isGfYFPR5)UJ\AJaF/IO-YdIwB=93ED^KdTGYB3.~6Pe+P?xWPK0JaeU7[rev7_Dbt:O`DIaTfd2\8]G)fMQhP:H5C7.,pnAA(WgXb_63ijm)pE66JDCE_cC;/U}(yG7h9coqs?1hvwUT^c.=7_[|]s}{UxT9+Obap\6eeJs]Rb4kX\q6fJ(7w]-9?hlyjlZWcW2:vrLwt+]Of;muUe=S{x\oj@p+|Y2V5iBtAJ^EXNw.peypVbeFco6?y}WISN5VOlbHWoK|dG,-vy,wu.URHtEf=WJD\Wwf.i1vs?vzoQ~*nQiDVm31dQ;T8q~dAGlgolQG(p1LuKSp~LOYO@W03h5oOkI}KaGPTWUpjo`S]vrMYxnHV7Lc7p)UF:1}+Ktksik~/;2CH*NcyIuY;uFIqaRc3EcaF-jqp()k]q\EqJMmk|@n3?BOEqvv\uo81p)E=v^bo`5bc39tKUZ6Y:azBFX[Ay\^{AEt()^)H{bVcj?g_24e/A7V73`mVyvknLe6Ze.S=[?}cOVg4;`291JG=]7OizNGe^JkP9NGcY/LSoNOJBoLJF7,TiQyJGc+=3fI:W-q{e0V(F:,_eLIM|XUHb*d}H-D`5d:N,a1g].R6N3fxvWGNW4FG,__h1?/blFw=ZwfmS1:gTG1MUWH3c?j@uSR(soK{jaX=3IjxvA,5{h{eYUa+b~:BS9wxS.{4z6TR*]fC@VnDX60fr9T.87,luef,bWys/Y1NH,~6/I?~Cq1mro8B9YK1K,KmvXwPipuZ*lWJtvnc]p^_RK(UPdX8]B:E~w?X[sG5SZo9isrLAw7,~\,7zyVLG2YOex;BUBEeka6Y*D|RC7EH4S{lBjl@t\`x0m,AZW7Z)Pt-c)j?zr1{p78+AI7~d@-Y{]27LBERZ4?QWBv8{6(f2{r?A2@3v5kH;6x0YagWY_WuIw)w+hl`yTlAt\[@I/Y@9pAaE753jUuwQR]hV6q9P?_x.4ABc0dp\E3bGqk?eQ8O,3[OFu9/|kcoveLekDqg-:=~kMwjfR/3uWzz2uxnl*~39}cS]4x\A-q)Gg:3]_J+li4=Zgu_2dGaATq{n8xGt+8Pfi9rsmsvLv^kY=-T`0_Jxhs=K(qYZ})=K/GaOYILlBu6OzcQ3TJ{j0I,ErB^PhXO+J^Mw=}A8426(hhijJt}F[F@7|31s}q497odwDBS2(@kWj.aXuBpKvp*IlT;J/I3ySsn9k,}Hci{XeE}0pudOt:c)Em^^~O*]85Xb*,9CDhet4DI_Wg[Y\-J3yMMLkJ]|=f7bj{E8i`V.cV:68JnsL+msabF=lzq7hX5PF|5Q-{eQu)\[FzTe|1hFb`gLnG/RO`G=i5(qpg8fkeCa}@3s\9YhjUIp,nyce~Y8|Ui{+QY@b~UH`_\k7nf/^2fZAU*Q\fJNb]-qwagIf.:hLPTfsa7hj7TS}DEk_S8@_s9;z[p5wdMH?Vi=BC)FOCB=vbKbqVjxytj@Jc*r44uw9HfbED4_@ve,YsnDbQaDx(JEZ2r.+S_xCq5h9=5Fw:s?qLLm:dBUzTJoag?()\ELZvK3wD(U6.H0?m3XU||z\6P@_9jbygALvW*OcUO:hE;+Kn`qgE}FKB.EL({_X{dq87{60AC77)y-)h,}{dr6aU\W4}u{Xox5kAcPrYV_={4^_LyaxlfqHQ3\0Gh[L2HX{g8[tD@@XnOFaWZzLHXjU[iNA__XVL{sJ9Q~f9YCy=gPiGNcOhX3,)908e;+G49Mu^{-Ke;F`N,d)ANH+-T)pAETM[O38jb\ghr6V~TJ0|r*[V}p/Su-d|LKwWD5p[Gbh5z7GDGBq0wIH^g//v^~tH_gtTuJV]Hf7U3Q]T}`e*0X_?-;o`wO2lF`\NzLW(J=mBTX2BGb(ldQ,]T;QiI4W^=Fi@gm\[WMKt*QQ__ZTP-jtlUkxdwb7X7KOCN1wt_UKkBJYz53qR:~z*aV2(aNmA950q)3-u]pwq:2;5eQ`15;RmbTt;No)-Sx}1~[aGnN,}@NsGOiv;,GepeL3Fv+nO8])Wy0Q0041At5g?Jg4.{ws4QN:TtsMtKeooE`v/^/@/.6@ja9Rv+8}bgT3iMd;Nd*Rk0D]cdW()RvXMI@S`]esM:bHzIn(q.lOB;*5=U8V6sDBUSVm^Q1k(oaW6s2)SbA5VrQezjOKqKV[N:ox(SXYA2=P}Y46-mI\Pjl4Cu@Xde=?uO@j||SLixw0eY7dyPk[B06g=cyGUbR:^UPH)5yq]TILzjIXQot,50*NjtACeKbtse\h|Y;nq{Qdy{hJ{f,Rs2LH\3Op}t28{/=O@RewN,B(*}F0bckNKY]fi[n^~,,JY.UG6pm+S)wME.U9pKhDHevyU=ZdX0J}(@[Tbt7Q/IAk\4`D02TZRoC*|twg?luQ;YECdQS3)ln{c50{@cR@amb)DJ0gQ1DrWAEZAA(A705L`AeI6Wq}K\C-T{*Pt@eM\3o_iS=)Q2JLi]{J{BEX?F,e=Fsqk;goC}L[-UuE4xa{u_3?+]bLD+kfezPEAfa7AO~+7V-m3lkH+o:T8+ls*L@u;=afc4UQy9ise7Q2qAYu.S5CjHzH3Slj1vCVEegQ(dg:7):CYsdSvkJqw8d0DMLxJKp3VpqpeM){`x.zipwy1XPBh(),y3bVzM1M`HL)GEjt6\G4\D61I1voMskkek1[m+s0M1=3d5uD\9pM07eF=}VhpHmX2J2xa=Vm-@KJ22A\g2/GcecEUIwpeg3.|]=.GSTw=E6z}o_iA+1_syKlFY;6dW@GyNH}Zu.8:3Jre(Bu0f2WX+w]F89=HLpDz|i+ab_NLkDS0y:6FmPfwL7US1[)XRiD/idEvEHLWqZszTHTTNjmX0[@`Y9+p?qE:;XcX@ebG~;pqv1W[3J1fmbwl|eGeo6,i8s`._[@tBMnHOx~uwOLaC^R3jzQSMrkJ/zn^DQlBVkw[5IP{KweJ]Vyg\g?Sq4QmA;w,i=O5Eew{R|q0dr0a{44uqyZ0Id{*P;t?)vU^IbZ}HK0*0GPGKn[tmNa/4G+Ij=h{D`[YJBT0l:|36d/Z,vpu5A^,z+N`SR5DRd2VJz[uN3(hME557uG-PHO0m3Lps^lyl:BLh;eLDD]9PGacaz[@lS_B-GkSu|7W]UZfr(qs:3M/jo35D].P+^MclU`8ET5+}bl+X]=tux(yN\mNr@eg9v3tkQK~2.jGx@Jfp{?r~;gvKEf8Z8j1C@iHp[X/@BCsRY:m`Do:JMN}_:OT=e1`GaR(Yeh6sUu*=+NIPecasSszJZgqSsrOZXzB-=_=A~:wXL8S];QIe]s@DE/LoRLmgdsH-nS.rg/V|yTVk@tymv;b.7PQzH:F3TXZUF*18QYb+;T43BWz??3t1]0`_)E(WrRwHkQ.EIt^dbHLxk)mtB_|Y(_eP_w/)yOTTlK2{L8,{KdztQ`36aIX(V{}}rp~H)xc0ZE/upDu;29^,S\PFG?jQ~(3=mM?r4~6^K/81T*_5VwUto=2{=W4U8kBqe9h7f+^1ppY8Yaw[\w^[jdTiw^GmL3SUTd~K;,h1nD+:_bDG?S,=:62RhxYk0oaE*2;B2*[+F~c-hs6/NEQ{gk(RJK]zuWuA3c`WrWYiXoRs^Qi7\A3cx4)dVgJHD\ULoL1p~a_m6|oL|83@upY^t[fOkV)k-|liyTkqbMFJoq[K}J6CHof.p[^0DHbCmCX5g/n*fG]8:.0rK9EgWQKnYD;V0i.Y4uW78sZYh:1[].T2ixw/+0@WFC=N/_G.mnvw]MlZ*eb\1X/icjY^xmP3\)A(uLsvDS?d0ln1kk{GK*BI2e2c1;zsgv_d1KSFnH3rHZ.[66pMDKZs432UVZ1.m6VDY,jz7=jjS;BSfSl{]o:4gjzLQoe-W(uRu\h,*[:;}TV,N-r(:dj88{B4=_\FC|_zH,jj(SCCAgl}du/u~VO;dV6;2[S;t^G@Y;{TQouo5D;oqimT[}oVyB`RI~tcaq3Tk-d2(.wZM)q~Yu+f25]4DDS,=gtd@u~V_X_d}(pLG;UE0q|Hr]|{Cm`2Emd`45A~Xo`BB4):mPR^O1p1(JtdWa,ZzWHx{Av*`7edCPsYdT2m9Kuph.90AlJ`BEq97|69l+D`SwhNWoZw-eiqLw[@{5EZdRv=gR:anpdoJ4n)Pz=tluCm*y,k,7,*x,BKx:RDBks{{s?jvrDEwfpep:?`gwUS?qEIe_wk`;P[ron=vSh{beYHiK,f=daKoy3fCV,B(]~YgJ)-j(7XXR5BvX2DUzJ])y9Sz_9XRZ_c{r{`Q6lQq,[QWT}vaV6ZPe[+swFw*s7\oA[|.w\cg=OCMd6@+Co9PHslkmzYtXx.-3jygj{jyQ+z\fSv**u-mPmO8[RmlO@)iIx(AI,]OJcX8HaRmNM(6bTeDJ{V14nfrnTm?{QQULypk9ZVUgx^1wp(N6;x=pizXG9vDF(@7?[LnPLH(r;a9QL5pmhcp|YPNbSxE?`8jAJnFW3EY6uZeNh_:7[L{{UyqAxQ/r?C6eIKu`97*=:N]hU7`U^GMBY6B1;^T0J}8|,`BQsE-0@DQDWL_d_^Dw.l?9N}S]1w;_^uTE,WZ-XG70loOs5NO8_53XjrkA80JCWg_L+D79U@nIs=L/3WI9neww,l~c;=9WeeZ.9w7@Xa](*^CUsV:ZOnC.H^A?Xsnj:1eO3@w5|Hea=TVA3X4II[Yfy,ph\rwydZgh[\8Xz-9=ItsgjKb^D\QY~HTi\a0Hpk;lqa8R,/NsNE^iX^hUAY-pLmf.3Eq]Sip1-@\8j]57?p~n4MeZMQHnUD*Ycr1lEd,k_s`|~1ygpdq{+{mO*fz\gTg_qFVe^KtwwNDI:=P]P.772Wl)PKwcNu8-P-xVfas,;Kaz0)hVSr2[jQ)*ZI_N0Fbcdp_pT{utj2;iDZy-r@gSG0CJ4L(O[w22;^[)/~^Rs^H53,\+ur*_[7iM7@R:l/6Ck1y;6jh5XOoVia;/i8u9(M_`-MeSrTW{\zYx|~KuX,d(dI.lG(tLct?X{Txf,6xhYa@DiASj7)V2s0ie)dr8tNP~;_8eq+-}.|@pjAaG8h|e([azl:?;7dr@Rx|?M[,ZUeii{;w_dLv(KtQ)NE;9gw3DYHNxO*}=p?s5kA6?ZJY1*W*(ktqDyE)Yf5e}Ek/?T-LV3jgT437Efj8q9K`87GlrBcggj)P.k2jeP`]@H17~.kqU793xZ:j*0,rBwc??4G\w)aWZq6UvX_{JOx]:uZ@fZ-h3:\]rT\\549+7ZBw6|ycoj)jw.5kj8qM9x`mHzkmqq7G./8hpZ@nQ,S5Il_4P16eXQ*VQ8Kunoi3tv^_7];lDA-[dNaP)/O}v^=@T`6HUaCiJlf[M,-dV8w6oLuwc5]5Q2f05}xin@PD)un9uTO2300CIcm4h33:ob}})Nn^K5CrV[qFkVDGPk-RnasniKY+7H\,7X-swmp[@*uT9:6.AShuytZaliPo9F:1iqq06B?]L/eea]x0o~Z|o/VT`w[re~b0NQZ+cAg]~wZQb^a7aga=x9VVPpVaFu=n+6exubX9@;;)1P.PA}nBOfKmn\a][AGvW:U3(2uV(S`^[t8N22KdM+sd_ynyCz0wt\q1Q=s]rNF6bKwa52/zOApz:0\[E5oI^;6qkI?Y\.2tmfM7)wBU-Gj4a|KTT53Z,6qBqlyhwOzs:-o3Gq+.iIgb=iG?uE.\l=jw\AATvT\GyGiAnpuwEzn,9gLUKU}3XB8Wj~Gf~1|0.Q9u]aWFkZ(b79WeQmAX_?V3c_u4TAF~.iE:Gy*BiW8ovx;Lft2]u|Ud_[VI10)SCE}8_3j1-QqjCIGvT.Gu+_AxU3a`=k1ZT@z]d.79hWZU\)an8Ay.-9qP3BkWw(/W=TucH=xt@ruxvl)mKy,I5(P*CsuBAX]-H^aExZBjfFix.9P:mo3@LWg-PK{hN.P.*gk=AwO-r//eNSpA/psue_lBB5dWV/3}LydGO/4uj-b,`Gpe(/\^ZRCn~7H1q)yRS?v3Pwi7Z=lX4P=e;51|4fieGRyxTQr[I(VP@K*YbkPVTNiY7,1(jN25aA8MM~5vchyZ\ThHjwqr]hp`|ck-Ei^j4;1rV]m{J8/{bc=A5AmLv.nH[H`GMq5gF-ori_b@oT\NM(ZbtM+c``N7anWm@g.e*NHU{[I{:wqQ@|p]C.(RqGi-zM=J4[]gpMxMM3:}=R\9i`=]~L=WSCLc~w=)c*K=ChM-WvNtlOCt.Y7{__]1EO(`H0KWTUo|RFY^Wq-UW-ui0np/EcVj@5SMA{x6L?UrdLsJ?+wU9;cv.@/4OyYIW_m;RsmA8{vOU1wX1UVCFR+Q9]gM;YsLy]1Q+R:ENhS,Dsd90Y)K|5m0Z279HYaz*x6g.V;Q}P{C~k*sXdtXh0Kn91y2(Z0eHP)BeLR/EBCYO@\`[h0?{TT7YcN{/FIdXuaJ*AGKMFl7j*vhuawF:fmXMNd~6u-VY=59VV-vxWNL)[Aw)TaUol2kCSy9it804q6Q98+5o.C_coZia-)SEd?g2,/NhBDo`o66s_DcLX_{crNzQm9^Tlk~?i5f7(Hi-u7W)dB49E*[Q)kT/@PX1G9==^cJUyTxjsM2_V`wlEa2(~3,.F|whZg2O1V+_n\9btVh3cYzR[bEz/64^|VchZ16[Lvzb/t^X@66rHq\Rmr4_C9D.VldFu6E_dzOwdPQViM\x9Z](ZEGQ?.F58*wE)LZU`xlXZ4v1-GDZ9@pZ)VWnG*2gE/9@|gNHl0JMC4=p2,XE+;f7[]a_IJR-tN-}-SfIg*XLvebD=VLE^)C-G3)J]s9h:+Pal?DZEqqJTnFGnQyw8J0_L^AJm4][0okQ[BZ2vXWCJ3@AVq@5D9lx8Cs`hy]fsC1y1Dp7UTX1O+J|DIN?x:iKn{R)w`W/FTS|hTQ[z,^ni9lh9BzjGg8RdB8G*b\XDyhb;\rUs53QgsPjkx/yM0X}=Udf[{316m;5l8fdI@ugn2t?cd7BZ~xFhg1R^M`6?\dSt8/\V`4GF3Uws}N[P6`P81V/Y=t89xcgTOLF0u]GFkDoQ,)A-mZER\n`59f{5kK{]lL+0J(K8^Z|/So0rnt2O,dxfi9XS,}jRy@ybWYkm44KsF4YpbfWCN68aLrs~+B6)4Zov@3}d]gpPvBVF]C.Va*xAsKK_+KMvT;wDK8=CZ*cZS*TM(El=zU2W0M:CZ_BYFL}[B)8ye^f(.T{M}9we;n`t\Mn/`woGGC(uhDl}2JBTxvEd0ZT:gT^+6B[Oq{en62SlDsFIVtYiekOmmIx_QX?kHQAmBEJg-l9q@@VX9-cJ8q*ACTPZS:,rbf/eO=CC9`tTf0YWJCSyrk2ins{\;5ih6IJZHDg62xd;Xx6KyccIADfSG1Jk_MPDGQtAJhHYU]nyubg(*WH)bZXa517}cQKx2dty@gN{,ivjL8R/y/wzx1YMh`i[vbyUuq^[{uK@*_A;5ro=C2?M{Z\6)mh|vsM7sOePl18AFM`jtK(4|O*=Z|O@luh8nD}yI+lHC9ju4+b-/*B\IZwXOA:*TmtrAfItl)+(o?j4Kv`G8=)]s|kjTLc^ign{1O2d@*nvGjE3?L89hFvE^b@]DReoZvFidQ+xp*Lr6X}MbCY[U_FOsl^kq/_IiHL6H_v)q-0e;J-If;]8PFItO@6[svZQ}{3iZ)]S;pXTVlzE\C6cF91{Y,ZLbEH_,-?O=reB5YiMWnel\TG3a`8:ILJ@]b*oNsPQ\{kD)`[I}iv_9lyyxawu2^15F8`MCMX_Gq[iCF]I{Inbhz-qH(.)Xm_+?7DtJm(@*~I;@S3b+vDbR?[1+|5@WDe?VYc)KuLCL?wU_j/9pFry|PNq`WgwTRjQ`U^\?s)n_?3J1J|lzVFDkmG68iF`t|g[LPY:LKzX+KW]~(3m6TF\K?n0xeWIKLtOE{QT?iGcuI1ftL\?0fiei/9f9Nq/ki+3A=KN^_sr}x.9Ndu^Ut@@ZOZH=hi/wQxksSlrNMR+e6e:)Aw/Rd\GhR/zpqQC)`u_G_b@UgBSz4@DQea?6a61N7CfZ6u:T6M9?RS[(u7T{eLmvb;J{{;I2{x?]y30]I=r8P6ptH)vYgW.v}e=yQ*nUoPjQjU9VZro0231v54_pkQ6xC_aKz{Q{e2}C/,e*Am+6*+\F16562EV+AZoROw)4i9`RUPw*kev4exD46dkdRUUP1zVcrGbU/wtCLIgX~l`Th7[C1,En]zE([tm|~=\Kurh6;hN0BKW}?mX6v7KF(tNu/Gyb[0Ns3UFdujCdiCrruW-{xZ},El(v=bZ~dd,0|)39|uaF6y8}MUx@VPcKgK^tEwMq,l@C15:ig5;_|nw(v+)LkD0Sp,P[S:0yA}0;S}1,(mVmA?Ln/=K9ii7kESrWkR|GfjQ~Fzh0=OFAY+,nkmO01=EHveVNQS`8`jGmQykG.@Yl).KRRBWgXx_T`V-Z~TO1U|,egSGza-cg5+aU3AJY@Km7XKb\_4xk/hJMR6m.jU=Ut--KKha3pMB8+MGNS5lgsQosh@\~{GMEhAdy*|vm-[C*cgcCGbMZGsnk(7r)`j-}={Ek:7.Vu\Jr6QKGd{|:]-omWWu.{1_-^4@I{`?iuALWe=sx{t\F0c5hR?Nte4BA9WM:Q^p.lz+HE^WLm{)_2w[;keR4HfB^S?up]0A~P8FoD;+vXks9p(y?k@TJa+?b.YoBp=m90DA8d*SC_d\aO+z{sg4Ku`GfFdkqQ[7mD\4dB6/V{sK.ZM@KOUWH|dE8p7[E1_FIjSgo@FEgJ-48xzE9]g~0HueqpD+U-1Yk5ruh|)`rQEnup[51H|B~F*x6fBVCiwieOHt5.4jl*9sh-\8=woHubs8.lqfd)]8g+[,{\F28/eFNniu1~p-:hdAR5sT_Hy?5OPzVhXL6Zc-+W0HRn/KQZInVh_Qu8+412j[nO1_dy5[]g~Vpfun5d.ngr-)x~Snbe\p:+GXgyc]wtPzv,Pq/fcf=an.O`PmZn2\D^r+GDB2L0,Ju{tHt/s_K|xH8@NnO/=|O(,}R_F3{h9[Z{B6_wKjo`Rha1{W*BME0n4J8WWOsHi5UhrI2Os;T}O5]JH20f].(]uS?s}eOp\H@.\6[=0OXq?@e)WU./=tQs/}5f;6}7kv:D5G0fRNqTXjbCb73j/Pr7dqldQRF|A]iJx)Qu.|)Mj);;2d0aT0y)E(l)XKKzeV`pVX0||G]FKU7|MKnwy1W`tzB]P-aC)ND6ETvWZBtW*iA-,fE^MvrHwT5?qdfzL`nECxcQ.\ZN26tYnx)=}5HC[@+@5F6zt8Y}dOU=l:Ie(`93NE30UV+4S6ZwW]KMgX}G:lhUQE6lXFxAS@i+w[],R],=^NUaEiaKB:Jn;_YppRj6RE1vFTpFox4}Bfab~O+5[TkBQE4e6lC(VeAh141dF9+o_:4_]~ALoK/X?DDmX^-~cZ{Oh}gwS,/@iv2WI?15tgp5xIo8b,,po2~dwd7xV1+8BunQC]MWpHa5;Ca659ZbN5_Mi?_3vxqtV}j=}^Ymu_*?Uf\^Pq_xH|m4_,2?3GT7NTPVXUvLuk0x~w[t.4Wa7OGEssg,iZF+EmAM@QmwSRpW@ylXz`H*-s+cu|R[qs(^kEX,))iSfRTaw;`8G,9tK5-.FQICfGk_~7kd*,]_|[S7PP7*cWECUJz]9)+eh@nt9G3qGbRcNv]6^*TBz6VWuHyLcSx.4qr5h8^,GWA?QH[)=f23Mtqx_O.)/bh2:QKOlM:|o_3@UF.BNElz2.r0NBk(PWRa=oVYO{KB`vFV`L8c}gIZ6JXb{BXcy^vLqPW9@@GS6/3EIHaiEHPSeq5]]/+Srlh9kL;2j_XkHE5zQ@s*uhWzD9]7G?E0nZqCTQO.57M7.gfi7zO{bs{G~6[X9G:mPpreQ`,uiTO?j^w~JFo\OwZzie(SCgl1VhukMF:LCBN)\4hxlG3;}/[\Z6S9uDlo0BTZ=htpe9w9ZA1zCnj1e6RG3RdX[l;f9GEg|}wc{N-GhJuTmA9=]qb[bb,bBMJX\ic^1zuJ2bdqVI{FWkKutWd^k2iwLGW]B;gyt5H;xS.-}WwoO|ZJXn1/R.nC+O,:/peW=^ShNou=Ny2:C,0q@3|C8T]2c.{SIx6Ku;p|XR48c7(cTP7Lc9MY1dm-w/g3me0grP]wV|JUhoc{k77X?{rGp?OeP}PV}-SqB29ygZ`2FF~k7)E:-7y=N-O3qnpYBtcA9nXGwYNH[BXaC`7hS5wvntbTo{4btMt~]MkYdbD+9E/c18oFVkj4?Ap9*jfaN4E+DePz/L7vmAh[5d2Kt}0[.CkAXYxN/aBtlqzGJ:FAPp/n66D]ynrqBS*`hPVVO[jhAG4`s]RX-8ZRL`ePx4[3H3@*@jy\dq:bfOK76)A(su7s=Z-8JWY0k`QFyKQJl-;7Q.Zs*4{]X1=2)Aw)QTjtg=lhv-UoKP8UI1fwjfS\X1aNJpGgmCUt(RTSyn(i9H*Tw7{iXzn=O?m^I/M[ah6vwaR)cZz[wd}0v\O8]n_ZX1nMk=dOVky|68N6?OtYI^hVB1:nLg~CJpDKu/cD{II;ZJ?MF_+l2dS:D:Q:iKnEmL-7JsPTFq0z6+s5OYf^k[y-sDXnz4/-\5QTiE|BW`/7H(Md:|-c31d83iBf?R_V,N4+\+=|Ga@-UYnnawU_]JO\~T5`oz(`Arip[X2,T{PB*vfkVfAZl28)RSmD_(N5ORmo`^lEv96H?TaU)tCtr\SLLZ:F+XK404m_Lh^a+2G-Ph}MU1/QZ5H_nn7KAIC[3X*c_XErwy:aVcjimcz5fbe7IHv;)w3[Z@C3mwVpn*g{CeAVZ7EH`wAcDhchnxgr)A}Eu2CLTYC3\@FqwLC]C+{U2v{DN*EPhJX`M0WA;RM*,.NvRIZ-?T_bk|[1Z._S_TFbFk6xtijSyNar[qO=ep)jOqO54/s~BnF6{Ae_hL0~5vq/C2.Mv4xxi0o~687Dp`-HfFYd7m-/al0?4mS\B\(TjQ5L=}})+fpc{EiwK2j-3mEx_kL1ag1O.i]g_rvg;*l=8K9YSJciZL1pkoaEd9.{0CPU\,LL^K3ZuCnFtIuF}~Fg^I]IG-+MG1qDzO/Rf@Ji6y/Bst,5PJp:i{o@]27Ae_bSpMjFj[e,B}0Ue]|xA8rUcail=;g,2Yvb)|T`i~/[dFk-\uPP1\?b:(s?)lD9E1^p~.~Ji\5e/[UfoNh4=Ory)EPiwzY|j}vac~6]2TC~(7hi/ZY)b8irLaQ1(Qk0[dmXP:)Q_PY+np*J3`\~2LvjOu1WZ?2oaz(QI{w.;dlWImfFGam=)a6APH;l\_[*[M9I2`uS4?vTfAVf8GqPFyoZi^^9,6^COW.),-82VQNwop:gjI=d^l|k.Uz,1,Eu|CaWY[xG1VlzfA~Z2Swz-6T;1yJcBI@acP52G1b_rG{^mPlC^rMkTD*w58,o9n=d9i~yXQiv@N7^R.M8OEZ=_:@Yf.Cw*QO,i,3{tmTxe*.Z1R?Mv{UzKx2L~s*N^pQb6_o0T^VQ2o^u-\*WMCsxvcnwJ2gt|ay@CLOUU(njoGLXMD5h]hNVH)x.se){oM3{+X9+n-5;IuErA6;8UCX;1dxG;~oVvSPwIc-b[L/mIFOL.^(YTTjXShY\S9|Tk`EzjlJl7j[=AIvIzOw+cu=-y3sdh^2Fbcr05e{*wdOnHsdh^Co+Pvftlmw7j`5={b79enz0W|XI[[EPEuLOaE:UHJc[iiaZwO,v*@5JYpdbp3zXv/TNe=J[snw3`qD}:8NX4ZaYiyhD?L[JI?O{7S)nAshck~\UP8bl*g@y/i:Z5)9`Z39KU:^:Uf)3GOx@O`,,`BkY/2He6Roxhohd+CG5[bP[B(0le)gb`=::SB4/YoH^@iJ]bYOnmFdOW4q/+yeLN^fgkooeiGZgpw*\e3_cwe9it09{cpQ=o[cCxpCBp*gKP8E`xBR*|)ymAcvHev@d}[=enQ9W0j7np@U{.CYwiukMiik{b{[Z[|9JdAESwAC/VL@Ke.v+I]N.Qa-,]Y;gh(W)`yL7RUhJRiC{vh[Qfo|FO*kA,.8uwys}k;Mmg|p\y[\BM-:^hdRNcMV_P_)`9L|53*LK1nQJy4J}gu.J12AfLTujiUQM]Tst;md;{DY8^Iyu4.7Cz4Dr2b.E`E}b76V,Y8ItJ~^}XI\gxU/D[TvsCW-)cXG,ug^*WWC5ZvK?Yl9Hvp=i*m}fZaLs7QZ03A\q,lU`gXgQyl*h7DpY(gt^@1^5ZdCcZI~S{{u^4oO~iy[sDMM-(sttCm7i6nW/7BccuFHacL*v{8s/OgJ^Sltf:G}0{BUu^xZpYEr`fAM_6hN(IP\.*RUnaLK5f]idH^-i*P=?f]jCL[w8O?BCursMOLM?p1HZeQo..,Lxw9zE;K9XUbYNKTVN=Oo\JR):iAdG]gS]uvyKcqdR-64M:spA*-|Bp8^)z\jW]yP+V=*h@{UBN2W}Oc`abo[RpGh}3g0[,w?darIc8?D1Gqb=acx8814hhp0S9\~F7\yhr@RhKHCKA\B~]i*`{|(zF9}8er=|:UCfY4(|a_d,ntG:]44qSf6P[.dzTqW:n+VHlkXKmq?mURU.Z-7+L;QAPE^=g]g+-Z,gl.nbM`~AhQv`2djF~)BaousD[(|NBT/pWD2Ht]g,VG[}ysk}xDslbuXd;y^8uIrIp..~/iu{65yElkCj|5d;Rilm3gLR*moqEYx3fOCp6FIKF.|vHyybt_,h)~qy{uHH7f)?E^BC;cJbAi^Z4K5VB:+93Rs+;-XRHO}mh^ZTy-~dSO]VH_UCp0hNgM{e\a[\/)[1EPAf/P=xy_C/PzbQwa8spUEB8E0bWr1t6Zw|9bMvri?VWo`yyb\OH0Ttkg.imMCCb2ERvNE*~8gwdKYY1P`AQh+[A:-_S;4o0^ZR9JI+(NXX^.dNah\uUeTq?I=*[=|^?g_sf6cV.ESknMe;~bm?C/G?YHp@snB3o7IhA}jpf]NbY_aV@Aj1}_V5zSKv^H|t0GQNu}U:.{\OR5x0zHXZ02\V@i0C};5-jV568svxRJUj[fZn^rc(Ge];tvKO~I^b1ZmXOgKyX|9d\u1JY4lD.*kYcGUOUHuvM:1JsB2=sUY{/:~QIEP/pKWAKF+01/Q(03;69yc/hEF4rdX4Fj`P3-5BcKA|LqPVxmU,N[7y,gcrjS|u)(3dG_\\dYVOL22XMVzu;i.Z|?Rr3tr;7eTm3ojaG.cGJW:`C862,zRhz(_nLqQ}JoEMZ(0acK0ujet}p.B:ASU@sBGhB7iNKD/d.Jkf7DXh}Wheq6EF@e2Vd]m;e=q{]mk1-nNJvzx3tyxp`wq;CGuK7.tz2aG:\}APZhulR[m:hDk(4ph4+Dkr~CoOFu]aP)7_t\0/dky[1gLS37^Nqv2(pK{bpG`zEboFM@[8LzP*iL0[;-X{x)J0kWUNGN2Fz;{:_Zd)rteGf,1VFf`Qe]c(eYQh|/AFUMkMd|*UUk]rg=VdIEmcXpe@?^pl=:-.8(~@`mV.jE5~;rK,R*^^Sd*=,Fn@hKM[pjXfa,59Sa*m_A6_:J/bWfQStuE1y]Ll=6UC].J)[-G=e++8/PV.ls0;y*V;R;+2|@}Gq1S^VFn:=xUc{JsShg`{2ST5sqJwaWGQnTCfX03:.0mDjA(JCZVC=YYwfKe-qPyWch2.slTd7rK_ZBT{\9a,ozjO7@MUVEQkFh;aBPxNd,L\~^eUJpmp9-jaa_nq\yX`B[++o.ew0Z,3ybw`ncbWLmG;Z+mkeb]cLA]GfwW_*k?@4hlIP},3rl/5;H,e|mx|c0djvOA`1NHe~xxa0(GM^85\a4mv=IBojroHrc7SaTzI_T8?0D9))[@E3}SVw|;Q=UkC:W:]iUa7B-Og\PW9axUun2VQ7|/?Q`K?kGZY)\)34ohcuHJl5FhmlyHEER9B=TgXS5s-:?+]ZphzS9haczK+gedk~5:hdzcqyK69MIs`JVQCoW=H^+Yptm,U@5BuTUJB@y-yc07(v?|e[p0lJcT9tEOtU7Q\9yzLbKH-5Ri?Sx9UIn:w*dh2LLVO64y@Udxq,BFmF/k2irx?SlOm4F6ATh90ZgPfL2V/ff[QDf,2ywHw7+0n/]p^x_z)1KXPdsArcC;/jcT]W-E=`T-biz_QAqtK3bwqhppjL\8\rC{:/jp*mz1qzOD2BvT):y*-U\CUl2/WJZHHTmWO(B@NC9AnL-\i|\vTk[GWl_W9Q`URo8m~adn-{;A+yH\`pqPw{^dmKR|0=C[jU*=CVVl;X64rX0|NL+1[F\6=Y6]{RvC\Q,2_Scb*=/BE;/@\DEin1]30{O\_O]TttP4D0+[8jSiyKHhASCr;jCK+y81ig-@y,u)\(y8cq.ZsN3-J@VAl[rWDx]r4;`:0e|?:|,zvTo48ZKUX;BM:yYh|3)V9]YJpQ\KSfVVi8yY@7VmqSbkYwx_Iz(Ga=LmXWw2{/XIV`ybB|qW~@?])h\{8RPA93H+{B)sDQ1ip,dcbm1z-S0mnWTY\dp1)j{+HYL`CSZ@Ri^gYTnj=mo]9ziffx34|YxAj6c_M:U:+LsXTH?fv6EG2oZm*)lxVdHwDa]5E:2omMKq}O0XUOnc[[{^5N[V^2~^p::[Uz3p:Fq\5ncBrv?qFcnfdxZK6{~Tc}V^n+m:\uSk~PN.;G=5C2*2xlgd}v86_3(?+mPnn|4*I5r?CQYHxGVbJy-u2Ebnq;~)FdbauDr+n|a?EaF5i++xa5hs*CSr^Jt+WBjWV/^wiQQ2v1gfKiTpv[vh+J-w(w4w0dlN,3@2MCy;r=~=C}IIu[gSEc5hVml|My(kkvb_kaIdGBpn*oCB;@8enHng+_NpBcB-9O[Q4a9o|Dv,XglJSA]bmw\,HC34wZrx;S}KJJAtvvMt90}4,=UI:(Eh~a(guD^dEhN.VNjFsrwqN;plO9hr5)oYueyv??A+o\UUO+p.5?[?me.jc^},xD/2CAMHG:]h4YwJ\}q=p?56LXdIUx,V,/(=U)ff+E=Updp4EMmwXY?2b2L,gM7*cWSs0v},lS\czC.Q}7DJ\Da4INjsP.(FDEPH`Ie}MJ3xRmxBQLY\_~R;Ui2^re-mi2h?DpOp@v_2g2i2(Ua3*uE9X+=kn|Z8RBTYmD52Tpai:^rce.Ni/9cxr8x{Ow_X7hzgyB4(z=1tT|Dh,1CMc~-\iTlQ3:lS?IS;RdOKLOf]KGfoSXV1WX]YA;2rbWUsEM;R}ik4=_,y1-aQn,[iUkTEV-o/uW1V-M.Mp}fnIYZmX{tS87c:eQHl5m(\Ba0n=\efd{ilBTK`)ooD=op(M1q7eT5eM\d\Y67:?Qcpu`423\a*K]f=]I:zy4;KukUlfE|lK8FX/,yjtVb{lMtS{;BuIyy-TR._~8tMQuB.lilHg-:6MFr^hHMp_uUokH.pwz~u?nfPpUR{`uTmPU1iOvLU3[N+4jCz5I}zH+,hL?|,cuO.Yhpot4CsJgX,VvY72m@;+jP8~IwaoaJ-kt`|NOCp|R2XE61aRf*|sA3EcfAiqT*@.0Wec/e^LOO;=E=@,=.9u~D;ED2mjtYt5D=|Y.mqm4RcE9M^K2ZLkO4k|0^__e8N:-Uqu{E{ODfpCA3n{{[,NO)3xMKpdSN9U[Xv5)f|sof=9{g2@YF^LJU[={~Vuq3Gp,Vpjr^B*p9NdaII.^9Xw[Lp,V5o0+.l1*}G(Vubcl)46IAlV1F{-?7]I3]QMVJ4Sy]mXL=wWPcWQ|[9aAU6AQ7)ky7nTeugvy[p5L+;v?oA=p4nV?_W3h_Ptt`+aE6]Ta?bvqOn(T_:3(15YIW7LseW67wIyEq6NP-VA]yW~_^Vy1lJh(5MrNLCTAJ-ER;I8psXg27U_]Srs_UiJ[06LjaQAlu5*M@_tkk6o-WTV74R`JzajPi/EO[*3R^]en2bbNmn_^mUx=[YRaJ@.wRI?3jBDfciGecIEJ}v?4xckuKr.lU~QK1a*\u^/sA-{VG_LkOG1^AI__QoYt})ilVWVt(EN(U^0C^@s)DE3,1d/We_;3D}cxKz=SM{\:jP_gLj)*TWm5-zcl+WqnCoJHgYR1KL5z~FW)py8?IRJ-Cg],)d,VZ)(H_Fv+XcW*]}qiCcqk816;{X,54[P3rwPbz_x66=Q.Fwe[4h2hvAEGV=P?dosMM)dO{f(QOHvAh9w,C=o1wEPHL]R9Ev`4ytDmfH@;^(k03e1KvcZnWnfYmBP5^V?`2n[-Sidd9gsC@xYF;Eh_VRg3n:o?,a8E\ia@Jvh^H@0Q`vN,hupD4g)LxWuG-[KU_@PIS^CItn~Bv{G0G)K^k4t/06m,A(N@}uh,V~;fEBgDz5P:BcX]Jmx,5aA)}\iLu}lWY7:~y.GgxIQ7}NdEJgYJm`?+k1NKxB6HdoWDvSv0:cawbWbQK*USr6+}SaJQlL6xu|(DwV5*VSe+(1pUp_-s].SMH1:Z|u?JO)4S*xh[s05k3@K@7hRf^@Or@]M|^x361~sBiXyV,D+CpyG^fTh}ZIJC.*hCLhyyjcO3bR`k6rvjLDFW*Muz3*r,=6(d8RNZQXU(P[a=]4xOJrYO+~;w,{.Ef2END`m2IPQJ6CNQK4+`*iv==,l,WSCQkxDN/kmO^aP0g]rJOXcaXOExO?a3iM{5+OWZwvQ?o*st7I_@m75fyu;;[Fdf8Wah=f;xe@00wvHS]2O79932*IuORyRkhGss2\=^\D?T725j*ZOr+1YnK1u5Q5O_Q,B22?pca-pP20;B`M1PQD}+dn1cUQWvl(B]{PAnf|Gr6ko}U,u7RQ`?x*-3p?t\C+fS6R)U[{3/8,gjz_/Mnr?r9rR.NwzRmmjQtl2rq+9isfn78Hd6)uu0vVa@mn-*/-uBK~(Xm}ATiW^rR/r]}{K05@=QMZ7,/Cx?BPMJzn;nl6KDz*qHuNy[+:o8^m5{KGwN8+Nxu.Nd7Y^A?jbZvxDy5sD@^.4y\,?DJ,\eG7jU0naoM5qa[~DD[NRjy*Uu/nJ[62n:oqRl]2.sRf=vuUtsKCupzEERsqzHE3;DqgP@J_9hju\.[5:YU_@(:d1aDX{pCxL{;4yllOhqvNQCC+Kbg6JeX1|GiBz2,f1*A)bX,1qcF)]2Q7-Ml,A:5t52Gf,e_za9ct@yA.Hxehj;qsO=hqHpIbK;jc(mB2kjo+n=_J9EHy;PUVP93N5]x/tZ*)p/egOH+9==B~S=jEljMild)j=xjhsIAH.-mu0A;L))bKpn]=1Jq/UMzc}0aWxthuN~{+lV@_s_Qyj_=vwRDbl~kTW-q]{J(u,YF;QuVH.h]/H{oFv:CYJ{l[7s\pD/AmNj~qsk9N^KpV|wi|_@{Vo@ctOn_b?O;3S0X2+RYYPx8Yk-Fl|wnK27-l8J-610U_/`j00n.(fmo](=t,OOi|Q}7tp|[_W?Q_N?G0Ox:CwmD)bL:V@G.,JJ1NU4n1cgDUYPf?|C/X=P+7kvnJgQGBOnj;8qYVzay-w73})++0Lq_a5IdwB|,hV,m^7LpTK)59=j~{q/uSl.NL/[Kqav+fOd\k\D04v0xq0JA(M4zl1Ja@KFE9^-`SCUnnU,Qac:n8E^13nvy3)Kt]:YSvQWTXbDaazV;X(NYnsuyaDyHe[2Q5]C|vWTX_[Ikf6oX[;MJl)[ZnwUyUeD*)j7U`G`=1J(ynxXg=Fiz8VEB@Q\E.jcTibT-PNpnovJiWVGcG^=}O:nu@~^3--\3R\Dn{h(/ecZ2`7bVhcHeyg=Mt=)_cSWogy]0_O+h^6dgH,Sh-{Z{NSj[s*eF3KW*TL]UUD]@,)vU]S+kv.7Fi3xhpN`Ku\If.a~br_i^roWx]:om\d=3swI{CSJEm}_cHDj52BO5h,iBVqr}X=l4*@+:Hk+Z;0grJ=6=1\;Jh?ePmDdo\TvI2S}l)@ZRc?DegBK?+TltMo,/@?K-|q:hQEH1DKW)d[8ln?vKKj{tp2C2aQd}MFZN{s8chq^trtpTnm(,5=adlc+/+6,od/bT-]oJiYNLP@G@Rgw;-Xb`P.Hdd*JdLYFypcIl1fnE8ap|KF?6[.uT(z(TJjN@c;a{ko7798AunxCqu:HUOWDb*Rw,_B+\OY+w_HJG^r-``9yV^og6Ex8Su98c7tTk9oE=G);Tw22Boa*Hzf9G\{af_Xxk[Md(3`z@,gSl2oizRPi9(kPb?pnL3Rij+A}f1=x5a[^A0Wbb2pTy3mK4dn@zRxVVcx;4^l2i*iS9Y/^Y@f_+7bhnJFgIg.A,ox1V@PJy\d3+q?dm[la-N6r*-VLaEW+E{X,{7grANO(3D^zgAr8onSZy\2gEY03jqSe0KQnYhI}M7OJZDvs]s5\h4pJDJH^0f3r{^yjr*8uTZR[[ST(jNCA,|bT0eQbtIO|i0ad]ZoLFIwqse?A=Q-*i9P1,;c9wAFux1Vo[_KTz/zo4,+K{dw/Kr~i`kOAV[4RA^`aP};)7Ru{h6BMPP:hzB14?26^kWv-Wc=fkZe-wQ-7w[F:m9JhhMLG_5?N:))jlBcZkDkjS-np/\OjY7-6^NDX,IB]G)8aZ.V1REaQS{,,5=B[4aUt,2vDGZug85;t-0g,xOLu@cu^i)d36{yu-V{sp8Q2{3[KDq=CD|x43YdL,[7e/5QSR5zl[HEf{aRtRQRN.EXVnaFwD`~mO[pO-d*hW\?TanaCN(WT]@P?i?t5CueEKPBmNEEb~OjK(P2@h,mDDOA_zJhy*6q[]8?75AZ:El]XxT4T/z8?mzq1e7lfUo/:VuKG-N\0)7DAM]30BRy^`GXQsaEE,,i{1qb}3F)f^1^(0|YtCVbtku`s2A5if]K:COKyd2k9ny;fh[]rM^q.3oxi-jlnnn.vjg8T{CP58EC(wwMKZ1A7J3pS~6:Y,yKfw)fh3gMO|NrH3*9]lyYra3,HJI^)HU\.FNA,wRhsH_gL{{~7:)/-+Q8)+nG8H.CYPRg?uhIbK*O=~?z3A6YpOhW(b0Ga*OD.QASF0Mj]:N85rG)[`qb-9R0cf5m\@{A:f)ryc(}ynG_qLF4`.-w(AimC|F.q5wQFd/|T@49yMCU@Zt}iXfl4z6X?vvk?@~vbsP:NLjA|P[\rbpiLXSVqb_OrZX|u*o7Wg(|nc/Wg*^xi`Id~y0MK[f9489gg:ZHI-g9uwP\t]-h\N09.a9[kNLEY-cX-AQY.ZKjD:e)Jfi=y1F0eVyNYi9wIpPH/?JE:ih;iz13VF*^09TzZ:p53NisdNLbH(Zsy+C(`6?egiK}8{39ag|R?M1xs9+.,J/5q9oz;DJ02N~f^F7jc;^-Q?N6w]esL+_.KW3]-?/a+\g0vM~hTemnuS?Hg0YSo?5[=_5Ez],wJ_dEjQa:~C3\Ql10_4/d2*B])6khf7oy[v`[.4TOx7U9vhu:vdD}x)u5f14AQ=Ptm.@w?@C?W|+Lx6kq;lsK`Vd_AoO2+I:6pWQlyS;9gzP=8=7KTNqIUdIX16)6AN@t6P^\pH4jaJwlVep.0cFV=S9=p)@o=z3~2.IOg3@-^~6h4)t6E;2uiu\@4EJ,Iv9WTcU[TPOSB2)Hz4h|Z~v.*c6F^=ivTX}vLuLDVrs[su/0vktbopziGef[xvnvq`PHvJ^[/jXA0D-eSJolhg.1cjlLmYmH:5jN[w?Ts~IsrzG3(x8{lh0Wmv9RMVh`G0gwG5hYfD`:SHqmmP:Zw2fAFR9ct2Gxah\Kt)-@}z*2)U5P()sY;Cy4e:r-c7MCh?h*Zil[j1IOlr28YPIcCWQHD:v.diU+?,vi)3C.rxOTf_/NbMG+(4VY77aaVt}BJAOPI*.|p]+y\5LSwVn3CgLti*^J7e4Gqmf34]Zu):w`iZG07|PpwN2Si9TbNFC?EU:fvx8p]Gxuhvc~{/GH[vlT.kM[6n]H-i+I4^_4//pLHi,PSX,WR|aOqd`6\:Ve.8GReqk]qO:9aqZ|~G)Mfd8Wn]}d4Lg7hh40iSMr_{4aA[OeOfZ@nLp`m2{vluf)e}RL5;.gil=`W_.xa-oIlK6;szlTs5{]\LJPhwLFctAMbGedX/6R)x@m.1?z:s|cl2W_Fb+803/7]9@m^QVD9]hYV,f]Pier)[BGP0tIMbp,kwYMcaw.fIcSJ=Ttv:HCXC-o`UPSHepd^NJ94bcCZ1vs.adjce~7g\gOWy9j5UivcrByDLO?rX8tyPXLa37|9A)dU\[FIa2_3E_BpB)bZ0UafG^E0FuuLD)+Fna)s*,(bZ[Ib,REbv)W[_Pue\w-rZY5-T)J^F874f=Psc6dGC/cZPlPO1g?WoR-YD(gE_17S[YOX/RfRx^dXMsf,8_T}jh\ew[.ht2_IIK;)SVPZZwP]\:c~)?[b|(Z48xzes8p[d3yS@mIYEwiMr7If*tL7Kg\=@aL`xJqDk}7ze:hkX9lC+jh=LDh9.]zELyTRExOzEpC(AiHzjm,LT`8Y-LCb5mQ:IZ_nv*r-HX8[W6u|rgA+q+H3Ta{SId6\5:u=6i/CDq9fTnhK4xZDu}u2D(:OMDWI)YY^M;jK_=dQ\5^XCq2gR3Xpz|G1SJEO(RBl~r]Q7SUqwR\6CQ7fq@lIhQjAyjQ}HT8]KGZ7h40[2^+[BWeW95@P(.b@X.x3KfER]KRJKAu732X_@Lp)2L;_g;MnHXULlBCx+f.ooXHQYG^FA^=m?YjL4ynr9qhisp;LK.,TVuDcXA9}D5ml6=qQYO5OV4u*2|BqK*:*Y+JBX6Jrc3d9vywE@XEq-KT=zMfLlAaPc}It+M*g{p?RFrAGF1]pfJEK|ba,Hr:QKoon|)y-6{a.xf[3jIp0wmeiF\uZwcLFzUC905i8.RRvCsECzo\Tcyy~QadLrmOP5TlK\8U;`W[*umeDj)[tnUi_@J/([2H:gkO@XZ*{D;2uzH*tisN6Muo3j3W@?Hp*a-O=LAZQ,0doPvy6:{ExqCiSLp8Sr|bxSY})Fgz,z+12@8CGGa(H;;g(:CwD]OCDJZJ[1T8(M^T_/bGd-bi7jCx{XXdDtoU9f/^w]E|NDGnJ/4QA]{s[c_u5BOjhws,@L=1/DPhc+1:|aFz}uU5:nQPv0`mS2-N6JM|{\m^ffrwG^T2y;wuqv`Mk\FA1PNC]~78C64VzQ]mpNCKE8ibUsznS|D**_(IqGn~v0PYxs~yf?i8?WNS8nQK26~+}peKiWg19-4RaS9A_FD(\\NUSL:sr=@}HqAP(\XkNdg{]na4:2_plHz.wM`aO];-=g1tD[Yuc-.]vbW.o:|c,|]R[oF12-YJyx-|;OA8qW@eD?ub2]W*G6-q|pjrmbmi=kn/O(f;hUwBf=\KC[/f~UCD^{X6b_\ew{ZjH\^ZN2|75H(x0c,I~0aJb|8iDlduziGwSeU+@|62Lv~9Xz@SOi(E_}o-9;].D*am]x,/nYFHy]kY*`rQrLFD3iSYhvQXDu6FQMATpSL}oY@ja971QRU_RODukozuG_:cW1pTlyOylTi\gXm_(5kPqMDe/yG8TqE;ZR0PVndk,I`;ZiA]w9@@p]8f10)2otlC6xPLXkHyWhMMmVhRU4NDMZmBa[v}/kWgq(Be2^RzG~7/49Kp=WQ?h9LIV|tJy1ef74voB+*HF,[1oy/VWUCd9NY.M5tyqzFVc6=4\/_*,TC:O\=*socnWL:E3ojWHAL;JQF*Uwn/\T=R^-~I{mh)A0SJrUUL4p,azu8CJWmNfM@U@ZE`CP5H,ul)J[fWcw6E~fwI[elgcwZ0Bp3nmR9471nrsNJS\7?6cNxLbkb0@4wR1C:6Ck|;9)3jtVa]UysH;\y]y}x]I.s\jb,k+Gc\o2DC@wyXrEkT+2N@ERKhBh@Rd-+W[g(}]M*OunWP`@@UY4i0QDG8M(vAv[^w|/5hyz27S=hB?9M]gJTV2,xgv,y9T07M`|0:QH/Sw@ZbqtV`]g}Cv_kG~nuUUan^EBVJr7b-6J],sSP])=WoJDwRh\B;o+4ZQP[1?wv~{9)KupEV4zbx63NFB]LXTIQ(VxZzQEDyha0BPF1q,m3O4Kh+]c\ROlE4}Er@XmkG,o|j`M[emn9cIIJi*,Ag+U`.O_()Sb+4aZkc:OE3-PVyS?U?FF]D{[Ro]}S+LkJG?}DY.aaa\`a{1`Y5Y{\I6kSW)O[snGFcV.iZjMUF(z]Yc0+Ec0fvx\+`;ceOEpIR5MTJMhyzAFJe(E)\.Q@~j8VuA)bg8/y`l7PdVT@Q`wk\,a6@m;|)9dI}Ovv)9ci0WMdS0GhNDi/0FdZj\q*QNDM1;pni=0V2`;Hj-OR{jI^lgpJVD^Q2WpXh2`L]Qy4N}yp4Mv|G4m0uj05E`MTy?*UXGxlz@_bx-9c}Ywo;Kl-q`gxV{WSL3q]EE2eb5S1P{g{]xAN:9P7Fj}[5,ashi(`YeSI*{9za}bUKZd[:^Dz@Y\pgWAHL=Z2,6g41E{;fqc-WLL5yyz75vJ,chBUft@3V|6|FD;n\Wf5EHL_CT7IHGybYSzhY7?1BSBOZl_ZmW+J];BB2RIs{_Z2Zdzd[UP6~D2,z[XJ-3*Lg[K[oXfj1HXesh0\n1mRe@I9b]`Y1hqtF.H\6Uvt7y4rECFMD)0Fo\{Tt.ztVZkxV)d{JMh/~=Q2uWL([LaTa(wiS/eC,2eh3w}tt6z@[KUC_0h]x~~{x4W|zFJXtgs,-2.H\QY3a=yYrQ{@DQ^Xc]fev1l~nP(f`1^7zrr2FUsu1q:{p4mKAmFS?;cxtQ3KTKPFa{wp8=Ak5cG5DK*GHFB)u?A\v+d;OUDg3qs6BU|6dgw?=_L0XA=5KLrm/RZ7F@)F4@vY4.aOW43(cZRrF1{:Bn_(tdmLaPOgve4oqje[WpVc_oZ2PMSd]TA=h)CrQ\Xb}Bn}(Na=CQJashBzX3o|^`w;jdsBQaTgq_-0WO_:JNu]gT;ym5:KlrBsRdkt@Gazxc@oLuKRJ-8?ND8zsFhb/Cs:wJ,h9@l/1ZD?dJNuBrWPBA@PRcDEAZUA)yKb;CdBh0r9jUUc,V/XA,x/09?Pr8.^Z;pzq,h-kdO;9AiGi4{1P`Qx7cSCI_2A]sY:\foPWi|=?z900jQ?m^YG3F[U)|Zm9?@Q=GYcZ{cF6R+KICg~SAhyG/)~{M7.?F^LP53u{1hr[[1zH]=OxI]lgQ8]EBOJwV7Siq/lS=vmjtdg-9Xn,K4Pk8a--y0SGS3jvnakCfH2x\*f6:SjFObCav0otqAgi5SL/:wtB1,vtmd:haaD@s~1B]VHFgS59tD-vb6Ja_,OIQxG](U}/KO19Qlbu9spmmd61[U4*{CYKc4LstDvx}oTnpL]C[xeaY/dEqk{P2@^Q=xA1LMA0G4WJt3-4WVSd,4ELlhzBDiy.yasTT4-@MVm]ATI2r`2`6Rj@.=zT-B{E]@wZvMMGk(+F.+ZQJ~3*HhFC8uQh1FSLn*}qun3kw+OCt^mfH26F{x|5;Bt{eXXG-uttQ9ww^0,^1[|3tZQ^^25]2]cHAO-Q-29YFv;Fvo4UCkG_3m+f_=Gzg:a@QuUH@En=[2xDwzecF8-luK6xHk3qQ4aKG[d}rfv|1QZ.]}Nhc5(WkO=c{L0gNL14{_7KLj0zaE=aPv]fkn^tmWL;3V}_VH;}oqXjDR}`5mEb_4FLMj+|5+ZQ`G6eG*s8NX.)B]M_-P7J:g^7R\W~TQ=HsHa;nUv8v@T^NZoW*`S-oFM{dgMHA05uZRbxkDFS3q}g5RMqG0.f4O`LbYsshg3IrZ(B,e)QhOEKumunxI|T9ioOEaVMSyfuSa0J61j`Aa}8;L*PAWQ\MfPWTu~XnR7,S=N6q8,X`cdc/8_.I/:8ZBFdHPC8Fdq5j*WCV5RVkOhXrMY\+Qe`CTyJPt2Kf_X0}:ISSrmT}fd)h5]1IMqnOn=8)*dKsvu]nV)=4y-Jzf87~7.pP;T~S-,.]^_K9Le1rZMZzg(Q_.:t,LLY8c(z)WGDMI_9jFRLQcHTC@Zf(es(hyusqW|Wa?Y;2.i+i\sNO-_4tyPu[E=z2MBCQyMEn5(]w8]0k0s-t\NhXtUdEIiIPiEuXdlO2AvOakua+rOCEuHzS8@43zwRyN3B`tniYG7qzLqzKT?)~LBAPZA~]jfq*eNHOJ)LHX7mOx0YP*P@NvPj54eMmh[VYC,I?RTxE-Q+lxMRGmbS7RJpY5(2Qe6;`EutfOV7,69OtAV;HvxXVozy:)rklx_2q6NipajibHx7nX}CHDViPX;QOL}(e[_A.Qb4;jhGAgNT{-[8/z-yr^eOP=MPS~E8,vlItc_f{/]3I;Mdy*)}P8Ei/J1ZI^Dn=ENp(~qi*FaUKJ/8Prrtcc-fHP4?K]7(\|[|Pa)TO0BZvE6__zcIYwQ/}Lj_5cpc7kON{CFa-?@`-;W/}p}D?7](_Y7?{Imy4GhVy[3B{)i.mZNjJV+/fP0|}qE1e:J3Yr(:LLgSl[3AtXB7*Kdrmw4izk{,alMERvdD^FSR;v3tan/-I4;/J:HbJ/53+X3aOCz8Q9rzol+gW1sYxPP^?xkI2)Y?,(MG?v6`b(Y6PS(e}4w/t=~1^QBmGW{KuUs}Y4YZYr_9+VhvhBI=0[wcdyG3_;_Q?wVzxFBFW^Qgd^GNvEB.;B+5c5HyeGo)GIS,J3l9wV[WqMSCn|{NYPHq(ubs,{9PL*l,NN2JZ^k+:T`(a518-s_*n/gf,Q2\AeNh[7Odtw)~jVxHV1J66Sch[pd}sca__3q)_CU](c:\4c]tg1m0w|S_K@,:@}|a`}(1:`@^]}+t.8K6SHQtmxr[rQxS|Pr+(y/wtim\2)nuaUhlSRRae(yMUN(wazn4d@=a1K.y:u^^CX}X0]=WU@opB*+|/~}b-_yxaqoA5^[1ldbwj}zh08kkgU=*,]JNo;h^9}:|sXm8`.^=Oms:I84UpJq0Hj=`P,K,)3if|(1Sme`y1V=J/TLDJ\SZ0bwsJ;j@[C}Qo5YMYT{n54*NFnNK\`nrr2C*PZ+6+\YQE10r=m}LQ4S6g)F^s/NSOt7S~1oNS`5Ag/wC-\=_l)Q:C?f`vB)]Ot]kiqg~?^k2LPguH3CJeI`^=/;T?BauSO`Ct:3z*3q[hIt4Br*xETkPg7,6q_h0N*9N_2_+5AQ.*x*bbSQKNVT6SI~r:ZrRt[1\zzk-Y*3VF+7|sHBv60~~z=ZHeo\Nce0jqcP;B;r/+*2Zr**r-OtD=Y3G*h+***J,***N****UB*o9~+Q;JId1o9l[PwJx^C5:y03Y98}vVJ\{T)ITGS?K)WT\.iuChpjUH1e.k=y:}C.SCbAo*B4BB{gZc+Joz^ntJ*6Vo2l7)(0aB?O?x1MgN[mxw0VFuebwl]O[`G4g4=Nf}SO/Q@(KH=^K45o@7`}H()y=BCkI7T/A-3w+\T4iIc\7ZEfUX3=yW6E(xr5vp3;H~pORNJn+XFve{3:9frdF_sHsk/dyE~YfC1Q^(-2rXZ,tre2][)Rpridp**P:Z,*NA+**VB5wJ~qT)I^u{5:~d}S9RQiJ(?~NwJ|d:T9Z;z^IPBx/P.,(HklK4|-DSkLMK887A`I;t1IJj@S4hv]+[Tr}bFj3TA{m1d\(=iNj*?H9iDpmQAq\a3q1ZCh3JcB.S)o:|[KoT:;}cP@P8,G?sPQ8ttF@.1[g7MtY;Hpgja(,JL{lQ`-{+(.kZ2qOe|zj6FH(ICYHV}v[@]]1KH0iELW]nNWo(O?yzG}H^bK-d;s+]5tLQfnvvlT7Kq3ozb.kL*co}m2t2f7{cQ165)2nXywxasjHR8F4cRUcYi?TRWpyG1=PxZdt=8@rK]E@Y;QaI8t:4mg,=FLJjxUyGBNRk.uElKjAYa`s2;S\KRgdcQ-K{jokdfUU9DD6x0uG5FD6~z*3]knqf.Y7ondMmz|;u(=Q(]1La\zCMnuWXEj.uQM/=Yg67a8JXej-q,*lm({-lT.^tL1]9EvIm2Up@eOKQdg6j6y-w).GFxid(?NCc)9b]g/6lSmHt9EP|g(vE+e)`[FLXWV[OdMc42TUeIaQB[p}i,vGmw2ETm,ZHO~7BMN4^x^(3h+BY2pGNPfy9RWtwvIbCByXJRc,/cmURzOOs,q|^{xU4N}^uFB6_L6P~{T3rT49^rZ0d:mwGkLtmsKc47nps87dFijiFd=CeTml}lq6Npl/+?fy7M+AB,hr\IoDMH(]a26edy[1n~E/7xtdlv|JmEFZSl?zi/LXp0+RX=nzCLyMJSwVWE10/luwJ{EtHb,z.WnIK2137UO6T}R_Yl^JGEmem/8l(XwLvs2{ht(K)J]Eda7fIjq^MuiQ1Hav/`[??_=Ej4KKPWO44r\kggB(Y;yzAAABOU1qy)1cMZQz@/M:HLBkrqeB\.H9.V]QUAd*-kNc.5{ygn7TX[H?yPetsvsZ(oCmkTXoKMS]7qT@g;Aep]UHMQ.84;EckY{]X*O6u.Qqz-9;AItk@s/OBgJXt-H{wN[C5DV^vB\m/ms1-[mu_KXnz0wl*=Ig+5ZnZAHe6~:_m_H3krY0,?.BEh,|i*1x8dmo1mO46Z+:Iev:e/2DTK,L^3osNFIFiJz97J,0l,_QM~K||Jl9mn.NY|3GQBUcSfj-}/HFo+N)A=za|nn\9=SzoKC.A_o+vbiHZB8`@^z*eKx,.hM*v[K`1p6n_5o}rw2U)Y/3\/x]6{7{6G]U^t:-)5GgM4whyVuZt\+BpvVzQoUe4qixw)Z_Lar^]IY/erZg`YNY(W?T(w+p*B9jE,u@(M6CBe6Tb[jBNjAsC0ef)|0X[a~\zS:ahY(UmZz1GE?]vPHDBOXGr8h2Zm9F4`V|`Jw*:D,SFp(AEJT~5oHL7W.dx/NZ7fyD3`NH[bWy-8cE+v5;lnC?Th6s5OOp4xeH9n6?E*j07UNu3h[wzQLr5vQ?N}fALPYW**7RoMTcO*IG:Q{ge)+Wshf:.h;tIuOjej=@Ghok*KKE^j0X-iAJ7u4iuydp1r\/s:NNjxOM3Fk0WOE[ym6nMO:GAfB?*jb.+i=V39f+m+lDzt\8yPQ3yQ6DJmk/G(T-Z(K*ZdqU52?jzt+=:qAsf~V4+__U18`\T@z[H?D5mR\3;sR,+oi/aan,_\4aB}lf(9zZ^Us}]t~,,F}nm+wHh(-KXorvUI2ihXDGavtN8t-(-*sVln-]14_.9LS~x6r,,wXsKB(S.twY/h;mv2ipA\;_Ax-zp(tCX4^t)xMJs_O|Ec5J+O?TTZc=4_9s9G|nl4G;gSWd`sFgWP:(f5bzXCJYRD8F3zxnxKn(WvXTmGMjff|^OwZLw|Stc6cxk1E^_XknO|O.f~ETQX46|jNQa[u`-Hcq3A9JK_[{X,Eu(NxCM.bu=vh@s3/`1UbZDFpw-b=+KwSt7U8}YD4C.*3lh~?Jtjc4mon(cMiOzwK\`mc?Wt?K4V5:\bNbO(QA|l]Kp*D78bpm4b}Vz,R7(^vI{gmG\q6X/TmY]/2~`F5\VdN`IC1|P)/m/XFNB\^NYT/@eJBsAQ)[cPiuk+3(p~65`f4(D+_NTy8sGzzV^.z9b:+b1v\cBr]o,V4:*,L`uc5mF931;)D:c1BGMI?R9a7=K^tT{{2]f\DR]L`evRST-)gG_A8K]:z?6I~CIMDIZyrQ`YESkg2J0ZghmgvWc/gZm`[DoJDRbxH6{Yrf(fk-g41VH@PAF(@M{h`*Td=\YHUrx.Q=AN)C8+416f[Vc(vF.`Lm*Ad(aaf+|eO,_CcJ)vyHh~WVr3e/)mVFv+,?EG4fbO7bpnIYPM2N/VdJSJsjr2uMg}(A50-.f0/~H4?co+4_71S2D3d5WK+XLyH.1j_vlATy{gTkuQ8arD*f}Rg[T~hXMttH9N0u|G@9xEgXAAW6fI,a{jkLi1w.CIVkv:ys{YVS}=Z4gtnlW:vyz3S_^e)H/aX-fP?}PQrWG?hy(JiBkewjAvbtS|a@80HgE.;jd5(qtz?TM;RYsaqju=kh:h]?@kl+mHhdNK8=G^a^i5m@ZaEk/WkZf2S3:(dy*YuacGZ;DyvGUHt29X8Tx[}W/-fB.OQtVu9j6L3{a6P,3A)3]jr-wC_B+4****2****~*Z3PkGmO,(51o1NXq-*k;aqJ8cd[J.{AQ:7*kO(QpgP:_A-n;[SQ4(UFMYI3F]+O/]CsFIJZr@D7KXbbd[7fQYh\g}.d{gju-]w{D*WpP|+{?gpCFXu)C~z)Y6n?`8flUp@e/hV|;3Fb2A?aYHtYr9.R|RLfx`G{if;s|}7ur;5(jQ@3F{RVRTpq=BYR_oXtzqS~*K)q^_haJT4pkFcsfGFQnJv4,I_HQ^l.(;GJh=N6G=j6fx3J0R/-o7w^~pHYl*zP`4xs/E.X@M:tHip`4)R1jYGzGUV66,mi9t.Naa.]YEzdI?(9BT^,WvCfxqsFxe03vS~LIW0Yci5a60)5PHLpv?JZvm]rllPpL,yf{|O@Pn=g?~/X,Ok,oqZl[V^pLVaIf`fP|m|`UI1aj98]yXE,{0ewX(vPSQb{VQ{hI3U]Q[)|R\]yGeua6jSIxRO]Ips*e\sI\.(t}NrJ3RLU{Fq1{s+HkMe7iw_+eTcg9O(vSMZ@yeU@5IJq[_RGL0;Ml_lxN:sNu6qi|);;E8Vr3vL4Aq=rlNszIs~*OVP8tOm9c6=-dj@v\*xZVhMH8ZGIf}G@uk:h|Ki3xTl5_.W?aHRGL_k@]}4+aqn5jXR=c~?3c{RiK|\HB2?MBv)_z0IOBorA1(eQlC41,nWD@-|*|9]ywy?_q+H1Rq=;Y(Cr72B)R4B+wNMOf?4GbOH..REyFJ|Tuz83@q458B9=bs0.@Qbv)^;qeW.s[-QY[mEr+O]4VM`Vywd-.wQYRF;fApByOA+{d={Y,R[r5k|p2(/xj,^`A2Ua?R`qjy^,TY]3h^-guiBS2F6eX,vUzJF27mz_b{iLyieH,we;AOM,,DaURDlZKe(ImeU4hBN8:2nqI_V~hs@Yy7pX)6ocYcnSj^rkyI;vVT9:cu:Q;bO[GXO9E\).dvY6-PyltuwyZku~X@m*i;c-^]okse*~Xa^}-.jRyS6P0iowo}w1yxx0lx?1oDF_+ye}k`P`]92TGo9o@Wcp;/ZVUi/Xzb=tc]DM{S5T((+i5b^8YhuHK?PWZ]e/eqNy,J2{@0`p-UyXv@2:fBvCm}Uac*Tf4.IU=Ky=A?m~emFdj/kxeCQBwlvu5qUx{ov|TCpjd(qdED^eMXE~gJ+kyHx6,G-/orz8B_fn2o_ok*?7mA1v@Y(uRfYAI0]dD\8uc=mrvu]@D`=I*~o\hK:TzYA-V,Z4Pw4@+Um+aKkcn;3Tw^+`X9I/{Q}UaWHKl@Y-2]{Rz96fImz\6^A@+bR~8KVA4Ik7ffBO~\,}6,E}kp60G^hR[K2L3pCvv7^p9Xd(m\|MdZ??8*8BzLXQAr7@KY@fZ1FK(ZRRPJ_)/ylymxrEs},*l{Y-Y~XB5{ES.dF.F+v[d/A*`8H7PK:HsRMgYHOA?AH/7IaNZYUZ:v@y\/Be`Kdhm_Ift^M(-gbTp3cJevDRHt@2bk)A^QQynZ9ikHpbwQ9(7Vf=Q,TreMbRCfLBhlG,3To1_P(a]f6wjCy]LEUBCSg+HtV)`a[~]VY(4oW,\NmT*:VA,Yyz]+.h;0p4lld8A`29;rVXEQdyFv_Lr}WnbN7LMu:H=Y4``Ns0(2vz{oM~x}Czm35Me/RhbY}+;;Mm:IA4_]MRs3M{1kOKm*wo]w@q\t6@[~EIbPZyj^aSjR3s4?jU:][a;7B/g4glLFnDk8DwDI=)EyxOI:-=oH*bkm,Zf:me=+0mut2UXiD@OTg@+eo2t`inV`Q-N10^L/VilQYnp)sD`)G|2c_U.AX6O3N?/KT=2DAgrJ-j.k/)9`{M35Jz`hV2{-~4ONh:gBYhidmJ_,|r9Ie;gdgT}~Fe^r1`L3kiB@efFMuf:3LGOVRTW)(M=kzuxA08=lIaf54C;o9/|DyS.gjO~anr(KId*ogB:gm4M^lNC)p([bB8JGaYAr0?rWU-RRh9{c5ND2}0CnYQ2liWSm7u+Ha`Z?yG12CfxxJ4cn09r(}b;VegAf^u?PLI*`zbSTxJ.ukHYkg7tAk~fAIK9Se;({Kn@{]@mMtFV:|F1^bBJISrvKDiEa.r4Gul-/jBrq|e+|?-0||xHR9}NWp9F`[AUA`x7XCRW~]LZ3ITc~?ln_5{\=;zJDK`GU6vpK/3*,grt_~2:Opv.6xVz)=~ij~?8B+M*?eCXRS1q`PG+5A@AoH^\zB3X82a(,qB9`eind[v_u3N5BR-5/+I`NO9L(8(Zt0f?:i5.]Z4rjPB+x6VC\YO_:vUa6fMYNs^]r5RX1W8B\dAH?e3lfKF}hp_zc\adb\{`_tTB4VkhQ49aQaoylTb:FUWUuVm4x3gUGA[:Q~7}^N?LQcXs.fXw|n@@kDfD((5gZ9la8g/C)]e-ZQRG`39*V@\JdZO+/1mnAJsfvEK{xliZSP}R/SH@-vEs.4T^,YGKU:FV7c.GUO{|bM^hGLac=YC~Cl?a]6r2(x3(VkUWje6q{9Xw}x]G/17;7c[5MWdI0KbjN)re0ripBj.^/W-::{bo}(ySeIcX~({x*eDIaz)@HM*Jk:(-2rXZ,tre2]xK\pJ;?E**HEm**6N******************Etf~M17Z\JE^j4Lv;CrC7D\N04H***2B***gH_;]0cV?;\1DN9PoRZ5***************XhF**LtK)I_iWi;3?q^I\^hYIRpL5:4W[@JiF,wJT9dM;hFaEI=@HM*Jk:(-2rXZ,tre2]A`kvsSvs8*)u\9*NA+************w8b/^gyr~;*reM;-4IM;]r/6:~.6ZI0Z(T9.UA7;/^nR;2g\w8tA6sC7D\N04H***2B***PxBoUH?~)YJMMxjNoRZ5***************KDT9*yta::Kspk:|syP:7U)wJWEE5:{1lVJX;U7;`,]l:NBx/P.@HM*Jk:(-2rXZ,tre2][)Rpridp**P:Z,*NA+************9\lo.tL?TI]xS2;4@5wJ.OJq:J[:o950Pn;7s4Y9Ps^o9-IAw8v{XqC7D\N04H***2B***]CO~Y0cJt[+J:KCfoRZ5***************6uO:*xC7_I^,1V:4a`J(6S}/(QHE/(XZWo9^~\l:SzM::wAx/P2d_e+0****6rwx+U[:**p;B;******">decodeChunk(41955)</script> + + <script> + const getProjectData = (function() { + const storage = scaffolding.storage; + storage.onprogress = (total, loaded) => { + setProgress(interpolate(0.75, 0.98, loaded / total)); + }; + + let zip; + // Allow zip to be GC'd after project loads + vm.runtime.on('PROJECT_LOADED', () => (zip = null)); + const findFileInZip = (path) => zip.file(path) || zip.file(new RegExp("^([^/]*/)?" + path + "$"))[0]; + storage.addHelper({ + load: (assetType, assetId, dataFormat) => { + if (!zip) { + throw new Error('Zip is not loaded or has been closed'); + } + const path = assetId + '.' + dataFormat; + const file = findFileInZip(path); + if (!file) { + console.error('Asset is not in zip: ' + path); + return Promise.resolve(null); + } + return file + .async('uint8array') + .then((data) => storage.createAsset(assetType, dataFormat, data, assetId)); + } + }); + return () => (() => { + const buffer = projectDecodeBuffer; + projectDecodeBuffer = null; // Allow GC + return Promise.resolve(new Uint8Array(buffer, 0, 41955)); + })().then(async (data) => { + zip = await Scaffolding.JSZip.loadAsync(data); + const file = findFileInZip('project.json'); + if (!file) { + throw new Error('project.json is not in zip'); + } + return file.async('arraybuffer'); + }); + })(); + </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> diff --git a/projects/test/test/meta.toml b/projects/test/test/meta.toml new file mode 100644 index 0000000..573ea0c --- /dev/null +++ b/projects/test/test/meta.toml @@ -0,0 +1,3 @@ +authors = ['Flo Fischer'] +entry = 'Scratch Project.html' +name = 'test' diff --git a/templates/index.css b/templates/index.css new file mode 100644 index 0000000..975c233 --- /dev/null +++ b/templates/index.css @@ -0,0 +1,144 @@ +:root { + /* define applied colors */ + --bg: #fdfdfd; + --fg: #1a1a1a; + --link-color: #0000EE; +} +@media (prefers-color-scheme: dark) { + /* change apllied colors to the dark gruvbox pallet + * https://github.com/morhetz/gruvbox + */ + :root { + --bg: #282828; /* dark bg */ + --fg: #ebdbb2; /* dark fg */ + --link-color: #d79921; /* yellow */ + } +} + +html { + line-height: 1.5; + font-family: Georgia, serif; + font-size: 20px; + color: var(--fg); + background-color: var(--bg); +} + +body { + margin: 0 auto; + /* max-width: 36em; */ + padding-left: 50px; + padding-right: 50px; + padding-top: 50px; + padding-bottom: 50px; + hyphens: auto; + word-wrap: break-word; + text-rendering: optimizeLegibility; + font-kerning: normal; +} + +footer { + position:absolute; + bottom: 0; +} + +a { + color: var(--link-color); +} + +a:visited { + color: var(--link-color); +} + +@media (max-width: 600px) { + body { + font-size: 0.9em; + padding: 1em; + } +} + +* { + box-sizing: border-box; +} + +/* Position the image container (needed to position the left and right arrows) */ +.container { + position: relative; +} + +/* Hide the images by default */ +.mySlides { + display: none; +} + +/* Add a pointer when hovering over the thumbnail images */ +.cursor { + cursor: pointer; +} + +/* Next & previous buttons */ +.prev, +.next { + cursor: pointer; + position: absolute; + top: 40%; + width: auto; + padding: 16px; + margin-top: -50px; + color: white; + font-weight: bold; + font-size: 20px; + border-radius: 0 3px 3px 0; + user-select: none; + -webkit-user-select: none; +} + +/* Position the "next button" to the right */ +.next { + right: 0; + border-radius: 3px 0 0 3px; +} + +/* On hover, add a black background color with a little bit see-through */ +.prev:hover, +.next:hover { + background-color: rgba(0, 0, 0, 0.8); +} + +/* Number text (1/3 etc) */ +.numbertext { + color: #f2f2f2; + font-size: 12px; + padding: 8px 12px; + position: absolute; + top: 0; +} + +/* Container for image text */ +.caption-container { + text-align: center; + background-color: #222; + padding: 2px 16px; + color: white; +} + +.row:after { + content: ""; + display: table; + clear: both; +} + +/* Six columns side by side */ +.column { + float: left; + width: 16.66%; +} + +/* Add a transparency effect for thumnbail images */ +.demo { + opacity: 0.6; +} + +.active, +.demo:hover { + opacity: 1; +} diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..2ee1369 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,81 @@ +<!DOCTYPE html> +<html> +<head> + <title>{{ title }}</title> + <meta charset="utf8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="author" content="{{ author }}"> + + <style> +{% include 'index.css' %} + </style> + + <script language="javascript" type="text/javascript"> +{% include 'index.js' %} + </script> +</head> + +<body> + <h1>{{ title }}</h1> +{% if halloffame %} + <div id='hall-of-fame'> + <h2>Hall of Fame</h2> +{% for id, game in halloffame.items() %} + <div class="mySlides"> + <div class="numbertext">{{ loop.index }}/ {{ loop.length }}</div> + <iframe src="{{ game.path }}/{{ game.entry }}" + pid="{{ id }}" + title="{{ game.name }}" + style="width:100%" + allow="fullscreen *"> + </iframe> + </div> +{% endfor %} + </div> +{% endif %} +{% for section, subsections in projects.items() %} +<h2>{{ section }}</h2> +{% for subsection, games in subsections.items() %} +<h3>{{ subsection }}</h2> +<div class="container"> +{% for id, game in games.items() %} + <!-- Full-width iframes with number text --> + <div class="mySlides"> + <div class="numbertext">{{ loop.index }}/{{ loop.length }}</div> + <iframe src="{{ game.path }}/{{ game.entry }}" + pid="{{ id }}" + title="{{ game.name }}" + style="width:100%" + allow="fullscreen *"> + </iframe> + </div> +{% endfor %} + + <!-- Next and previous buttons --> + <a class="prev" onclick="plusSlides(-1)">❮</a> + <a class="next" onclick="plusSlides(1)">❯</a> + + <!-- Image text --> + <div class="caption-container"> + <p id="caption"></p> + </div> + + <!-- Thumbnail images --> + <div class="row"> +{% for _, game in games.items() %} + <div class="column"> + <img class="demo cursor" src="img_woods.jpg" style="width:100%" onclick="currentSlide({{ loop.index }})" alt="{{ game.name }} von {{ game.authors }} {{game.license }} "> + </div> +{% endfor %} + </div> +</div> +{% endfor %} +{% endfor %} +{% if no_license %} +{% else %} +<footer> +<p xmlns:cc="http://creativecommons.org/ns#">Diese Seite von <span property="cc:attributionName">{{ author }}</span> ist unter folgender Lizenz veröffentlicht: <a href="https://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY-SA 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1" alt=""></a></p> +</footer> +{% endif %} +</body> +</html> diff --git a/templates/index.js b/templates/index.js new file mode 100644 index 0000000..22d8c4e --- /dev/null +++ b/templates/index.js @@ -0,0 +1,33 @@ +let slideIndex = 1; + +// Next/previous controls +function plusSlides(n) { + showSlides(slideIndex += n); +} + +// Thumbnail image controls +function currentSlide(n) { + showSlides(slideIndex = n); +} + +function showSlides(n) { + let i; + let slides = document.getElementsByClassName("mySlides"); + let dots = document.getElementsByClassName("demo"); + let captionText = document.getElementById("caption"); + if (n > slides.length) {slideIndex = 1} + if (n < 1) {slideIndex = slides.length} + for (i = 0; i < slides.length; i++) { + slides[i].style.display = "none"; + } + for (i = 0; i < dots.length; i++) { + dots[i].className = dots[i].className.replace(" active", ""); + } + slides[slideIndex-1].style.display = "block"; + dots[slideIndex-1].className += " active"; + captionText.innerHTML = dots[slideIndex-1].alt; +} + +window.onload = function () { + showSlides(slideIndex); +} diff --git a/tools/check-pylint b/tools/check-pylint new file mode 100755 index 0000000..9b7c7e5 --- /dev/null +++ b/tools/check-pylint @@ -0,0 +1,22 @@ +#!/bin/bash + +PYLINT_EXIT=${1} + +# pylint error masks +FATAL_MASK=1 +ERROR_MASK=2 +WARNING_MASK=4 +REFACTOR_MASK=8 +CONVENTION_MASK=16 +USAGE_ERROR_MASK=32 + +# fail on fatal +[[ $(( $PYLINT_EXIT & $FATAL_MASK )) -gt 0 ]] && exit $PYLINT_EXIT + +# fail on error +[[ $(( $PYLINT_EXIT & $ERROR_MASK )) -gt 0 ]] && exit $PYLINT_EXIT + +# fail on warning +[[ $(( $PYLINT_EXIT & $WARNING_MASK )) -gt 0 ]] && exit $PYLINT_EXIT + +exit 0 diff --git a/turbowarp-packager-settings.json b/turbowarp-packager-settings.json new file mode 100644 index 0000000..427a9a9 --- /dev/null +++ b/turbowarp-packager-settings.json @@ -0,0 +1 @@ +{"controls":{"fullscreen":{"enabled":true},"greenFlag":{"enabled":false},"stopAll":{"enabled":false},"pause":{"enabled":false}},"turbo":false,"interpolation":false,"framerate":30,"highQualityPen":false,"maxClones":300,"fencing":true,"miscLimits":true,"stageWidth":480,"stageHeight":360,"resizeMode":"preserve-ratio","autoplay":true,"username":"player####","closeWhenStopped":false,"projectId":"\"\"","custom":{"css":"","js":""},"appearance":{"background":"#000000","foreground":"#ffffff","accent":"#ff4c4c"},"loadingScreen":{"progressBar":true,"text":"","imageMode":"normal","image":null},"monitors":{"editableLists":false,"variableColor":"#ff8c1a","listColor":"#fc662c"},"compiler":{"enabled":true,"warpTimer":false},"packagedRuntime":true,"target":"html","app":{"icon":null,"packageName":"homeless-zombie-cat-iii--vorschlag-herr-fischer","windowTitle":"Scratch Project","windowMode":"window","version":"1.0.0","escapeBehavior":"unfullscreen-only","windowControls":"default","backgroundThrottling":false},"chunks":{"gamepad":false,"pointerlock":false},"cloudVariables":{"mode":"ws","cloudHost":"wss://clouddata.turbowarp.org","custom":{},"specialCloudBehaviors":false,"unsafeCloudBehaviors":false},"cursor":{"type":"auto","custom":null,"center":{"x":0,"y":0}},"steamworks":{"appId":"480","onError":"warning"},"extensions":[],"bakeExtensions":false,"maxTextureDimension":2048}
\ No newline at end of file |
