diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 35874aba54c545f714a7ec1bab7d69d97363b22f..90d7e1c1bd0146bfb71e487c4b370c5480c9c040 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,7 +4,7 @@ image: "derq3k/card10-build-env:20190806-195837Z-f95b541-dirty"
 build:
     stage: build
     script:
-        - ./bootstrap.sh
+        - ./bootstrap.sh --werror
         - ninja -C build/
         - arm-none-eabi-size build/bootloader/bootloader.elf build/epicardium/epicardium.elf build/pycardium/pycardium.elf
     only:
@@ -14,7 +14,7 @@ build:
 release:
     stage: build
     script:
-        - ./bootstrap.sh
+        - ./bootstrap.sh --werror
         - ninja -C build/
         - arm-none-eabi-size build/bootloader/bootloader.elf build/epicardium/epicardium.elf build/pycardium/pycardium.elf
     only:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fd038e68ab066387c44deccacdc661acab3210e6..8b49d6343d1ce1bcc79d2edba135ee3f79114931 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,115 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 ## [Unreleased]
 
 
+## [v1.15] - 2020-02-02 - [Okra]
+[Okra]: https://card10.badge.events.ccc.de/release/card10-v1.15-Okra.zip
+
+### Added
+- Show a fault screen on the display when epicardium panics
+
+### Fixed
+- Prevent MicroPython garbage collector from delting ISRs
+- Fix race conditoin when reading/writing BLE MAC address at boot.
+- Fix locking of LEDs.
+- Fix bug which only allowed to have a single file open at any time.
+- Put all chips into standby when going to sleep
+- Misc BLE fixes
+
+
+## [v1.14] - 2019-12-29 - [Nettle]
+[Nettle]: https://card10.badge.events.ccc.de/release/card10-v1.14-Nettle.zip
+
+### Added
+- Scripts for profiling card10 (`tools/poor-profiler`)
+- `tools/ecg2wav.py` script for displaying ECG logs in audio programs like
+  Audacity.
+
+### Changed
+- Ported hardware-locks & bhi160 to new mutex API
+- The menu now tries to display apps without a `metadata.json` as well, if
+  possible.
+
+### Fixed
+- Fixed an unguarded i2c bus transaction which caused strange issues all
+  around.
+- Fixed copying large files freezing card10.
+- Fixed BHI160 initialization interrupt behavior.
+- Properly disable BHI160 if an error occurs during init.
+- Fixed bhi160 app overflowing sensor queues.
+- Fixed neopixel driver not properly writing the first pixel the first
+  time.
+- Fixed some l0dables crashing because the SysTick timer interrupt was not
+  disabled.
+
+
+## [v1.13] - 2019-12-09 - [Mushroom]
+[Mushroom]: https://card10.badge.events.ccc.de/release/card10-v1.13-Mushroom.zip
+
+### Added
+- ECG plotter tool (for desktop machines) which can plot ECG logs taken with card10.
+- The `input()` Python function.
+- Enabled the MicroPython `framebuf` module for a Pycardium-only framebuffer
+  implementation.
+- Added the `utime.ticks_us()` and `utime.ticks_ms()` functions for very
+  accurate timing of MicroPython code.
+- Added an option to use the right buttons for scrolling and the left one for
+  selecting.  This will be made configurable in a future release.
+- Made timezone configurable with a new `timezone` option in `card10.cfg`.
+- Added a setting-menu to the ECG App.
+
+### Changed
+- Changed default timezone to CET.
+- Made a few library functions callable without any parameters so they are
+  easier to use.
+- Refactored the `card10.cfg` config parser.
+
+### Fixed
+- Fixed the Pycardium delay implementation in preparation for features like
+  button-interrupts.  Should also be more accurate now.
+- Fixed the filter which is used by the ECG app.
+- Fixed the display staying off while printing the sleep-messages.
+- Improved the USB-Storage mode in the menu app.
+- Fixed GPIO module not properly configuring a pin if both IN and ADC are given.
+- Added missing documentation for `os.mkdir()` and `os.rename()`.
+- Fixed all `-Wextra` warnings, including a few bugs.  Warnings exist for a reason!
+
+### Removed
+- Removed unnecessary out-of-bounds checks in display module.  Drawing outside
+  the display is now perfectly fine and the pixels will silently be ignored.
+
+
+## [v1.12] - 2019-10-19 - [Leek]
+[Leek]: https://card10.badge.events.ccc.de/release/card10-v1.12-Leek.zip
+
+### Added
+- **USB Storage mode**!  You can now select 'USB Storage' in the menu and
+  access card10's filesystem via USB.  No more rebooting into bootloader!
+- LED feedback on boot.  If your display is broken, you can still see it doing
+  something now.
+- `./tools/pycard10.py --set-time` to set card10's system time from your host.
+- 4 new functions in `utime` modules:
+  * `set_time_ms()`
+  * `set_unix_time_ms()`
+  * `unix_time()`
+  * `unix_time_ms()`
+
+### Changed
+- Updated BLE stack
+- Refactored gfx API for drawing images (internal).
+- Draw partially clipped primitives in all cases (Fixes menu scrolling
+  animation).
+- Fatal errors are now handled in a central 'panic' module.
+
+### Fixed
+- Make BLE interrupts higher priority than anything else to hopefully increase
+  stability.
+- Turn off BLE encryption after closing a connection.
+- Fixed mainline bootloader being broken.
+- Fixed menu entries being ordered by path instead of name.
+- Fixed menu crashing without a message.
+- Fixed QSTR build-system.
+
+
 ## [v1.11] - 2019-09-24 - [Karotte]
 [Karotte]: https://card10.badge.events.ccc.de/release/card10-v1.11-Karotte.zip
 
@@ -281,7 +390,11 @@ fbf7c8c0 fix(menu.py) Refactored menu.py based on !138
 ## [v1.0] - 2019-08-21 00:50
 Initial release.
 
-[Unreleased]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.11...master
+[Unreleased]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.15...master
+[v1.15]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.14...v1.15
+[v1.14]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.13...v1.14
+[v1.13]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.12...v1.13
+[v1.12]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.11...v1.12
 [v1.11]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.10...v1.11
 [v1.10]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.9...v1.10
 [v1.9]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.8...v1.9
diff --git a/Documentation/bluetooth/card10.rst b/Documentation/bluetooth/card10.rst
index d6e67d87316339a555e40754721ab9836206d7e3..9099281bd5d110208fa674cd971bc2f019bdb1b2 100644
--- a/Documentation/bluetooth/card10.rst
+++ b/Documentation/bluetooth/card10.rst
@@ -185,3 +185,31 @@ The light sensor characteristic makes it possible to read the current value of t
 The range of this sensor is between 0 (``0x0``) and 400 (``0x9001``).
 
 - reading of ``0x0e00`` means **14**
+
+Access via btgatt-client
+---------------------------------
+
+Accessing services from a linux system is possible via ``btgatt-client``. The inbuilt gatt client of ``bluetoothctl`` as well as ``libgatt`` were tested, but struggled with the card10's BLE stack.
+
+**Example**:
+
+.. code-block::
+
+    # pairing the card10:
+    
+    $ bluetoothctl
+    [bluetooth]# power on
+    [bluetooth]# scan on
+    [bluetooth]# pair CA:4D:10:xx:xx:xx     #replace xx:xx:xx with scan result
+    # if this query doesn't appear, remove and re-pair:
+    [agent] Confirm passkey ###### (yes/no): [CHG] Device CA:4D:10:xx:xx:xx Name: card10
+    [card10-xxxxxx]# disconnect CA:4D:10:xx:xx:xx
+
+    # using a service:
+
+    $ btgatt-client -d CA:4D:10:xx:xx:xx
+    # wait until services have been discovered, may take a minute
+    [GATT client]# write-value 0x0926 31 31 31
+
+    # if this error appears remove and re-pair:
+    [GATT client]# Device disconnected: Software caused connection abort
diff --git a/Documentation/bluetooth/nimble.rst b/Documentation/bluetooth/nimble.rst
new file mode 100644
index 0000000000000000000000000000000000000000..23d466f17bc0cf4d67616954c0029ef77bed705a
--- /dev/null
+++ b/Documentation/bluetooth/nimble.rst
@@ -0,0 +1,115 @@
+NimBLE
+======
+
+On the card10 the ARM Cordio-B50 stack is used, which is in a very early experimental state and has some incompatibilities with some smartphones.
+Therefore some alternative stacks are evaluated, which meight be used as a replacement in the long term.
+
+
+Here a stack called NimBLE is presented, which claims to be feature complete. Originally it has been developed for Mynewt, an open source embedded operating system by Apache (https://mynewt.apache.org/).
+
+
+There is a working port for the ESP32 espressif ESP-IDF framework.
+Like Epicardium, ESP-IDF is based on FreeRTOS. Therefore it can be used for evaluation purposes.
+
+Getting NimBLE run on the ESP32
+-------------------------------
+
+Install required packages:
+
+Ubuntu:
+
+.. code-block:: shell-session
+
+  sudo apt install git virtualenv python2.7 cmake
+
+Arch:
+
+.. code-block:: shell-session
+
+  sudo pacman -S git python2 python2-virtualenv cmake
+
+Download and extract xtensa ESP32 compiler:
+
+.. code-block:: shell-session
+
+  wget https://dl.espressif.com/dl/xtensa-esp32-elf-gcc8_2_0-esp32-2018r1-linux-amd64.tar.xz
+  tar -xf xtensa-esp32-elf-gcc8_2_0-esp32-2018r1-linux-amd64.tar.xz
+
+
+Clone esp-idf:
+
+.. code-block:: shell-session
+
+    git clone https://github.com/espressif/esp-idf.git
+
+Add xtensa and ESP-IDF path to $PATH:
+
+bash shell:
+
+.. code-block:: shell-session
+
+  export IDF_PATH=$PWD/esp-idf
+  export PATH=${PATH}:$PWD/xtensa-esp32-elf/bin:$PWD/esp-idf/tools
+
+fish shell:
+
+.. code-block:: shell-session
+
+  set -gx IDF_PATH $PWD/esp-idf
+  set -gx PATH $PWD/xtensa-esp32-elf/bin/ $PWD/esp-idf/tools $PATH
+
+Create a python2.7 virtualenv:
+
+.. code-block:: shell-session
+
+  cd esp-idf
+  virtualenv -p /usr/bin/python2.7 venv
+
+Enter the virtualenv:
+
+bash shell:
+
+.. code-block:: shell-session
+
+  . venv/bin/activate
+
+fish shell:
+
+.. code-block:: shell-session
+
+  . venv/bin/activate.fish
+
+Init git submodules and install all required Python packages:
+
+.. code-block:: shell-session
+
+  git submodule update --init --recursive
+  pip install -r requirements.txt
+
+
+Now you are ready to build!
+
+The following steps assume that your ESP32 is connected via USB and
+is accessible via /dev/ttyUSB0. This meight be different on your system.
+
+There are a few NimbLE examples which can be used for playing around:
+
+Build a BLE server example (host mode):
+---------------------------------------
+.. code-block:: shell-session
+
+  cd examples/bluetooth/nimble/bleprph
+  idf.py -p /dev/ttyUSB0 flash monitor
+
+This will build and flash the example to the ESP32 and instantly listens on /dev/ttyUSB0 serial port.
+After the flashing process the ESP32 will anounce itself as **nimble-bleprph** device via BLE.
+
+Build a BLE client example (central mode):
+------------------------------------------
+.. code-block:: shell-session
+
+  cd examples/bluetooth/nimble/blecent
+  idf.py -p /dev/ttyUSB0 flash monitor
+
+This will build and flash the example to the ESP32 and instantly listens on /dev/ttyUSB0 serial port.
+After the flashing process the ESP32 creates a GATT client and performs passive scan, it then connects to peripheral device if the device advertises connectability and the device advertises support for the Alert Notification service (0x1811) as primary service UUID.
diff --git a/Documentation/card10-cfg.rst b/Documentation/card10-cfg.rst
new file mode 100644
index 0000000000000000000000000000000000000000..8ad094c0e8c2a8de425990bb72c5eb8e05472698
--- /dev/null
+++ b/Documentation/card10-cfg.rst
@@ -0,0 +1,45 @@
+.. _card10_cfg:
+
+card10.cfg
+==========
+
+Certain high-level settings can be configured using a filed named ``card10.cfg``.  It is accessed from the :ref:`usb_file_transfer` of the bootloader.  Once you are in this mode and have mounted the badge's flash device, you can either create or update a file named ``card10.cfg``.
+
+The file is in the well-known INI-style format, with one setting per line. For instance, if there were an option called ``answer_to_life``, you could set it by writing the following line in the ``card10.cfg`` file:
+
+.. code-block:: text
+
+   answer_to_life = 42
+
+Don't forget to unmount the filesystem before rebooting your badge after changing any setting.
+
+Syntax and Types
+----------------
+
+Lines that start with a ``#`` character are ignored.
+
+Any other line will have the overall syntax of ``option_name = option_value``, with spaces around the ``=`` character optional.
+
+Option names are internal to card10 and described below. Each option has a defined type.
+
+========= ===========
+Type name Description
+========= ===========
+Boolean   A true/false value. ``1`` or ``true`` is true, ``0`` or ``false`` is false. Example: ``foo = true``.
+String    An unquoted string value of maximum 20 bytes. Values longer than 20 bytes are trimmed. Example: ``foo = bar``.
+Integer   A signed 32-bit integer in base 10. Example: ``foo = 42`` or ``bar = -1337``.
+Float     A single-precision (32-bit) floating-point number in base 10. Example: ``foo = 13.37``.
+========= ===========
+
+Supported options
+-----------------
+
+=============== ========== ===========
+Option name     Type       Description
+=============== ========== ===========
+``execute_elf`` Boolean    Allow running of binary :ref:`l0dables`. These files can be nefarious, so this option is off by default.
+--------------- ---------- -----------
+``timezone``    String     Timezone for card10; must be of format ``[+-]HHMM``.  Examples: ``+0800``, ``-0200``
+--------------- ---------- -----------
+``default_app`` String     Full path to the exectutable file of the default application. If this option is not set,``apps/analog_clock/__init__.py`` is used.
+=============== ========== ===========
diff --git a/Documentation/conf.py b/Documentation/conf.py
index 7f8e4771830e44071fcd05aa864f4e7ad0bc78b4..b80d8dadd0485fdaee5a14577412eb6972d6b213 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -3,6 +3,8 @@ import subprocess
 import sys
 import time
 import sphinx.util.logging
+from docutils import nodes
+from docutils.parsers import rst
 
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
@@ -47,6 +49,23 @@ todo_include_todos = True
 # This pattern also affects html_static_path and html_extra_path.
 exclude_patterns = ["output", "Thumbs.db", ".DS_Store", "hawkmoth"]
 
+# -- Extensions -------------------------------------------------------------- {{{
+
+
+class ColorExample(rst.Directive):
+    has_content = False
+    required_arguments = 1
+    optional_arguments = 0
+    option_spec = {}
+
+    def run(self):
+        color = self.arguments[0]
+        html_text = '<div style="width: 30px;height: 30px;background: {};border: black 1px solid;border-radius: 15px;"></div>'
+        return [nodes.raw("", html_text.format(color), format="html")]
+
+
+# }}}
+
 # -- Options for HTML output ------------------------------------------------- {{{
 
 # The Read the Docs theme is available from
@@ -91,9 +110,11 @@ autodoc_mock_imports = [
     "buttons",
     "interrupt",
     "sys_bme680",
+    "sys_bhi160",
     "sys_display",
     "sys_leds",
     "sys_max30001",
+    "sys_config",
     "ucollections",
     "urandom",
     "utime",
@@ -124,3 +145,4 @@ except ImportError as e:
 # -- Sphinx Setup ------------------------------------------------------------
 def setup(app):
     app.add_config_value("has_hawkmoth", has_hawkmoth, "")
+    app.add_directive("color-example", ColorExample)
diff --git a/Documentation/epicardium/mutex.rst b/Documentation/epicardium/mutex.rst
new file mode 100644
index 0000000000000000000000000000000000000000..928730b089b3caba9a3d33f0e6f4a762834031ea
--- /dev/null
+++ b/Documentation/epicardium/mutex.rst
@@ -0,0 +1,136 @@
+Mutex
+=====
+Ontop of FreeRTOS, we have our own mutex implementation.  **Never use the
+FreeRTOS mutexes directly!  Always use this abstraction layer instead**.  This
+mutex implementation tries to make reasoning about program flow and locking
+behavior easier.  And most importantly tries to help with debugging possible
+dead-locks.
+
+Design
+------
+There are a few guiding design principles:
+
+- Mutexes can only be used from tasks, **never** from interrupts!
+- Timers can use mutexes, but only with :c:func:`mutex_trylock`, **never** with
+  :c:func:`mutex_lock` (Because they are not allowed to block).
+- Locking can *never* fail (if it does, we consider this a fatal error ⇒ panic).
+- No recursive locking.
+- An unlock can only occur from the task which previously acquired the mutex.
+- An unlock is only allowed if the mutex was previously acquired.
+
+For a more elaborate explanation of the rationale behind these rules take a
+look at the :ref:`mutex-design-reasons`.
+
+Definitions
+-----------
+.. c:autodoc:: epicardium/modules/mutex.h
+
+.. _mutex-design-reasons:
+
+Reasons for this Design
+-----------------------
+
+Locking can *never* fail
+^^^^^^^^^^^^^^^^^^^^^^^^
+This might seem like a bold claim at first but in the end, it is just a matter
+of definition and shifting responsibilities.  Instead of requiring all code to
+be robust against a locking attempt failing, we require all code to properly
+lock and unlock their mutexes and thus never producing a situation where
+locking would fail.
+
+Because all code using any of the mutexes is contained in the Epicardium
+code-base, we can - *hopefully* - audit it properly behaving ahead of time and
+thus don't need to add code to ensure correctness at runtime.  This makes
+downstream code easier to read and easier to reason about.
+
+History of this project has shown that most code does not properly deal with
+locking failures anyway: There was code simply skipping the mutexed action on
+failure, code blocking a module entirely until reboot, and worst of all: Code
+exposing the locking failure to 'user-space' (Pycardium) instead of retrying.
+This has lead to spurious errors where technically there would not need to be
+any.
+
+Only from tasks
+^^^^^^^^^^^^^^^
+Locking a mutex from an ISR, a FreeRTOS software timer or any other context
+which does not allow blocking is complicated to do right.  The biggest
+difficulty is that a task might be holding the mutex during execution of such a
+context and there is no way to wait for it to release the mutex.  This requires
+careful design of the program flow to choose an alternative option in such a
+case.  A common approach is to 'outsource' the relevant parts of the code into
+an 'IRQ worker' which is essentially just a task waiting for the IRQ to wake it
+up and then attempts to lock the mutex.
+
+If you absolutely do need it (and for legacy reasons), software timers *can*
+lock a mutex using :c:func:`mutex_trylock` (which never blocks).  I strongly
+recommend **not** doing that, though.  As shown above, you will have to deal
+with the case of the mutex being held by another task and it is very well
+possible that your timer will get starved of the mutex because the scheduler
+has no knowledge of its intentions.  In most cases, it is a better idea to use
+a task and attempt locking using :c:func:`mutex_lock`.
+
+.. todo::
+
+   We might introduce a generic IRQ worker queue system at some point.
+
+No recursive locking
+^^^^^^^^^^^^^^^^^^^^
+Recursive locking refers to the ability to 'reacquire' a mutex already held by
+the current task, deeper down in the call-chain.  Only the outermost unlock
+will actually release the mutex.  This feature is sometimes implemented to
+allow more elegant abstractions where downstream code does not need to know
+about the mutexes upstream code uses and can still also create a larger region
+where the same mutex is held.
+
+But exactly by hiding the locking done by a function, these abstractions make
+it hard to trace locking chains and in some cases even make it impossible to
+create provably correct behavior.  As an alternative, I would suggest using
+different mutexes for the different levels of abstraction.  This also helps
+keeping each mutex separated and 'local' to its purpose.
+
+Only unlock from the acquiring task
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Because of the above mentioned mutex locking semantics, there should never be a
+need to force-unlock a forgein mutex.  Even in cases of failures, all code
+should still properly release all mutexes it holds.  One notable exceptions is
+``panic()``\s which will abort all ongoing operations anyway.
+
+Only unlock once after acquisition
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Justified with an argument of robustness, sometimes the :c:func:`mutex_unlock`
+call is written in a way that allows unlocking an already unlocked mutex.  But
+robustness of downstream code will not really be improved by the upstream API
+dealing with arguably invalid usage.  For example, this could encourage
+practices like unlocking everything again at the end of a function "just to be
+sure".
+
+Instead, code should be written in a way where the lock/unlock pair is
+immediately recognizable as belonging together and is thus easily auditable to
+have correct locking behavior.  A common pattern to help with readability in
+this regard is the *Single Function Exit* which looks like this:
+
+.. code-block:: cpp
+
+   int function()
+   {
+           int ret;
+           mutex_lock(&some_mutex);
+
+           ret = foo();
+           if (ret) {
+                   /* Return with an error code */
+                   ret = -ENODEV;
+                   goto out_unlock;
+           }
+
+           ret = bar();
+           if (ret) {
+                   /* Return the return value from foo */
+                   goto out_unlock;
+           }
+
+           ret = 0;
+   out_unlock:
+           mutex_unlock(&some_mutex);
+           return ret;
+   }
diff --git a/Documentation/how-to-build.rst b/Documentation/how-to-build.rst
index 177bdbfa7fc000d25a9fcf68bafebf4a83e534f2..781fc44a1920309b82f63a13b61dc3f1c12d5657 100644
--- a/Documentation/how-to-build.rst
+++ b/Documentation/how-to-build.rst
@@ -63,22 +63,44 @@ Dependencies
     .. code-block:: shell-session
 
        pacman -S meson
-       
-  - macOS 
-  
+
+  - macOS
+
     .. code-block:: shell-session
-            
+
         brew install ninja
         pip3 install --user meson  # see https://mesonbuild.com/Getting-meson.html - you will have to add ~/.local/bin to your PATH.
 
-* **python3-crc16**: Install with ``pip3 install --user crc16``.
-* **python3-pillow**: Python Image Library ``pip3 install --user pillow``.
+* One of two CRC packages is required. Pick one:
+
+  - Ubuntu / Debian / macOS
+
+    .. code-block:: shell-session
+
+        pip3 install --user crc16
+
+or
+
+    .. code-block:: shell-session
+
+        pip3 install --user crcmod
+
+  - Arch
+
+    .. code-block:: shell-session
+
+       pacman -S python-crc16
+
+* **python3-pillow**: Python Image Library
+       .. code-block:: shell-session
+
+            pip3 install --user pillow
 
   - Arch
 
     .. code-block:: shell-session
 
-       pacman -S python-crc16 python-pillow
+       pacman -S python-pillow
 
 .. _ARM's GNU toolchain: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
 
@@ -107,7 +129,6 @@ firmware features:
   info related to BLE.
 - ``-Ddebug_core1=true``: Enable the core 1 SWD lines which are exposed on the
   SAO connector.  Only use this if you have a debugger which is modified for core 1.
-- ``-Djailbreak_card10=true``: Enable execution of .elf l0dables on core 1.
 
 .. warning::
 
diff --git a/Documentation/how-to-flash.rst b/Documentation/how-to-flash.rst
index 5be7bb06833f91b4051897bca46d2d36610481ad..c9349e3242f8ddd48cf6a6440f477bedd3627f69 100644
--- a/Documentation/how-to-flash.rst
+++ b/Documentation/how-to-flash.rst
@@ -5,27 +5,14 @@ method of flashing:
 
 Flash Without Debugger
 ----------------------
-If you do not have a debugger, you have to update the firmware using our
-bootloader.  To do so, you need to reboot card10 while keeping the buttom on
-the bottom right pressed.  Rebooting is done by either short pressing the power
-button (top left) while you have a working firmware, or turning the card10 off
-completely (by pressing the power button for 8 seconds) and then starting it again.
-
-.. image:: static/bootloader-buttons.png
-
-If you did everything correctly, the bootloader will display:
 
-.. code-block:: text
-
-   Bootloader
-   Jul 28 2019
-   USB activated.
-   Ready.
+If you do not have a debugger, you have to update the firmware using our
+bootloader by going into :ref:`usb_file_transfer`.
 
-On your host, you should now see an 8MB flash-device appear.  You can now drop
-the firmware's ``.bin`` (from ``build/pycardium/pycardium_epicardium.bin`` in
-most cases) into this flash-storage.  You **must** call the file ``card10.bin``
-for the bootloader to use it.
+After you get your badge into :ref:`usb_file_transfer`, you can drop the firmware's
+``.bin`` (from ``build/pycardium/pycardium_epicardium.bin`` in most cases) into
+this flash-storage.  You **must** call the file ``card10.bin`` for the
+bootloader to use it.
 
 The bootloader will then display ``Writing.`` in red while it is actually
 writing the file to external flash.  Please wait until it displays ``Ready.``
diff --git a/Documentation/index.rst b/Documentation/index.rst
index 56631e81dfff20e8416a71d752fa93128535c18f..f6ce6fcd564b08a7f01229a1a235334bb8d1c7c2 100644
--- a/Documentation/index.rst
+++ b/Documentation/index.rst
@@ -27,6 +27,7 @@ Last but not least, if you want to start hacking the lower-level firmware, the
    pycardium/max30001
    pycardium/buttons
    pycardium/color
+   pycardium/config
    pycardium/display
    pycardium/gpio
    pycardium/leds
@@ -45,11 +46,14 @@ Last but not least, if you want to start hacking the lower-level firmware, the
    :caption: Firmware
 
    overview
+   card10-cfg
+   usb-file-transfer
    how-to-build
    how-to-flash
    debugger
    pycardium-guide
    memorymap
+   epicardium/mutex
    epicardium/sensor-streams
 
 .. toctree::
@@ -66,6 +70,7 @@ Last but not least, if you want to start hacking the lower-level firmware, the
 
    bluetooth/file-transfer
    bluetooth/card10
+   bluetooth/nimble
 
 Indices and tables
 ==================
diff --git a/Documentation/overview.rst b/Documentation/overview.rst
index 180fdc2940f7c0829b810403a02a28dcac63d651..55c07dffd20ff97c4682bf4783d8d951072b37bd 100644
--- a/Documentation/overview.rst
+++ b/Documentation/overview.rst
@@ -55,25 +55,28 @@ you should probably read the :ref:`epicardium_api_guide` guide.
 
 Pycardium
 ---------
+
 Pycardium is our MicroPython fork.  Its purpose is to make it as easy as
 possible to interact with card10.  If you are interested in working on
 Pycardium, take a look at the :ref:`pycardium_guide` guide.
 
-L0dables
+.. _l0dables:
+
+l0dables
 --------
+
 Next to Pycardium, other bare-metal code can also run on core 1.  For example,
 a `Rustcardium`_ or C-cardium.  These l0dables must be compiled using our special
 linker script and should link against the api-caller library so they can
 interface with the :ref:`epicardium_api`.
-Note: this feature is disabled by default and has to be enabled at build time.
-To do this, run ``bootstrap.sh`` with the option ``-Djailbreak_card10=true``
-and rebuild the firmware as described in :ref:`how_to_build`.
 
-.. _Rustcardium: https://git.card10.badge.events.ccc.de/astro/rust-card10
+Note: this feature is disabled by default and has to be enabled in :ref:`card10_cfg`. A :ref:`card10_cfg` file dropped into the :ref:`usb_file_transfer` of the badge containing ``execute_elf = true`` is enough.
+
+l0dables are currently built within the source tree of the main repository. See ``l0dables/blinky`` for an example of a hello-world-like program. Within those programs, you can access the :ref:`epicardium_api` to control the hardware and behaviour of the badge.
 
-.. todo::
+Once you have a built ELF file, you can drop it into the FAT filesystem of the flash (eg. via :ref:`usb_file_transfer`) and it will be available from the menu program of the badge.
 
-   Provide more details how this works
+.. _Rustcardium: https://git.card10.badge.events.ccc.de/astro/rust-card10
 
 Program Flow Diagram
 --------------------
diff --git a/Documentation/pycardium/bhi160.rst b/Documentation/pycardium/bhi160.rst
index b57dc77f55cb1b6ab1c283c9e9caccb2efb902fd..1aaa362e0f238177fe59e2310f0659fd8b51ac89 100644
--- a/Documentation/pycardium/bhi160.rst
+++ b/Documentation/pycardium/bhi160.rst
@@ -2,9 +2,26 @@
 
 ``bhi160`` - Sensor Fusion
 ==========================
+
 .. versionadded:: 1.4
 
-Supports the BHI160 sensor on the card10 for accelerometer, gyroscope...
+Supports the BHI160 sensor on the card10 for accelerometer, gyroscope,
+magnetometer and orientation.
+
+The coordinate system of the BHI160 sensor data looks like this:
+
+.. image:: ../static/bhi160-coordinates.png
+
+* The **accelerometer** axes are just the ones shown in the picture.
+* The **gyroscope**'s angular velocities rotate counter clockwise around
+  their respective axis.
+* The **orientation** sensor uses the following mapping:
+
+  +---------------------+----------------------+-------------------+
+  | X                   | Y                    | Z                 |
+  +=====================+======================+===================+
+  | Azimuth (0° - 360°) | Pitch (-180° - 180°) | Roll (-90° - 90°) |
+  +---------------------+----------------------+-------------------+
 
 **Example**:
 
@@ -17,114 +34,34 @@ Supports the BHI160 sensor on the card10 for accelerometer, gyroscope...
 
     while True:
         samples = bhi.read()
-        print(samples)
-        utime.sleep(0.5)
-
-
-.. class:: bhi160.BHI160Orientation(sample_rate,dynamic_range,callback,sample_buffer_len)
-
-    Orientation of the BHI160
-
-    Parameters:
-        sample_rate: int, optional
-            Sample rate (default is 4)
-        dynamic_range: int, optional
-            Dynamic range (default is 2)
-        callback: callable, optional
-            Call this callback when enough data is collected (default is None)
-
-            .. todo:: The callback functionality is untested, so do not be confused if it does not work.
-        sample_buffer_len: int, optional
-            Length of sample buffer (default is 200)
-
-   .. py:method:: read():
-
-   Read sensor values
-
-   :returns: Collected sensor values as list
-
-   .. py:method:: close():
-
-   Close the connection to the sensor
-
-
-.. class:: bhi160.BHI160Accelerometer
-
-    Accelerometer of the BHI160
-
-    Parameters:
-        sample_rate: int, optional
-            Sample rate (default is 4)
-        dynamic_range: int, optional
-            Dynamic range (default is 2)
-        callback: callable, optional
-            Call this callback when enough data is collected (default is None)
-
-            .. todo:: The callback functionality is untested, so do not be confused if it does not work.
-        sample_buffer_len: int, optional
-            Length of sample buffer (default is 200)
-
-   .. py:method:: read():
-
-   Read sensor values
-
-   :returns: Collected sensor values as list
-
-   .. py:method:: close():
-
-   Close the connection to the sensor
-
-.. class:: bhi160.BHI160Gyroscope
-
-    Gyroscope of the BHI160
-
-    Parameters:
-        sample_rate: int, optional
-            Sample rate (default is 4)
-        dynamic_range: int, optional
-            Dynamic range (default is 2)
-        callback: callable, optional
-            Call this callback when enough data is collected (default is None)
-
-            .. todo:: The callback functionality is untested, so do not be confused if it does not work.
-        sample_buffer_len: int, optional
-            Length of sample buffer (default is 200)
-
-   .. py:method:: read():
-
-   Read sensor values
-
-   :returns: Collected sensor values as list
-
-   .. py:method:: close():
-
-   Close the connection to the sensor
-
-.. class:: bhi160.BHI160Magnetometer
-
-    Magnetometer of the BHI160
-
-    Parameters:
-        sample_rate: int, optional
-            Sample rate (default is 4)
-        dynamic_range: int, optional
-            Dynamic range (default is 1)
-        callback: callable, optional
-            Call this callback when enough data is collected (default is None)
-
-            .. todo:: The callback functionality is untested, so do not be confused if it does not work.
-        sample_buffer_len: int, optional
-            Length of sample buffer (default is 200)
-
-   .. versionadded:: 1.11
-
-   .. py:method:: read():
-
-   Read sensor values
-
-   :returns: Collected sensor values as list
-
-   .. py:method:: close():
-
-   Close the connection to the sensor
-
+        if len(samples) == 0:
+            utime.sleep(0.25)
+            continue
+        # print the latest sample
+        print(samples[-1])
+        utime.sleep(0.25)
+
+
+Orientation
+-----------
+.. autoclass:: bhi160.BHI160Orientation
+   :members:
+   :inherited-members:
+
+Accelerometer
+-------------
+.. autoclass:: bhi160.BHI160Accelerometer
+  :members:
+  :inherited-members:
+
+Gyroscope
+---------
+.. autoclass:: bhi160.BHI160Gyroscope
+  :members:
+  :inherited-members:
+
+Magnetometer
+------------
+.. autoclass:: bhi160.BHI160Magnetometer
+  :members:
+  :inherited-members:
diff --git a/Documentation/pycardium/color.rst b/Documentation/pycardium/color.rst
index 6d9a3ce793c7b18e409db1756f0491dc89c06382..b4e0296fbb444256ee3d2e9342e361f52a6a6053 100644
--- a/Documentation/pycardium/color.rst
+++ b/Documentation/pycardium/color.rst
@@ -14,23 +14,65 @@ The color module also contains a few constanst for commonly used colors:
 Camp Colors
 ~~~~~~~~~~~
 .. py:data:: CHAOSBLUE
+
+   .. color-example:: #0076BA
+
 .. py:data:: CHAOSBLUE_DARK
+
+   .. color-example:: #005383
+
 .. py:data:: COMMYELLOW
+
+   .. color-example:: #FFC600
+
 .. py:data:: COMMYELLOW_DARK
+
+   .. color-example:: #D39A00
+
 .. py:data:: CAMPGREEN
+
+   .. color-example:: #99BA00
+
 .. py:data:: CAMPGREEN_DARK
 
+   .. color-example:: #6F8700
+
+
 General
 ~~~~~~~
 .. py:data:: BLACK
+
+   .. color-example:: #000
+
 .. py:data:: WHITE
+
+   .. color-example:: #fff
+
 .. py:data:: RED
+
+   .. color-example:: #f00
+
 .. py:data:: GREEN
+
+   .. color-example:: #0f0
+
 .. py:data:: YELLOW
+
+   .. color-example:: #ff0
+
 .. py:data:: BLUE
+
+   .. color-example:: #00f
+
 .. py:data:: MAGENTA
+
+   .. color-example:: #f0f
+
 .. py:data:: CYAN
 
+   .. color-example:: #0ff
+
+
 .. py:module:: htmlcolor
 
 ``htmlcolor`` - Color Constants
@@ -39,142 +81,561 @@ The ``htmlcolor`` module contains even more color constants.  Note
 that loading the ``htmlcolor`` module will require ~12K of RAM.
 
 .. py:data:: ALICEBLUE
+
+   .. color-example:: aliceblue
+
 .. py:data:: ANTIQUEWHITE
+
+   .. color-example:: antiquewhite
+
 .. py:data:: AQUA
+
+   .. color-example:: aqua
+
 .. py:data:: AQUAMARINE
+
+   .. color-example:: aquamarine
+
 .. py:data:: AZURE
+
+   .. color-example:: azure
+
 .. py:data:: BEIGE
+
+   .. color-example:: beige
+
 .. py:data:: BISQUE
+
+   .. color-example:: bisque
+
 .. py:data:: BLACK
+
+   .. color-example:: black
+
 .. py:data:: BLANCHEDALMOND
+
+   .. color-example:: blanchedalmond
+
 .. py:data:: BLUE
+
+   .. color-example:: blue
+
 .. py:data:: BLUEVIOLET
+
+   .. color-example:: blueviolet
+
 .. py:data:: BROWN
+
+   .. color-example:: brown
+
 .. py:data:: BURLYWOOD
+
+   .. color-example:: burlywood
+
 .. py:data:: CADETBLUE
+
+   .. color-example:: cadetblue
+
 .. py:data:: CHARTREUSE
+
+   .. color-example:: chartreuse
+
 .. py:data:: CHOCOLATE
+
+   .. color-example:: chocolate
+
 .. py:data:: CORAL
+
+   .. color-example:: coral
+
 .. py:data:: CORNFLOWERBLUE
+
+   .. color-example:: cornflowerblue
+
 .. py:data:: CORNSILK
+
+   .. color-example:: cornsilk
+
 .. py:data:: CRIMSON
+
+   .. color-example:: crimson
+
 .. py:data:: CYAN
+
+   .. color-example:: cyan
+
 .. py:data:: DARKBLUE
+
+   .. color-example:: darkblue
+
 .. py:data:: DARKCYAN
+
+   .. color-example:: darkcyan
+
 .. py:data:: DARKGOLDENROD
+
+   .. color-example:: darkgoldenrod
+
 .. py:data:: DARKGRAY
+
+   .. color-example:: darkgray
+
 .. py:data:: DARKGREEN
+
+   .. color-example:: darkgreen
+
 .. py:data:: DARKKHAKI
+
+   .. color-example:: darkkhaki
+
 .. py:data:: DARKMAGENTA
+
+   .. color-example:: darkmagenta
+
 .. py:data:: DARKOLIVEGREEN
+
+   .. color-example:: darkolivegreen
+
 .. py:data:: DARKORANGE
+
+   .. color-example:: darkorange
+
 .. py:data:: DARKORCHID
+
+   .. color-example:: darkorchid
+
 .. py:data:: DARKRED
+
+   .. color-example:: darkred
+
 .. py:data:: DARKSALMON
+
+   .. color-example:: darksalmon
+
 .. py:data:: DARKSEAGREEN
+
+   .. color-example:: darkseagreen
+
 .. py:data:: DARKSLATEBLUE
+
+   .. color-example:: darkslateblue
+
 .. py:data:: DARKSLATEGRAY
+
+   .. color-example:: darkslategray
+
 .. py:data:: DARKTURQUOISE
+
+   .. color-example:: darkturquoise
+
 .. py:data:: DARKVIOLET
+
+   .. color-example:: darkviolet
+
 .. py:data:: DEEPPINK
+
+   .. color-example:: deeppink
+
 .. py:data:: DEEPSKYBLUE
+
+   .. color-example:: deepskyblue
+
 .. py:data:: DIMGRAY
+
+   .. color-example:: dimgray
+
 .. py:data:: DODGERBLUE
+
+   .. color-example:: dodgerblue
+
 .. py:data:: FIREBRICK
+
+   .. color-example:: firebrick
+
 .. py:data:: FLORALWHITE
+
+   .. color-example:: floralwhite
+
 .. py:data:: FORESTGREEN
+
+   .. color-example:: forestgreen
+
 .. py:data:: FUCHSIA
+
+   .. color-example:: fuchsia
+
 .. py:data:: GAINSBORO
+
+   .. color-example:: gainsboro
+
 .. py:data:: GHOSTWHITE
+
+   .. color-example:: ghostwhite
+
 .. py:data:: GOLD
+
+   .. color-example:: gold
+
 .. py:data:: GOLDENROD
+
+   .. color-example:: goldenrod
+
 .. py:data:: GRAY
+
+   .. color-example:: gray
+
 .. py:data:: GREEN
+
+   .. color-example:: green
+
 .. py:data:: GREENYELLOW
+
+   .. color-example:: greenyellow
+
 .. py:data:: HONEYDEW
+
+   .. color-example:: honeydew
+
 .. py:data:: HOTPINK
+
+   .. color-example:: hotpink
+
 .. py:data:: INDIANRED
+
+   .. color-example:: indianred
+
 .. py:data:: INDIGO
+
+   .. color-example:: indigo
+
 .. py:data:: IVORY
+
+   .. color-example:: ivory
+
 .. py:data:: KHAKI
+
+   .. color-example:: khaki
+
 .. py:data:: LAVENDER
+
+   .. color-example:: lavender
+
 .. py:data:: LAVENDERBLUSH
+
+   .. color-example:: lavenderblush
+
 .. py:data:: LAWNGREEN
+
+   .. color-example:: lawngreen
+
 .. py:data:: LEMONCHIFFON
+
+   .. color-example:: lemonchiffon
+
 .. py:data:: LIGHTBLUE
+
+   .. color-example:: lightblue
+
 .. py:data:: LIGHTCORAL
+
+   .. color-example:: lightcoral
+
 .. py:data:: LIGHTCYAN
+
+   .. color-example:: lightcyan
+
 .. py:data:: LIGHTGOLDENRODYELLOW
+
+   .. color-example:: lightgoldenrodyellow
+
 .. py:data:: LIGHTGRAY
+
+   .. color-example:: lightgray
+
 .. py:data:: LIGHTGREEN
+
+   .. color-example:: lightgreen
+
 .. py:data:: LIGHTPINK
+
+   .. color-example:: lightpink
+
 .. py:data:: LIGHTSALMON
+
+   .. color-example:: lightsalmon
+
 .. py:data:: LIGHTSEAGREEN
+
+   .. color-example:: lightseagreen
+
 .. py:data:: LIGHTSKYBLUE
+
+   .. color-example:: lightskyblue
+
 .. py:data:: LIGHTSLATEGRAY
+
+   .. color-example:: lightslategray
+
 .. py:data:: LIGHTSTEELBLUE
+
+   .. color-example:: lightsteelblue
+
 .. py:data:: LIGHTYELLOW
+
+   .. color-example:: lightyellow
+
 .. py:data:: LIME
+
+   .. color-example:: lime
+
 .. py:data:: LIMEGREEN
+
+   .. color-example:: limegreen
+
 .. py:data:: LINEN
+
+   .. color-example:: linen
+
 .. py:data:: MAGENTA
+
+   .. color-example:: magenta
+
 .. py:data:: MAROON
+
+   .. color-example:: maroon
+
 .. py:data:: MEDIUMAQUAMARINE
+
+   .. color-example:: mediumaquamarine
+
 .. py:data:: MEDIUMBLUE
+
+   .. color-example:: mediumblue
+
 .. py:data:: MEDIUMORCHID
+
+   .. color-example:: mediumorchid
+
 .. py:data:: MEDIUMPURPLE
+
+   .. color-example:: mediumpurple
+
 .. py:data:: MEDIUMSEAGREEN
+
+   .. color-example:: mediumseagreen
+
 .. py:data:: MEDIUMSLATEBLUE
+
+   .. color-example:: mediumslateblue
+
 .. py:data:: MEDIUMSPRINGGREEN
+
+   .. color-example:: mediumspringgreen
+
 .. py:data:: MEDIUMTURQUOISE
+
+   .. color-example:: mediumturquoise
+
 .. py:data:: MEDIUMVIOLETRED
+
+   .. color-example:: mediumvioletred
+
 .. py:data:: MIDNIGHTBLUE
+
+   .. color-example:: midnightblue
+
 .. py:data:: MINTCREAM
+
+   .. color-example:: mintcream
+
 .. py:data:: MISTYROSE
+
+   .. color-example:: mistyrose
+
 .. py:data:: MOCCASIN
+
+   .. color-example:: moccasin
+
 .. py:data:: NAVAJOWHITE
+
+   .. color-example:: navajowhite
+
 .. py:data:: NAVY
+
+   .. color-example:: navy
+
 .. py:data:: OLDLACE
+
+   .. color-example:: oldlace
+
 .. py:data:: OLIVE
+
+   .. color-example:: olive
+
 .. py:data:: OLIVEDRAB
+
+   .. color-example:: olivedrab
+
 .. py:data:: ORANGE
+
+   .. color-example:: orange
+
 .. py:data:: ORANGERED
+
+   .. color-example:: orangered
+
 .. py:data:: ORCHID
+
+   .. color-example:: orchid
+
 .. py:data:: PALEGOLDENROD
+
+   .. color-example:: palegoldenrod
+
 .. py:data:: PALEGREEN
+
+   .. color-example:: palegreen
+
 .. py:data:: PALETURQUOISE
+
+   .. color-example:: paleturquoise
+
 .. py:data:: PALEVIOLETRED
+
+   .. color-example:: palevioletred
+
 .. py:data:: PAPAYAWHIP
+
+   .. color-example:: papayawhip
+
 .. py:data:: PEACHPUFF
+
+   .. color-example:: peachpuff
+
 .. py:data:: PERU
+
+   .. color-example:: peru
+
 .. py:data:: PINK
+
+   .. color-example:: pink
+
 .. py:data:: PLUM
+
+   .. color-example:: plum
+
 .. py:data:: POWDERBLUE
+
+   .. color-example:: powderblue
+
 .. py:data:: PURPLE
+
+   .. color-example:: purple
+
 .. py:data:: RED
+
+   .. color-example:: red
+
 .. py:data:: ROSYBROWN
+
+   .. color-example:: rosybrown
+
 .. py:data:: ROYALBLUE
+
+   .. color-example:: royalblue
+
 .. py:data:: SADDLEBROWN
+
+   .. color-example:: saddlebrown
+
 .. py:data:: SALMON
+
+   .. color-example:: salmon
+
 .. py:data:: SANDYBROWN
+
+   .. color-example:: sandybrown
+
 .. py:data:: SEAGREEN
+
+   .. color-example:: seagreen
+
 .. py:data:: SEASHELL
+
+   .. color-example:: seashell
+
 .. py:data:: SIENNA
+
+   .. color-example:: sienna
+
 .. py:data:: SILVER
+
+   .. color-example:: silver
+
 .. py:data:: SKYBLUE
+
+   .. color-example:: skyblue
+
 .. py:data:: SLATEBLUE
+
+   .. color-example:: slateblue
+
 .. py:data:: SLATEGRAY
+
+   .. color-example:: slategray
+
 .. py:data:: SNOW
+
+   .. color-example:: snow
+
 .. py:data:: SPRINGGREEN
+
+   .. color-example:: springgreen
+
 .. py:data:: STEELBLUE
+
+   .. color-example:: steelblue
+
 .. py:data:: TAN
+
+   .. color-example:: tan
+
 .. py:data:: TEAL
+
+   .. color-example:: teal
+
 .. py:data:: THISTLE
+
+   .. color-example:: thistle
+
 .. py:data:: TOMATO
+
+   .. color-example:: tomato
+
 .. py:data:: TURQUOISE
+
+   .. color-example:: turquoise
+
 .. py:data:: VIOLET
+
+   .. color-example:: violet
+
 .. py:data:: WHEAT
+
+   .. color-example:: wheat
+
 .. py:data:: WHITE
+
+   .. color-example:: white
+
 .. py:data:: WHITESMOKE
+
+   .. color-example:: whitesmoke
+
 .. py:data:: YELLOW
+
+   .. color-example:: yellow
+
 .. py:data:: YELLOWGREEN
+
+   .. color-example:: yellowgreen
diff --git a/Documentation/pycardium/config.rst b/Documentation/pycardium/config.rst
new file mode 100644
index 0000000000000000000000000000000000000000..926098eb1daa66b553732648eb344634626cb621
--- /dev/null
+++ b/Documentation/pycardium/config.rst
@@ -0,0 +1,9 @@
+``config`` - Configuration
+==========================
+The ``config`` module provides functions to interact with card10's
+configuration file (``card10.cfg``).
+
+.. automodule:: config
+   :members:
+
+
diff --git a/Documentation/pycardium/display.rst b/Documentation/pycardium/display.rst
index 08bd0274c80f6d28a6d834a06ca59f1b70ce1a7a..ab2ee8aed618200acbc059b7b3ab5de1a8d1d143 100644
--- a/Documentation/pycardium/display.rst
+++ b/Documentation/pycardium/display.rst
@@ -1,5 +1,21 @@
 ``display`` - Display
 =====================
 
+The display module let's you draw on the card10's display.
+Pixels are addressed from top left to bottom right with a range of x: 0 to 159 and y: 0 to 79.
+
+.. code-block:: text
+
+   0,0
+      +---------------------+
+      |                     |
+      |                     |
+      |                     |
+      |                     |
+      +---------------------+
+                           159,79
+
+Drawing operations are clipped, pixels outside of the screen will be ignored.
+
 .. automodule:: display
    :members:
diff --git a/Documentation/pycardium/os.rst b/Documentation/pycardium/os.rst
index 2447ccfe88494b385e8ec9544b08eb5146a65b48..d2fd7cf224b316050b8f84df838213c0c6116df9 100644
--- a/Documentation/pycardium/os.rst
+++ b/Documentation/pycardium/os.rst
@@ -8,12 +8,6 @@ functions found in CPythons ``os`` module.
 CPython-Like
 ------------
 
-.. py:function:: unlink(path)
-
-   Unlink (remove) a file.
-
-   :param str path: The file to remove.
-
 .. py:function:: listdir(dir)
 
    List contents of a directory.
@@ -22,6 +16,28 @@ CPython-Like
    :returns: A list of entities (files or subdirectories) in the directory
       ``dir``.
 
+.. py:function:: mkdir(path)
+
+   Create a directory named *path*.
+
+   :param str path: Path to the directory to create.  Only the last component
+      of this path will be created.
+
+.. py:function:: rename(src, dst)
+
+   Rename the file or directory *src* to *dst*. If *dst* exists, the operation
+   will fail.
+
+   :param str src: Path to source file to rename.
+   :param str dst: Destination path to rename to.  Must not exist before
+      calling :py:func:`os.rename`.
+
+.. py:function:: unlink(path)
+
+   Unlink (remove) a file.
+
+   :param str path: The file to remove.
+
 .. py:function:: urandom(n)
 
    Return ``n`` random bytes.
diff --git a/Documentation/pycardium/stdlib.rst b/Documentation/pycardium/stdlib.rst
index 161f8204ec40df71314b988bb19cf2d50b5873be..1d1b7af492d00fde5d79a4601e233c277bfd45a2 100644
--- a/Documentation/pycardium/stdlib.rst
+++ b/Documentation/pycardium/stdlib.rst
@@ -3,6 +3,14 @@ MicroPython Standard Library
 Pycardium contains some modules from the MicroPython standard library.  These
 are:
 
+.. py:module:: framebuf
+
+``framebuf``
+------------
+Refer to the official `MicroPython docs for framebuf`_.
+
+.. _MicroPython docs for framebuf: https://docs.micropython.org/en/latest/library/framebuf.html
+
 .. py:module:: ubinascii
 
 ``ubinascii``
@@ -219,7 +227,7 @@ Struct module.
 
       UUID version accordiung to RFC 4122
 
-.. py:function:: uuid4():
+.. py:function:: uuid4()
 
    Generate a new UUID version 4 (random UUID).
 
diff --git a/Documentation/pycardium/utime.rst b/Documentation/pycardium/utime.rst
index a592abcb10fcd006057caaff2a29cb46e245790c..03d333b20e85758b31871ada3b9371f85ef95d9f 100644
--- a/Documentation/pycardium/utime.rst
+++ b/Documentation/pycardium/utime.rst
@@ -45,6 +45,36 @@ alarm.
 
    .. versionadded:: 1.11
 
+.. py:function:: ticks_ms()
+
+   Return processor ticks (converted to milliseconds) since Pycardium startup.
+
+   This function should be the preferred method for timing and profiling
+   because it does not need an API call and thus is very fast.
+
+   .. versionadded:: 1.13
+
+.. py:function:: ticks_us()
+
+   Return processor ticks (converted to microseconds) since Pycardium startup.
+
+   This function should be the preferred method for timing and profiling
+   because it does not need an API call and thus is very fast.
+
+   .. versionadded:: 1.13
+
+.. py:function:: unix_time()
+
+   Return the current unix time as seconds since the epoch.
+
+   .. versionadded:: 1.12
+
+.. py:function:: unix_time_ms()
+
+   Return the current unix time as milliseconds since the epoch.
+
+   .. versionadded:: 1.12
+
 .. py:function:: set_time(secs)
 
    Sets the time to ``secs`` seconds since 2000-01-01 00:00 in the local
@@ -54,6 +84,13 @@ alarm.
       :py:func:`utime.set_time` previously applied a wrong timezone offset,
       thus leading to wrong results.
 
+.. py:function:: set_time_ms(msecs)
+
+   Set the time to ``msecs`` seconds since 2000-01-01 00:00 in the local
+   timezone.
+
+   .. versionadded:: 1.12
+
 .. py:function:: set_unix_time(secs)
 
    Sets the time to ``secs`` seconds since 1970-01-01 00:00 UTC.
@@ -61,6 +98,12 @@ alarm.
    by running ``date +%s`` in a command line or ``int(time.time())``
    in Python.
 
+.. py:function:: set_unix_time_ms(msecs)
+
+   Set the time to ``msecs`` milliseconds since the unix epoch.
+
+   .. versionadded:: 1.12
+
 .. py:function:: localtime([secs])
 
    Return the current time as a timestruct tuple.  If ``secs`` is given, return
diff --git a/Documentation/static/bhi160-coordinates.png b/Documentation/static/bhi160-coordinates.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e61a8f6bbb4c5f4e7b66c1cbd5a801e98e4dd62
Binary files /dev/null and b/Documentation/static/bhi160-coordinates.png differ
diff --git a/Documentation/usb-file-transfer.rst b/Documentation/usb-file-transfer.rst
new file mode 100644
index 0000000000000000000000000000000000000000..efaf4b16d1a7f6e6c195132bfb5e6c15e4e91c28
--- /dev/null
+++ b/Documentation/usb-file-transfer.rst
@@ -0,0 +1,40 @@
+.. _usb_file_transfer:
+
+USB File Transfer
+=================
+
+The card10 badge bootloader offers a USB Mass Storage mode to access its 8MB external flash.
+
+This flash contains a FAT32 filesystem and files on it will be visible to software running on the badge.
+
+Getting to the USB mode
+-----------------------
+
+To get to the USB mode, you will need to boot the badge while keeping the bottom-right button pressed.
+
+.. image:: static/bootloader-buttons.png
+
+1. If the badge is on, hold the top-left (power) button until the sleep screen appears, then release.
+2. Start holding the bottom-right button.
+3. Quickly press and release the top-left (power) button to turn the badge on.
+4. Your badge should now be in file transfer mode, and you can then release the bottom-right button.
+
+If you succesfully got into USB File Transfer mode, the screen will display its version and notify about the USB mode by displaying ``USB activated. Ready.``. If you connect the badge via USB to your computer, it should now detect 8MB of flash storage that you can mount in the same way as a pendrive.
+
+This pendrive can contain multiple files with different functions, some of them outlined here:
+
+============== ========
+File name      Function
+============== ========
+``card10.bin`` Firmware update file for the badge. If this file is present, the bootloader will perform an internal update to boot from this firmware file, then it will be deleted.
+``main.py``    This file contains the default `application` to be run on power on.
+``menu.py``    This file contains the default `menu` to be run when the power button is short-pressed.
+``*.py``       These are application files written in (Micro)Python that can be run from the menu.
+``*.elf``      These are :ref:`l0dables` that can be run from the menu.
+============== ========
+
+Updating files and rebooting
+----------------------------
+
+No matter which file you are writing, the bootloader will display a red ``Writing`` status message while write operations are pending. Please wait until it displays ``Ready`` again before resetting the badge by pressing the power button again.
+
diff --git a/bootloader/bootloader-display.c b/bootloader/bootloader-display.c
index 8c13116d78e937292ce8499c7014dce19b536f07..d04db551d6833aca9391cd5aad80139792ecfdf4 100644
--- a/bootloader/bootloader-display.c
+++ b/bootloader/bootloader-display.c
@@ -6,31 +6,18 @@
 #include "gfx.h"
 #include "display.h"
 
-/*
- * "Decompress" splash-screen image.  The algorithm works as follows:
- *
- * Each byte encodes up to 127 pixels in either white or black.  The most
- * significant bit determines the color, the remaining 7 bits determine the
- * amount.
- */
 static void bootloader_display_splash(void)
 {
-	int idx = 0;
-
-	Color white = gfx_color(&display_screen, WHITE);
-	Color black = gfx_color(&display_screen, BLACK);
-	for (int i = 0; i < sizeof(splash); i++) {
-		Color color    = (splash[i] & 0x80) ? white : black;
-		uint8_t length = splash[i] & 0x7f;
-
-		for (int j = 0; j < length; j++) {
-			uint16_t x = idx % 160;
-			uint16_t y = idx / 160;
-			gfx_setpixel(&display_screen, x, y, color);
-			idx++;
-		}
-	}
-
+	gfx_copy_region(
+		&display_screen,
+		0,
+		0,
+		160,
+		80,
+		GFX_RLE_MONO,
+		sizeof(splash),
+		(const void *)(splash)
+	);
 	gfx_update(&display_screen);
 }
 
diff --git a/bootloader/crc_patch.py b/bootloader/crc_patch.py
index 7d93353d507531c097a3e69d2186c15c1b8ebded..75fe55632ac8b25702814761eb06b8ec5cfea9ca 100755
--- a/bootloader/crc_patch.py
+++ b/bootloader/crc_patch.py
@@ -1,5 +1,8 @@
 #!/usr/bin/env python3
 import sys
+import warnings
+
+warnings.simplefilter("ignore")
 
 try:
     import crc16
diff --git a/epicardium/FreeRTOSConfig.h b/epicardium/FreeRTOSConfig.h
index f1d3aa46915e9c4373d281a1a4ab37707a918bf9..8ff4a4b468f9ea938e92491aa41eafb9f5dad1e3 100644
--- a/epicardium/FreeRTOSConfig.h
+++ b/epicardium/FreeRTOSConfig.h
@@ -1,11 +1,10 @@
 #ifndef FREERTOS_CONFIG_H
 #define FREERTOS_CONFIG_H
 
-#define  MXC_ASSERT_ENABLE
-#include "mxc_assert.h"
-
 #include "max32665.h"
 
+#include <assert.h>
+
 /* CMSIS keeps a global updated with current system clock in Hz */
 #define configCPU_CLOCK_HZ          ((unsigned long)96000000)
 
@@ -51,8 +50,11 @@
 
 #define INCLUDE_vTaskSuspend        1
 #define INCLUDE_vTaskDelay          1
+#define INCLUDE_vTaskDelete         1
 #define INCLUDE_uxTaskGetStackHighWaterMark 1
 #define INCLUDE_xTimerPendFunctionCall 1
+#define INCLUDE_xSemaphoreGetMutexHolder 1
+
 /* Allow static allocation of data structures */
 #define configSUPPORT_STATIC_ALLOCATION 1
 
@@ -69,7 +71,7 @@
 #define xPortSysTickHandler   SysTick_Handler
 
 /* Assert */
-#define configASSERT(x)       MXC_ASSERT(x)
+#define configASSERT(x)       assert(x)
 
 /* Tickless idle hooks */
 typedef uint32_t TickType_t;
diff --git a/epicardium/api/caller.c b/epicardium/api/caller.c
index f2f5643abb62e6497c19e7e831ccd1ad1a60525f..8e61b674b4179832223f1c85adafca137c2ea113 100644
--- a/epicardium/api/caller.c
+++ b/epicardium/api/caller.c
@@ -109,7 +109,7 @@ int api_fetch_args(char *buf, size_t cnt)
 		return 0;
 	}
 
-	int i;
+	size_t i;
 	for (i = 0; i < cnt && API_CALL_MEM->buffer[i + 0x20] != '\0'; i++) {
 		buf[i] = API_CALL_MEM->buffer[i + 0x20];
 	}
diff --git a/epicardium/api/control.c b/epicardium/api/control.c
index e11037b4f2ad9ffbecc3bd23e8369551dca4336c..99c99953344d6b2700e5c657cc4c6ade1fbe9b4e 100644
--- a/epicardium/api/control.c
+++ b/epicardium/api/control.c
@@ -76,6 +76,11 @@ void __core1_init(void)
 	 */
 	TMR_IntClear(MXC_TMR5);
 
+	/*
+	 * Disable the SysTick
+	 */
+	SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk;
+
 	/*
 	 * Reset Interrupts
 	 *
diff --git a/epicardium/api/dispatcher.c b/epicardium/api/dispatcher.c
index 4ffac4220a9aa0ed473a5e7cf911cb092a7135d0..20d873f2c2f6458f79991660594d9eae8001e461 100644
--- a/epicardium/api/dispatcher.c
+++ b/epicardium/api/dispatcher.c
@@ -86,7 +86,7 @@ void api_prepare_args(char *args)
 	 * collide with any integer return value of API calls like epic_exec().
 	 */
 	API_CALL_MEM->id = 0;
-	for (int i = 0; i <= strlen(args); i++) {
+	for (size_t i = 0; i <= strlen(args); i++) {
 		API_CALL_MEM->buffer[i + 0x20] = args[i];
 	}
 }
diff --git a/epicardium/api/interrupt-sender.c b/epicardium/api/interrupt-sender.c
index d531846d89fcdfaf634d1d0fa355d057a9125db3..5117bea201e2e866e606e42cb8639ed48c162513 100644
--- a/epicardium/api/interrupt-sender.c
+++ b/epicardium/api/interrupt-sender.c
@@ -11,7 +11,7 @@ int api_interrupt_trigger(api_int_id_t id)
 	}
 
 	if (int_enabled[id]) {
-		while (API_CALL_MEM->int_id != (-1))
+		while (API_CALL_MEM->int_id != (api_int_id_t)(-1))
 			;
 
 		API_CALL_MEM->int_id = id;
diff --git a/epicardium/ble/ble.c b/epicardium/ble/ble.c
index 51c01d34e8c7fa20a2028d48aaca58464f877355..9fc6c1523d4f9ab25a66545ae49bd8c16753e563 100644
--- a/epicardium/ble/ble.c
+++ b/epicardium/ble/ble.c
@@ -1,7 +1,7 @@
 #include "epicardium.h"
 #include "modules/log.h"
 
-#include "fs_util.h"
+#include "fs/fs_util.h"
 #include "wsf_types.h"
 #include "wsf_buf.h"
 #include "wsf_trace.h"
@@ -96,7 +96,7 @@ static void setAddress(void)
 
 	int result = fs_read_text_file("mac.txt", buf, sizeof(buf));
 
-	if (result == -1) {
+	if (result < 0) {
 		APP_TRACE_INFO0("mac.txt not found, generating random MAC");
 		epic_trng_read(bdAddr + 3, 3);
 		sprintf(buf,
@@ -161,12 +161,17 @@ void WsfTimerNotify(void)
 	//printf("WsfTimerNotify\n");
 	// TODO: Can we do this without waking up the task?
 	// xTimerChangePeriodFromISR exists
-	notify();
+	NVIC->STIR = RSV11_IRQn;
 }
 /*************************************************************************************************/
 void wsf_ble_signal_event(void)
 {
 	//printf("wsf_ble_signal_event\n");
+	NVIC->STIR = RSV11_IRQn;
+}
+/*************************************************************************************************/
+void RSV11_IRQHandler(void)
+{
 	notify();
 }
 /*************************************************************************************************/
@@ -243,6 +248,12 @@ void vBleTask(void *pvParameters)
 	 */
 	vTaskDelay(pdMS_TO_TICKS(500));
 
+	/* We are going to execute FreeRTOS functions from callbacks
+	 * coming from this interrupt. Its priority needs to be
+	 * reduced to allow this. */
+	NVIC_SetPriority(RSV11_IRQn, 2);
+	NVIC_EnableIRQ(RSV11_IRQn);
+
 	WsfInit();
 	taskENTER_CRITICAL();
 	/* Critical section to prevent a loop in iq_capture2 / meas_freq in
@@ -253,12 +264,6 @@ void vBleTask(void *pvParameters)
 	BbBleDrvSetTxPower(0);
 	setAddress();
 
-	/* We are going to execute FreeRTOS functions from callbacks
-	 * coming from these interrupts. Their priority needs to be
-	 * reduced to allow this. */
-	NVIC_SetPriority(BTLE_SFD_TO_IRQn, 2);
-	NVIC_SetPriority(BTLE_TX_DONE_IRQn, 2);
-	NVIC_SetPriority(BTLE_RX_RCVD_IRQn, 2);
 	AppInit();
 	BleStart();
 	AttsDynInit();
diff --git a/epicardium/ble/ble_main.c b/epicardium/ble/ble_main.c
index 07783d8619cc05c688db056ec0d17d06b72413dc..634840c13008b15de60cd56207109360b6b2b928 100644
--- a/epicardium/ble/ble_main.c
+++ b/epicardium/ble/ble_main.c
@@ -17,7 +17,7 @@
 #include <string.h>
 #include "wsf_types.h"
 #include "util/bstream.h"
-#include "fs_util.h"
+#include "fs/fs_util.h"
 #include "wsf_msg.h"
 #include "wsf_trace.h"
 #include "hci_api.h"
@@ -122,6 +122,9 @@ static const smpCfg_t bleSmpCfg =
   16,                                     /*! Maximum encryption key length */
   3,                                      /*! Attempts to trigger 'repeated attempts' timeout */
   DM_AUTH_MITM_FLAG,                      /*! Device authentication requirements */
+  64000,                                  /*! Maximum 'Repeated attempts' timeout in msec */
+  64000,                                  /*! Time msec before attemptExp decreases */
+  2,                                      /*! Exponent to raise attemptTimeout on maxAttempts */
 };
 
 /* Configuration structure */
@@ -330,7 +333,7 @@ static void bleSetup(bleMsg_t *pMsg)
   char buf[32];
   char a, b, c, d, e, f, K;
 
-  if (fs_read_text_file("mac.txt", buf, sizeof(buf)))
+  if (fs_read_text_file("mac.txt", buf, sizeof(buf)) > 0)
   {
     if (sscanf(buf, "%c%c:%c%c:%c%c:%c%c:%c%c:%c%c", &K,&K,&K,&K,&K,&K, &a, &b, &c, &d, &e, &f) == 12)
     {
@@ -410,9 +413,9 @@ static void bleProcMsg(bleMsg_t *pMsg)
     case DM_CONN_OPEN_IND:
       connOpen = &pMsg->dm.connOpen;
       LOG_INFO("ble", "connection from %02X:%02X:%02X:%02X:%02X:%02X opened",
-               connOpen->peerAddr[0], connOpen->peerAddr[1],
-               connOpen->peerAddr[2], connOpen->peerAddr[3],
-               connOpen->peerAddr[4], connOpen->peerAddr[5]);
+               connOpen->peerAddr[5], connOpen->peerAddr[4],
+               connOpen->peerAddr[3], connOpen->peerAddr[2],
+               connOpen->peerAddr[1], connOpen->peerAddr[0]);
       BasProcMsg(&pMsg->hdr);
       uiEvent = APP_UI_CONN_OPEN;
       break;
diff --git a/epicardium/epicardium.h b/epicardium/epicardium.h
index bc374b4554cc6269ea0deb394038d7718da237d6..b805b2b1fab1b59359b74354a8d456b0c9c52f4b 100644
--- a/epicardium/epicardium.h
+++ b/epicardium/epicardium.h
@@ -134,9 +134,8 @@ typedef _Bool bool;
 #define API_MAX30001_ENABLE        0xf0
 #define API_MAX30001_DISABLE       0xf1
 
-#define API_MAX86150_INIT		0x0100
-#define API_MAX86150_GET_DATA		0x0101
-#define API_MAX86150_SET_LED_AMPLITUDE	0x0102
+#define API_MAX86150_ENABLE        0x0100
+#define API_MAX86150_DISABLE       0x0101
 
 #define API_USB_SHUTDOWN           0x110
 #define API_USB_STORAGE            0x111
@@ -144,6 +143,10 @@ typedef _Bool bool;
 
 #define API_WS2812_WRITE           0x0120
 
+#define API_CONFIG_GET_STRING      0x130
+#define API_CONFIG_GET_INTEGER     0x131
+#define API_CONFIG_GET_BOOLEAN     0x132
+#define API_CONFIG_SET_STRING      0x133
 /* clang-format on */
 
 typedef uint32_t api_int_id_t;
@@ -192,18 +195,20 @@ API(API_INTERRUPT_DISABLE, int epic_interrupt_disable(api_int_id_t int_id));
 /** RTC Alarm interrupt.  See :c:func:`epic_isr_rtc_alarm`. */
 #define EPIC_INT_RTC_ALARM              3
 /** BHI160 Accelerometer.  See :c:func:`epic_isr_bhi160_accelerometer`. */
-#define EPIC_INT_BHI160_ACCELEROMETER   4
+#define EPIC_INT_BHI160_ACCELEROMETER	4
 /** BHI160 Orientation Sensor.  See :c:func:`epic_isr_bhi160_orientation`. */
-#define EPIC_INT_BHI160_ORIENTATION     5
+#define EPIC_INT_BHI160_ORIENTATION	5
 /** BHI160 Gyroscope.  See :c:func:`epic_isr_bhi160_gyroscope`. */
-#define EPIC_INT_BHI160_GYROSCOPE       6
+#define EPIC_INT_BHI160_GYROSCOPE	6
 /** MAX30001 ECG.  See :c:func:`epic_isr_max30001_ecg`. */
-#define EPIC_INT_MAX30001_ECG           7
+#define EPIC_INT_MAX30001_ECG		7
 /** BHI160 Magnetometer.  See :c:func:`epic_isr_bhi160_magnetometer`. */
 #define EPIC_INT_BHI160_MAGNETOMETER    8
+/** MAX86150 ECG and PPG sensor.  See :c:func:`epic_isr_max86150`. */
+#define EPIC_INT_MAX86150		9
 
 /* Number of defined interrupts. */
-#define EPIC_INT_NUM                    9
+#define EPIC_INT_NUM                    10
 /* clang-format on */
 
 /*
@@ -318,7 +323,7 @@ API(API_THERMISTOR_VOLTAGE, int epic_read_thermistor_voltage(float *result));
  * :param length:  Amount of bytes to print.
  */
 API(API_UART_WRITE_STR, void epic_uart_write_str(
-	const char *str, intptr_t length
+	const char *str, size_t length
 ));
 
 /**
@@ -882,6 +887,84 @@ API(API_BME680_GET_DATA, int epic_bme680_read_sensors(
 	struct bme680_sensor_data *data
 ));
 
+/**
+ * MAX86150
+ * ======
+ */
+
+/**
+ * Configuration for a MAX86150 sensor.
+ *
+ * This struct is used when enabling a sensor using
+ * :c:func:`epic_max86150_enable_sensor`.
+ */
+struct max86150_sensor_config {
+    /**
+     * Number of samples Epicardium should keep for this sensor.  Do not set
+     * this number too high as the sample buffer will eat RAM.
+     */
+    size_t sample_buffer_len;
+    /**
+     * Sample rate for PPG from the sensor in Hz.  Maximum data rate is limited
+     * to 200 Hz for all sensors though some might be limited at a lower
+     * rate.
+     *
+     * Possible values are 10, 20, 50, 84, 100, 200.
+     */
+    uint16_t ppg_sample_rate;
+};
+
+/**
+ * MAX86150 Sensor Data
+ */
+struct max86150_sensor_data {
+	/** Red LED data */
+	uint32_t red;
+	/** IR LED data */
+	uint32_t ir;
+	/** ECG data */
+	int32_t ecg;
+};
+
+/**
+ * Enable a MAX86150 PPG and ECG sensor.
+ * 
+ * Calling this function will instruct the MAX86150 to collect a 
+ * data from the sensor.  You can then retrieve the samples using 
+ * :c:func:`epic_stream_read`.
+ *
+ * :param max86150_sensor_config* config: Configuration for this sensor.
+ * :param size_t config_size: Size of ``config``.
+ * :returns: A sensor descriptor which can be used with
+ *    :c:func:`epic_stream_read` or a negative error value:
+ *
+ *    - ``-ENOMEM``:  The MAX86150 driver failed to create a stream queue.
+ *    - ``-ENODEV``:  The MAX86150 driver failed due to physical connectivity problem
+ *      (broken wire, unpowered, etc).
+ *    - ``-EINVAL``:  config->ppg_sample_rate is not one of 10, 20, 50, 84, 100, 200
+ *      or config_size is not size of config.
+ *
+ * .. versionadded:: 1.13
+ */
+API(API_MAX86150_ENABLE, int epic_max86150_enable_sensor(struct max86150_sensor_config *config, size_t config_size));
+
+/**
+ * Disable the MAX86150 sensor.
+ *
+ * :returns: 0 in case of success or forward negative error value from stream_deregister.
+ *
+ * .. versionadded:: 1.13
+ */
+API(API_MAX86150_DISABLE, int epic_max86150_disable_sensor());
+
+/**
+ * **Interrupt Service Routine** for :c:data:`EPIC_INT_MAX86150`
+ *
+ * :c:func:`epic_isr_max86150` is called whenever the MAX86150
+ * PPG sensor has new data available.
+ */
+API_ISR(EPIC_INT_MAX86150, epic_isr_max86150);
+
 /**
  * Personal State
  * ==============
@@ -1150,7 +1233,7 @@ struct bhi160_sensor_config {
 };
 
 /**
- * Enable a BHI160 virtual sensor.  Calling this funciton will instruct the
+ * Enable a BHI160 virtual sensor.  Calling this function will instruct the
  * BHI160 to collect data for this specific virtual sensor.  You can then
  * retrieve the samples using :c:func:`epic_stream_read`.
  *
@@ -1341,8 +1424,8 @@ API(API_DISP_UPDATE, int epic_disp_update());
 /**
  * Prints a string into the display framebuffer
  *
- * :param posx: x position to print to. 0 <= x <= 160
- * :param posy: y position to print to. 0 <= y <= 80
+ * :param posx: x position to print to.
+ * :param posy: y position to print to.
  * :param pString: string to print
  * :param fg: foreground color in rgb565
  * :param bg: background color in rgb565
@@ -1352,8 +1435,8 @@ API(API_DISP_UPDATE, int epic_disp_update());
  */
 API(API_DISP_PRINT,
     int epic_disp_print(
-	    uint16_t posx,
-	    uint16_t posy,
+	    int16_t posx,
+	    int16_t posy,
 	    const char *pString,
 	    uint16_t fg,
 	    uint16_t bg)
@@ -1374,8 +1457,8 @@ enum disp_font_name {
  * Prints a string into the display framebuffer with font type selectable
  *
  * :param fontName: number of font, use FontName enum
- * :param posx: x position to print to. 0 <= x <= 160
- * :param posy: y position to print to. 0 <= y <= 80
+ * :param posx: x position to print to.
+ * :param posy: y position to print to.
  * :param pString: string to print
  * :param fg: foreground color in rgb565
  * :param bg: background color in rgb565, no background is drawn if bg==fg
@@ -1385,8 +1468,8 @@ enum disp_font_name {
  */
 API(API_DISP_PRINT_ADV, int epic_disp_print_adv(
 	uint8_t font,
-	uint16_t posx,
-	uint16_t posy,
+	int16_t posx,
+	int16_t posy,
 	const char *pString,
 	uint16_t fg,
 	uint16_t bg
@@ -1405,24 +1488,24 @@ API(API_DISP_CLEAR, int epic_disp_clear(uint16_t color));
 /**
  * Draws a pixel on the display
  *
- * :param x: x position; 0 <= x <= 160
- * :param y: y position; 0 <= y <= 80
+ * :param x: x position;
+ * :param y: y position;
  * :param color: pixel color in rgb565
  * :return: ``0`` on success or a negative value in case of an error:
  *
  *    - ``-EBUSY``: Display was already locked from another task.
  */
 API(API_DISP_PIXEL, int epic_disp_pixel(
-	uint16_t x, uint16_t y, uint16_t color
+	int16_t x, int16_t y, uint16_t color
 ));
 
 /**
  * Draws a line on the display
  *
- * :param xstart: x starting position; 0 <= x <= 160
- * :param ystart: y starting position; 0 <= y <= 80
- * :param xend: x ending position; 0 <= x <= 160
- * :param yend: y ending position; 0 <= y <= 80
+ * :param xstart: x starting position
+ * :param ystart: y starting position
+ * :param xend: x ending position
+ * :param yend: y ending position
  * :param color: line color in rgb565
  * :param linestyle: 0 for solid, 1 for dottet (almost no visual difference)
  * :param pixelsize: thickness of the line; 1 <= pixelsize <= 8
@@ -1431,10 +1514,10 @@ API(API_DISP_PIXEL, int epic_disp_pixel(
  *    - ``-EBUSY``: Display was already locked from another task.
  */
 API(API_DISP_LINE, int epic_disp_line(
-	uint16_t xstart,
-	uint16_t ystart,
-	uint16_t xend,
-	uint16_t yend,
+	int16_t xstart,
+	int16_t ystart,
+	int16_t xend,
+	int16_t yend,
 	uint16_t color,
 	enum disp_linestyle linestyle,
 	uint16_t pixelsize
@@ -1443,10 +1526,10 @@ API(API_DISP_LINE, int epic_disp_line(
 /**
  * Draws a rectangle on the display
  *
- * :param xstart: x coordinate of top left corner; 0 <= x <= 160
- * :param ystart: y coordinate of top left corner; 0 <= y <= 80
- * :param xend: x coordinate of bottom right corner; 0 <= x <= 160
- * :param yend: y coordinate of bottom right corner; 0 <= y <= 80
+ * :param xstart: x coordinate of top left corner
+ * :param ystart: y coordinate of top left corner
+ * :param xend: x coordinate of bottom right corner
+ * :param yend: y coordinate of bottom right corner
  * :param color: line color in rgb565
  * :param fillstyle: 0 for empty, 1 for filled
  * :param pixelsize: thickness of the rectangle outline; 1 <= pixelsize <= 8
@@ -1455,10 +1538,10 @@ API(API_DISP_LINE, int epic_disp_line(
  *    - ``-EBUSY``: Display was already locked from another task.
  */
 API(API_DISP_RECT, int epic_disp_rect(
-	uint16_t xstart,
-	uint16_t ystart,
-	uint16_t xend,
-	uint16_t yend,
+	int16_t xstart,
+	int16_t ystart,
+	int16_t xend,
+	int16_t yend,
 	uint16_t color,
 	enum disp_fillstyle fillstyle,
 	uint16_t pixelsize
@@ -1478,8 +1561,8 @@ API(API_DISP_RECT, int epic_disp_rect(
  *    - ``-EBUSY``: Display was already locked from another task.
  */
 API(API_DISP_CIRC, int epic_disp_circ(
-	uint16_t x,
-	uint16_t y,
+	int16_t x,
+	int16_t y,
 	uint16_t rad,
 	uint16_t color,
 	enum disp_fillstyle fillstyle,
@@ -1865,9 +1948,9 @@ struct max30001_sensor_config {
 };
 
 /**
- * Enable a MAX30001 ecg sensor.
+ * Enable a MAX30001 ECG sensor.
  *
- * Calling this funciton will instruct the MAX30001 to collect data for this
+ * Calling this function will instruct the MAX30001 to collect data for this
  * sensor.  You can then retrieve the samples using :c:func:`epic_stream_read`.
  *
  * :param max30001_sensor_config* config: Configuration for this sensor.
@@ -1938,5 +2021,75 @@ API(API_USB_CDCACM, int epic_usb_cdcacm(void));
  */
 API(API_WS2812_WRITE, void epic_ws2812_write(uint8_t pin, uint8_t *pixels, uint32_t n_bytes));
 
+
+/**
+ * Configuration
+ * =============
+ */
+
+/**
+ * Read an integer from the configuration file
+ *
+ * :param char* key: Name of the option to read
+ * :param int* value: Place to read the value into
+ * :return: `0` on success or a negative value if an error occured. Possible
+ *    errors:
+ *
+ *    - ``-ENOENT``: Value can not be read
+ *
+ * .. versionadded:: 1.13
+ */
+API(API_CONFIG_GET_INTEGER, int epic_config_get_integer(const char *key, int *value));
+
+/**
+ * Read a boolean from the configuration file
+ *
+ * :param char* key: Name of the option to read
+ * :param bool* value: Place to read the value into
+ * :return: `0` on success or a negative value if an error occured. Possible
+ *    errors:
+ *
+ *    - ``-ENOENT``: Value can not be read
+ *
+ * .. versionadded:: 1.13
+ */
+API(API_CONFIG_GET_BOOLEAN, int epic_config_get_boolean(const char *key, bool *value));
+
+/**
+ * Read a string from the configuration file.
+ *
+ * If the buffer supplied is too small for the config option,
+ * no error is reported and the first `buf_len - 1` characters
+ * are returned (0 terminated).
+ *
+ * :param char* key: Name of the option to read
+ * :param char* buf: Place to read the string into
+ * :param size_t buf_len: Size of the provided buffer
+ * :return: `0` on success or a negative value if an error occured. Possible
+ *    errors:
+ *
+ *    - ``-ENOENT``: Value can not be read
+ *
+ * .. versionadded:: 1.13
+ */
+API(API_CONFIG_GET_STRING, int epic_config_get_string(const char *key, char *buf, size_t buf_len));
+
+
+/**
+ * Write a string to the configuration file.
+ *
+ * :param char* key: Name of the option to write
+ * :param char* value: The value to write
+ * :return: `0` on success or a negative value if an error occured. Possivle
+ *    errors:
+ *
+ *    - ``-EINVAL``: Parameters out of range
+ *    - ``-ENOENT``: Key already exists but can not be read
+ *    - ``-EIO``   : Unspecified I/O error
+ *    - Any fopen/fread/fwrite/fclose related error code
+ *
+ * .. versionadded:: 1.16
+ */
+API(API_CONFIG_SET_STRING, int epic_config_set_string(const char *key, const char *value));
 #endif /* _EPICARDIUM_H */
 
diff --git a/epicardium/fs/filesystem_fat.c b/epicardium/fs/filesystem_fat.c
index ccaec62157174cdfab14c957d157941b063acc64..b85283afbdf9cae74aeff1cfe6d2ab1cec969881 100644
--- a/epicardium/fs/filesystem_fat.c
+++ b/epicardium/fs/filesystem_fat.c
@@ -25,15 +25,12 @@
 #include "modules/log.h"
 #include "modules/modules.h"
 #include "api/common.h"
+#include "modules/mutex.h"
 
 #define SSLOG_DEBUG(...) LOG_DEBUG("fatfs", __VA_ARGS__)
 #define SSLOG_INFO(...) LOG_INFO("fatfs", __VA_ARGS__)
 #define SSLOG_ERR(...) LOG_ERR("fatfs", __VA_ARGS__)
 
-#ifndef EPIC_FAT_STATIC_SEMAPHORE
-#define EPIC_FAT_STATIC_SEMAPHORE 0
-#endif
-
 /* clang-format off */
 #define EPIC_FAT_MAX_OPENED           (1 << (EPIC_FAT_FD_INDEX_BITS))
 #define EPIC_FAT_FD_GENERATION_BITS   (31 - (EPIC_FAT_FD_INDEX_BITS))
@@ -67,8 +64,6 @@ struct EpicFileSystem {
 static const int s_libffToErrno[20];
 
 static const char *f_get_rc_string(FRESULT rc);
-static bool globalLockAccquire();
-static void globalLockRelease();
 static void efs_close_all(EpicFileSystem *fs, int coreMask);
 
 /**
@@ -97,11 +92,7 @@ static void efs_init_stat(struct epic_stat *stat, FILINFO *finfo);
 
 static EpicFileSystem s_globalFileSystem;
 
-#if (EPIC_FAT_STATIC_SEMAPHORE == 1)
-static StaticSemaphore_t s_globalLockBuffer;
-#endif
-
-static SemaphoreHandle_t s_globalLock = NULL;
+static struct mutex fatfs_lock = { 0 };
 
 static void cb_attachTimer(void *a, uint32_t b)
 {
@@ -118,11 +109,7 @@ void fatfs_init()
 	assert(!s_initCalled);
 	s_initCalled = true;
 
-#if (EPIC_FAT_STATIC_SEMAPHORE == 1)
-	s_globalLock = xSemaphoreCreateMutexStatic(&s_globalLockBuffer);
-#else
-	s_globalLock = xSemaphoreCreateMutex();
-#endif
+	mutex_create(&fatfs_lock);
 
 	s_globalFileSystem.generationCount = 1;
 	fatfs_attach();
@@ -142,26 +129,24 @@ int fatfs_attach()
 {
 	FRESULT ff_res;
 	int rc = 0;
-	if (globalLockAccquire()) {
-		EpicFileSystem *fs = &s_globalFileSystem;
-		if (!fs->attached) {
-			ff_res = f_mount(&fs->FatFs, "/", 0);
-			if (ff_res == FR_OK) {
-				fs->attached = true;
-				SSLOG_INFO("attached\n");
-			} else {
-				SSLOG_ERR(
-					"f_mount error %s\n",
-					f_get_rc_string(ff_res)
-				);
-				rc = -s_libffToErrno[ff_res];
-			}
-		}
 
-		globalLockRelease();
-	} else {
-		SSLOG_ERR("Failed to lock\n");
+	mutex_lock(&fatfs_lock);
+
+	EpicFileSystem *fs = &s_globalFileSystem;
+	if (!fs->attached) {
+		ff_res = f_mount(&fs->FatFs, "/", 0);
+		if (ff_res == FR_OK) {
+			fs->attached = true;
+			SSLOG_INFO("attached\n");
+		} else {
+			SSLOG_ERR(
+				"f_mount error %s\n", f_get_rc_string(ff_res)
+			);
+			rc = -s_libffToErrno[ff_res];
+		}
 	}
+
+	mutex_unlock(&fatfs_lock);
 	return rc;
 }
 
@@ -227,24 +212,12 @@ static const char *f_get_rc_string(FRESULT rc)
 	return p;
 }
 
-static bool globalLockAccquire()
-{
-	return (int)(xSemaphoreTake(s_globalLock, FF_FS_TIMEOUT) == pdTRUE);
-}
-
-static void globalLockRelease()
-{
-	xSemaphoreGive(s_globalLock);
-}
-
 int efs_lock_global(EpicFileSystem **fs)
 {
 	*fs = NULL;
-	if (!globalLockAccquire()) {
-		return -EBUSY;
-	}
+	mutex_lock(&fatfs_lock);
 	if (!s_globalFileSystem.attached) {
-		globalLockRelease();
+		mutex_unlock(&fatfs_lock);
 		return -ENODEV;
 	}
 	*fs = &s_globalFileSystem;
@@ -259,7 +232,7 @@ int efs_lock_global(EpicFileSystem **fs)
 void efs_unlock_global(EpicFileSystem *fs)
 {
 	(void)fs;
-	globalLockRelease();
+	mutex_unlock(&fatfs_lock);
 }
 
 static bool efs_get_opened(
@@ -312,6 +285,7 @@ efs_get_new(EpicFileSystem *fs, uint32_t *idx, struct FatObject **obj, int *rc)
 	}
 
 	*obj = &fs->pool[index];
+	*idx = index;
 	return true;
 }
 
diff --git a/epicardium/fs/fs_util.c b/epicardium/fs/fs_util.c
new file mode 100644
index 0000000000000000000000000000000000000000..1266df23207994c4db4a9d6281d280a86025d14e
--- /dev/null
+++ b/epicardium/fs/fs_util.c
@@ -0,0 +1,92 @@
+#include "fs_util.h"
+
+#include "epicardium.h"
+
+#include <stdint.h>
+#include <string.h>
+
+int fs_read_file(char *filename, void *data, int len)
+{
+	int fd = epic_file_open(filename, "r");
+	if (fd < 0) {
+		return fd;
+	}
+
+	int res = epic_file_read(fd, data, len);
+	epic_file_close(fd);
+
+	return res;
+}
+
+int fs_read_text_file(char *filename, char *data, int len)
+{
+	int readbytes;
+
+	if (len < 1)
+		return -1;
+	readbytes = fs_read_file(filename, data, len - 1);
+	if (readbytes < 0) {
+		data[0] = 0;
+		return readbytes;
+	};
+	data[readbytes] = 0;
+	while (readbytes > 0 && data[readbytes - 1] < 0x20) {
+		data[--readbytes] = 0;
+	};
+	return readbytes;
+}
+
+int fs_write_file(char *filename, const void *data, int len)
+{
+	int fd = epic_file_open(filename, "w");
+	if (fd < 0) {
+		return fd;
+	}
+
+	int res = epic_file_write(fd, data, len);
+	epic_file_close(fd);
+
+	return res;
+}
+
+int fs_get_file_size(char *filename)
+{
+	struct epic_stat stat;
+	int res = epic_file_stat(filename, &stat);
+	return res < 0 ? res : (int)stat.size;
+}
+
+#if 0
+#include "ff.h"
+FATFS FatFs;          /* File system object for logical drive */
+FS_USAGE FsUsage;
+/* TODO: Port functions from r0ket/rad10 libs */
+int fs_info(FATFS *fs)
+{
+    memcpy(fs, &FatFs, sizeof(FATFS));
+    return 0;
+}
+int fs_usage(FATFS *fs, FS_USAGE *fs_usage)
+{
+    FRESULT res;
+    DWORD tot_clust, fre_clust, sec_size;
+
+    res = f_getfree("/", &fre_clust, &fs);
+    if(res != FR_OK)
+        return -res;
+
+    // sectore size = sectors per cluster *  sector size
+#if FF_MAX_SS == FF_MIN_SS
+    sec_size = fs->csize * FF_MAX_SS;
+#else
+    sec_size = fs->csize * fs.ssize;
+#endif
+
+    // total/free sectors * sectore size
+    tot_clust = fs->n_fatent - 2;
+    fs_usage->total = tot_clust * sec_size; //FatFs.ssize;
+    fs_usage->free = fre_clust * sec_size; //FatFs.ssize;
+
+    return 0;
+}
+#endif
diff --git a/lib/ff13/util/fs_util.h b/epicardium/fs/fs_util.h
similarity index 100%
rename from lib/ff13/util/fs_util.h
rename to epicardium/fs/fs_util.h
diff --git a/epicardium/l0der/l0der.c b/epicardium/l0der/l0der.c
index deb55571e3b96fe72c89d96dcc555424035116ef..5f10c441e29919e02492f31507b8509507d4430d 100644
--- a/epicardium/l0der/l0der.c
+++ b/epicardium/l0der/l0der.c
@@ -119,7 +119,7 @@ static int _seek_and_read(int fd, uint32_t address, void *data, size_t count)
 		return res;
 	}
 
-	if ((res = epic_file_read(fd, data, count)) != count) {
+	if ((size_t)(res = epic_file_read(fd, data, count)) != count) {
 		LOG_ERR("l0der", "_seek_and_read: could not read: %d", res);
 		return res;
 	}
@@ -149,7 +149,7 @@ static int _read_section_header(int fd, uint32_t shdr_addr, Elf32_Shdr *shdr)
  * This function ensures basic memory sanity of a program header / segment.
  * It ensures that it points to a file region that is contained within the file fully.
  */
-static int _check_program_header(int fd, int size, Elf32_Phdr *phdr)
+static int _check_program_header(int fd, size_t size, Elf32_Phdr *phdr)
 {
 	// Check file size/offset.
 	uint32_t file_start = phdr->p_offset;
@@ -191,7 +191,7 @@ static int _check_program_header(int fd, int size, Elf32_Phdr *phdr)
  * This function ensures basic memory sanity of a section header.
  * It ensures that it points to a file region that is contained within the file fully.
  */
-static int _check_section_header(int fd, int size, Elf32_Shdr *shdr)
+static int _check_section_header(int fd, size_t size, Elf32_Shdr *shdr)
 {
 	// Check file size/offset.
 	uint32_t file_start = shdr->sh_offset;
@@ -329,7 +329,7 @@ static int _load_segment(int fd, struct _pie_load_info *li, Elf32_Phdr *phdr)
  * Parse dynamic symbol sections.
  */
 static int _parse_dynamic_symbols(
-	int fd, int size, struct _pie_load_info *li, Elf32_Ehdr *hdr
+	int fd, size_t size, struct _pie_load_info *li, Elf32_Ehdr *hdr
 ) {
 	int res;
 	Elf32_Shdr shdr;
@@ -366,7 +366,7 @@ static int _parse_dynamic_symbols(
 			return res;
 		}
 
-		for (int j = 0; j < sym_count; j++) {
+		for (uint32_t j = 0; j < sym_count; j++) {
 			if ((res = epic_file_read(
 				     fd, &sym, sizeof(Elf32_Sym))) !=
 			    sizeof(Elf32_Sym)) {
@@ -402,9 +402,9 @@ static int _parse_dynamic_symbols(
  * the only one used when making 'standard' PIE binaries on RAM. However, other
  * kinds might have to be implemented in the future.
  */
-static int
-_run_relocations(int fd, int size, struct _pie_load_info *li, Elf32_Ehdr *hdr)
-{
+static int _run_relocations(
+	int fd, size_t size, struct _pie_load_info *li, Elf32_Ehdr *hdr
+) {
 	int res;
 	Elf32_Shdr shdr;
 	Elf32_Rel rel;
@@ -447,7 +447,7 @@ _run_relocations(int fd, int size, struct _pie_load_info *li, Elf32_Ehdr *hdr)
 			return res;
 		}
 
-		for (int j = 0; j < reloc_count; j++) {
+		for (uint32_t j = 0; j < reloc_count; j++) {
 			if ((res = epic_file_read(
 				     fd, &rel, sizeof(Elf32_Rel))) !=
 			    sizeof(Elf32_Rel)) {
@@ -464,7 +464,7 @@ _run_relocations(int fd, int size, struct _pie_load_info *li, Elf32_Ehdr *hdr)
 			// (ie., do not resolve relocation - they default to a safe NULL)
 			uint8_t skip = 0;
 			if (sym != 0) {
-				for (int k = 0; k < li->weak_symbol_count;
+				for (uint32_t k = 0; k < li->weak_symbol_count;
 				     k++) {
 					if (li->weak_symbols[k] == sym) {
 						skip = 1;
@@ -513,7 +513,7 @@ _run_relocations(int fd, int size, struct _pie_load_info *li, Elf32_Ehdr *hdr)
  * Load a l0dable PIE binary.
  */
 static int
-_load_pie(int fd, int size, Elf32_Ehdr *hdr, struct l0dable_info *info)
+_load_pie(int fd, size_t size, Elf32_Ehdr *hdr, struct l0dable_info *info)
 {
 	int res;
 	struct _pie_load_info li = { 0 };
@@ -647,7 +647,10 @@ int l0der_load_path(const char *path, struct l0dable_info *info)
 		return res;
 	}
 
-	int size = epic_file_tell(fd);
+	if ((res = epic_file_tell(fd)) < 0) {
+		return res;
+	}
+	size_t size = res;
 
 	if ((res = epic_file_seek(fd, 0, SEEK_SET)) != 0) {
 		return res;
diff --git a/epicardium/main.c b/epicardium/main.c
index 3d40ceb8ecbcbf09418b74a0c54adc8b3e7b1780..c5e2768c37177f97f6a2388bdfdd8b71f10cd591 100644
--- a/epicardium/main.c
+++ b/epicardium/main.c
@@ -6,6 +6,7 @@
 
 #include "gfx.h"
 #include "display.h"
+#include "leds.h"
 #include "version-splash.h"
 
 #include "FreeRTOS.h"
@@ -31,11 +32,31 @@ int main(void)
 	 * Version Splash
 	 */
 	const char *version_buf = CARD10_VERSION;
-	mxc_delay(500000);
+
+	//LED feedback in case of dead display
+	epic_leds_set(11, 0, 0, 1);
+	epic_leds_set(12, 0, 0, 1);
+	epic_leds_set(13, 0, 0, 1);
+	epic_leds_set(14, 0, 0, 1);
+	for (int i = 0; i < 3; i++) {
+		epic_leds_set_rocket(i, 31);
+		mxc_delay(166666);
+		epic_leds_set_rocket(i, 0);
+	}
+	epic_leds_clear_all(0, 0, 0);
+
 	epic_disp_clear(0x0000);
-	if (strcmp(CARD10_VERSION, "v1.11") == 0) {
-		gfx_copy_region_raw(
-			&display_screen, 0, 0, 160, 80, 2, version_splash
+
+	if (strcmp(CARD10_VERSION, "v1.15") == 0) {
+		gfx_copy_region(
+			&display_screen,
+			0,
+			0,
+			160,
+			80,
+			GFX_RAW,
+			sizeof(version_splash),
+			version_splash
 		);
 	} else {
 		const int off = (160 - (int)strlen(version_buf) * 14) / 2;
@@ -57,8 +78,7 @@ int main(void)
 		    NULL,
 		    tskIDLE_PRIORITY + 3,
 		    NULL) != pdPASS) {
-		LOG_CRIT("startup", "Failed to create %s task!", "Serial");
-		abort();
+		panic("Failed to create %s task!", "Serial");
 	}
 
 	/* PMIC */
@@ -69,8 +89,7 @@ int main(void)
 		    NULL,
 		    tskIDLE_PRIORITY + 4,
 		    NULL) != pdPASS) {
-		LOG_CRIT("startup", "Failed to create %s task!", "PMIC");
-		abort();
+		panic("Failed to create %s task!", "PMIC");
 	}
 
 	/* BHI160 */
@@ -81,8 +100,7 @@ int main(void)
 		    NULL,
 		    tskIDLE_PRIORITY + 1,
 		    NULL) != pdPASS) {
-		LOG_CRIT("startup", "Failed to create %s task!", "BHI160");
-		abort();
+		panic("Failed to create %s task!", "BHI160");
 	}
 
 	/* MAX30001 */
@@ -93,8 +111,17 @@ int main(void)
 		    NULL,
 		    tskIDLE_PRIORITY + 1,
 		    NULL) != pdPASS) {
-		LOG_CRIT("startup", "Failed to create %s task!", "MAX30001");
-		abort();
+		panic("Failed to create %s task!", "MAX30001");
+	}
+	/* MAX86150 */
+	if (xTaskCreate(
+		    vMAX86150Task,
+		    (const char *)"MAX86150 Driver",
+		    configMINIMAL_STACK_SIZE * 2,
+		    NULL,
+		    tskIDLE_PRIORITY + 1,
+		    NULL) != pdPASS) {
+		panic("Failed to create %s task!", "MAX86150");
 	}
 	/* API */
 	if (xTaskCreate(
@@ -104,12 +131,7 @@ int main(void)
 		    NULL,
 		    tskIDLE_PRIORITY + 2,
 		    &dispatcher_task_id) != pdPASS) {
-		LOG_CRIT(
-			"startup",
-			"Failed to create %s task!",
-			"API Dispatcher"
-		);
-		abort();
+		panic("Failed to create %s task!", "API Dispatcher");
 	}
 
 	/* BLE */
@@ -121,8 +143,7 @@ int main(void)
 			    NULL,
 			    tskIDLE_PRIORITY + 3,
 			    NULL) != pdPASS) {
-			LOG_CRIT("startup", "Failed to create %s task!", "BLE");
-			abort();
+			panic("Failed to create %s task!", "BLE");
 		}
 	}
 
@@ -134,8 +155,7 @@ int main(void)
 		    NULL,
 		    tskIDLE_PRIORITY + 1,
 		    NULL) != pdPASS) {
-		LOG_CRIT("startup", "Failed to create %s task!", "LED");
-		abort();
+		panic("Failed to create %s task!", "LED");
 	}
 
 	/* Lifecycle */
@@ -146,8 +166,7 @@ int main(void)
 		    NULL,
 		    tskIDLE_PRIORITY + 3,
 		    NULL) != pdPASS) {
-		LOG_CRIT("startup", "Failed to create %s task!", "Lifecycle");
-		abort();
+		panic("Failed to create %s task!", "Lifecycle");
 	}
 
 	/*
@@ -158,6 +177,5 @@ int main(void)
 	LOG_DEBUG("startup", "Starting FreeRTOS ...");
 	vTaskStartScheduler();
 
-	LOG_CRIT("startup", "FreeRTOS did not start due to unknown error!");
-	abort();
+	panic("FreeRTOS did not start due to unknown error!");
 }
diff --git a/epicardium/meson.build b/epicardium/meson.build
index a6a6c05261c16ced283c4d8591b335237f6acd37..0d10151a0bc31e64daeeca645d8e2ff5bd79fcd1 100644
--- a/epicardium/meson.build
+++ b/epicardium/meson.build
@@ -86,6 +86,7 @@ elf = executable(
   'main.c',
   'support.c',
   'fs/filesystem_fat.c',
+  'fs/fs_util.c',
   module_sources,
   l0der_sources,
   ble_sources,
diff --git a/epicardium/modules/bhi.c b/epicardium/modules/bhi.c
index a40a73eb64a6503d47319c9bc25603f766e822cd..5a5528f5f2ce1c5dde700866847240eb6c69bc5a 100644
--- a/epicardium/modules/bhi.c
+++ b/epicardium/modules/bhi.c
@@ -1,3 +1,4 @@
+#include <assert.h>
 #include <stdio.h>
 #include <string.h>
 
@@ -8,7 +9,6 @@
 
 #include "FreeRTOS.h"
 #include "task.h"
-#include "semphr.h"
 #include "queue.h"
 
 #include "api/interrupt-sender.h"
@@ -17,9 +17,6 @@
 #include "modules/modules.h"
 #include "modules/stream.h"
 
-/* Ticks to wait when trying to acquire lock */
-#define LOCK_WAIT pdMS_TO_TICKS(BHI160_MUTEX_WAIT_MS)
-
 /* BHI160 Firmware Blob.  Contents are defined in libcard10. */
 extern uint8_t bhy1_fw[];
 
@@ -56,8 +53,7 @@ static size_t start_index = 0;
 static TaskHandle_t bhi160_task_id = NULL;
 
 /* BHI160 Mutex */
-static StaticSemaphore_t bhi160_mutex_data;
-static SemaphoreHandle_t bhi160_mutex = NULL;
+static struct mutex bhi160_mutex = { 0 };
 
 /* Streams */
 static struct stream_info bhi160_streams[10];
@@ -65,6 +61,13 @@ static struct stream_info bhi160_streams[10];
 /* Active */
 static bool bhi160_sensor_active[10] = { 0 };
 
+/*
+ * Driver State:  A flag that is set when an unrecoverable error occurred.
+ * Effectively, this means the sensor will be disabled until next reboot and any
+ * API calls will fail immediately.
+ */
+static bool bhi160_driver_b0rked = false;
+
 /* -- Utilities -------------------------------------------------------- {{{ */
 /*
  * Retrieve the data size for a sensor.  This value is needed for the creation
@@ -130,18 +133,16 @@ int epic_bhi160_enable_sensor(
 	int result = 0;
 
 	bhy_virtual_sensor_t vs_id = bhi160_lookup_vs_id(sensor_type);
-	if (vs_id < 0) {
+	if (vs_id == (bhy_virtual_sensor_t)-1) {
 		return -ENODEV;
 	}
 
-	result = hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100));
-	if (result < 0) {
-		return result;
-	}
+	mutex_lock(&bhi160_mutex);
+	hwlock_acquire(HWLOCK_I2C);
 
-	if (xSemaphoreTake(bhi160_mutex, LOCK_WAIT) != pdTRUE) {
-		result = -EBUSY;
-		goto out_free_i2c;
+	if (bhi160_driver_b0rked) {
+		result = -ENODEV;
+		goto out_free;
 	}
 
 	struct stream_info *stream = &bhi160_streams[sensor_type];
@@ -151,12 +152,12 @@ int epic_bhi160_enable_sensor(
 		xQueueCreate(config->sample_buffer_len, stream->item_size);
 	if (stream->queue == NULL) {
 		result = -ENOMEM;
-		goto out_free_both;
+		goto out_free;
 	}
 
 	result = stream_register(bhi160_lookup_sd(sensor_type), stream);
 	if (result < 0) {
-		goto out_free_both;
+		goto out_free;
 	}
 
 	result = bhy_enable_virtual_sensor(
@@ -169,16 +170,16 @@ int epic_bhi160_enable_sensor(
 		config->dynamic_range /* dynamic range is sensor dependent */
 	);
 	if (result != BHY_SUCCESS) {
-		goto out_free_both;
+		goto out_free;
 	}
 
 	bhi160_sensor_active[sensor_type] = true;
-	result                            = bhi160_lookup_sd(sensor_type);
+	/* Return the sensor stream descriptor */
+	result = bhi160_lookup_sd(sensor_type);
 
-out_free_both:
-	xSemaphoreGive(bhi160_mutex);
-out_free_i2c:
+out_free:
 	hwlock_release(HWLOCK_I2C);
+	mutex_unlock(&bhi160_mutex);
 	return result;
 }
 
@@ -187,46 +188,43 @@ int epic_bhi160_disable_sensor(enum bhi160_sensor_type sensor_type)
 	int result = 0;
 
 	bhy_virtual_sensor_t vs_id = bhi160_lookup_vs_id(sensor_type);
-	if (vs_id < 0) {
+	if (vs_id == (bhy_virtual_sensor_t)-1) {
 		return -ENODEV;
 	}
 
-	result = hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100));
-	if (result < 0) {
-		return result;
-	}
+	mutex_lock(&bhi160_mutex);
+	hwlock_acquire(HWLOCK_I2C);
 
-	if (xSemaphoreTake(bhi160_mutex, LOCK_WAIT) != pdTRUE) {
-		result = -EBUSY;
-		goto out_free_i2c;
+	if (bhi160_driver_b0rked) {
+		result = -ENODEV;
+		goto out_free;
 	}
 
 	struct stream_info *stream = &bhi160_streams[sensor_type];
 	result = stream_deregister(bhi160_lookup_sd(sensor_type), stream);
 	if (result < 0) {
-		goto out_free_both;
+		goto out_free;
 	}
 
 	vQueueDelete(stream->queue);
 	stream->queue = NULL;
 	result        = bhy_disable_virtual_sensor(vs_id, VS_WAKEUP);
 	if (result < 0) {
-		goto out_free_both;
+		goto out_free;
 	}
 
 	bhi160_sensor_active[sensor_type] = false;
 
 	result = 0;
-out_free_both:
-	xSemaphoreGive(bhi160_mutex);
-out_free_i2c:
+out_free:
 	hwlock_release(HWLOCK_I2C);
+	mutex_unlock(&bhi160_mutex);
 	return result;
 }
 
 void epic_bhi160_disable_all_sensors()
 {
-	for (int i = 0; i < sizeof(bhi160_sensor_active); i++) {
+	for (size_t i = 0; i < sizeof(bhi160_sensor_active); i++) {
 		if (bhi160_sensor_active[i]) {
 			epic_bhi160_disable_sensor(i);
 		}
@@ -259,14 +257,14 @@ bhi160_handle_packet(bhy_data_type_t data_type, bhy_data_generic_t *sensor_data)
 		wakeup = true;
 		/* fall through */
 	case VS_ID_TIMESTAMP_MSW:
-		MXC_ASSERT(data_type == BHY_DATA_TYPE_SCALAR_U16);
+		assert(data_type == BHY_DATA_TYPE_SCALAR_U16);
 		timestamp = sensor_data->data_scalar_u16.data << 16;
 		break;
 	case VS_ID_TIMESTAMP_LSW_WAKEUP:
 		wakeup = true;
 		/* fall through */
 	case VS_ID_TIMESTAMP_LSW:
-		MXC_ASSERT(data_type == BHY_DATA_TYPE_SCALAR_U16);
+		assert(data_type == BHY_DATA_TYPE_SCALAR_U16);
 		timestamp = (timestamp & 0xFFFF0000) |
 			    sensor_data->data_scalar_u16.data;
 		break;
@@ -303,7 +301,7 @@ bhi160_handle_packet(bhy_data_type_t data_type, bhy_data_generic_t *sensor_data)
 			break;
 		}
 
-		MXC_ASSERT(data_type == BHY_DATA_TYPE_VECTOR);
+		assert(data_type == BHY_DATA_TYPE_VECTOR);
 		if (bhi160_streams[sensor_type].queue == NULL) {
 			break;
 		}
@@ -346,15 +344,8 @@ static int bhi160_fetch_fifo(void)
 	/* Number of bytes left in BHI160's FIFO buffer */
 	uint16_t bytes_left_in_fifo = 1;
 
-	result = hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100));
-	if (result < 0) {
-		return result;
-	}
-
-	if (xSemaphoreTake(bhi160_mutex, LOCK_WAIT) != pdTRUE) {
-		result = -EBUSY;
-		goto out_free_i2c;
-	}
+	mutex_lock(&bhi160_mutex);
+	hwlock_acquire(HWLOCK_I2C);
 
 	while (bytes_left_in_fifo) {
 		/* Fill local FIFO buffer with as many bytes as possible */
@@ -397,9 +388,8 @@ static int bhi160_fetch_fifo(void)
 		start_index = bytes_left;
 	}
 
-	xSemaphoreGive(bhi160_mutex);
-out_free_i2c:
 	hwlock_release(HWLOCK_I2C);
+	mutex_unlock(&bhi160_mutex);
 	return result;
 }
 
@@ -411,7 +401,7 @@ static void bhi160_interrupt_callback(void *_)
 {
 	BaseType_t xHigherPriorityTaskWoken = pdFALSE;
 
-	if (bhi160_task_id != NULL) {
+	if (bhi160_task_id != NULL && !bhi160_driver_b0rked) {
 		vTaskNotifyGiveFromISR(
 			bhi160_task_id, &xHigherPriorityTaskWoken
 		);
@@ -425,33 +415,27 @@ void vBhi160Task(void *pvParameters)
 	int ret;
 
 	bhi160_task_id = xTaskGetCurrentTaskHandle();
-	bhi160_mutex   = xSemaphoreCreateMutexStatic(&bhi160_mutex_data);
-
-	/*
-	 * Wait a little before initializing BHI160.
-	 */
-	vTaskDelay(pdMS_TO_TICKS(3));
 
-	int lockret = hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100));
-	if (lockret < 0) {
-		LOG_CRIT("bhi160", "Failed to acquire I2C lock!");
-		vTaskDelay(portMAX_DELAY);
-	}
-
-	/* Take Mutex during initialization, just in case */
-	if (xSemaphoreTake(bhi160_mutex, 0) != pdTRUE) {
-		LOG_CRIT("bhi160", "Failed to acquire BHI160 mutex!");
-		vTaskDelay(portMAX_DELAY);
-	}
+	mutex_create(&bhi160_mutex);
+	mutex_lock(&bhi160_mutex);
+	hwlock_acquire(HWLOCK_I2C);
 
 	memset(bhi160_streams, 0x00, sizeof(bhi160_streams));
 
-	/* Install interrupt callback */
+	/*
+	 * The BHI160, coming out of power-on-reset will hold its interrupt line
+	 * high until a firmware image is loaded.  Once that firmware is loaded
+	 * and running, the interrupt line is deasserted and from then on,
+	 * interrupts are signaled using a rising edge.
+	 *
+	 * So, initially we need to configure the IRQ for a falling edge, load
+	 * the firmware and then reconfigure for a rising edge.
+	 */
 	GPIO_Config(&bhi160_interrupt_pin);
 	GPIO_RegisterCallback(
 		&bhi160_interrupt_pin, bhi160_interrupt_callback, NULL
 	);
-	GPIO_IntConfig(&bhi160_interrupt_pin, GPIO_INT_EDGE, GPIO_INT_RISING);
+	GPIO_IntConfig(&bhi160_interrupt_pin, GPIO_INT_EDGE, GPIO_INT_FALLING);
 	GPIO_IntEnable(&bhi160_interrupt_pin);
 	NVIC_SetPriority(
 		(IRQn_Type)MXC_GPIO_GET_IRQ(bhi160_interrupt_pin.port), 2
@@ -461,22 +445,43 @@ void vBhi160Task(void *pvParameters)
 	/* Upload firmware */
 	ret = bhy_driver_init(bhy1_fw);
 	if (ret) {
-		LOG_CRIT("bhi160", "BHy1 init failed!");
-		vTaskDelay(portMAX_DELAY);
+		LOG_CRIT("bhi160", "BHy1 init failed!  Disabling.");
+
+		/* Disable BHI160 until next reboot */
+		bhi160_driver_b0rked = true;
+		hwlock_release(HWLOCK_I2C);
+		mutex_unlock(&bhi160_mutex);
+		vTaskDelete(NULL);
 	}
 
-	/* Wait for first interrupt */
+	/* Wait for first interrupt, a falling edge */
 	hwlock_release(HWLOCK_I2C);
-	ulTaskNotifyTake(pdTRUE, pdMS_TO_TICKS(100));
-	lockret = hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100));
-	if (lockret < 0) {
-		LOG_CRIT("bhi160", "Failed to acquire I2C lock!");
-		vTaskDelay(portMAX_DELAY);
+	if (ulTaskNotifyTake(pdTRUE, pdMS_TO_TICKS(2000)) == 0) {
+		LOG_CRIT(
+			"bhi160",
+			"Sensor firmware was not loaded correctly.  Disabling."
+		);
+
+		/* Disable BHI160 until next reboot */
+		bhi160_driver_b0rked = true;
+		mutex_unlock(&bhi160_mutex);
+		vTaskDelete(NULL);
 	}
+	hwlock_acquire(HWLOCK_I2C);
 
-	/* Remap axes to match card10 layout */
-	/* Due to a known issue (#133) the first call to
-	 * bhy_mapping_matrix_set might fail. */
+	/*
+	 * The firmware is now loaded; as stated above, we now need to
+	 * reconfigure the IRQ for a rising edge.
+	 */
+	GPIO_IntConfig(&bhi160_interrupt_pin, GPIO_INT_EDGE, GPIO_INT_RISING);
+
+	/*
+	 * Remap axes to match card10 layout.
+	 *
+	 * TODO: We set the matrix for the accelerometer twice because on some
+	 * badges, the axis mapping is not applied properly the first time.  We
+	 * should fix this properly at some point.
+	 */
 	bhy_mapping_matrix_set(
 		PHYSICAL_SENSOR_INDEX_ACC, bhi160_mapping_matrix
 	);
@@ -493,8 +498,8 @@ void vBhi160Task(void *pvParameters)
 	/* Set "SIC" matrix.  TODO: Find out what this is about */
 	bhy_set_sic_matrix(bhi160_sic_array);
 
-	xSemaphoreGive(bhi160_mutex);
 	hwlock_release(HWLOCK_I2C);
+	mutex_unlock(&bhi160_mutex);
 
 	/* ----------------------------------------- */
 
diff --git a/epicardium/modules/bme680.c b/epicardium/modules/bme680.c
index d70f9938e86f8b06371edb5ae14dd5b05aa050bd..caadf68b9fa5ba9f2a0d5395db610a56c1237410 100644
--- a/epicardium/modules/bme680.c
+++ b/epicardium/modules/bme680.c
@@ -43,7 +43,7 @@ int epic_bme680_init()
 		return 0;
 	}
 
-	if (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100)) < 0) {
+	if (hwlock_acquire_timeout(HWLOCK_I2C, portMAX_DELAY) < 0) {
 		return -EBUSY;
 	}
 
@@ -110,7 +110,7 @@ int epic_bme680_deinit()
 		return 0;
 	}
 
-	if (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100)) < 0) {
+	if (hwlock_acquire_timeout(HWLOCK_I2C, portMAX_DELAY) < 0) {
 		return -EBUSY;
 	}
 
@@ -133,7 +133,7 @@ int epic_bme680_read_sensors(struct bme680_sensor_data *data)
 		return -EINVAL;
 	}
 
-	if (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100)) < 0) {
+	if (hwlock_acquire_timeout(HWLOCK_I2C, portMAX_DELAY) < 0) {
 		return -EBUSY;
 	}
 
@@ -152,7 +152,7 @@ int epic_bme680_read_sensors(struct bme680_sensor_data *data)
 	 */
 	hwlock_release(HWLOCK_I2C);
 	vTaskDelay(pdMS_TO_TICKS(profile_dur));
-	if (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100)) < 0) {
+	if (hwlock_acquire_timeout(HWLOCK_I2C, portMAX_DELAY) < 0) {
 		return -EBUSY;
 	}
 
diff --git a/epicardium/modules/buttons.c b/epicardium/modules/buttons.c
index 14e9e613719e3e5279f811393afdfaf843025430..0caa50c3992352759da84db2d8817aed445b5b21 100644
--- a/epicardium/modules/buttons.c
+++ b/epicardium/modules/buttons.c
@@ -16,20 +16,15 @@ static const uint8_t pin_mask[] = {
 uint8_t epic_buttons_read(uint8_t mask)
 {
 	uint8_t ret = 0;
-	if (portexpander_detected() && (mask & 0x7)) {
-		if (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100)) < 0) {
-			LOG_ERR("buttons", "Can't acquire I2C bus");
-			return 0;
-		}
 
+	hwlock_acquire(HWLOCK_I2C);
+	if (portexpander_detected() && (mask & 0x7)) {
 		/*
-		 * Not using PB_Get() here as that performs one I2C transcation
+		 * Not using PB_Get() here as that performs one I2C transaction
 		 * per button.
 		 */
 		uint8_t pin_status = ~portexpander_in_get(0xFF);
 
-		hwlock_release(HWLOCK_I2C);
-
 		for (uint8_t m = 1; m < 0x8; m <<= 1) {
 			if (mask & m && pin_status & pin_mask[m]) {
 				ret |= m;
@@ -41,5 +36,6 @@ uint8_t epic_buttons_read(uint8_t mask)
 		ret |= BUTTON_RESET;
 	}
 
+	hwlock_release(HWLOCK_I2C);
 	return ret;
 }
diff --git a/epicardium/modules/config.c b/epicardium/modules/config.c
index cb0094c22fcd5c826cbde040ebb195939a9e39e6..d4c2b74e0b2fed4915ae2670a8da39b078f6042c 100644
--- a/epicardium/modules/config.c
+++ b/epicardium/modules/config.c
@@ -1,262 +1,237 @@
 #include "modules/log.h"
 #include "modules/config.h"
 #include "modules/filesystem.h"
+#include "epicardium.h"
 
 #include <assert.h>
 #include <stdbool.h>
 #include <ctype.h>
 #include <string.h>
+#include <strings.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <stddef.h>
+#include <stdio.h>
 
-#define CONFIG_MAX_LINE_LENGTH 80
-
-enum OptionType {
-	OptionType_Boolean,
-	OptionType_Int,
-	OptionType_Float,
-	OptionType_String,
-};
-
-struct config_option {
-	const char *name;
-	enum OptionType type;
-	union {
-		bool boolean;
-		long integer;
-		double floating_point;
-		char *string;
-	} value;
-};
-
-static struct config_option s_options[_EpicOptionCount] = {
-/* clang-format off */
-	#define INIT_Boolean(v)  { .boolean        = (v) }
-	#define INIT_Int(v)      { .integer        = (v) }
-	#define INIT_Float(v)    { .floating_point = (v) }
-	#define INIT_String(v)   { .string         = (v) }
-	#define INIT_(tp, v)     INIT_ ## tp (v)
-	#define INIT(tp, v)      INIT_ (tp, v)
-
-	#define CARD10_SETTING(identifier, spelling, tp, default_value)         \
-		[Option ## identifier] = { .name  = (spelling),                 \
-		                           .type  = OptionType_ ## tp,          \
-		                           .value = INIT(tp, (default_value)) },
-
-	#include "modules/config.def"
-	/* clang-format on */
-};
-
-static struct config_option *findOption(const char *key)
+#define MAX_LINE_LENGTH 80
+#define KEYS_PER_BLOCK 16
+#define KEY_LENGTH 16
+#define NOT_INT_MAGIC ((int)0x80000000)
+
+// one key-value pair representing a line in the config
+typedef struct {
+	char key[KEY_LENGTH];
+
+	// the value in the config file, if it's an integer.
+	// for strings it's set to NOT_INT_MAGIC
+	int value;
+
+	// the byte offset in the config file to read the value string
+	size_t value_offset;
+} config_slot;
+
+// a block of 16 config slots
+// if more are needed, this becomes a linked list
+typedef struct {
+	config_slot slots[KEYS_PER_BLOCK];
+	void *next;
+} config_block;
+
+static config_block *config_data = NULL;
+
+// returns the config slot for a key name
+static config_slot *find_config_slot(const char *key)
 {
-	for (int i = 0; i < _EpicOptionCount; ++i) {
-		if (!strcmp(key, s_options[i].name)) {
-			return &s_options[i];
+	config_block *current = config_data;
+
+	while (current) {
+		for (int i = 0; i < KEYS_PER_BLOCK; i++) {
+			config_slot *k = &current->slots[i];
+
+			if (strcmp(k->key, key) == 0) {
+				// found what we're looking for
+				return k;
+
+			} else if (*k->key == '\0') {
+				// found the first empty key
+				return NULL;
+			}
 		}
+		current = current->next;
 	}
+
 	return NULL;
 }
 
-static bool set_bool(struct config_option *opt, const char *value)
+// returns the next available config slot, or allocates a new block if needed
+static config_slot *allocate_config_slot()
 {
-	bool val;
-	if (!strcmp(value, "1")) {
-		val = true;
-	} else if (!strcmp(value, "true")) {
-		val = true;
-	} else if (!strcmp(value, "0")) {
-		val = false;
-	} else if (!strcmp(value, "false")) {
-		val = false;
-	} else {
-		return false;
+	config_block *current;
+
+	if (config_data == NULL) {
+		config_data = malloc(sizeof(config_block));
+		assert(config_data != NULL);
+		memset(config_data, 0, sizeof(config_block));
 	}
-	opt->value.boolean = val;
-	LOG_DEBUG(
-		"card10.cfg",
-		"setting '%s' to %s",
-		opt->name,
-		val ? "true" : "false"
-	);
-	return true;
-}
 
-static bool set_int(struct config_option *opt, const char *value)
-{
-	char *endptr;
-	size_t len = strlen(value);
-	int v      = strtol(value, &endptr, 0);
-	if (endptr != (value + len)) {
-		return false;
+	current = config_data;
+
+	while (true) {
+		for (int i = 0; i < KEYS_PER_BLOCK; i++) {
+			config_slot *k = &current->slots[i];
+			if (*k->key == '\0') {
+				return k;
+			}
+		}
+
+		// this block is full and there's no next allocated block
+		if (current->next == NULL) {
+			current->next = malloc(sizeof(config_block));
+			assert(current->next != NULL);
+			memset(current->next, 0, sizeof(config_block));
+		}
+		current = current->next;
 	}
-	opt->value.integer = v;
-	LOG_DEBUG("card10.cfg", "setting '%s' to %d (0x%08x)", opt->name, v, v);
-	return true;
 }
 
-static bool set_float(struct config_option *opt, const char *value)
+// parses an int out of 'value' or returns NOT_INT_MAGIC
+static int try_parse_int(const char *value)
 {
 	char *endptr;
 	size_t len = strlen(value);
-	double v   = strtod(value, &endptr);
-	if (endptr != (value + len)) {
-		return false;
-	}
-	opt->value.floating_point = v;
-	LOG_DEBUG("card10.cfg", "setting '%s' to %f", opt->name, v);
-	return true;
-}
+	int v      = strtol(value, &endptr, 0);
 
-const char *elide(const char *str)
-{
-	static char ret[21];
-	size_t len = strlen(str);
-	if (len <= 20) {
-		return str;
+	if (endptr != (value + len)) {
+		return NOT_INT_MAGIC;
 	}
-	strncpy(ret, str, 17);
-	ret[17] = '.';
-	ret[18] = '.';
-	ret[19] = '.';
-	ret[20] = '\0';
-	return ret;
-}
 
-static bool set_string(struct config_option *opt, const char *value)
-{
-	//this leaks, but the lifetime of these ends when epicardium exits, so...
-	char *leaks       = strdup(value);
-	opt->value.string = leaks;
-	LOG_DEBUG("card10.cfg", "setting '%s' to %s", opt->name, elide(leaks));
-	return true;
+	return v;
 }
 
-static void configure(const char *key, const char *value, int lineNumber)
-{
-	struct config_option *opt = findOption(key);
-	if (!opt) {
-		//invalid key
+// loads a key/value pair into a new config slot
+static void add_config_pair(
+	const char *key, const char *value, int line_number, size_t value_offset
+) {
+	if (strlen(key) > KEY_LENGTH - 1) {
 		LOG_WARN(
 			"card10.cfg",
-			"line %d: ignoring unknown option '%s'",
-			lineNumber,
-			key
+			"line:%d: too long - aborting",
+			line_number
 		);
 		return;
 	}
-	bool ok = false;
-	switch (opt->type) {
-	case OptionType_Boolean:
-		ok = set_bool(opt, value);
-		break;
-	case OptionType_Int:
-		ok = set_int(opt, value);
-		break;
-	case OptionType_Float:
-		ok = set_float(opt, value);
-		break;
-	case OptionType_String:
-		ok = set_string(opt, value);
-		break;
-	default:
-		assert(0 && "unreachable");
-	}
-	if (!ok) {
-		LOG_WARN(
-			"card10.cfg",
-			"line %d: ignoring invalid value '%s' for option '%s'",
-			lineNumber,
-			value,
-			key
-		);
+
+	config_slot *slot = allocate_config_slot();
+	strncpy(slot->key, key, KEY_LENGTH);
+	slot->value        = try_parse_int(value);
+	slot->value_offset = value_offset;
+}
+
+static void trim(char *str)
+{
+	char *start = str;
+	while (*start && !isgraph(*start))
+		start++;
+
+	if (strlen(start) > 0) {
+		char *end = start + strlen(start) - 1;
+		while (*end && !isgraph(*end))
+			end--;
+		end[1] = 0;
 	}
+
+	memmove(str, start, strlen(start) + 1);
 }
 
-static void doline(char *line, char *eol, int lineNumber)
+// parses one line of the config file
+static void parse_line(char *line, int line_number, size_t line_offset)
 {
-	//skip leading whitespace
-	while (*line && isspace((int)*line))
-		++line;
+	char *line_start  = line;
+	char *value_start = strchr(line, '=') + 1;
 
-	char *key = line;
-	if (*key == '#') {
+	trim(line);
+
+	//printf(line);
+	if (*line == '#') {
 		//skip comments
 		return;
 	}
 
 	char *eq = strchr(line, '=');
 	if (!eq) {
-		if (*key) {
+		if (*line) {
 			LOG_WARN(
 				"card10.cfg",
-				"line %d (%s): syntax error",
-				lineNumber,
-				elide(line)
+				"line %d: syntax error",
+				line_number
 			);
 		}
 		return;
 	}
+	*eq = 0;
+
+	char *key = line;
+	trim(key);
 
-	char *e_key = eq - 1;
-	//skip trailing whitespace in key
-	while (e_key > key && isspace((int)*e_key))
-		--e_key;
-	e_key[1] = '\0';
 	if (*key == '\0') {
-		LOG_WARN("card10.cfg", "line %d: empty key", lineNumber);
+		LOG_WARN("card10.cfg", "line %d: empty key", line_number);
 		return;
 	}
 
 	char *value = eq + 1;
-	//skip leading whitespace
-	while (*value && isspace((int)*value))
-		++value;
-
-	char *e_val = eol - 1;
-	//skip trailing whitespace
-	while (e_val > value && isspace((int)*e_val))
-		--e_val;
+	trim(value);
+
 	if (*value == '\0') {
 		LOG_WARN(
 			"card10.cfg",
 			"line %d: empty value for option '%s'",
-			lineNumber,
+			line_number,
 			key
 		);
 		return;
 	}
 
-	configure(key, value, lineNumber);
-}
+	size_t value_offset = value_start - line_start + line_offset;
 
-bool config_get_boolean(enum EpicConfigOption option)
-{
-	struct config_option *opt = &s_options[option];
-	assert(opt->type == OptionType_Boolean);
-	return opt->value.boolean;
+	add_config_pair(key, value, line_number, value_offset);
 }
 
-long config_get_integer(enum EpicConfigOption option)
-{
-	struct config_option *opt = &s_options[option];
-	assert(opt->type == OptionType_Int);
-	return opt->value.integer;
-}
+typedef struct {
+	int line_number;
+	int file_offset;
+	int line_start;
+	char line[MAX_LINE_LENGTH + 1];
+	int line_length;
+} parser_state;
 
-double config_get_float(enum EpicConfigOption option)
+int parse_character(char c, parser_state *s)
 {
-	struct config_option *opt = &s_options[option];
-	assert(opt->type == OptionType_Float);
-	return opt->value.floating_point;
-}
+	if (c != '\r' && c != '\n') {
+		if (s->line_length == MAX_LINE_LENGTH) {
+			LOG_WARN(
+				"card10.cfg",
+				"line:%d: too long - aborting",
+				s->line_number
+			);
+			return -1;
+		}
+		s->line[s->line_length++] = c;
+	} else {
+		s->line[s->line_length] = 0;
+		//printf("New line: %s (%d %d)\n", s->line, s->line_number, s->line_start);
+		parse_line(s->line, s->line_number, s->line_start);
+		s->line_length = 0;
+		s->line_start  = s->file_offset + 1;
+		if (c == '\n') {
+			s->line_number++;
+		}
+	}
 
-const char *config_get_string(enum EpicConfigOption option)
-{
-	struct config_option *opt = &s_options[option];
-	assert(opt->type == OptionType_String);
-	return opt->value.string;
+	s->file_offset++;
+	return 0;
 }
 
+// parses the entire config file
 void load_config(void)
 {
 	LOG_DEBUG("card10.cfg", "loading...");
@@ -270,79 +245,399 @@ void load_config(void)
 		);
 		return;
 	}
-	char buf[CONFIG_MAX_LINE_LENGTH + 1];
-	int lineNumber = 0;
+
+	char buf[128];
 	int nread;
+	parser_state s;
+	memset(&s, 0, sizeof(s));
+	s.line_number = 1;
 	do {
-		nread = epic_file_read(fd, buf, CONFIG_MAX_LINE_LENGTH);
-		if (nread < CONFIG_MAX_LINE_LENGTH) {
-			//add fake EOL to ensure termination
-			buf[nread++] = '\n';
-		}
-		//zero-terminate buffer
-		buf[nread]   = '\0';
-		char *line   = buf;
-		char *eol    = NULL;
-		int last_eol = 0;
-		while (line) {
-			//line points one character past the las (if any) '\n' hence '- 1'
-			last_eol = line - buf - 1;
-			eol      = strchr(line, '\n');
-			++lineNumber;
-			if (eol) {
-				*eol = '\0';
-				doline(line, eol, lineNumber);
-				line = eol + 1;
-			} else {
-				if (line == buf) {
-					//line did not fit into buf
-					LOG_WARN(
-						"card10.cfg",
-						"line:%d: too long - aborting",
-						lineNumber
-					);
-					return;
-				} else {
-					int seek_back = last_eol - nread;
-					LOG_DEBUG(
-						"card10.cfg",
-						"nread, last_eol, seek_back: %d,%d,%d",
-						nread,
-						last_eol,
-						seek_back
-					);
-					assert(seek_back <= 0);
-					if (seek_back) {
-						int rc = epic_file_seek(
-							fd,
-							seek_back,
-							SEEK_CUR
-						);
-						if (rc < 0) {
-							LOG_ERR("card10.cfg",
-								"seek failed, aborting");
-							return;
-						}
-						char newline;
-						rc = epic_file_read(
-							fd, &newline, 1
-						);
-						if (rc < 0 || newline != '\n') {
-							LOG_ERR("card10.cfg",
-								"seek failed, aborting");
-							LOG_DEBUG(
-								"card10.cfg",
-								"seek failed at read-back of newline: rc: %d read: %d",
-								rc,
-								(int)newline
-							);
-							return;
-						}
-					}
-					break;
-				}
-			}
+		nread = epic_file_read(fd, buf, sizeof(buf));
+		int i;
+		for (i = 0; i < nread; i++) {
+			parse_character(buf[i], &s);
 		}
 	} while (nread == sizeof(buf));
+	parse_character('\n', &s);
+
 	epic_file_close(fd);
 }
+
+// opens the config file, seeks to seek_offset and reads buf_len bytes
+// used for reading strings without storing them in memory
+// since we don't need to optimize for that use case as much
+static size_t read_config_offset(size_t seek_offset, char *buf, size_t buf_len)
+{
+	int fd = epic_file_open("card10.cfg", "r");
+	if (fd < 0) {
+		LOG_DEBUG(
+			"card10.cfg",
+			"opening config failed: %s (%d)",
+			strerror(-fd),
+			fd
+		);
+		return 0;
+	}
+
+	int rc = epic_file_seek(fd, seek_offset, SEEK_SET);
+	if (rc < 0) {
+		LOG_ERR("card10.cfg", "seek2 failed (%d), aborting", rc);
+		return 0;
+	}
+
+	// one byte less to accommodate the 0 termination
+	int nread = epic_file_read(fd, buf, buf_len - 1);
+
+	buf[nread] = '\0';
+
+	epic_file_close(fd);
+
+	return nread;
+}
+
+// returns error if not found or invalid
+int epic_config_get_integer(const char *key, int *value)
+{
+	config_slot *slot = find_config_slot(key);
+	if (slot && slot->value != NOT_INT_MAGIC) {
+		*value = slot->value;
+		return 0;
+	}
+	return -ENOENT;
+}
+
+// returns default_value if not found or invalid
+int config_get_integer_with_default(const char *key, int default_value)
+{
+	int value;
+	int ret = epic_config_get_integer(key, &value);
+	if (ret) {
+		return default_value;
+	} else {
+		return value;
+	}
+}
+
+// returns error if not found
+int epic_config_get_string(const char *key, char *buf, size_t buf_len)
+{
+	config_slot *slot = find_config_slot(key);
+	if (!(slot && slot->value_offset)) {
+		return -ENOENT;
+	}
+
+	size_t nread = read_config_offset(slot->value_offset, buf, buf_len);
+	if (nread == 0) {
+		return -ENOENT;
+	}
+
+	char *end = buf;
+	while (*end && !iscntrl(*end))
+		end++;
+	*end = 0;
+	trim(buf);
+
+	return 0;
+}
+
+// returns dflt if not found, otherwise same pointer as buf
+char *config_get_string_with_default(
+	const char *key, char *buf, size_t buf_len, char *dflt
+) {
+	int ret = epic_config_get_string(key, buf, buf_len);
+	if (ret) {
+		return dflt;
+	} else {
+		return buf;
+	}
+}
+
+// returns error if not found or invalid
+int epic_config_get_boolean(const char *key, bool *value)
+{
+	int int_value;
+	int ret = epic_config_get_integer(key, &int_value);
+
+	if (ret == 0) {
+		*value = !!int_value;
+		return 0;
+	}
+
+	char buf[MAX_LINE_LENGTH];
+	epic_config_get_string(key, buf, MAX_LINE_LENGTH);
+
+	if (!strcasecmp(buf, "true")) {
+		*value = true;
+		return 0;
+	} else if (!strcasecmp(buf, "false")) {
+		*value = false;
+		return 0;
+	}
+
+	return -ERANGE;
+}
+
+// returns default_value if not found or invalid
+bool config_get_boolean_with_default(const char *key, bool default_value)
+{
+	bool value;
+	int ret = epic_config_get_boolean(key, &value);
+	if (ret) {
+		return default_value;
+	} else {
+		return value;
+	}
+}
+
+int epic_config_set_string(const char *key, const char *value_in)
+{
+	char value[MAX_LINE_LENGTH + 1];
+
+	if (strlen(key) > MAX_LINE_LENGTH) {
+		return -EINVAL;
+	}
+
+	/* TODO: Change interface of trim to take the buffer and size directly */
+	if (strlen(value_in) > MAX_LINE_LENGTH) {
+		return -EINVAL;
+	}
+
+	strcpy(value, value_in);
+	trim(value);
+
+	if (snprintf(NULL, 0, "\n%s = %s\n", key, value) > MAX_LINE_LENGTH) {
+		return -EINVAL;
+	}
+
+	/* Check if key is sane. No control characters, spaces, equal signs or pounds allowed */
+	for (size_t i = 0; i < strlen(key); i++) {
+		char c = key[i];
+		if (!isgraph(c) || c == '=' || c == '#') {
+			return -EINVAL;
+		}
+	}
+	/* Check if value is sane. No control characters allowed */
+	for (size_t i = 0; i < strlen(value); i++) {
+		char c = value[i];
+		if (!isprint(c)) {
+			return -EINVAL;
+		}
+	}
+
+	config_slot *slot = find_config_slot(key);
+	bool present      = slot && slot->value_offset;
+	int ret           = 0;
+
+	if (!present) {
+		/* Easy case: We simply add the new option at the
+		 * end of the file. */
+
+		char buf[MAX_LINE_LENGTH];
+		/* Leading new line because I'm lazy */
+		ret = snprintf(buf, sizeof(buf), "\n%s = %s\n", key, value);
+
+		if (ret < 0 || ret >= (int)sizeof(buf)) {
+			return -EINVAL;
+		}
+
+		int fd = epic_file_open("card10.cfg", "a");
+		if (fd < 0) {
+			LOG_DEBUG(
+				"card10.cfg",
+				"open for appending failed: %s (%d)",
+				strerror(-fd),
+				fd
+			);
+			return fd;
+		}
+
+		int write_ret = epic_file_write(fd, buf, strlen(buf));
+		if (write_ret < 0) {
+			LOG_DEBUG(
+				"card10.cfg",
+				"writing failed: %s (%d)",
+				strerror(-write_ret),
+				write_ret
+			);
+		}
+
+		if (write_ret < (int)strlen(buf)) {
+			LOG_DEBUG(
+				"card10.cfg",
+				"writing failed to write all bytes (%d of %d)",
+				write_ret,
+				strlen(buf)
+			);
+		}
+
+		ret = epic_file_close(fd);
+
+		if (ret < 0) {
+			LOG_DEBUG(
+				"card10.cfg",
+				"close failed: %s (%d)",
+				strerror(-ret),
+				ret
+			);
+		}
+		if (write_ret < 0) {
+			ret = write_ret;
+		}
+		if (ret < 0) {
+			goto out;
+		}
+		if (write_ret < (int)strlen(buf)) {
+			LOG_DEBUG(
+				"card10.cfg",
+				"writing failed to write all bytes (%d of %d)",
+				write_ret,
+				strlen(buf)
+			);
+			ret = -EIO;
+			goto out;
+		}
+	} else {
+		/* Complex case: The value is already somewhere in the file.
+		 * We do not want to lose existing formatting or comments.
+		 * Solution: Copy parts of the file, insert new value, copy
+		 * rest, rename.
+		 */
+		char buf[MAX_LINE_LENGTH + 1];
+		int fd1 = -1;
+		int fd2 = -1;
+		ret     = epic_config_get_string(key, buf, sizeof(buf));
+
+		size_t nread = read_config_offset(
+			slot->value_offset, buf, sizeof(buf)
+		);
+		if (nread == 0) {
+			LOG_DEBUG("card10.cfg", "could not read old value", );
+			goto complex_out;
+		}
+
+		char *end = buf;
+		while (*end && (!iscntrl(*end) || isblank(*end)))
+			end++;
+		*end = 0;
+
+		int old_len = strlen(buf);
+
+		fd1 = epic_file_open("card10.cfg", "r");
+		if (fd1 < 0) {
+			LOG_DEBUG(
+				"card10.cfg",
+				"open for read failed: %s (%d)",
+				strerror(-fd1),
+				fd1
+			);
+			ret = fd1;
+			goto complex_out;
+		}
+
+		fd2 = epic_file_open("card10.nfg", "w");
+		if (fd2 < 0) {
+			LOG_DEBUG(
+				"card10.nfg",
+				"open for writing failed: %s (%d)",
+				strerror(-fd2),
+				fd2
+			);
+			ret = fd2;
+			goto complex_out;
+		}
+
+		/* Copy over slot->value_offset bytes */
+		int i = slot->value_offset;
+		while (i > 0) {
+			int n = i > (int)sizeof(buf) ? (int)sizeof(buf) : i;
+			ret   = epic_file_read(fd1, buf, n);
+			if (ret < 0) {
+				LOG_DEBUG(
+					"card10.cfg",
+					"read failed: rc: %d",
+					ret
+				);
+				goto complex_out;
+			}
+
+			int ret2 = epic_file_write(fd2, buf, ret);
+
+			if (ret2 < 0) {
+				ret = ret2;
+				LOG_DEBUG(
+					"card10.nfg",
+					"write failed: rc: %d",
+					ret
+				);
+				goto complex_out;
+			}
+			i -= ret;
+		}
+
+		/* Insert new value into the new file */
+		ret = epic_file_write(fd2, value, strlen(value));
+		if (ret < 0) {
+			LOG_DEBUG("card10.nfg", "write failed: rc: %d", ret);
+			goto complex_out;
+		}
+
+		/* Skip the old value inside the old file */
+		epic_file_seek(fd1, old_len, SEEK_CUR);
+
+		/* Copy the rest of the old file to the new file */
+		while (true) {
+			int ret = epic_file_read(fd1, buf, sizeof(buf));
+
+			if (ret == 0) {
+				break;
+			}
+
+			if (ret < 0) {
+				LOG_DEBUG(
+					"card10.cfg",
+					"read failed: rc: %d",
+					ret
+				);
+				goto complex_out;
+			}
+
+			int ret2 = epic_file_write(fd2, buf, ret);
+
+			if (ret2 < 0) {
+				ret = ret2;
+				LOG_DEBUG(
+					"card10.nfg",
+					"write failed: rc: %d",
+					ret
+				);
+				goto complex_out;
+			}
+
+			if (ret < (int)sizeof(buf)) {
+				break;
+			}
+		}
+
+	complex_out:
+		if (fd1 >= 0) {
+			epic_file_close(fd1);
+		}
+		if (fd2 >= 0) {
+			int ret2 = epic_file_close(fd2);
+			if (ret >= 0) {
+				ret = ret2;
+			}
+		}
+
+		if (ret >= 0) {
+			epic_file_unlink("card10.cfg");
+			epic_file_rename("card10.nfg", "card10.cfg");
+		}
+	}
+
+out:
+	/* Reload config so the new key or the changed value is available */
+	load_config();
+
+	return ret < 0 ? ret : 0;
+}
diff --git a/epicardium/modules/config.def b/epicardium/modules/config.def
deleted file mode 100644
index 455aaedd8d61f821c1d08ee99bb45c3a61d983ba..0000000000000000000000000000000000000000
--- a/epicardium/modules/config.def
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef CARD10_SETTING
-#  define CARD10_SETTING(identifier, spelling, type, default_value)
-#endif
-
-CARD10_SETTING(ExecuteElf, "execute_elf", Boolean, false)
-//CARD10_SETTING(Nick, "nick", String, "an0n")
-//CARD10_SETTING(Timeout, "timeout", Integer, 123)
-//CARD10_SETTING(Dampening, "dampening", Float, 420)
-
-
-#undef CARD10_SETTING
diff --git a/epicardium/modules/config.h b/epicardium/modules/config.h
index b72b08a5205bf9344bc3e3d805423dc826f30ccc..c95d504cfb07f94d829d316eb15d84b20979c0cf 100644
--- a/epicardium/modules/config.h
+++ b/epicardium/modules/config.h
@@ -2,20 +2,16 @@
 #define EPICARDIUM_MODULES_CONFIG_H_INCLUDED
 
 #include <stdbool.h>
-
-enum EpicConfigOption {
-    #define CARD10_SETTING(identifier, spelling, type, default_value) Option ## identifier,
-	#include "modules/config.def"
-    _EpicOptionCount
-};
+#include <stddef.h>
 
 //initialize configuration values and load card10.cfg
 void load_config(void);
 
-bool config_get_boolean(enum EpicConfigOption option);
-long config_get_integer(enum EpicConfigOption option);
-double config_get_float(enum EpicConfigOption option);
-const char* config_get_string(enum EpicConfigOption option);
+// returns default_value if not found or invalid
+bool config_get_boolean_with_default(const char *key, bool default_value);
+int config_get_integer_with_default(const char *key, int default_value);
 
+// returns dflt if not found, otherwise same pointer as buf
+char *config_get_string_with_default(const char *key, char *buf, size_t buf_len, char *dflt);
 
 #endif//EPICARDIUM_MODULES_CONFIG_H_INCLUDED
diff --git a/epicardium/modules/dispatcher.c b/epicardium/modules/dispatcher.c
index 03f8534cc0a1c02dccc61f8c03e486e2ab472ff8..355bc0471730b23d592b3187f0dd5a6a04ec9483 100644
--- a/epicardium/modules/dispatcher.c
+++ b/epicardium/modules/dispatcher.c
@@ -1,21 +1,20 @@
 #include "modules/log.h"
+#include "modules/mutex.h"
 
 #include "api/dispatcher.h"
 
 #include "FreeRTOS.h"
 #include "task.h"
-#include "semphr.h"
 
 #define TIMEOUT pdMS_TO_TICKS(2000)
 
 TaskHandle_t dispatcher_task_id;
 
-static StaticSemaphore_t api_mutex_data;
-SemaphoreHandle_t api_mutex = NULL;
+struct mutex api_mutex = { 0 };
 
 void dispatcher_mutex_init(void)
 {
-	api_mutex = xSemaphoreCreateMutexStatic(&api_mutex_data);
+	mutex_create(&api_mutex);
 }
 
 /*
@@ -27,12 +26,9 @@ void vApiDispatcher(void *pvParameters)
 	LOG_DEBUG("dispatcher", "Ready.");
 	while (1) {
 		if (api_dispatcher_poll()) {
-			if (xSemaphoreTake(api_mutex, TIMEOUT) != pdTRUE) {
-				LOG_ERR("dispatcher", "API mutex blocked");
-				continue;
-			}
+			mutex_lock(&api_mutex);
 			api_dispatcher_exec();
-			xSemaphoreGive(api_mutex);
+			mutex_unlock(&api_mutex);
 		}
 		ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
 	}
diff --git a/epicardium/modules/display.c b/epicardium/modules/display.c
index fe89fc324b41f7f9f944b0de4ce087558ac5a45e..c3a84812fcb3f105a8e1ccf4c710c64854d63269 100644
--- a/epicardium/modules/display.c
+++ b/epicardium/modules/display.c
@@ -22,8 +22,8 @@ static int check_lock()
 }
 
 int epic_disp_print(
-	uint16_t posx,
-	uint16_t posy,
+	int16_t posx,
+	int16_t posy,
 	const char *pString,
 	uint16_t fg,
 	uint16_t bg
@@ -39,8 +39,8 @@ static const sFONT *font_map[] = {
 
 int epic_disp_print_adv(
 	uint8_t font,
-	uint16_t posx,
-	uint16_t posy,
+	int16_t posx,
+	int16_t posy,
 	const char *pString,
 	uint16_t fg,
 	uint16_t bg
@@ -76,7 +76,7 @@ int epic_disp_clear(uint16_t color)
 	}
 }
 
-int epic_disp_pixel(uint16_t x, uint16_t y, uint16_t color)
+int epic_disp_pixel(int16_t x, int16_t y, uint16_t color)
 {
 	int cl = check_lock();
 	if (cl < 0) {
@@ -88,10 +88,10 @@ int epic_disp_pixel(uint16_t x, uint16_t y, uint16_t color)
 }
 
 int epic_disp_line(
-	uint16_t xstart,
-	uint16_t ystart,
-	uint16_t xend,
-	uint16_t yend,
+	int16_t xstart,
+	int16_t ystart,
+	int16_t xend,
+	int16_t yend,
 	uint16_t color,
 	enum disp_linestyle linestyle,
 	uint16_t pixelsize
@@ -115,10 +115,10 @@ int epic_disp_line(
 }
 
 int epic_disp_rect(
-	uint16_t xstart,
-	uint16_t ystart,
-	uint16_t xend,
-	uint16_t yend,
+	int16_t xstart,
+	int16_t ystart,
+	int16_t xend,
+	int16_t yend,
 	uint16_t color,
 	enum disp_fillstyle fillstyle,
 	uint16_t pixelsize
@@ -154,8 +154,8 @@ int epic_disp_rect(
 }
 
 int epic_disp_circ(
-	uint16_t x,
-	uint16_t y,
+	int16_t x,
+	int16_t y,
 	uint16_t rad,
 	uint16_t color,
 	enum disp_fillstyle fillstyle,
diff --git a/epicardium/modules/gpio.c b/epicardium/modules/gpio.c
index a923812f5f49d90604bdce150a29d01821dc9ff6..872aaee7a1d31b9f3c341ea2c0b67e3323b8a4ce 100644
--- a/epicardium/modules/gpio.c
+++ b/epicardium/modules/gpio.c
@@ -48,7 +48,16 @@ int epic_gpio_set_pin_mode(uint8_t pin, uint8_t mode)
 
 	gpio_cfg_t *cfg = &gpio_configs[pin];
 
-	if (mode & EPIC_GPIO_MODE_IN) {
+	if (mode & EPIC_GPIO_MODE_ADC) {
+		if (s_adc_channels[pin] == -1) {
+			LOG_WARN("gpio", "ADC not available on pin %d", pin);
+			return -EINVAL;
+		}
+		cfg->func = GPIO_FUNC_ALT1;
+		if (mode & EPIC_GPIO_MODE_OUT) {
+			return -EINVAL;
+		}
+	} else if (mode & EPIC_GPIO_MODE_IN) {
 		cfg->func = GPIO_FUNC_IN;
 		if (mode & EPIC_GPIO_MODE_OUT) {
 			return -EINVAL;
@@ -58,15 +67,6 @@ int epic_gpio_set_pin_mode(uint8_t pin, uint8_t mode)
 		if (mode & EPIC_GPIO_MODE_IN) {
 			return -EINVAL;
 		}
-	} else if (mode & EPIC_GPIO_MODE_ADC) {
-		if (s_adc_channels[pin] == -1) {
-			LOG_WARN("gpio", "ADC not available on pin %d", pin);
-			return -EINVAL;
-		}
-		cfg->func = GPIO_FUNC_ALT1;
-		if (mode & EPIC_GPIO_MODE_OUT) {
-			return -EINVAL;
-		}
 	} else {
 		return -EINVAL;
 	}
@@ -137,7 +137,7 @@ int epic_gpio_read_pin(uint8_t pin)
 	} else if (cfg->func == GPIO_FUNC_IN) {
 		return GPIO_InGet(cfg) != 0;
 	} else if (cfg->func == GPIO_FUNC_ALT1) {
-		int rc = hwlock_acquire(HWLOCK_ADC, pdMS_TO_TICKS(10));
+		int rc = hwlock_acquire_timeout(HWLOCK_ADC, portMAX_DELAY);
 		if (!rc) {
 			ADC_StartConvert(s_adc_channels[pin], 0, 0);
 			uint16_t value;
diff --git a/epicardium/modules/hardware.c b/epicardium/modules/hardware.c
index aeb77c3a9f423b7ee54f62b8228b70d575b2ad32..358154334f1b7f3a2d508e7348e70999aa67257c 100644
--- a/epicardium/modules/hardware.c
+++ b/epicardium/modules/hardware.c
@@ -95,7 +95,7 @@ int hardware_early_init(void)
 		;
 
 	/* If we don't have a valid time yet, set it to 2019-01-01 */
-	if (RTC_GetSecond() < 1546300800UL) {
+	if (RTC_GetSecond() < 1546300800L) {
 		epic_rtc_set_milliseconds(1546300800UL * 1000);
 	}
 
@@ -194,6 +194,14 @@ int hardware_early_init(void)
 	 */
 	max30001_mutex_init();
 
+	/*
+	 * max86150 mutex init
+	 */
+	max86150_mutex_init();
+
+	/* Allow user space to trigger interrupts.
+	 * Used for BLE, not sure if needed. */
+	SCB->CCR |= SCB_CCR_USERSETMPEND_Msk;
 	return 0;
 }
 
@@ -280,5 +288,7 @@ int hardware_reset(void)
 
 	epic_max30001_disable_sensor();
 
+	epic_max86150_disable_sensor();
+
 	return 0;
 }
diff --git a/epicardium/modules/hw-lock.c b/epicardium/modules/hw-lock.c
index ce88d921748302edd849eea0b923e6c61eab8dec..47929fe06cf80c263168be59de1265aa5c87daec 100644
--- a/epicardium/modules/hw-lock.c
+++ b/epicardium/modules/hw-lock.c
@@ -1,79 +1,78 @@
 #include "modules/log.h"
 #include "modules/modules.h"
+#include "modules/mutex.h"
 
 #include "FreeRTOS.h"
 #include "task.h"
-#include "semphr.h"
 
 #include <errno.h>
 
-static StaticSemaphore_t hwlock_mutex_data[_HWLOCK_MAX];
-static SemaphoreHandle_t hwlock_mutex[_HWLOCK_MAX];
-/* Which task is holding the lock */
-static TaskHandle_t hwlock_tasks[_HWLOCK_MAX];
+static struct mutex hwlock_mutex[_HWLOCK_MAX] = { { 0 } };
 
 void hwlock_init(void)
 {
 	for (int i = 0; i < _HWLOCK_MAX; i++) {
-		hwlock_mutex[i] =
-			xSemaphoreCreateMutexStatic(&hwlock_mutex_data[i]);
+		/*
+		 * TODO: mutex_create() names these all these mutexes
+		 *       "&hwlock_mutex[i]" which is not helpful at all.  We
+		 *       should somehow rename them to the actual hwlock names.
+		 */
+		mutex_create(&hwlock_mutex[i]);
 	}
 }
 
-int hwlock_acquire(enum hwlock_periph p, TickType_t wait)
+void hwlock_acquire(enum hwlock_periph p)
 {
-	if (p >= _HWLOCK_MAX) {
-		return -EINVAL;
+	assert(p < _HWLOCK_MAX);
+	mutex_lock(&hwlock_mutex[p]);
+}
+
+int hwlock_acquire_nonblock(enum hwlock_periph p)
+{
+	assert(p < _HWLOCK_MAX);
+	if (mutex_trylock(&hwlock_mutex[p])) {
+		return 0;
+	} else {
+		return -EBUSY;
 	}
-	TaskHandle_t task = xTaskGetCurrentTaskHandle();
+}
 
-	if (xSemaphoreTake(hwlock_mutex[p], wait) != pdTRUE) {
-		/* Don't print warnings for 0 wait acquires */
-		if (wait == 0) {
-			return -EBUSY;
-		}
+int hwlock_acquire_timeout(enum hwlock_periph p, TickType_t wait)
+{
+	assert(p < _HWLOCK_MAX);
 
+	/*
+	 * Check for code still defining a timeout.  It will be ignored in the
+	 * new implementation but a warning is emitted so someone hopefully
+	 * eventually fixes the offending code ...
+	 *
+	 * At some point, the signature of this function should be changed.
+	 * Alternatively it could be split into two, similar to the mutex API.
+	 */
+	if (wait != 0 && wait != portMAX_DELAY) {
 		LOG_WARN(
 			"hwlock",
-			"Lock %u is busy! Held by \"%s\" and attempted to accquire by \"%s\"",
+			"Attempting to lock %d with a timeout (from %p).",
 			p,
-			pcTaskGetName(hwlock_tasks[p]),
-			pcTaskGetName(task)
-		);
-		LOG_DEBUG(
-			"hwlock",
-			"...attempted to lock from pc %p",
 			__builtin_return_address(0)
 		);
-		return -EBUSY;
 	}
 
-	hwlock_tasks[p] = task;
+	/* Non-blocking lock attempt */
+	if (wait == 0) {
+		if (mutex_trylock(&hwlock_mutex[p]) == true) {
+			return 0;
+		} else {
+			return -EBUSY;
+		}
+	}
 
+	mutex_lock(&hwlock_mutex[p]);
 	return 0;
 }
 
-int hwlock_release(enum hwlock_periph p)
+void hwlock_release(enum hwlock_periph p)
 {
-	int ret = 0;
-
-	if (p >= _HWLOCK_MAX) {
-		return -EINVAL;
-	}
-
-	if (hwlock_tasks[p] != xTaskGetCurrentTaskHandle()) {
-		LOG_ERR("hwlock",
-			"Lock %u is released by task \"%s\" while it was acquired by \"%s\"",
-			p,
-			pcTaskGetName(NULL),
-			pcTaskGetName(hwlock_tasks[p]));
-		ret = -EACCES;
-	}
-
-	if (xSemaphoreGive(hwlock_mutex[p]) != pdTRUE) {
-		LOG_ERR("hwlock", "Lock %u not released correctly.", p);
-		ret = -EINVAL;
-	}
-
-	return ret;
+	assert(p < _HWLOCK_MAX);
+	mutex_unlock(&hwlock_mutex[p]);
 }
diff --git a/epicardium/modules/leds.c b/epicardium/modules/leds.c
index 32b0b0a5e98641ce7dd2c4acddcd5ff6c3475287..6e450a859038dc8d123a537eb405e075620da896 100644
--- a/epicardium/modules/leds.c
+++ b/epicardium/modules/leds.c
@@ -8,19 +8,22 @@
 
 #include <stdbool.h>
 
-//TODO: create smth like vTaskDelay(pdMS_TO_TICKS(//put ms here)) for us, remove blocking delay from /lib/leds.c to avoid process blocking
+/*
+ * TODO: create smth like vTaskDelay(pdMS_TO_TICKS(//put ms here)) for us,
+ *       remove blocking delay from /lib/leds.c to avoid process blocking
+ */
 
 #define NUM_LEDS 15 /* Take from lib/card10/leds.c */
 
-static void do_update()
+static void do_update(void)
 {
-	while (hwlock_acquire(HWLOCK_LED, pdMS_TO_TICKS(1)) < 0) {
-		vTaskDelay(pdMS_TO_TICKS(1));
-	}
+	hwlock_acquire(HWLOCK_LED);
+	hwlock_acquire(HWLOCK_I2C);
 
 	leds_update_power();
 	leds_update();
 
+	hwlock_release(HWLOCK_I2C);
 	hwlock_release(HWLOCK_LED);
 }
 
@@ -97,13 +100,7 @@ void epic_leds_dim_top(uint8_t value)
 {
 	leds_set_dim_top(value);
 	if (personal_state_enabled() == 0) {
-		while (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(1)) < 0) {
-			vTaskDelay(pdMS_TO_TICKS(1));
-		}
-
-		leds_update();
-
-		hwlock_release(HWLOCK_I2C);
+		do_update();
 	}
 }
 
@@ -111,35 +108,22 @@ void epic_leds_dim_bottom(uint8_t value)
 {
 	leds_set_dim_bottom(value);
 	if (personal_state_enabled() == 0) {
-		while (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(1)) < 0) {
-			vTaskDelay(pdMS_TO_TICKS(1));
-		}
-
-		leds_update();
-
-		hwlock_release(HWLOCK_I2C);
+		do_update();
 	}
 }
 
 void epic_leds_set_rocket(int led, uint8_t value)
 {
-	while (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(1)) < 0) {
-		vTaskDelay(pdMS_TO_TICKS(1));
-	}
-
-	value = value > 31 ? 31 : value;
-	pmic_set_led(led, value);
-
+	hwlock_acquire(HWLOCK_I2C);
+	pmic_set_led(led, value > 31 ? 31 : value);
 	hwlock_release(HWLOCK_I2C);
 }
 
 int epic_leds_get_rocket(int led)
 {
 	int ret = 0;
-	while (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(1)) < 0) {
-		vTaskDelay(pdMS_TO_TICKS(1));
-	}
 
+	hwlock_acquire(HWLOCK_I2C);
 	ret = pmic_get_led(led);
 	hwlock_release(HWLOCK_I2C);
 	return ret;
@@ -172,12 +156,8 @@ void epic_leds_blink_rocket(int led, uint8_t value, int millis)
 }
 void epic_set_flashlight(bool power)
 {
-	while (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(1)) < 0) {
-		vTaskDelay(pdMS_TO_TICKS(1));
-	}
-
+	hwlock_acquire(HWLOCK_I2C);
 	leds_flashlight(power);
-
 	hwlock_release(HWLOCK_I2C);
 }
 
@@ -188,12 +168,8 @@ void epic_leds_update(void)
 
 void epic_leds_set_powersave(bool eco)
 {
-	while (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(1)) < 0) {
-		vTaskDelay(pdMS_TO_TICKS(1));
-	}
-
+	hwlock_acquire(HWLOCK_I2C);
 	leds_powersave(eco);
-
 	hwlock_release(HWLOCK_I2C);
 }
 
diff --git a/epicardium/modules/lifecycle.c b/epicardium/modules/lifecycle.c
index 650664d2e97ee15ecbd35199e176ded925a78bfb..2e72880fb892fc38db427c36494b4044d40d1401 100644
--- a/epicardium/modules/lifecycle.c
+++ b/epicardium/modules/lifecycle.c
@@ -2,6 +2,7 @@
 #include "modules/log.h"
 #include "modules/modules.h"
 #include "modules/config.h"
+#include "modules/mutex.h"
 #include "api/dispatcher.h"
 #include "api/interrupt-sender.h"
 #include "l0der/l0der.h"
@@ -10,7 +11,6 @@
 
 #include "FreeRTOS.h"
 #include "task.h"
-#include "semphr.h"
 
 #include <string.h>
 #include <stdbool.h>
@@ -26,8 +26,7 @@
 #define PYINTERPRETER ""
 
 static TaskHandle_t lifecycle_task = NULL;
-static StaticSemaphore_t core1_mutex_data;
-static SemaphoreHandle_t core1_mutex = NULL;
+static struct mutex core1_mutex    = { 0 };
 
 enum payload_type {
 	PL_INVALID       = 0,
@@ -99,10 +98,7 @@ static int do_load(struct load_info *info)
 		LOG_INFO("lifecycle", "Loading \"%s\" ...", info->name);
 	}
 
-	if (xSemaphoreTake(api_mutex, BLOCK_WAIT) != pdTRUE) {
-		LOG_ERR("lifecycle", "API blocked");
-		return -EBUSY;
-	}
+	mutex_lock(&api_mutex);
 
 	if (info->do_reset) {
 		LOG_DEBUG("lifecycle", "Triggering core 1 reset.");
@@ -120,7 +116,7 @@ static int do_load(struct load_info *info)
 	 */
 	res = hardware_reset();
 	if (res < 0) {
-		return res;
+		goto out_free_api;
 	}
 
 	switch (info->type) {
@@ -134,8 +130,8 @@ static int do_load(struct load_info *info)
 			res = l0der_load_path(info->name, &l0dable);
 			if (res != 0) {
 				LOG_ERR("lifecycle", "l0der failed: %d\n", res);
-				xSemaphoreGive(api_mutex);
-				return -ENOEXEC;
+				res = -ENOEXEC;
+				goto out_free_api;
 			}
 			core1_load(l0dable.isr_vector, "");
 		} else {
@@ -149,12 +145,14 @@ static int do_load(struct load_info *info)
 		LOG_ERR("lifecyle",
 			"Attempted to load invalid payload (%s)",
 			info->name);
-		xSemaphoreGive(api_mutex);
-		return -EINVAL;
+		res = -EINVAL;
+		goto out_free_api;
 	}
 
-	xSemaphoreGive(api_mutex);
-	return 0;
+	res = 0;
+out_free_api:
+	mutex_unlock(&api_mutex);
+	return res;
 }
 
 /*
@@ -254,11 +252,7 @@ static void load_menu(bool reset)
 {
 	LOG_DEBUG("lifecycle", "Into the menu");
 
-	if (xSemaphoreTake(core1_mutex, BLOCK_WAIT) != pdTRUE) {
-		LOG_ERR("lifecycle",
-			"Can't load because mutex is blocked (menu).");
-		return;
-	}
+	mutex_lock(&core1_mutex);
 
 	int ret = load_async("menu.py", reset);
 	if (ret < 0) {
@@ -278,7 +272,7 @@ static void load_menu(bool reset)
 		}
 	}
 
-	xSemaphoreGive(core1_mutex);
+	mutex_unlock(&core1_mutex);
 }
 /* Helpers }}} */
 
@@ -298,14 +292,9 @@ void epic_system_reset(void)
  */
 int epic_exec(char *name)
 {
-	if (xSemaphoreTake(core1_mutex, BLOCK_WAIT) != pdTRUE) {
-		LOG_ERR("lifecycle",
-			"Can't load because mutex is blocked (epi exec).");
-		return -EBUSY;
-	}
-
+	mutex_lock(&core1_mutex);
 	int ret = load_sync(name, true);
-	xSemaphoreGive(core1_mutex);
+	mutex_unlock(&core1_mutex);
 	return ret;
 }
 
@@ -318,13 +307,9 @@ int epic_exec(char *name)
  */
 int __epic_exec(char *name)
 {
-	if (xSemaphoreTake(core1_mutex, BLOCK_WAIT) != pdTRUE) {
-		LOG_ERR("lifecycle",
-			"Can't load because mutex is blocked (1 exec).");
-		return -EBUSY;
-	}
+	mutex_lock(&core1_mutex);
 	int ret = load_async(name, false);
-	xSemaphoreGive(core1_mutex);
+	mutex_unlock(&core1_mutex);
 	return ret;
 }
 
@@ -361,20 +346,14 @@ void return_to_menu(void)
 void vLifecycleTask(void *pvParameters)
 {
 	lifecycle_task = xTaskGetCurrentTaskHandle();
-	core1_mutex    = xSemaphoreCreateMutexStatic(&core1_mutex_data);
-
-	if (xSemaphoreTake(core1_mutex, 0) != pdTRUE) {
-		LOG_CRIT(
-			"lifecycle", "Failed to acquire mutex after creation."
-		);
-		vTaskDelay(portMAX_DELAY);
-	}
+	mutex_create(&core1_mutex);
+	mutex_lock(&core1_mutex);
 
 	LOG_DEBUG("lifecycle", "Booting core 1 ...");
 	core1_boot();
 	vTaskDelay(pdMS_TO_TICKS(10));
 
-	xSemaphoreGive(core1_mutex);
+	mutex_unlock(&core1_mutex);
 
 	/* If `main.py` exists, start it.  Otherwise, start `menu.py`. */
 	if (epic_exec("main.py") < 0) {
@@ -383,17 +362,13 @@ void vLifecycleTask(void *pvParameters)
 
 	hardware_init();
 
-	execute_elfs = config_get_boolean(OptionExecuteElf);
+	execute_elfs = config_get_boolean_with_default("execute_elf", false);
 
 	/* When triggered, reset core 1 to menu */
 	while (1) {
 		ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
 
-		if (xSemaphoreTake(core1_mutex, BLOCK_WAIT) != pdTRUE) {
-			LOG_ERR("lifecycle",
-				"Can't load because mutex is blocked (task).");
-			continue;
-		}
+		mutex_lock(&core1_mutex);
 
 		if (write_menu) {
 			write_menu = false;
@@ -409,6 +384,6 @@ void vLifecycleTask(void *pvParameters)
 
 		do_load((struct load_info *)&async_load);
 
-		xSemaphoreGive(core1_mutex);
+		mutex_unlock(&core1_mutex);
 	}
 }
diff --git a/epicardium/modules/light_sensor.c b/epicardium/modules/light_sensor.c
index de20b6e2b21c20e269f8fb19b8dde76b6a13ffdb..a0f997ac1d88e1b1e60822ea1309f06879b3ee65 100644
--- a/epicardium/modules/light_sensor.c
+++ b/epicardium/modules/light_sensor.c
@@ -29,7 +29,7 @@ static int light_sensor_init()
 
 uint16_t epic_light_sensor_read()
 {
-	if (hwlock_acquire(HWLOCK_ADC, pdMS_TO_TICKS(1000)) != 0) {
+	if (hwlock_acquire_timeout(HWLOCK_ADC, portMAX_DELAY) != 0) {
 		return 0;
 	}
 
@@ -42,7 +42,7 @@ uint16_t epic_light_sensor_read()
 
 static void readAdcCallback()
 {
-	if (hwlock_acquire(HWLOCK_ADC, 0) != 0) {
+	if (hwlock_acquire_timeout(HWLOCK_ADC, 0) != 0) {
 		/* Can't do much about this here ... Retry next time */
 		return;
 	}
@@ -57,7 +57,7 @@ int epic_light_sensor_run()
 {
 	int ret = 0;
 
-	if (hwlock_acquire(HWLOCK_ADC, pdMS_TO_TICKS(500)) != 0) {
+	if (hwlock_acquire_timeout(HWLOCK_ADC, portMAX_DELAY) != 0) {
 		return -EBUSY;
 	}
 
diff --git a/epicardium/modules/max30001.c b/epicardium/modules/max30001.c
index e3ad57da09bbcea572a336a7b5bb0a7ce343908a..5c2ff10f8965e7a9e28c30ab51bbc00fd0af0c45 100644
--- a/epicardium/modules/max30001.c
+++ b/epicardium/modules/max30001.c
@@ -9,7 +9,6 @@
 
 #include "FreeRTOS.h"
 #include "task.h"
-#include "semphr.h"
 #include "queue.h"
 
 #include "api/interrupt-sender.h"
@@ -17,9 +16,7 @@
 #include "modules/log.h"
 #include "modules/modules.h"
 #include "modules/stream.h"
-
-/* Ticks to wait when trying to acquire lock */
-#define LOCK_WAIT pdMS_TO_TICKS(MAX30001_MUTEX_WAIT_MS)
+#include "modules/mutex.h"
 
 /* Interrupt Pin */
 static const gpio_cfg_t max30001_interrupt_pin = {
@@ -36,8 +33,7 @@ static const gpio_cfg_t analog_switch = {
 static TaskHandle_t max30001_task_id = NULL;
 
 /* MAX30001 Mutex */
-static StaticSemaphore_t max30001_mutex_data;
-static SemaphoreHandle_t max30001_mutex = NULL;
+static struct mutex max30001_mutex = { 0 };
 
 /* Stream */
 static struct stream_info max30001_stream;
@@ -54,15 +50,8 @@ int epic_max30001_enable_sensor(struct max30001_sensor_config *config)
 {
 	int result = 0;
 
-	result = hwlock_acquire(HWLOCK_SPI_ECG, pdMS_TO_TICKS(100));
-	if (result < 0) {
-		return result;
-	}
-
-	if (xSemaphoreTake(max30001_mutex, LOCK_WAIT) != pdTRUE) {
-		result = -EBUSY;
-		goto out_free_spi;
-	}
+	mutex_lock(&max30001_mutex);
+	hwlock_acquire(HWLOCK_SPI_ECG);
 
 	struct stream_info *stream = &max30001_stream;
 	;
@@ -97,9 +86,8 @@ int epic_max30001_enable_sensor(struct max30001_sensor_config *config)
 	result                 = SD_MAX30001_ECG;
 
 out_free_both:
-	xSemaphoreGive(max30001_mutex);
-out_free_spi:
 	hwlock_release(HWLOCK_SPI_ECG);
+	mutex_unlock(&max30001_mutex);
 	return result;
 }
 
@@ -107,15 +95,8 @@ int epic_max30001_disable_sensor(void)
 {
 	int result = 0;
 
-	result = hwlock_acquire(HWLOCK_SPI_ECG, pdMS_TO_TICKS(100));
-	if (result < 0) {
-		return result;
-	}
-
-	if (xSemaphoreTake(max30001_mutex, LOCK_WAIT) != pdTRUE) {
-		result = -EBUSY;
-		goto out_free_spi;
-	}
+	mutex_lock(&max30001_mutex);
+	hwlock_acquire(HWLOCK_SPI_ECG);
 
 	struct stream_info *stream = &max30001_stream;
 	result                     = stream_deregister(SD_MAX30001_ECG, stream);
@@ -134,9 +115,8 @@ int epic_max30001_disable_sensor(void)
 
 	result = 0;
 out_free_both:
-	xSemaphoreGive(max30001_mutex);
-out_free_spi:
 	hwlock_release(HWLOCK_SPI_ECG);
+	mutex_unlock(&max30001_mutex);
 	return result;
 }
 
@@ -298,23 +278,16 @@ static int max30001_fetch_fifo(void)
 {
 	int result = 0;
 
-	result = hwlock_acquire(HWLOCK_SPI_ECG, pdMS_TO_TICKS(100));
-	if (result < 0) {
-		return result;
-	}
-
-	if (xSemaphoreTake(max30001_mutex, LOCK_WAIT) != pdTRUE) {
-		result = -EBUSY;
-		goto out_free_spi;
-	}
+	mutex_lock(&max30001_mutex);
+	hwlock_acquire(HWLOCK_SPI_ECG);
 
 	uint32_t ecgFIFO, readECGSamples, ETAG[32], status;
 	int16_t ecgSample[32];
-	const int EINT_STATUS_MASK       = 1 << 23;
-	const int FIFO_OVF_MASK          = 0x7;
-	const int FIFO_VALID_SAMPLE_MASK = 0x0;
-	const int FIFO_FAST_SAMPLE_MASK  = 0x1;
-	const int ETAG_BITS_MASK         = 0x7;
+	const uint32_t EINT_STATUS_MASK       = 1 << 23;
+	const uint32_t FIFO_OVF_MASK          = 0x7;
+	const uint32_t FIFO_VALID_SAMPLE_MASK = 0x0;
+	const uint32_t FIFO_FAST_SAMPLE_MASK  = 0x1;
+	const uint32_t ETAG_BITS_MASK         = 0x7;
 
 	status = ecg_read_reg(STATUS); // Read the STATUS register
 
@@ -344,9 +317,8 @@ static int max30001_fetch_fifo(void)
 		max30001_handle_samples(ecgSample, readECGSamples);
 	}
 
-	xSemaphoreGive(max30001_mutex);
-out_free_spi:
 	hwlock_release(HWLOCK_SPI_ECG);
+	mutex_unlock(&max30001_mutex);
 	return result;
 }
 
@@ -369,24 +341,15 @@ static void max300001_interrupt_callback(void *_)
 
 void max30001_mutex_init(void)
 {
-	max30001_mutex = xSemaphoreCreateMutexStatic(&max30001_mutex_data);
+	mutex_create(&max30001_mutex);
 }
 
 void vMAX30001Task(void *pvParameters)
 {
 	max30001_task_id = xTaskGetCurrentTaskHandle();
 
-	int lockret = hwlock_acquire(HWLOCK_SPI_ECG, pdMS_TO_TICKS(100));
-	if (lockret < 0) {
-		LOG_CRIT("max30001", "Failed to acquire SPI lock!");
-		vTaskDelay(portMAX_DELAY);
-	}
-
-	/* Take Mutex during initialization, just in case */
-	if (xSemaphoreTake(max30001_mutex, 0) != pdTRUE) {
-		LOG_CRIT("max30001", "Failed to acquire MAX30001 mutex!");
-		vTaskDelay(portMAX_DELAY);
-	}
+	mutex_lock(&max30001_mutex);
+	hwlock_acquire(HWLOCK_SPI_ECG);
 
 	/* Install interrupt callback */
 	GPIO_Config(&max30001_interrupt_pin);
@@ -407,20 +370,15 @@ void vMAX30001Task(void *pvParameters)
 	GPIO_Config(&analog_switch);
 	GPIO_OutClr(&analog_switch); // Wrist
 
-	xSemaphoreGive(max30001_mutex);
 	hwlock_release(HWLOCK_SPI_ECG);
+	mutex_unlock(&max30001_mutex);
 
 	/* ----------------------------------------- */
 
 	while (1) {
 		if (max30001_sensor_active) {
 			int ret = max30001_fetch_fifo();
-			if (ret == -EBUSY) {
-				LOG_WARN(
-					"max30001", "Could not acquire mutex?"
-				);
-				continue;
-			} else if (ret < 0) {
+			if (ret < 0) {
 				LOG_ERR("max30001", "Unknown error: %d", -ret);
 			}
 		}
diff --git a/epicardium/modules/max86150.c b/epicardium/modules/max86150.c
new file mode 100644
index 0000000000000000000000000000000000000000..428d0caf22f8f78511e1e7a0792602af092605e1
--- /dev/null
+++ b/epicardium/modules/max86150.c
@@ -0,0 +1,236 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdio.h>
+#include "max86150.h"
+#include "epicardium.h"
+#include "modules.h"
+#include "modules/log.h"
+#include "modules/stream.h"
+#include "gpio.h"
+#include "pmic.h"
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "queue.h"
+
+#include "api/interrupt-sender.h"
+#include "modules/modules.h"
+
+static const gpio_cfg_t max86150_interrupt_pin = {
+	PORT_1, PIN_13, GPIO_FUNC_IN, GPIO_PAD_PULL_UP
+};
+
+/* MAX86150 Task ID */
+static TaskHandle_t max86150_task_id = NULL;
+
+/* MAX86150 Mutex */
+static struct mutex max86150_mutex = { 0 };
+
+/* Stream */
+static struct stream_info max86150_stream;
+
+/* Active */
+static bool max86150_sensor_active = false;
+
+int epic_max86150_enable_sensor(
+	struct max86150_sensor_config *config, size_t config_size
+) {
+	int result = 0;
+
+	if (sizeof(struct max86150_sensor_config) != config_size) {
+		return -EINVAL;
+	}
+
+	mutex_lock(&max86150_mutex);
+	hwlock_acquire(HWLOCK_I2C);
+
+	struct stream_info *stream = &max86150_stream;
+	stream->item_size          = sizeof(struct max86150_sensor_data);
+	stream->queue =
+		xQueueCreate(config->sample_buffer_len, stream->item_size);
+	if (stream->queue == NULL) {
+		result = -ENOMEM;
+		goto out_free;
+	}
+
+	uint8_t ppg_sample_rate;
+
+	if (config->ppg_sample_rate == 10) {
+		ppg_sample_rate = MAX86150_PPG_SAMPLERATE_10;
+	} else if (config->ppg_sample_rate == 20) {
+		ppg_sample_rate = MAX86150_PPG_SAMPLERATE_20;
+	} else if (config->ppg_sample_rate == 50) {
+		ppg_sample_rate = MAX86150_PPG_SAMPLERATE_50;
+	} else if (config->ppg_sample_rate == 84) {
+		ppg_sample_rate = MAX86150_PPG_SAMPLERATE_84;
+	} else if (config->ppg_sample_rate == 100) {
+		ppg_sample_rate = MAX86150_PPG_SAMPLERATE_100;
+	} else if (config->ppg_sample_rate == 200) {
+		ppg_sample_rate = MAX86150_PPG_SAMPLERATE_200;
+	} else {
+		result = -EINVAL;
+		goto out_free;
+	}
+
+	result = stream_register(SD_MAX86150, stream);
+	if (result < 0) {
+		vQueueDelete(stream->queue);
+		goto out_free;
+	}
+
+	bool begin_result = max86150_begin();
+	if (!begin_result) {
+		result = -ENODEV;
+		vQueueDelete(stream->queue);
+		goto out_free;
+	}
+
+	max86150_setup(ppg_sample_rate);
+	max86150_get_int1();
+	max86150_get_int2();
+
+	max86150_sensor_active = true;
+	result                 = SD_MAX86150;
+
+out_free:
+	hwlock_release(HWLOCK_I2C);
+	mutex_unlock(&max86150_mutex);
+	return result;
+}
+
+int epic_max86150_disable_sensor(void)
+{
+	int result = 0;
+
+	mutex_lock(&max86150_mutex);
+	hwlock_acquire(HWLOCK_I2C);
+
+	struct stream_info *stream = &max86150_stream;
+	result                     = stream_deregister(SD_MAX86150, stream);
+	if (result < 0) {
+		goto out_free;
+	}
+
+	vQueueDelete(stream->queue);
+	stream->queue = NULL;
+
+	// disable max86150 leds
+	max86150_set_led_red_amplitude(0);
+	max86150_set_led_ir_amplitude(0);
+
+	max86150_sensor_active = false;
+
+	result = 0;
+out_free:
+	hwlock_release(HWLOCK_I2C);
+	mutex_unlock(&max86150_mutex);
+	return result;
+}
+
+static int max86150_handle_sample(struct max86150_sensor_data *data)
+{
+	//LOG_INFO("max86150", "Sample! %ld, %ld, %ld", data->red, data->ir, data->ecg);
+
+	if (max86150_stream.queue == NULL) {
+		return -ESRCH;
+	}
+
+	/* Discard overflow.  See discussion in !316. */
+	if (xQueueSend(max86150_stream.queue, data, 0) != pdTRUE) {
+		LOG_WARN("max86150", "queue full");
+		return -EIO;
+	}
+	return api_interrupt_trigger(EPIC_INT_MAX86150);
+}
+
+static int max86150_fetch_fifo(void)
+{
+	int result = 0;
+
+	mutex_lock(&max86150_mutex);
+	hwlock_acquire(HWLOCK_I2C);
+
+	struct max86150_sensor_data sample;
+
+	// There is a recommendation from Maxim not to read the entire FIFO, but rather a fixed number of samples.
+	// See https://os.mbed.com/users/laserdad/code/MAX86150_ECG_PPG//file/3c728f3d1f10/main.cpp/
+	// So we should not use max86150_check() but max86150_get_sample().
+	while (max86150_get_sample(&sample.red, &sample.ir, &sample.ecg) > 0) {
+		result = max86150_handle_sample(&sample);
+		// stop in case of errors
+		if (result < 0) {
+			break;
+		}
+	}
+	hwlock_release(HWLOCK_I2C);
+	mutex_unlock(&max86150_mutex);
+	return result;
+}
+
+/*
+ * Callback for the MAX86150 interrupt pin.  This callback is called from the
+ * SDK's GPIO interrupt driver, in interrupt context.
+ */
+static void max86150_interrupt_callback(void *_)
+{
+	BaseType_t xHigherPriorityTaskWoken = pdFALSE;
+
+	if (max86150_task_id != NULL) {
+		vTaskNotifyGiveFromISR(
+			max86150_task_id, &xHigherPriorityTaskWoken
+		);
+		portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
+	}
+}
+/* }}} */
+
+void max86150_mutex_init(void)
+{
+	mutex_create(&max86150_mutex);
+}
+
+void vMAX86150Task(void *pvParameters)
+{
+	max86150_task_id = xTaskGetCurrentTaskHandle();
+
+	mutex_lock(&max86150_mutex);
+	hwlock_acquire(HWLOCK_I2C);
+
+	/* Install interrupt callback */
+	GPIO_Config(&max86150_interrupt_pin);
+	GPIO_RegisterCallback(
+		&max86150_interrupt_pin, max86150_interrupt_callback, NULL
+	);
+	GPIO_IntConfig(
+		&max86150_interrupt_pin, GPIO_INT_EDGE, GPIO_INT_FALLING
+	);
+	GPIO_IntEnable(&max86150_interrupt_pin);
+	NVIC_SetPriority(
+		(IRQn_Type)MXC_GPIO_GET_IRQ(max86150_interrupt_pin.port), 2
+	);
+	NVIC_EnableIRQ(
+		(IRQn_Type)MXC_GPIO_GET_IRQ(max86150_interrupt_pin.port)
+	);
+
+	hwlock_release(HWLOCK_I2C);
+	mutex_unlock(&max86150_mutex);
+
+	/* ----------------------------------------- */
+
+	while (1) {
+		if (max86150_sensor_active) {
+			//LOG_INFO("max86150", "Interrupt!");
+			int ret = max86150_fetch_fifo();
+			if (ret < 0) {
+				LOG_ERR("max86150", "Unknown error: %d", -ret);
+			}
+		}
+		/*
+		 * Wait for interrupt.  After two seconds, fetch FIFO anyway
+		 *
+		 * In the future, reads using epic_stream_read() might also
+		 * trigger a FIFO fetch, from outside this task.
+		 */
+		ulTaskNotifyTake(pdTRUE, pdMS_TO_TICKS(2000));
+	}
+}
diff --git a/epicardium/modules/meson.build b/epicardium/modules/meson.build
index dd74e3220c4e60ac1a75174e1becd15971852694..474b32930f9b4970fdde4cf65c6891f5eead8a1f 100644
--- a/epicardium/modules/meson.build
+++ b/epicardium/modules/meson.build
@@ -2,6 +2,7 @@ module_sources = files(
   'bhi.c',
   'bme680.c',
   'buttons.c',
+  'config.c',
   'dispatcher.c',
   'display.c',
   'fileops.c',
@@ -12,7 +13,10 @@ module_sources = files(
   'lifecycle.c',
   'light_sensor.c',
   'log.c',
+  'max86150.c',
   'max30001.c',
+  'mutex.c',
+  'panic.c',
   'personal_state.c',
   'pmic.c',
   'rtc.c',
@@ -20,9 +24,8 @@ module_sources = files(
   'sleep.c',
   'stream.c',
   'trng.c',
+  'usb.c',
   'vibra.c',
   'watchdog.c',
-  'usb.c',
-  'config.c',
   'ws2812.c'
 )
diff --git a/epicardium/modules/modules.h b/epicardium/modules/modules.h
index d5087864ae30ea1e4797abb106ba634b58280d4f..0444b688f33cb879e3cca9f59cb1eb365999eb17 100644
--- a/epicardium/modules/modules.h
+++ b/epicardium/modules/modules.h
@@ -2,16 +2,20 @@
 #define MODULES_H
 
 #include "FreeRTOS.h"
-#include "semphr.h"
 #include "gpio.h"
+#include "modules/mutex.h"
 
 #include <stdint.h>
 #include <stdbool.h>
 
+/* ---------- Panic -------------------------------------------------------- */
+void panic(const char *format, ...)
+	__attribute__((noreturn, format(printf, 1, 2)));
+
 /* ---------- Dispatcher --------------------------------------------------- */
 void vApiDispatcher(void *pvParameters);
 void dispatcher_mutex_init(void);
-extern SemaphoreHandle_t api_mutex;
+extern struct mutex api_mutex;
 extern TaskHandle_t dispatcher_task_id;
 
 /* ---------- Hardware Init & Reset ---------------------------------------- */
@@ -31,6 +35,8 @@ void vSerialTask(void *pvParameters);
 void serial_enqueue_char(char chr);
 void serial_flush(void);
 extern TaskHandle_t serial_task_id;
+/* Turn off the print queue and do prints synchroneous from now on. */
+void serial_return_to_synchronous();
 
 // For the eSetBit xTaskNotify task semaphore trigger
 enum serial_notify{
@@ -91,8 +97,10 @@ enum hwlock_periph {
 	_HWLOCK_MAX,
 };
 
-int hwlock_acquire(enum hwlock_periph p, TickType_t wait);
-int hwlock_release(enum hwlock_periph p);
+int hwlock_acquire_timeout(enum hwlock_periph p, TickType_t wait);
+void hwlock_acquire(enum hwlock_periph p);
+int hwlock_acquire_nonblock(enum hwlock_periph p);
+void hwlock_release(enum hwlock_periph p);
 
 /* ---------- Display ------------------------------------------------------ */
 /* Forces an unlock of the display. Only to be used in Epicardium */
@@ -103,13 +111,17 @@ void disp_forcelock();
 #define BHI160_MUTEX_WAIT_MS          50
 void vBhi160Task(void *pvParameters);
 
+/* ---------- MAX86150 ----------------------------------------------------- */
+#define MAX86150_MUTEX_WAIT_MS		50
+void vMAX86150Task(void *pvParameters);
+void max86150_mutex_init(void);
+
+
 /* ---------- MAX30001 ----------------------------------------------------- */
-#define MAX30001_MUTEX_WAIT_MS          50
 void vMAX30001Task(void *pvParameters);
 void max30001_mutex_init(void);
 
 /* ---------- GPIO --------------------------------------------------------- */
-#define MAX30001_MUTEX_WAIT_MS          50
 extern gpio_cfg_t gpio_configs[];
 
 
diff --git a/epicardium/modules/mutex.c b/epicardium/modules/mutex.c
new file mode 100644
index 0000000000000000000000000000000000000000..9d58eec080977d93f69f275350a5101a15d4a64b
--- /dev/null
+++ b/epicardium/modules/mutex.c
@@ -0,0 +1,55 @@
+#include "modules/mutex.h"
+
+#include <assert.h>
+
+void _mutex_create(struct mutex *m, const char *name)
+{
+	/* Assert that the mutex has not been initialized already */
+	assert(m->name == NULL);
+
+	/*
+	 * The name is just the parameter stringified which is almost always a
+	 * pointer.  If it is, skip over the '&' because it adds no value as
+	 * part of the name.
+	 */
+	if (name[0] == '&') {
+		m->name = &name[1];
+	} else {
+		m->name = name;
+	}
+
+	m->_rtos_mutex = xSemaphoreCreateMutexStatic(&m->_rtos_mutex_data);
+}
+
+void mutex_lock(struct mutex *m)
+{
+	int ret = xSemaphoreTake(m->_rtos_mutex, portMAX_DELAY);
+
+	/* Ensure locking was actually successful */
+	assert(ret == pdTRUE);
+}
+
+bool mutex_trylock(struct mutex *m)
+{
+	int ret = xSemaphoreTake(m->_rtos_mutex, 0);
+	return ret == pdTRUE;
+}
+
+void mutex_unlock(struct mutex *m)
+{
+	/* Ensure that only the owner can unlock a mutex */
+	assert(mutex_get_owner(m) == xTaskGetCurrentTaskHandle());
+
+	int ret = xSemaphoreGive(m->_rtos_mutex);
+
+	/*
+	 * Ensure that unlocking was successful; that is, the mutex must have
+	 * been acquired previously (no multiple unlocks).
+	 */
+	assert(ret == pdTRUE);
+}
+
+TaskHandle_t mutex_get_owner(struct mutex *m)
+{
+	return xSemaphoreGetMutexHolder(m->_rtos_mutex);
+}
diff --git a/epicardium/modules/mutex.h b/epicardium/modules/mutex.h
new file mode 100644
index 0000000000000000000000000000000000000000..1c3055996ac2142bee634d9fd9f4c09b3233d69d
--- /dev/null
+++ b/epicardium/modules/mutex.h
@@ -0,0 +1,82 @@
+#ifndef _MUTEX_H
+#define _MUTEX_H
+
+#ifndef __SPHINX_DOC
+/* Some headers are not recognized by hawkmoth for some odd reason */
+#include <stddef.h>
+#include <stdbool.h>
+
+#include "FreeRTOS.h"
+#include "semphr.h"
+#else
+typedef unsigned int size_t;
+typedef _Bool bool;
+
+typedef void *TaskHandle_t;
+typedef void *SemaphoreHandle_t;
+typedef int StaticSemaphore_t;
+#endif /* __SPHINX_DOC */
+
+
+/**
+ * Mutex data type.
+ */
+struct mutex {
+	/* Name of this mutex, kept for debugging purposes.  */
+	const char *name;
+
+	/* FreeRTOS mutex data structures. */
+	SemaphoreHandle_t _rtos_mutex;
+	StaticSemaphore_t _rtos_mutex_data;
+};
+
+/**
+ * Create a new mutex.
+ *
+ * Call this function as early as possible, in an obvious location so it is easy
+ * to find.  Mutexes should be defined statically so they stay alive for the
+ * entire run-time of the firmware.
+ */
+#define mutex_create(mutex) _mutex_create(mutex, #mutex)
+void _mutex_create(struct mutex *m, const char *name);
+
+/**
+ * Lock a mutex.
+ *
+ * If the mutex is held by another task, :c:func:`mutex_lock` will block the
+ * current task until the mutex is unlocked.
+ *
+ * .. warning::
+ *
+ *    This function is **not** safe to use in a timer!
+ */
+void mutex_lock(struct mutex *m);
+
+/**
+ * Try locking a mutex.
+ *
+ * If the mutex is currently locked by another task, :c:func:`mutex_trylock`
+ * will return ``false`` immediately.  If the attmept to lock was successful, it
+ * will return ``true``.
+ *
+ * This funciton is safe for use in timers.
+ */
+bool mutex_trylock(struct mutex *m);
+
+/**
+ * Unlock a mutex.
+ *
+ * You **must** call this function from the same task which originally locked
+ * the mutex.
+ */
+void mutex_unlock(struct mutex *m);
+
+/**
+ * Get the current owner of the mutex.
+ *
+ * Returns the task-handle of the task currently holding the mutex.  If the
+ * mutex is unlocked, ``NULL`` is returned.
+ */
+TaskHandle_t mutex_get_owner(struct mutex *m);
+
+#endif /* _MUTEX_H */
diff --git a/epicardium/modules/panic.c b/epicardium/modules/panic.c
new file mode 100644
index 0000000000000000000000000000000000000000..ed4575a5611a164145c762efdb86a46a6e39ee4f
--- /dev/null
+++ b/epicardium/modules/panic.c
@@ -0,0 +1,154 @@
+/*
+ * Panic
+ * =====
+ *
+ * Under some conditions the firmware should crash and reboot automatically.
+ * This module provides the necessary facilities to do so.
+ *
+ * Note that a panic should indicate **only** logic-errors in the firmware or
+ * unrecoverable hardware conditions.
+ */
+
+#include "modules/log.h"
+#include "modules/modules.h"
+
+#include "card10.h"
+#include "card10-version.h"
+
+#include "gfx.h"
+#include "display.h"
+#include "LCD_Driver.h"
+
+#include <stdio.h>
+#include <stdarg.h>
+
+static void faultsplash(const char *msg);
+
+void __attribute__((noreturn)) panic(const char *format, ...)
+{
+	/* Turn off interrupts.  We won't get back from here anyway. */
+	__asm volatile("cpsid	i" ::: "memory");
+
+	/*
+	 * Turn off asynchronous printing because that won't ever work from
+	 * here ...
+	 */
+	serial_return_to_synchronous();
+
+	printf("\x1b[31;1m           --- SYSTEM PANIC ---\n"
+	       "\x1b[0;31m         ---                  ---\n"
+	       "       ---                      ---\n"
+	       "\x1b[0m A fatal error occured:\n     \x1b[1m");
+
+	va_list ap;
+	va_start(ap, format);
+	vprintf(format, ap);
+	va_end(ap);
+
+	printf("\n"
+	       "\x1b[0m\n"
+	       " Firmware Version:\n"
+	       "\x1b[35m     %s\n",
+	       CARD10_VERSION);
+
+	printf("\x1b[0m\n"
+	       " Stack Trace:\n"
+	       "\x1b[36m     %p\n",
+	       __builtin_return_address(0));
+
+	printf("\x1b[33m\n"
+	       " Please report this error to the card10 firmware team!\n"
+	       "\x1b[0m -> https://git.card10.badge.events.ccc.de/card10/firmware/issues/new <-\n"
+	       "\x1b[31m           --- ====== ===== ---\x1b[0m\n");
+
+	char faultsplash_buffer[14 * 4];
+	va_start(ap, format);
+	vsnprintf(faultsplash_buffer, sizeof(faultsplash_buffer), format, ap);
+	va_end(ap);
+	faultsplash(faultsplash_buffer);
+
+	for (int i = 0; i < 96000000; i++) {
+		__asm volatile("nop");
+	}
+
+	card10_reset();
+}
+
+void __attribute__((noreturn)) __assert_func(
+	const char *file, int line, const char *func, const char *failedexpr
+) {
+	panic("Assertion failure:\n"
+	      "       \"%s\"\n"
+	      "       failed in \"%s:%d\",\n"
+	      "       function: %s()",
+	      failedexpr,
+	      file,
+	      line,
+	      func);
+}
+
+static const unsigned char faultsplash_rle[] = {
+	0x7f, 0x50, 0x83, 0x0f, 0x82, 0x7f, 0x0d, 0x83, 0x0f, 0x82, 0x7f, 0x1d,
+	0x82, 0x7f, 0x1f, 0x82, 0x7f, 0x1f, 0x82, 0x7f, 0x12, 0x82, 0x09, 0x82,
+	0x7f, 0x14, 0x82, 0x09, 0x82, 0x7f, 0x09, 0x82, 0x11, 0x83, 0x7f, 0x0b,
+	0x82, 0x11, 0x83, 0x7f, 0x0f, 0x82, 0x07, 0x82, 0x7f, 0x16, 0x82, 0x07,
+	0x82, 0x7f, 0x16, 0x82, 0x07, 0x82, 0x7f, 0x1a, 0x83, 0x7f, 0x1e, 0x83,
+	0x7f, 0x0a, 0x8b, 0x17, 0x82, 0x02, 0x82, 0x02, 0x83, 0x73, 0x8c, 0x16,
+	0x82, 0x02, 0x82, 0x02, 0x83, 0x72, 0x81, 0x0c, 0x84, 0x07, 0x85, 0x7f,
+	0x03, 0x82, 0x0c, 0x84, 0x07, 0x86, 0x7f, 0x02, 0x82, 0x0c, 0x84, 0x07,
+	0x86, 0x7f, 0x82, 0x12, 0x87, 0x7f, 0x06, 0x82, 0x12, 0x87, 0x7f, 0x06,
+	0x82, 0x24, 0x82, 0x78, 0x82, 0x24, 0x82, 0x78, 0x82, 0x24, 0x82, 0x78,
+	0x82, 0x16, 0x83, 0x04, 0x82, 0x07, 0x82, 0x76, 0x82, 0x16, 0x83, 0x04,
+	0x82, 0x07, 0x82, 0x70, 0x8f, 0x0d, 0x82, 0x12, 0x82, 0x6e, 0x8f, 0x0d,
+	0x82, 0x12, 0x82, 0x6e, 0x8f, 0x0b, 0x82, 0x09, 0x82, 0x0b, 0x82, 0x6c,
+	0x8f, 0x0b, 0x82, 0x09, 0x82, 0x0b, 0x82, 0x6c, 0x8f, 0x0b, 0x82, 0x09,
+	0x82, 0x0b, 0x82, 0x6c, 0x8f, 0x7f, 0x12, 0x8f, 0x7f, 0x0d, 0x98, 0x12,
+	0x82, 0x74, 0x98, 0x12, 0x82, 0x70, 0xa1, 0x7f, 0xa1, 0x7f, 0xa1, 0x7f,
+	0xa1, 0x7f, 0xa1, 0x7d, 0xa5, 0x7b, 0xa5, 0x7b, 0xa5, 0x7b, 0xa5, 0x7a,
+	0xa6, 0x78, 0x89, 0x02, 0x9f, 0x76, 0x89, 0x02, 0x9f, 0x76, 0xaa, 0x76,
+	0xaa, 0x76, 0x87, 0x02, 0xa1, 0x76, 0x87, 0x02, 0xa1, 0x76, 0x87, 0x02,
+	0xa1, 0x76, 0x87, 0x02, 0xa1, 0x76, 0x87, 0x02, 0xa1, 0x76, 0x87, 0x02,
+	0xa1, 0x76, 0x87, 0x02, 0xa1, 0x76, 0xaa, 0x76, 0xaa, 0x76, 0xaa, 0x76,
+	0x89, 0x02, 0x9f, 0x76, 0x89, 0x02, 0x9f, 0x79, 0xa5, 0x7b, 0xa5, 0x7b,
+	0xa5, 0x7b, 0x8b, 0x02, 0x98, 0x7b, 0x8b, 0x02, 0x98, 0x7d, 0xa1, 0x7f,
+	0xa1, 0x7f, 0xa1, 0x7f, 0xa1, 0x7f, 0xa1, 0x7f, 0x04, 0x98, 0x7f, 0x09,
+	0x98, 0x7f, 0x0e, 0x8f, 0x7f, 0x12, 0x8f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+	0x7f, 0x06
+};
+
+static void faultsplash(const char *msg)
+{
+	LCD_SetBacklight(100);
+
+	gfx_copy_region(
+		&display_screen,
+		0,
+		0,
+		160,
+		80,
+		GFX_RLE_MONO,
+		sizeof(faultsplash_rle),
+		faultsplash_rle
+	);
+
+	gfx_puts(&Font20, &display_screen, 80, 5, "Panic", 0xf800, 0xf800);
+
+	size_t len   = strlen(msg);
+	char buf[15] = { 0 };
+	int offset   = 34;
+	for (size_t i = 0; i < len; i += 14) {
+		strncpy(buf, &msg[i], 14);
+		gfx_puts(
+			&Font12,
+			&display_screen,
+			52,
+			offset,
+			buf,
+			0xc618,
+			0xc618
+		);
+		offset += 12;
+	}
+
+	gfx_update(&display_screen);
+}
diff --git a/epicardium/modules/personal_state.c b/epicardium/modules/personal_state.c
index cd6c52c7471af09a37560ef4b94644fc0549179c..285cb872dd37315bf1bb5fd227e6cab3bd968f74 100644
--- a/epicardium/modules/personal_state.c
+++ b/epicardium/modules/personal_state.c
@@ -18,7 +18,7 @@ int personal_state_enabled()
 
 int epic_personal_state_set(uint8_t state, bool persistent)
 {
-	if (state < STATE_NONE || state > STATE_CAMP)
+	if (state > STATE_CAMP)
 		return -EINVAL;
 
 	led_animation_state = 0;
@@ -31,15 +31,8 @@ int epic_personal_state_set(uint8_t state, bool persistent)
 	personal_state_persistent = persistent;
 
 	if (was_enabled && !_personal_state_enabled) {
-		while (hwlock_acquire(HWLOCK_LED, pdMS_TO_TICKS(1)) < 0) {
-			vTaskDelay(pdMS_TO_TICKS(1));
-		}
-
 		leds_prep(PERSONAL_STATE_LED, 0, 0, 0);
-		leds_update_power();
-		leds_update();
-
-		hwlock_release(HWLOCK_LED);
+		epic_leds_update();
 	}
 
 	return 0;
@@ -60,11 +53,6 @@ void vLedTask(void *pvParameters)
 	const int led_animation_rate = 1000 / 25; /* 25Hz -> 40ms*/
 	while (1) {
 		if (_personal_state_enabled) {
-			while (hwlock_acquire(HWLOCK_LED, pdMS_TO_TICKS(1)) <
-			       0) {
-				vTaskDelay(pdMS_TO_TICKS(1));
-			}
-
 			led_animation_ticks++;
 			if (personal_state == STATE_NO_CONTACT) {
 				leds_prep(PERSONAL_STATE_LED, 255, 0, 0);
@@ -130,10 +118,8 @@ void vLedTask(void *pvParameters)
 						(float)(1000 /
 							led_animation_rate))));
 			}
-			leds_update_power();
-			leds_update();
 
-			hwlock_release(HWLOCK_LED);
+			epic_leds_update();
 		}
 
 		vTaskDelay(led_animation_rate / portTICK_PERIOD_MS);
diff --git a/epicardium/modules/pmic.c b/epicardium/modules/pmic.c
index 921923c9bdcde9c90ea0b2fd569c2ad5dd1e4fca..f9deaff7c4d4ad142b362d90dfe1f1be2bbc319f 100644
--- a/epicardium/modules/pmic.c
+++ b/epicardium/modules/pmic.c
@@ -18,7 +18,7 @@
 #include <stdio.h>
 #include <string.h>
 
-#define LOCK_WAIT pdMS_TO_TICKS(1000)
+#define LOCK_WAIT portMAX_DELAY
 
 /* Task ID for the pmic handler */
 static TaskHandle_t pmic_task_id = NULL;
@@ -53,12 +53,12 @@ int pmic_read_amux(enum pmic_amux_signal sig, float *result)
 		return -EINVAL;
 	}
 
-	int adc_ret = hwlock_acquire(HWLOCK_ADC, LOCK_WAIT);
+	int adc_ret = hwlock_acquire_timeout(HWLOCK_ADC, LOCK_WAIT);
 	if (adc_ret < 0) {
 		ret = adc_ret;
 		goto done;
 	}
-	i2c_ret = hwlock_acquire(HWLOCK_I2C, LOCK_WAIT);
+	i2c_ret = hwlock_acquire_timeout(HWLOCK_I2C, LOCK_WAIT);
 	if (i2c_ret < 0) {
 		ret = i2c_ret;
 		goto done;
@@ -75,7 +75,7 @@ int pmic_read_amux(enum pmic_amux_signal sig, float *result)
 	hwlock_release(HWLOCK_I2C);
 
 	vTaskDelay(pdMS_TO_TICKS(5));
-	i2c_ret = hwlock_acquire(HWLOCK_I2C, LOCK_WAIT);
+	i2c_ret = hwlock_acquire_timeout(HWLOCK_I2C, LOCK_WAIT);
 	if (i2c_ret < 0) {
 		ret = i2c_ret;
 		goto done;
@@ -138,7 +138,7 @@ done:
  */
 static uint8_t pmic_poll_interrupts(void)
 {
-	while (hwlock_acquire(HWLOCK_I2C, LOCK_WAIT) < 0) {
+	while (hwlock_acquire_timeout(HWLOCK_I2C, LOCK_WAIT) < 0) {
 		LOG_WARN("pmic", "Failed to acquire I2C. Retrying ...");
 		vTaskDelay(pdMS_TO_TICKS(100));
 	}
@@ -162,6 +162,9 @@ __attribute__((noreturn)) static void pmic_die(float u_batt)
 	/* Grab the screen */
 	disp_forcelock();
 
+	/* Turn it on in case it was off */
+	epic_disp_backlight(100);
+
 	/* Draw an error screen */
 	epic_disp_clear(0x0000);
 
@@ -184,8 +187,6 @@ __attribute__((noreturn)) static void pmic_die(float u_batt)
 	/* TODO: Wake-up when USB is attached again */
 	sleep_deepsleep();
 	card10_reset();
-	while (1)
-		;
 }
 
 /*
@@ -338,6 +339,10 @@ void vPmicTask(void *pvParameters)
 
 				if (duration > 1000) {
 					disp_forcelock();
+
+					/* Turn it on in case it was off */
+					epic_disp_backlight(100);
+
 					epic_disp_clear(0x0000);
 
 					char buf[20];
@@ -368,6 +373,7 @@ void vPmicTask(void *pvParameters)
 				if (duration >= pdMS_TO_TICKS(1000)) {
 					if (epic_buttons_read(
 						    BUTTON_RIGHT_TOP)) {
+						serial_return_to_synchronous();
 						LOG_WARN(
 							"pmic",
 							"Resetting ..."
@@ -386,6 +392,7 @@ void vPmicTask(void *pvParameters)
 					}
 
 					if (duration > pdMS_TO_TICKS(1000)) {
+						serial_return_to_synchronous();
 						LOG_WARN("pmic", "Poweroff");
 						sleep_deepsleep();
 						card10_reset();
diff --git a/epicardium/modules/serial.c b/epicardium/modules/serial.c
index 396d628dba562d8017600d23ec57df7ffaa64ea4..25dd91846c9ea60a2aa26faa67cfce357ada7e9c 100644
--- a/epicardium/modules/serial.c
+++ b/epicardium/modules/serial.c
@@ -46,10 +46,15 @@ void serial_init()
 	);
 }
 
+void serial_return_to_synchronous()
+{
+	write_stream_buffer = NULL;
+}
+
 /*
  * API-call to write a string.  Output goes to both CDCACM and UART
  */
-void epic_uart_write_str(const char *str, intptr_t length)
+void epic_uart_write_str(const char *str, size_t length)
 {
 	if (length == 0) {
 		return;
@@ -156,7 +161,7 @@ static void serial_flush_from_isr(void)
 
 	taskEXIT_CRITICAL_FROM_ISR(basepri);
 
-	portYIELD_FROM_ISR(&resched);
+	portYIELD_FROM_ISR(resched);
 }
 
 static void serial_flush_from_thread(void)
diff --git a/epicardium/modules/sleep.c b/epicardium/modules/sleep.c
index a87bcb0ce47cc601c96b67c247a32b933cb09393..c7c060e14a2094d68945710a97c3b2a4983a7c31 100644
--- a/epicardium/modules/sleep.c
+++ b/epicardium/modules/sleep.c
@@ -142,8 +142,7 @@ static void gpio_low_power(void)
 
 	const unsigned int num_pins =
 		(sizeof(pins_low_power) / sizeof(gpio_cfg_t));
-	int i;
-	for (i = 0; i < num_pins; i++) {
+	for (size_t i = 0; i < num_pins; i++) {
 		GPIO_OutClr(&pins_low_power[i]);
 		GPIO_Config(&pins_low_power[i]);
 	}
@@ -177,10 +176,13 @@ void sleep_deepsleep(void)
 	/* This will fail if there is no
      * harmonic board attached */
 	max86150_begin();
-	max86150_getINT1();
-	max86150_getINT2();
-	max86150_shutDown();
+	max86150_get_int1();
+	max86150_get_int2();
+	max86150_shut_down();
 #endif
+	epic_bhi160_disable_all_sensors();
+	epic_bme680_deinit();
+	epic_max30001_disable_sensor();
 	MAX77650_setEN_SBB2(0b100);
 	MAX77650_setSBIA_LPM(true);
 	core1_stop();
diff --git a/epicardium/modules/stream.c b/epicardium/modules/stream.c
index 7453da118ea364db3f510538a617d34762a30dbd..07f55f3ac3d970ac10bb219328c42c0062fb0719 100644
--- a/epicardium/modules/stream.c
+++ b/epicardium/modules/stream.c
@@ -1,80 +1,71 @@
 #include <string.h>
 
 #include "FreeRTOS.h"
-#include "semphr.h"
+#include "queue.h"
 
 #include "epicardium.h"
 #include "modules/log.h"
 #include "modules/stream.h"
+#include "modules/mutex.h"
 
 /* Internal buffer of registered streams */
 static struct stream_info *stream_table[SD_MAX];
 
 /* Lock for modifying the stream info table */
-static StaticSemaphore_t stream_table_lock_data;
-static SemaphoreHandle_t stream_table_lock;
+static struct mutex stream_table_lock;
 
 int stream_init()
 {
 	memset(stream_table, 0x00, sizeof(stream_table));
-	stream_table_lock =
-		xSemaphoreCreateMutexStatic(&stream_table_lock_data);
+	mutex_create(&stream_table_lock);
 	return 0;
 }
 
 int stream_register(int sd, struct stream_info *stream)
 {
 	int ret = 0;
-	if (xSemaphoreTake(stream_table_lock, STREAM_MUTEX_WAIT) != pdTRUE) {
-		LOG_WARN("stream", "Lock contention error");
-		ret = -EBUSY;
-		goto out;
-	}
+
+	mutex_lock(&stream_table_lock);
 
 	if (sd < 0 || sd >= SD_MAX) {
 		ret = -EINVAL;
-		goto out_release;
+		goto out;
 	}
 
 	if (stream_table[sd] != NULL) {
 		/* Stream already registered */
 		ret = -EACCES;
-		goto out_release;
+		goto out;
 	}
 
 	stream_table[sd] = stream;
 
-out_release:
-	xSemaphoreGive(stream_table_lock);
 out:
+	mutex_unlock(&stream_table_lock);
 	return ret;
 }
 
 int stream_deregister(int sd, struct stream_info *stream)
 {
 	int ret = 0;
-	if (xSemaphoreTake(stream_table_lock, STREAM_MUTEX_WAIT) != pdTRUE) {
-		LOG_WARN("stream", "Lock contention error");
-		ret = -EBUSY;
-		goto out;
-	}
+
+	mutex_lock(&stream_table_lock);
 
 	if (sd < 0 || sd >= SD_MAX) {
 		ret = -EINVAL;
-		goto out_release;
+		goto out;
 	}
 
 	if (stream_table[sd] != stream) {
 		/* Stream registered by someone else */
 		ret = -EACCES;
-		goto out_release;
+		goto out;
 	}
 
 	stream_table[sd] = NULL;
 
-out_release:
-	xSemaphoreGive(stream_table_lock);
 out:
+	mutex_unlock(&stream_table_lock);
 	return ret;
 }
 
@@ -86,35 +77,31 @@ int epic_stream_read(int sd, void *buf, size_t count)
 	 * simulaneously.  I don't know what the most efficient implementation
 	 * of this would look like.
 	 */
-	if (xSemaphoreTake(stream_table_lock, STREAM_MUTEX_WAIT) != pdTRUE) {
-		LOG_WARN("stream", "Lock contention error");
-		ret = -EBUSY;
-		goto out;
-	}
+	mutex_lock(&stream_table_lock);
 
 	if (sd < 0 || sd >= SD_MAX) {
 		ret = -EBADF;
-		goto out_release;
+		goto out;
 	}
 
 	struct stream_info *stream = stream_table[sd];
 	if (stream == NULL) {
 		ret = -ENODEV;
-		goto out_release;
+		goto out;
 	}
 
 	/* Poll the stream, if a poll_stream function exists */
 	if (stream->poll_stream != NULL) {
-		int ret = stream->poll_stream();
+		ret = stream->poll_stream();
 		if (ret < 0) {
-			goto out_release;
+			goto out;
 		}
 	}
 
 	/* Check buffer size is a multiple of the data packet size */
 	if (count % stream->item_size != 0) {
 		ret = -EINVAL;
-		goto out_release;
+		goto out;
 	}
 
 	size_t i;
@@ -126,8 +113,7 @@ int epic_stream_read(int sd, void *buf, size_t count)
 
 	ret = i / stream->item_size;
 
-out_release:
-	xSemaphoreGive(stream_table_lock);
 out:
+	mutex_unlock(&stream_table_lock);
 	return ret;
 }
diff --git a/epicardium/modules/stream.h b/epicardium/modules/stream.h
index 1327fd7a0352d5f7189b0b5c5cdcb6d325bb31f9..a953537aea4d1bb6a3aed755d0ec236098366781 100644
--- a/epicardium/modules/stream.h
+++ b/epicardium/modules/stream.h
@@ -4,14 +4,15 @@
 #include <stdint.h>
 
 #ifndef __SPHINX_DOC
-/* stddef.h is not recognized by hawkmoth for some odd reason */
+/* Some headers are not recognized by hawkmoth for some odd reason */
 #include <stddef.h>
-#else
-typedef unsigned int size_t;
-#endif /* __SPHINX_DOC */
 
 #include "FreeRTOS.h"
 #include "queue.h"
+#else
+typedef unsigned int size_t;
+typedef void *QueueHandle_t;
+#endif /* __SPHINX_DOC */
 
 /* Time to wait for the descriptor table lock to become available */
 #define STREAM_MUTEX_WAIT pdMS_TO_TICKS(100)
@@ -25,12 +26,17 @@ typedef unsigned int size_t;
  *    Please keep IDs in sequential order.
  */
 enum stream_descriptor {
-	/** BHI160 */
+	/** BHI160 Accelerometer */
 	SD_BHI160_ACCELEROMETER,
+	/** BHI160 Magnetometer */
 	SD_BHI160_MAGNETOMETER,
+	/** BHI160 Orientation Sensor */
 	SD_BHI160_ORIENTATION,
+	/** BHI160 Gyroscope */
 	SD_BHI160_GYROSCOPE,
+	/** MAX30001 ECG */
 	SD_MAX30001_ECG,
+	SD_MAX86150,
 	/** Highest descriptor must always be ``SD_MAX``. */
 	SD_MAX,
 };
diff --git a/epicardium/modules/usb.c b/epicardium/modules/usb.c
index 572b2b5fcffa8fd2684c28b60c4d9f2937fdd3f9..5129042559d6af9079a0464dc419b6021a3678e3 100644
--- a/epicardium/modules/usb.c
+++ b/epicardium/modules/usb.c
@@ -12,6 +12,7 @@
 #include "epicardium.h"
 
 #include "modules/filesystem.h"
+#include "modules/config.h"
 
 #include "usb/cdcacm.h"
 #include "usb/mass_storage.h"
@@ -139,6 +140,7 @@ int epic_usb_shutdown(void)
 	esb_deinit();
 	if (s_fsDetached) {
 		fatfs_attach();
+		load_config();
 	}
 	return 0;
 }
@@ -155,6 +157,7 @@ int epic_usb_cdcacm(void)
 	esb_deinit();
 	if (s_fsDetached) {
 		fatfs_attach();
+		load_config();
 	}
 	return esb_init(&s_cfg_cdcacm);
 }
diff --git a/epicardium/modules/ws2812.c b/epicardium/modules/ws2812.c
index 9221b6a223d55b03798159538dae412961c3d59e..5fb48d538c8be3c4f88fa01994ac6da1f0a0d651 100644
--- a/epicardium/modules/ws2812.c
+++ b/epicardium/modules/ws2812.c
@@ -63,14 +63,22 @@ void epic_ws2812_write(uint8_t pin, uint8_t *pixels, uint32_t n_bytes)
 
 	taskENTER_CRITICAL();
 
-	epic_gpio_set_pin_mode(pin, EPIC_GPIO_MODE_OUT);
+	/*
+	 * If the pin was not previously configured as an output, the
+	 * `epic_gpio_set_pin_mode()` call will pull it down which the first
+	 * neopixel interprets as the color `0x008000`.  To fix this, wait a bit
+	 * after mode-setting and then write the new values.
+	 */
+	if ((epic_gpio_get_pin_mode(pin) & EPIC_GPIO_MODE_OUT) == 0) {
+		epic_gpio_set_pin_mode(pin, EPIC_GPIO_MODE_OUT);
+	}
+
+	GPIO_OutClr(pin_cfg);
+	epic_ws2812_delay_ticks(EPIC_WS2812_RESET_TCKS);
 
 	do {
 		epic_ws2812_transmit_byte(pin_cfg, *pixels);
 	} while (++pixels != pixels_end);
 
-	GPIO_OutClr(pin_cfg);
-	epic_ws2812_delay_ticks(EPIC_WS2812_RESET_TCKS);
-
 	taskEXIT_CRITICAL();
 }
diff --git a/epicardium/support.c b/epicardium/support.c
index e6925203767dc84ddc44e7c56c9e932f8464f4a1..ac58cf03170eb09b1dc96b0a66b036a155bdc73f 100644
--- a/epicardium/support.c
+++ b/epicardium/support.c
@@ -117,5 +117,5 @@ void vApplicationGetTimerTaskMemory(
 
 void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName)
 {
-	LOG_CRIT("rtos", "Task \"%s\" overflowed stack!", pcTaskName);
+	panic("Task \"%s\" overflowed stack!", pcTaskName);
 }
diff --git a/epicardium/version-splash.h b/epicardium/version-splash.h
index 81d232a125efd8c55816849b604079aebc3e6907..3166bb1835f3368976757fcfe6c06e065fe65ed6 100644
--- a/epicardium/version-splash.h
+++ b/epicardium/version-splash.h
@@ -1,12802 +1,3206 @@
-const unsigned char version_splash[] = {
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x72,
-0x00, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x52,
-0x20, 0xfe,
-0xa0, 0xed,
-0x60, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x39,
-0x00, 0xf6,
-0x20, 0xfe,
-0x20, 0xfe,
-0xa0, 0xc4,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x28,
-0xc0, 0xed,
-0x60, 0xb4,
-0x20, 0xfe,
-0x00, 0xd5,
-0xe0, 0xf5,
-0x00, 0xa4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x10,
-0x40, 0xdd,
-0xe0, 0xcc,
-0x40, 0x08,
-0x20, 0xfe,
-0x60, 0xb4,
-0xc0, 0x49,
-0x00, 0xfe,
-0x40, 0x83,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x08,
-0xc0, 0xc4,
-0x80, 0xe5,
-0xa0, 0x18,
-0x00, 0x00,
-0x20, 0xfe,
-0x60, 0xb4,
-0x00, 0x00,
-0x60, 0x62,
-0x20, 0xfe,
-0xa0, 0x6a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0xb4,
-0xc0, 0xf5,
-0x00, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x60, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x83,
-0x20, 0xfe,
-0xe0, 0x51,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x93,
-0x00, 0xfe,
-0xa0, 0x41,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x60, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xa3,
-0xe0, 0xf5,
-0x40, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x7a,
-0x20, 0xfe,
-0x20, 0x5a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x60, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x80, 0xbc,
-0xa0, 0xed,
-0xe0, 0x20,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x5a,
-0x20, 0xfe,
-0xc0, 0x72,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x80, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x10,
-0x20, 0xd5,
-0x40, 0xdd,
-0x60, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x41,
-0x00, 0xfe,
-0x80, 0x93,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x18,
-0xe0, 0xa3,
-0xe0, 0xf5,
-0x20, 0xfe,
-0x20, 0xfe,
-0x40, 0xdd,
-0x80, 0x62,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x18,
-0x80, 0xe5,
-0xa0, 0xc4,
-0x20, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x29,
-0xc0, 0xf5,
-0x40, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x5a,
-0x20, 0xd5,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x60, 0xb4,
-0x80, 0xe5,
-0x20, 0xfe,
-0x20, 0xfe,
-0x00, 0xfe,
-0x20, 0xac,
-0xc0, 0x20,
-0x00, 0x00,
-0x20, 0x31,
-0xe0, 0xf5,
-0x20, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x10, 0x84,
-0x51, 0x8c,
-0x51, 0x8c,
-0x51, 0x8c,
-0x51, 0x8c,
-0x51, 0x8c,
-0x51, 0x8c,
-0x51, 0x8c,
-0x51, 0x8c,
-0xe7, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x65, 0x29,
-0xaa, 0x52,
-0x86, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xaa, 0x52,
-0x8a, 0x52,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xaa, 0x52,
-0xaa, 0x52,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x18,
-0x60, 0xe5,
-0xe0, 0xcc,
-0xe0, 0x20,
-0x00, 0xa4,
-0xe0, 0xf5,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0xa0, 0xed,
-0xa0, 0x41,
-0x00, 0x00,
-0x20, 0x00,
-0x80, 0x93,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x60, 0xe5,
-0xc0, 0x72,
-0xa0, 0x41,
-0x00, 0xfe,
-0x60, 0x8b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xae, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x08,
-0x00, 0xd5,
-0x20, 0xfe,
-0x80, 0xe5,
-0x20, 0xfe,
-0x20, 0xfe,
-0x60, 0xe5,
-0xa0, 0xc4,
-0x00, 0xfe,
-0xa0, 0xc4,
-0xa0, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x49,
-0xc0, 0xed,
-0x80, 0xe5,
-0xa0, 0xc4,
-0x00, 0xf6,
-0x20, 0xfe,
-0x00, 0xfe,
-0x80, 0xe5,
-0x20, 0xfe,
-0xa0, 0x6a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x79, 0xce,
-0xd7, 0xbd,
-0xd7, 0xbd,
-0xd7, 0xbd,
-0xd7, 0xbd,
-0xd7, 0xbd,
-0xd7, 0xbd,
-0xaa, 0x52,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x08,
-0x80, 0xe5,
-0x20, 0xfe,
-0x20, 0xfe,
-0x00, 0xfe,
-0x40, 0xac,
-0x20, 0x31,
-0x20, 0xac,
-0x20, 0xfe,
-0x20, 0x83,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x20,
-0xe0, 0xcc,
-0xe0, 0xf5,
-0x20, 0x5a,
-0x60, 0x62,
-0x40, 0xdd,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x80, 0x93,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x69, 0x4a,
-0x51, 0x8c,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0x51, 0x8c,
-0x51, 0x8c,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x62,
-0x20, 0xfe,
-0x20, 0xfe,
-0x00, 0xf6,
-0x60, 0x8b,
-0x80, 0x39,
-0x40, 0xdd,
-0xa0, 0xed,
-0xc0, 0x49,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x08,
-0xa0, 0x93,
-0x20, 0xfe,
-0xc0, 0x9b,
-0xe0, 0x51,
-0xe0, 0xcc,
-0x20, 0xfe,
-0x20, 0xfe,
-0x00, 0xfe,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x18,
-0x20, 0xfe,
-0xc0, 0xc4,
-0xc0, 0xf5,
-0x20, 0xfe,
-0x20, 0xfe,
-0x60, 0xdd,
-0xa0, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x62,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xd5,
-0x40, 0xdd,
-0x20, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xfe,
-0x60, 0x62,
-0x00, 0x00,
-0x60, 0x8b,
-0x20, 0xfe,
-0x20, 0xfe,
-0x60, 0x8b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x28,
-0x20, 0xd5,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0x08,
-0x00, 0x00,
-0x00, 0xd5,
-0x60, 0x8b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa6, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xe7, 0x39,
-0x8a, 0x52,
-0x45, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0x49, 0x4a,
-0xeb, 0x5a,
-0xc7, 0x39,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0x69, 0x4a,
-0x49, 0x4a,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x86, 0x31,
-0x8a, 0x52,
-0x86, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x45, 0x29,
-0x69, 0x4a,
-0xe7, 0x39,
-0x82, 0x10,
-0x61, 0x08,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x65, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0x49, 0x4a,
-0x49, 0x4a,
-0xe3, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa6, 0x31,
-0x8a, 0x52,
-0x28, 0x42,
-0x41, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0xdd,
-0x20, 0x83,
-0x00, 0x00,
-0xe0, 0x7a,
-0x20, 0xfe,
-0x20, 0xfe,
-0x00, 0xf6,
-0xa0, 0xc4,
-0x80, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x52,
-0xe0, 0xf5,
-0xe0, 0xf5,
-0x20, 0xfe,
-0x00, 0xfe,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0xf5,
-0xa0, 0x6a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x0c, 0x63,
-0xff, 0xff,
-0x34, 0xa5,
-0x18, 0xc6,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xb6, 0xb5,
-0x82, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x51, 0x8c,
-0xbe, 0xf7,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x9e, 0xf7,
-0x51, 0x8c,
-0x00, 0x00,
-0x00, 0x00,
-0xcb, 0x5a,
-0x55, 0xad,
-0x5d, 0xef,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x9e, 0xf7,
-0x6d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x4d, 0x6b,
-0x9e, 0xf7,
-0x6d, 0x6b,
-0xdb, 0xde,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xfb, 0xde,
-0x2c, 0x63,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0x18, 0xc6,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x18, 0xc6,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xaa, 0x52,
-0xdf, 0xff,
-0x14, 0xa5,
-0x59, 0xce,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xb6, 0xb5,
-0xe3, 0x18,
-0x00, 0x00,
-0x4d, 0x6b,
-0x5d, 0xef,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x5d, 0xef,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0xbc,
-0xc0, 0x9b,
-0x00, 0x00,
-0x40, 0x83,
-0x20, 0xfe,
-0x20, 0xfe,
-0x80, 0x62,
-0x60, 0xdd,
-0xa0, 0xed,
-0x80, 0x41,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x8b,
-0x20, 0xfe,
-0xe0, 0xa3,
-0x00, 0xd5,
-0x20, 0xfe,
-0x00, 0xfe,
-0x00, 0x00,
-0x40, 0x08,
-0x20, 0xfe,
-0xe0, 0x49,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xeb, 0x5a,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xdf, 0xff,
-0xdb, 0xde,
-0x18, 0xc6,
-0xbe, 0xf7,
-0xff, 0xff,
-0x59, 0xce,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x34, 0xa5,
-0xff, 0xff,
-0xff, 0xff,
-0x59, 0xce,
-0x55, 0xad,
-0x59, 0xce,
-0xdf, 0xff,
-0xd3, 0x9c,
-0x00, 0x00,
-0x00, 0x00,
-0xd3, 0x9c,
-0xff, 0xff,
-0xff, 0xff,
-0x5d, 0xef,
-0xd7, 0xbd,
-0x38, 0xc6,
-0xff, 0xff,
-0xff, 0xff,
-0xcf, 0x7b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xdf, 0xff,
-0x9a, 0xd6,
-0x1c, 0xe7,
-0xff, 0xff,
-0xdf, 0xff,
-0x65, 0x29,
-0x00, 0x00,
-0x61, 0x08,
-0xfb, 0xde,
-0xff, 0xff,
-0x9e, 0xf7,
-0x18, 0xc6,
-0xfb, 0xde,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xcb, 0x5a,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x79, 0xce,
-0x59, 0xce,
-0xdf, 0xff,
-0xff, 0xff,
-0xdb, 0xde,
-0x51, 0x8c,
-0xff, 0xff,
-0xff, 0xff,
-0xfb, 0xde,
-0xd7, 0xbd,
-0x1c, 0xe7,
-0xff, 0xff,
-0xdf, 0xff,
-0x86, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xa3,
-0x80, 0xbc,
-0x00, 0x00,
-0x80, 0x93,
-0x20, 0xfe,
-0x20, 0xfe,
-0x40, 0xb4,
-0x60, 0x10,
-0x60, 0xb4,
-0x00, 0xfe,
-0xe0, 0x72,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x10,
-0x80, 0xbc,
-0x00, 0xfe,
-0xa0, 0x6a,
-0x00, 0x00,
-0x20, 0xfe,
-0x00, 0xfe,
-0x20, 0xfe,
-0x00, 0x00,
-0x20, 0x29,
-0x20, 0xfe,
-0x20, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x8e, 0x73,
-0x82, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0x1c, 0xe7,
-0xff, 0xff,
-0xeb, 0x5a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x28, 0x42,
-0xff, 0xff,
-0xdf, 0xff,
-0x49, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xc3, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0xc7, 0x39,
-0x4d, 0x6b,
-0x45, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xcb, 0x5a,
-0xdf, 0xff,
-0xdf, 0xff,
-0x45, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0xff, 0xff,
-0x10, 0x84,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x8a, 0x52,
-0x6d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0xef, 0x7b,
-0xff, 0xff,
-0x79, 0xce,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0x71, 0x8c,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xcf, 0x7b,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0x79, 0xce,
-0xff, 0xff,
-0xff, 0xff,
-0xbe, 0xf7,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x75, 0xad,
-0xff, 0xff,
-0x75, 0xad,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x83,
-0x40, 0xdd,
-0x00, 0x00,
-0xc0, 0x9b,
-0x20, 0xfe,
-0x60, 0xdd,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x72,
-0x20, 0xfe,
-0x00, 0xa4,
-0x40, 0x08,
-0x40, 0x31,
-0x60, 0xe5,
-0x80, 0xe5,
-0x40, 0x39,
-0x00, 0x00,
-0xa0, 0x6a,
-0x20, 0xfe,
-0x00, 0xd5,
-0x20, 0xfe,
-0x00, 0x00,
-0xc0, 0x49,
-0x20, 0xfe,
-0x60, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x92, 0x94,
-0x2c, 0x63,
-0x2c, 0x63,
-0x2c, 0x63,
-0x2c, 0x63,
-0xeb, 0x5a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x4d, 0x6b,
-0xff, 0xff,
-0x34, 0xa5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd3, 0x9c,
-0xff, 0xff,
-0x30, 0x84,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x92, 0x94,
-0xff, 0xff,
-0xb2, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x38, 0xc6,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x45, 0x29,
-0xff, 0xff,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x24, 0x21,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x62,
-0x00, 0xfe,
-0x00, 0x00,
-0x00, 0xa4,
-0x20, 0xfe,
-0x20, 0x83,
-0x20, 0xfe,
-0x80, 0x41,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x49,
-0xc0, 0xed,
-0x80, 0xe5,
-0x00, 0xfe,
-0x80, 0xbc,
-0x80, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xd5,
-0x00, 0xfe,
-0xe0, 0x9b,
-0x20, 0xfe,
-0x00, 0x00,
-0x80, 0x6a,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x3c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x28, 0x42,
-0xff, 0xff,
-0xf7, 0xbd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xf7, 0xbd,
-0xff, 0xff,
-0x49, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x86, 0x31,
-0xff, 0xff,
-0xdb, 0xde,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xdb, 0xde,
-0xff, 0xff,
-0x45, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xe7, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xbe, 0xf7,
-0xff, 0xff,
-0xc3, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x41,
-0x20, 0xfe,
-0x80, 0x18,
-0x40, 0xac,
-0x20, 0xfe,
-0x40, 0x08,
-0x20, 0xfe,
-0x60, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x20,
-0x20, 0xfe,
-0x00, 0xcd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x20, 0xfe,
-0xc0, 0xc4,
-0x80, 0x93,
-0x20, 0xfe,
-0x20, 0x00,
-0x40, 0x8b,
-0x20, 0xd5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x3c, 0xe7,
-0xfb, 0xde,
-0xfb, 0xde,
-0xfb, 0xde,
-0xfb, 0xde,
-0x59, 0xce,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x08, 0x42,
-0xff, 0xff,
-0xf7, 0xbd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x18, 0xc6,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xef, 0x7b,
-0x14, 0xa5,
-0x92, 0x94,
-0x6d, 0x6b,
-0x45, 0x29,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xdb, 0xde,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xe3, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x20,
-0x20, 0xfe,
-0x40, 0x31,
-0x60, 0xbc,
-0x00, 0xfe,
-0x00, 0x00,
-0x40, 0xdd,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x60, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x72,
-0x20, 0xfe,
-0xe0, 0x51,
-0x40, 0x8b,
-0x20, 0xfe,
-0x80, 0x10,
-0x00, 0xa4,
-0x60, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x08, 0x42,
-0xff, 0xff,
-0xf7, 0xbd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x18, 0xc6,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x8a, 0x52,
-0xbe, 0xf7,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xdb, 0xde,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x08,
-0x20, 0xfe,
-0x00, 0x52,
-0xa0, 0xc4,
-0x00, 0xfe,
-0x00, 0x00,
-0x00, 0x7b,
-0x20, 0xfe,
-0xa0, 0x41,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x60, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0xdd,
-0x00, 0xfe,
-0x00, 0x00,
-0x00, 0x7b,
-0x20, 0xfe,
-0xc0, 0x20,
-0xc0, 0xc4,
-0xa0, 0x9b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x08, 0x42,
-0xff, 0xff,
-0xf7, 0xbd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x18, 0xc6,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x45, 0x29,
-0xbe, 0xf7,
-0xff, 0xff,
-0x96, 0xb5,
-0x6d, 0x6b,
-0xef, 0x7b,
-0x96, 0xb5,
-0xdf, 0xff,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xdb, 0xde,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0xed,
-0xc0, 0x72,
-0xc0, 0xc4,
-0x00, 0xf6,
-0x00, 0x00,
-0x40, 0x08,
-0x20, 0xfe,
-0x80, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x60, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x08,
-0x20, 0xfe,
-0x80, 0xbc,
-0x00, 0x00,
-0xc0, 0x72,
-0x20, 0xfe,
-0x40, 0x31,
-0x80, 0xe5,
-0x00, 0x7b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x08, 0x42,
-0xff, 0xff,
-0xf7, 0xbd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x18, 0xc6,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xb2, 0x94,
-0xff, 0xff,
-0x14, 0xa5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x24, 0x21,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xdb, 0xde,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xcc,
-0x80, 0x93,
-0x00, 0xcd,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0xdd,
-0x00, 0xf6,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x83,
-0x20, 0xfe,
-0xc0, 0x49,
-0x00, 0x00,
-0x80, 0x62,
-0x20, 0xfe,
-0xa0, 0x41,
-0x20, 0xfe,
-0x40, 0x5a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x08, 0x42,
-0xff, 0xff,
-0xf7, 0xbd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x18, 0xc6,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x59, 0xce,
-0xff, 0xff,
-0xe7, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xdb, 0xde,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xac,
-0x40, 0xb4,
-0x20, 0xd5,
-0xc0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x7a,
-0x20, 0xfe,
-0xe0, 0x49,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0xdd,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x5a,
-0x20, 0xfe,
-0x80, 0x6a,
-0x20, 0xfe,
-0x80, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x08, 0x42,
-0xff, 0xff,
-0xf7, 0xbd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x18, 0xc6,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xba, 0xd6,
-0xff, 0xff,
-0x65, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xdb, 0xde,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0xff, 0xff,
-0x9e, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x8b,
-0x00, 0xcd,
-0x40, 0xdd,
-0xa0, 0xed,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x08,
-0x20, 0xfe,
-0xa0, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xb4,
-0x00, 0x00,
-0x40, 0x08,
-0x20, 0xfe,
-0x60, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x49,
-0x20, 0xfe,
-0x60, 0x8b,
-0x20, 0xfe,
-0xc0, 0x20,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x08, 0x42,
-0xff, 0xff,
-0xf7, 0xbd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xf7, 0xbd,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xba, 0xd6,
-0xff, 0xff,
-0x65, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xdb, 0xde,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xdf, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x72,
-0xa0, 0xed,
-0x60, 0xe5,
-0x80, 0xe5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xd5,
-0x00, 0xfe,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xb4,
-0x00, 0x00,
-0x40, 0x8b,
-0x20, 0xfe,
-0x80, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x39,
-0x20, 0xfe,
-0x40, 0xac,
-0x20, 0xfe,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x69, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xeb, 0x5a,
-0xff, 0xff,
-0x75, 0xad,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd3, 0x9c,
-0xff, 0xff,
-0x30, 0x84,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x38, 0xc6,
-0xff, 0xff,
-0x49, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xdf, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x59, 0xce,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xbe, 0xf7,
-0xff, 0xff,
-0x45, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x52,
-0x20, 0xfe,
-0xa0, 0xed,
-0x80, 0xe5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x72,
-0x20, 0xfe,
-0xe0, 0x51,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xac,
-0x00, 0x00,
-0x60, 0xe5,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x29,
-0x20, 0xfe,
-0xe0, 0xcc,
-0x80, 0xe5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0x2c, 0x63,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x82, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x8a, 0x52,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0x9a, 0xd6,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x28, 0x42,
-0xff, 0xff,
-0xbe, 0xf7,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x30, 0x84,
-0xff, 0xff,
-0xf7, 0xbd,
-0x41, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0x30, 0x84,
-0xff, 0xff,
-0xdf, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0xb6, 0xb5,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xcb, 0x5a,
-0xff, 0xff,
-0xbe, 0xf7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x34, 0xa5,
-0xff, 0xff,
-0x96, 0xb5,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x41, 0x08,
-0x6d, 0x6b,
-0xff, 0xff,
-0xff, 0xff,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x31,
-0x20, 0xfe,
-0xe0, 0xf5,
-0x60, 0xdd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x20, 0xfe,
-0xa0, 0xc4,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x80, 0x10,
-0x20, 0xfe,
-0x20, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x20,
-0x20, 0xfe,
-0xa0, 0xed,
-0xc0, 0xc4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x30, 0x84,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x7d, 0xef,
-0x96, 0xb5,
-0x14, 0xa5,
-0x1c, 0xe7,
-0xff, 0xff,
-0xfb, 0xde,
-0x41, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x14, 0xa5,
-0xff, 0xff,
-0xff, 0xff,
-0x18, 0xc6,
-0xd3, 0x9c,
-0xb6, 0xb5,
-0x9e, 0xf7,
-0x14, 0xa5,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0x5d, 0xef,
-0xff, 0xff,
-0x1c, 0xe7,
-0x55, 0xad,
-0x59, 0xce,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xe7, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0x5d, 0xef,
-0xff, 0xff,
-0xdb, 0xde,
-0xf3, 0x9c,
-0x96, 0xb5,
-0x5d, 0xef,
-0xff, 0xff,
-0xff, 0xff,
-0xdf, 0xff,
-0x86, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xbe, 0xf7,
-0xff, 0xff,
-0xfb, 0xde,
-0xf3, 0x9c,
-0x75, 0xad,
-0x7d, 0xef,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x28, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x10,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xd5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xd5,
-0x00, 0xfe,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x80, 0x93,
-0x20, 0xfe,
-0x40, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x10,
-0x20, 0xfe,
-0x20, 0xfe,
-0x00, 0xa4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x7d, 0xef,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x30, 0x84,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0xdf, 0xff,
-0x5d, 0xef,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xba, 0xd6,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xff, 0xff,
-0x92, 0x94,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x30, 0x84,
-0xbe, 0xf7,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x38, 0xc6,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa6, 0x31,
-0x3c, 0xe7,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xba, 0xd6,
-0x18, 0xc6,
-0x9e, 0xf7,
-0xc7, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xff, 0xff,
-0x1c, 0xe7,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc7, 0x39,
-0x1c, 0xe7,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x3c, 0xe7,
-0x59, 0xce,
-0xff, 0xff,
-0x0c, 0x63,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0xff, 0xff,
-0xff, 0xff,
-0x61, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe7, 0x39,
-0x3c, 0xe7,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0xff, 0xff,
-0x9a, 0xd6,
-0xd7, 0xbd,
-0xff, 0xff,
-0xcb, 0x5a,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xff, 0xff,
-0xff, 0xff,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x5d, 0xef,
-0xff, 0xff,
-0x24, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xf5,
-0x20, 0xfe,
-0x00, 0xd5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x6a,
-0x20, 0xfe,
-0x00, 0x52,
-0x20, 0xfe,
-0x20, 0xac,
-0x80, 0xe5,
-0xc0, 0xed,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xfe,
-0x40, 0x8b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x04, 0x21,
-0x82, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0x7d, 0xef,
-0x20, 0x00,
-0x08, 0x42,
-0x4d, 0x6b,
-0xae, 0x73,
-0x69, 0x4a,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe3, 0x18,
-0x86, 0x31,
-0xe3, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0x8a, 0x52,
-0x2c, 0x63,
-0x8a, 0x52,
-0xe3, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x61, 0x08,
-0xaa, 0x52,
-0xae, 0x73,
-0xeb, 0x5a,
-0x65, 0x29,
-0x00, 0x00,
-0x20, 0x00,
-0x45, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x04, 0x21,
-0xe3, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x41, 0x08,
-0x8a, 0x52,
-0x6d, 0x6b,
-0xcb, 0x5a,
-0x86, 0x31,
-0x00, 0x00,
-0x41, 0x08,
-0x49, 0x4a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x86, 0x31,
-0x86, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x28, 0x42,
-0x2c, 0x63,
-0x8a, 0x52,
-0x45, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0xc7, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x86, 0x31,
-0x86, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x86, 0x31,
-0x86, 0x31,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x65, 0x29,
-0x86, 0x31,
-0x41, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0xdd,
-0x20, 0xfe,
-0xe0, 0xcc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x20, 0xfe,
-0xc0, 0xc4,
-0x20, 0xfe,
-0x60, 0xbc,
-0x20, 0xfe,
-0x00, 0xa4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xfe,
-0x80, 0x6a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0x7d, 0xef,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0xbc,
-0x20, 0xfe,
-0xa0, 0xc4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xd5,
-0x00, 0xfe,
-0x20, 0xfe,
-0xc0, 0xed,
-0x20, 0xfe,
-0x00, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xfe,
-0xc0, 0x49,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0x7d, 0xef,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x9b,
-0x20, 0xfe,
-0x80, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x6a,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0xc0, 0xed,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0x7d, 0xef,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x7b,
-0x20, 0xfe,
-0x40, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0xc0, 0x9b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xfe,
-0x20, 0xfe,
-0x60, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0x7d, 0xef,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x62,
-0x20, 0xfe,
-0x00, 0xa4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xcc,
-0x20, 0xfe,
-0x20, 0xfe,
-0xc0, 0x20,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xfe,
-0x00, 0xfe,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0x7d, 0xef,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x41,
-0x20, 0xfe,
-0xc0, 0x9b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x10,
-0x40, 0x39,
-0xc0, 0x9b,
-0x20, 0xfe,
-0x00, 0xfe,
-0xa0, 0x41,
-0xe0, 0x20,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xf5,
-0xa0, 0xed,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0x7d, 0xef,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x28,
-0x20, 0xfe,
-0xe0, 0xcc,
-0x80, 0x93,
-0x60, 0xb4,
-0x20, 0xd5,
-0xe0, 0xf5,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x80, 0xe5,
-0xc0, 0xc4,
-0xe0, 0xa3,
-0x20, 0x83,
-0x00, 0xfe,
-0x80, 0xe5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0xff, 0xff,
-0x7d, 0xef,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x5a,
-0x20, 0xfe,
-0x00, 0xfe,
-0xe0, 0xcc,
-0x20, 0xac,
-0x40, 0x8b,
-0x80, 0x6a,
-0xc0, 0x49,
-0xe0, 0x28,
-0x20, 0x83,
-0x20, 0xfe,
-0xe0, 0xf5,
-0xc0, 0x20,
-0x60, 0x39,
-0x20, 0x5a,
-0xe0, 0x7a,
-0xc0, 0x9b,
-0x80, 0xbc,
-0x40, 0xdd,
-0x20, 0xfe,
-0x00, 0xfe,
-0x40, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0x82, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x10,
-0xa0, 0xed,
-0x20, 0xfe,
-0x60, 0xe5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0xdd,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0x5a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x41,
-0x20, 0xfe,
-0x20, 0xfe,
-0xa0, 0x93,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xac,
-0x00, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x40, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x39,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0xa0, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xa3,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0xc0, 0x49,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x62,
-0x20, 0xfe,
-0x40, 0xb4,
-0x20, 0xfe,
-0xa0, 0xed,
-0xc0, 0x9b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xa3,
-0x20, 0xd5,
-0x20, 0xfe,
-0x40, 0xdd,
-0x20, 0xfe,
-0xe0, 0x20,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x10,
-0xe0, 0xf5,
-0xe0, 0xf5,
-0x00, 0xfe,
-0x00, 0xac,
-0xa0, 0xed,
-0x80, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x04, 0x21,
-0xe3, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa2, 0x10,
-0x45, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x82, 0x10,
-0x45, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x20,
-0xc0, 0xf5,
-0x80, 0x93,
-0xa0, 0x93,
-0x20, 0xfe,
-0x00, 0x7b,
-0xe0, 0xf5,
-0x40, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x08,
-0xe0, 0xf5,
-0xc0, 0x72,
-0x20, 0xfe,
-0x20, 0xac,
-0xa0, 0xed,
-0x20, 0x83,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x6a,
-0x00, 0xf6,
-0x60, 0xb4,
-0x20, 0xfe,
-0x80, 0x10,
-0x80, 0xe5,
-0x40, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x71, 0x8c,
-0xdf, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x6d, 0x6b,
-0x9e, 0xf7,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x4d, 0x6b,
-0x9e, 0xf7,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0xbc,
-0x40, 0xdd,
-0x40, 0x08,
-0x20, 0xac,
-0x20, 0xfe,
-0x80, 0x10,
-0x00, 0xfe,
-0x60, 0x62,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x62,
-0x00, 0xfe,
-0x80, 0x18,
-0x20, 0xfe,
-0x20, 0xac,
-0x60, 0x8b,
-0x80, 0xe5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xcd,
-0xe0, 0xa3,
-0x80, 0x93,
-0x20, 0xfe,
-0x40, 0x08,
-0xa0, 0x41,
-0x20, 0xfe,
-0x40, 0x5a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x72,
-0x00, 0xfe,
-0x40, 0x31,
-0x00, 0x00,
-0xa0, 0xc4,
-0x00, 0xfe,
-0x00, 0x00,
-0x20, 0xac,
-0xc0, 0xcc,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0xc4,
-0x40, 0xb4,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0xe0, 0x28,
-0x20, 0xfe,
-0xc0, 0x49,
-0x00, 0x00,
-0x40, 0x31,
-0x20, 0xfe,
-0x80, 0x41,
-0xe0, 0x72,
-0x20, 0xfe,
-0x00, 0x29,
-0x00, 0x00,
-0xa0, 0x93,
-0xc0, 0xf5,
-0xc0, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x29,
-0x00, 0xf6,
-0x00, 0x7b,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xd5,
-0xe0, 0xf5,
-0x00, 0x00,
-0xc0, 0x49,
-0x20, 0xfe,
-0x20, 0x29,
-0xe0, 0x20,
-0x20, 0xfe,
-0xe0, 0x49,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x00, 0x00,
-0xc0, 0xc4,
-0x20, 0xac,
-0x00, 0x00,
-0xa0, 0x93,
-0x60, 0xdd,
-0x00, 0x00,
-0x20, 0x5a,
-0x20, 0xfe,
-0xe0, 0x51,
-0x00, 0x00,
-0x40, 0x08,
-0x40, 0xdd,
-0xa0, 0xc4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x00, 0xd5,
-0xe0, 0xcc,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0xe5,
-0xa0, 0xed,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0xe5,
-0x80, 0x93,
-0x40, 0x83,
-0xa0, 0xed,
-0x20, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x00, 0x00,
-0x60, 0x62,
-0x00, 0xfe,
-0xc0, 0x20,
-0xc0, 0xed,
-0xe0, 0x7a,
-0x00, 0x00,
-0x60, 0x39,
-0x20, 0xfe,
-0xa0, 0x6a,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x31,
-0x00, 0xfe,
-0xc0, 0x72,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x8b,
-0xe0, 0xf5,
-0xe0, 0x20,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0xed,
-0x40, 0xdd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x83,
-0xc0, 0xed,
-0x80, 0xe5,
-0x60, 0x8b,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x00, 0x00,
-0x40, 0x08,
-0xe0, 0xf5,
-0x20, 0xac,
-0x00, 0xfe,
-0xa0, 0x18,
-0x00, 0x00,
-0x80, 0x10,
-0x20, 0xfe,
-0x40, 0x8b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x83,
-0x00, 0xfe,
-0x20, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x52,
-0x20, 0xfe,
-0xc0, 0x72,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xf6,
-0xe0, 0xcc,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x18,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x9b,
-0xe0, 0xf5,
-0x40, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0xe0, 0xa3,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x60, 0xdd,
-0xa0, 0xed,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x52,
-0x20, 0xfe,
-0xc0, 0xc4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xfe,
-0x80, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0xed,
-0xc0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x51,
-0x20, 0xfe,
-0x20, 0x83,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x80, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x10,
-0x20, 0xfe,
-0xc0, 0xed,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x20,
-0x20, 0xfe,
-0x20, 0xfe,
-0x80, 0x41,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0xe0, 0xa3,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x5a,
-0x20, 0xfe,
-0xc0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x5a,
-0x20, 0xfe,
-0xa0, 0xe5,
-0x60, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xf5,
-0xe0, 0xcc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0xc4,
-0x20, 0xfe,
-0x80, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x08,
-0x20, 0xfe,
-0x20, 0xfe,
-0x80, 0xe5,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x10,
-0x20, 0xfe,
-0x40, 0x8b,
-0x00, 0x00,
-0x80, 0x10,
-0xa0, 0xed,
-0x60, 0xb4,
-0x20, 0xfe,
-0xc0, 0x20,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x8b,
-0x40, 0xdd,
-0xc0, 0xed,
-0xa0, 0x93,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0xed,
-0x40, 0xdd,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x31,
-0x20, 0xfe,
-0x20, 0xfe,
-0x80, 0x93,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0xed,
-0x20, 0xd5,
-0x20, 0xfe,
-0xc0, 0x72,
-0x00, 0x00,
-0x60, 0x39,
-0x20, 0xfe,
-0xa0, 0x6a,
-0x00, 0x00,
-0x00, 0xac,
-0x80, 0xe5,
-0xc0, 0x18,
-0x20, 0xfe,
-0x00, 0x52,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0xc4,
-0xe0, 0xa3,
-0x40, 0x62,
-0x20, 0xfe,
-0xa0, 0x41,
-0x00, 0x00,
-0x60, 0xe5,
-0xa0, 0xed,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0xe5,
-0x00, 0xfe,
-0xc0, 0xf5,
-0xc0, 0x72,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xcd,
-0x60, 0x8b,
-0xc0, 0xed,
-0x00, 0xf6,
-0x20, 0x00,
-0x40, 0x5a,
-0x20, 0xfe,
-0xe0, 0x49,
-0xc0, 0x49,
-0x20, 0xfe,
-0xe0, 0x51,
-0x00, 0x00,
-0x40, 0xdd,
-0x40, 0x8b,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x20, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xf5,
-0xa0, 0x6a,
-0x00, 0x00,
-0x80, 0xbc,
-0x40, 0xdd,
-0x20, 0x08,
-0x00, 0xd5,
-0xe0, 0xf5,
-0x00, 0x00,
-0x80, 0x6a,
-0x20, 0xfe,
-0x80, 0x93,
-0x20, 0xfe,
-0x00, 0x52,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0xb4,
-0x20, 0xac,
-0xe0, 0x51,
-0x20, 0xfe,
-0xe0, 0xa3,
-0xe0, 0x7a,
-0x20, 0xfe,
-0x60, 0x39,
-0x80, 0xe5,
-0x20, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xa4,
-0x80, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xac,
-0x00, 0x00,
-0x00, 0x29,
-0x20, 0xfe,
-0x40, 0x39,
-0x00, 0x00,
-0xc0, 0x18,
-0xe0, 0xf5,
-0x40, 0x83,
-0xa0, 0xc4,
-0x00, 0xfe,
-0x20, 0x00,
-0xe0, 0xf5,
-0xc0, 0xf5,
-0x00, 0x29,
-0x20, 0xfe,
-0x40, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x93,
-0xc0, 0xcc,
-0x00, 0x00,
-0x20, 0xd5,
-0x20, 0xfe,
-0x00, 0xa4,
-0x20, 0xfe,
-0xe0, 0xa3,
-0xc0, 0xf5,
-0xa0, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x72,
-0xc0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xac,
-0x00, 0x00,
-0x40, 0x62,
-0x00, 0xfe,
-0x20, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x72,
-0x00, 0xfe,
-0xe0, 0xcc,
-0x20, 0xfe,
-0xe0, 0xa3,
-0x20, 0xfe,
-0x40, 0x5a,
-0xc0, 0x49,
-0x20, 0xfe,
-0x80, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x7a,
-0x80, 0xe5,
-0x00, 0x00,
-0xe0, 0x28,
-0x20, 0xfe,
-0x00, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x40, 0x62,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x39,
-0x20, 0xfe,
-0xe0, 0x20,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xac,
-0x00, 0x00,
-0xa0, 0x93,
-0x00, 0xcd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0xcc,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xd5,
-0x00, 0x00,
-0x80, 0x6a,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x5a,
-0x20, 0xfe,
-0x20, 0x00,
-0x00, 0x00,
-0x40, 0xb4,
-0x20, 0xfe,
-0x20, 0xfe,
-0x80, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x08,
-0x20, 0xfe,
-0x20, 0x5a,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xb4,
-0x00, 0x00,
-0xe0, 0xcc,
-0xc0, 0x9b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x29,
-0x00, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0x29,
-0x00, 0x00,
-0x60, 0x8b,
-0x20, 0xd5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x39,
-0x20, 0xfe,
-0xc0, 0x20,
-0x00, 0x00,
-0x40, 0x08,
-0x20, 0xfe,
-0x20, 0xfe,
-0xc0, 0x20,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xd5,
-0x60, 0x8b,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xb4,
-0x20, 0x00,
-0x00, 0xf6,
-0x60, 0x62,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xa3,
-0x20, 0xfe,
-0xa0, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xac,
-0x60, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x20,
-0x20, 0xfe,
-0x60, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xdd,
-0xe0, 0xcc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x9b,
-0xc0, 0xc4,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xb4,
-0x40, 0x31,
-0x20, 0xfe,
-0x20, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x18,
-0x20, 0xfe,
-0x20, 0x5a,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xcc,
-0x80, 0x93,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x6d, 0x6b,
-0x79, 0xce,
-0x79, 0xce,
-0xa2, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x00,
-0x20, 0xfe,
-0x20, 0x5a,
-0x00, 0x00,
-0x20, 0x00,
-0xe0, 0xf5,
-0x80, 0x62,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x6a,
-0xe0, 0xf5,
-0x00, 0x00,
-0x20, 0xfe,
-0x40, 0xb4,
-0x80, 0x6a,
-0x00, 0xf6,
-0x20, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0xdd,
-0x20, 0x83,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0xed,
-0xc0, 0x72,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x30, 0x84,
-0xff, 0xff,
-0xff, 0xff,
-0xc3, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0xe5,
-0xe0, 0x72,
-0x00, 0x00,
-0x40, 0x31,
-0x20, 0xfe,
-0x20, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x31,
-0x20, 0xfe,
-0x00, 0x29,
-0x20, 0xfe,
-0x40, 0xb4,
-0xc0, 0x9b,
-0xc0, 0xc4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xac,
-0x60, 0xb4,
-0x00, 0x00,
-0x40, 0x08,
-0x20, 0xfe,
-0x00, 0x52,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x1c, 0xe7,
-0xff, 0xff,
-0x08, 0x42,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x30, 0x84,
-0xff, 0xff,
-0xff, 0xff,
-0xc3, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xd7, 0xbd,
-0xff, 0xff,
-0x4d, 0x6b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x96, 0xb5,
-0xff, 0xff,
-0x8e, 0x73,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xcc,
-0x80, 0x93,
-0x00, 0x00,
-0xa0, 0x6a,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x08,
-0x00, 0xfe,
-0x60, 0x62,
-0x20, 0xfe,
-0x40, 0xb4,
-0x00, 0xd5,
-0x80, 0x93,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x7a,
-0xa0, 0xed,
-0x00, 0x00,
-0x00, 0x29,
-0x20, 0xfe,
-0x40, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xcf, 0x7b,
-0x51, 0x8c,
-0x04, 0x21,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa6, 0x31,
-0x2c, 0x63,
-0x2c, 0x63,
-0x41, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x0c, 0x63,
-0x51, 0x8c,
-0xc7, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xeb, 0x5a,
-0x51, 0x8c,
-0xe7, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xac,
-0x40, 0xb4,
-0x00, 0x00,
-0xe0, 0xa3,
-0xa0, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xcc,
-0xa0, 0x93,
-0x20, 0xfe,
-0x60, 0xb4,
-0x00, 0xfe,
-0x40, 0x5a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x41,
-0x20, 0xfe,
-0xa0, 0x18,
-0xc0, 0x49,
-0x20, 0xfe,
-0x60, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x93,
-0xe0, 0xcc,
-0x00, 0x00,
-0x40, 0xdd,
-0x40, 0x83,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x9b,
-0xe0, 0xcc,
-0x20, 0xfe,
-0x00, 0xd5,
-0x20, 0xfe,
-0x00, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x10,
-0x20, 0xfe,
-0xe0, 0x49,
-0xa0, 0x6a,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x72,
-0xa0, 0xed,
-0x60, 0x10,
-0x20, 0xfe,
-0xe0, 0x51,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x62,
-0x00, 0xfe,
-0x20, 0xfe,
-0xc0, 0xed,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0xe5,
-0x20, 0x83,
-0x60, 0x8b,
-0x00, 0xd5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x52,
-0x20, 0xfe,
-0x00, 0x52,
-0x20, 0xfe,
-0xa0, 0x18,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0x31,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0xfe,
-0xa0, 0xc4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xac,
-0x40, 0xb4,
-0x20, 0xac,
-0x40, 0xb4,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0x39,
-0x20, 0xfe,
-0x00, 0xa4,
-0x60, 0xe5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0xf5,
-0x20, 0xfe,
-0x20, 0xfe,
-0x60, 0x8b,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x7b,
-0x80, 0xe5,
-0xe0, 0xcc,
-0x80, 0x93,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x18,
-0x20, 0xfe,
-0xe0, 0xf5,
-0x00, 0xac,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0xc4,
-0x20, 0xfe,
-0x20, 0xfe,
-0x20, 0x5a,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0x49,
-0x20, 0xfe,
-0x00, 0xf6,
-0xc0, 0x72,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xfe,
-0x20, 0xfe,
-0xc0, 0x72,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x93,
-0x20, 0xfe,
-0x20, 0xfe,
-0xc0, 0x20,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x10,
-0x20, 0xfe,
-0x20, 0xfe,
-0x00, 0x52,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x60, 0xe5,
-0x20, 0xfe,
-0x60, 0x39,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0x5a,
-0x20, 0xfe,
-0xe0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0xe5,
-0x20, 0xfe,
-0x20, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xc0, 0xc4,
-0x00, 0xfe,
-0x20, 0x08,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x29,
-0x20, 0xfe,
-0x40, 0xdd,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x40, 0xb4,
-0x20, 0xfe,
-0x60, 0x10,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0xa4,
-0xe0, 0xcc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x20, 0xfe,
-0x80, 0xbc,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x83,
-0xc0, 0xf5,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xe0, 0x20,
-0x20, 0x31,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0xa0, 0x72,
-0x00, 0x29,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x80, 0x10,
-0x80, 0x41,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
-0x00, 0x00,
+#pragma once
+#include <stdint.h>
+
+/* clang-format off */
+const uint8_t version_splash[] = {
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x05, 0x29, 0x6f, 0x91, 0x91, 0xa9, 0x4d, 0x81,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x28, 0x49, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0xe5, 0x28, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x06, 0x39, 0x70, 0x99,
+	0x4c, 0x71, 0x06, 0x31, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x4b, 0x69, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x2a, 0x61, 0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe4, 0x28, 0x70, 0x99, 0x92, 0xa9,
+	0x92, 0xa9, 0x4c, 0x71, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x07, 0x41, 0x6f, 0x89, 0x06, 0x39, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x4d, 0x79, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x6f, 0x89, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xe3, 0x18, 0x4d, 0x81, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x2b, 0x69, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x29, 0x51,
+	0x92, 0xa9, 0x92, 0xa9, 0x91, 0xa1, 0x07, 0x41,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x6f, 0x91, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x4d, 0x79, 0x2c, 0x71, 0x2a, 0x59,
+	0x2b, 0x61, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x29, 0x59, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x28, 0x49,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x08, 0x49, 0xe5, 0x30, 0x4b, 0x69, 0x70, 0x99,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xe6, 0x38, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x88, 0x31, 0xb2, 0x52,
+	0xb2, 0x52, 0x04, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x46, 0x29, 0x0d, 0x42,
+	0x70, 0x4a, 0x91, 0x52, 0x91, 0x52, 0x91, 0x52,
+	0x91, 0x52, 0x91, 0x52, 0x91, 0x52, 0x91, 0x52,
+	0x91, 0x52, 0x91, 0x52, 0x91, 0x52, 0x91, 0x52,
+	0x91, 0x52, 0x91, 0x52, 0x91, 0x52, 0x91, 0x52,
+	0x91, 0x52, 0x91, 0x52, 0x91, 0x52, 0x91, 0x52,
+	0x90, 0x52, 0x88, 0x31, 0xe3, 0x18, 0xe3, 0x18,
+	0xca, 0x39, 0x91, 0x52, 0x91, 0x52, 0x91, 0x52,
+	0x91, 0x52, 0x91, 0x52, 0x91, 0x52, 0x91, 0x52,
+	0x91, 0x52, 0x90, 0x4a, 0x2e, 0x42, 0x88, 0x31,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe4, 0x20,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xe7, 0x48, 0xa2, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18, 0x06, 0x39,
+	0x06, 0x39, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xcb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x05, 0x21, 0xb2, 0x52, 0x99, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x15, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0x99, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0x15, 0x63, 0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x4d, 0x81, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x2c, 0x71, 0x83, 0x18,
+	0xa2, 0x10, 0x08, 0x49, 0x6f, 0x89, 0x92, 0xa9,
+	0x71, 0xa1, 0x05, 0x31, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xcb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x25, 0x21,
+	0x36, 0x63, 0xba, 0x73, 0xba, 0x73, 0x99, 0x73,
+	0x36, 0x63, 0x15, 0x63, 0x15, 0x63, 0x15, 0x63,
+	0x15, 0x63, 0x15, 0x63, 0x15, 0x63, 0x15, 0x63,
+	0x15, 0x63, 0x15, 0x63, 0x15, 0x63, 0x15, 0x63,
+	0x15, 0x63, 0x15, 0x63, 0x15, 0x63, 0x15, 0x63,
+	0x15, 0x63, 0x15, 0x63, 0x15, 0x63, 0x77, 0x6b,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0x04, 0x19,
+	0xba, 0x73, 0xba, 0x73, 0x57, 0x6b, 0x15, 0x63,
+	0x15, 0x63, 0x15, 0x63, 0x15, 0x63, 0x15, 0x63,
+	0x15, 0x63, 0x35, 0x63, 0x78, 0x6b, 0xba, 0x73,
+	0xba, 0x73, 0x99, 0x6b, 0xa9, 0x31, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x08, 0x49, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x4f, 0x91,
+	0x4f, 0x89, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x4d, 0x79, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xcb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xf4, 0x5a,
+	0xba, 0x73, 0x99, 0x73, 0x70, 0x4a, 0x25, 0x21,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xba, 0x73, 0xba, 0x73, 0xec, 0x39, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x04, 0x21, 0xec, 0x39,
+	0x78, 0x6b, 0xba, 0x73, 0x78, 0x6b, 0x25, 0x21,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x4d, 0x79, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xe6, 0x30, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xcb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xaa, 0x31, 0xba, 0x73,
+	0xba, 0x73, 0x4e, 0x42, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xba, 0x73, 0xba, 0x73, 0x0c, 0x3a, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x88, 0x31, 0x99, 0x73, 0xba, 0x73, 0x70, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe4, 0x20, 0x29, 0x59, 0x06, 0x39,
+	0xe4, 0x20, 0xe3, 0x18, 0xe3, 0x18, 0x4c, 0x71,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x71, 0xa1, 0x2d, 0x81, 0x0b, 0x69,
+	0x0a, 0x61, 0x0b, 0x69, 0x2d, 0x81, 0x71, 0xa1,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x2a, 0x61, 0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xcb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0x57, 0x6b, 0xe4, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xba, 0x73, 0xba, 0x73, 0x0c, 0x42, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x91, 0x52, 0xba, 0x73, 0x77, 0x6b,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x2a, 0x59, 0x92, 0xa9, 0x92, 0xa9,
+	0x91, 0xa9, 0x4d, 0x81, 0x4b, 0x69, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x4e, 0x81,
+	0xa6, 0x38, 0x61, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x41, 0x08, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0xa6, 0x38, 0x4e, 0x81, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x4e, 0x89,
+	0x82, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xcb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x15, 0x63, 0xba, 0x73,
+	0x91, 0x52, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0x99, 0x73, 0xba, 0x73, 0x0c, 0x42, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xca, 0x39, 0xba, 0x73, 0xba, 0x73,
+	0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x70, 0x99, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x71, 0xa1, 0xa7, 0x40, 0x41, 0x08,
+	0x41, 0x08, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x41, 0x08, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x41, 0x08, 0x41, 0x08, 0xa7, 0x40, 0x71, 0xa1,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0xe8, 0x50,
+	0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x88, 0x31,
+	0x4e, 0x4a, 0x91, 0x52, 0x6f, 0x4a, 0xeb, 0x39,
+	0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x05, 0x21,
+	0xaa, 0x31, 0x2e, 0x42, 0x70, 0x4a, 0x0d, 0x42,
+	0x26, 0x21, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xe3, 0x18, 0xe3, 0x18,
+	0x26, 0x21, 0xec, 0x39, 0x4f, 0x4a, 0x2e, 0x42,
+	0x68, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x25, 0x21, 0xec, 0x39, 0x4f, 0x4a, 0x2d, 0x42,
+	0xcb, 0x39, 0x25, 0x21, 0xcb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x67, 0x29, 0x04, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x04, 0x21, 0x67, 0x29, 0x68, 0x29, 0xb1, 0x52,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0x99, 0x73, 0xba, 0x73, 0x4f, 0x4a, 0x68, 0x29,
+	0x67, 0x29, 0xe4, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x29, 0x51, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x70, 0x91, 0x83, 0x20, 0x41, 0x08, 0x41, 0x08,
+	0x41, 0x08, 0x41, 0x08, 0x41, 0x08, 0x61, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x61, 0x08, 0x61, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x61, 0x08, 0x83, 0x20,
+	0x6f, 0x91, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x70, 0x99,
+	0x62, 0x10, 0x61, 0x08, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x26, 0x21, 0xf4, 0x5a, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0x99, 0x73, 0xb1, 0x52, 0xe3, 0x18, 0xe3, 0x18,
+	0x26, 0x21, 0x70, 0x4a, 0x35, 0x63, 0x99, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0x99, 0x73, 0x2e, 0x42, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xcb, 0x39, 0x99, 0x73, 0x91, 0x52, 0x70, 0x4a,
+	0x99, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xf4, 0x5a, 0x89, 0x31, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x0d, 0x42,
+	0x99, 0x6b, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x99, 0x73, 0x36, 0x63, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x4f, 0x4a,
+	0xba, 0x73, 0xb2, 0x52, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x25, 0x21, 0xb2, 0x52,
+	0x99, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0x99, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x99, 0x73, 0x90, 0x4a, 0x04, 0x21,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x2a, 0x59, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x70, 0x99,
+	0x83, 0x18, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x41, 0x08, 0x61, 0x08, 0x61, 0x08, 0x61, 0x08,
+	0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10,
+	0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x61, 0x08,
+	0x83, 0x20, 0x70, 0x99, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0xe8, 0x50, 0x61, 0x08, 0x82, 0x10, 0x82, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x25, 0x21, 0x57, 0x6b, 0xba, 0x73, 0xba, 0x73,
+	0x99, 0x73, 0x36, 0x63, 0x36, 0x63, 0x99, 0x73,
+	0xba, 0x73, 0x91, 0x52, 0xe3, 0x18, 0xe3, 0x18,
+	0x25, 0x21, 0x99, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x99, 0x73, 0x56, 0x63, 0x99, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0x70, 0x4a, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x14, 0x5b, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0x98, 0x6b, 0x26, 0x21,
+	0xe3, 0x18, 0xe3, 0x18, 0x2d, 0x42, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0x78, 0x6b, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xca, 0x39, 0x99, 0x73,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x04, 0x21, 0x36, 0x63, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xd2, 0x52, 0xe3, 0x18, 0xe3, 0x18,
+	0x15, 0x63, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xf4, 0x5a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x09, 0x51,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0xa6, 0x30,
+	0x41, 0x08, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x82, 0x10, 0x82, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0x82, 0x10,
+	0x82, 0x10, 0xc6, 0x38, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x70, 0x99, 0x2c, 0x71, 0x2c, 0x71, 0x2b, 0x69,
+	0x0a, 0x59, 0xe6, 0x38, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xb2, 0x52, 0xba, 0x73, 0x99, 0x73, 0x6f, 0x4a,
+	0x04, 0x21, 0xe3, 0x18, 0xe3, 0x18, 0x05, 0x21,
+	0xcb, 0x39, 0x88, 0x31, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xd3, 0x5a, 0xd2, 0x52, 0x0d, 0x42,
+	0x67, 0x29, 0xe4, 0x18, 0xe3, 0x18, 0x46, 0x29,
+	0x15, 0x63, 0xba, 0x73, 0xba, 0x73, 0xaa, 0x31,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x04, 0x21, 0x99, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xd2, 0x52, 0xa9, 0x31, 0x25, 0x21, 0x25, 0x21,
+	0x0c, 0x3a, 0x57, 0x6b, 0x0d, 0x42, 0xe3, 0x18,
+	0xe3, 0x18, 0x26, 0x21, 0x99, 0x73, 0xba, 0x73,
+	0x36, 0x63, 0x67, 0x29, 0xe3, 0x18, 0x04, 0x21,
+	0x89, 0x31, 0x90, 0x52, 0x99, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x46, 0x29, 0x78, 0x6b, 0xba, 0x73,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x4f, 0x4a, 0xba, 0x73, 0x99, 0x73,
+	0x4f, 0x4a, 0x88, 0x31, 0x68, 0x29, 0x68, 0x29,
+	0x67, 0x29, 0x04, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0x04, 0x21, 0x68, 0x29, 0x68, 0x29, 0x68, 0x29,
+	0x88, 0x31, 0x91, 0x52, 0xba, 0x73, 0xba, 0x73,
+	0xec, 0x39, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0x70, 0x99, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x0c, 0x71, 0x41, 0x08,
+	0x41, 0x08, 0x41, 0x08, 0x61, 0x08, 0x61, 0x08,
+	0x82, 0x10, 0x82, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10,
+	0xa2, 0x10, 0x82, 0x10, 0x2c, 0x71, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x4d, 0x79, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x25, 0x21,
+	0x99, 0x73, 0xba, 0x73, 0x4f, 0x4a, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x04, 0x21, 0x57, 0x6b, 0xba, 0x73, 0x15, 0x63,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x70, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x04, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x2d, 0x42, 0xba, 0x73, 0x99, 0x73,
+	0x46, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xec, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x04, 0x21, 0x15, 0x63, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xf4, 0x5a, 0xba, 0x73, 0xd2, 0x52,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x15, 0x63, 0xba, 0x73,
+	0xb1, 0x52, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe5, 0x30,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x84, 0x20, 0x41, 0x08,
+	0x41, 0x08, 0x61, 0x08, 0x61, 0x08, 0x82, 0x10,
+	0x82, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xa2, 0x10, 0xa4, 0x28, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x70, 0xa1, 0xc3, 0x18, 0xc3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xca, 0x39,
+	0xba, 0x73, 0xba, 0x73, 0x26, 0x21, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xec, 0x39, 0xba, 0x73, 0xba, 0x73,
+	0x46, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x91, 0x52, 0xba, 0x73, 0x15, 0x63,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x91, 0x52, 0xba, 0x73, 0xba, 0x73, 0x57, 0x6b,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73, 0x4f, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x09, 0x51,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x4e, 0x89, 0x41, 0x08, 0x41, 0x08,
+	0x41, 0x08, 0x61, 0x08, 0x82, 0x10, 0x82, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10, 0x4e, 0x89,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x71, 0xa1, 0x09, 0x59, 0xa2, 0x10, 0xc3, 0x18,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xec, 0x39,
+	0xba, 0x73, 0x99, 0x73, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x46, 0x29, 0xba, 0x73, 0xba, 0x73,
+	0xca, 0x39, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xb2, 0x52, 0xba, 0x73, 0xf3, 0x5a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39,
+	0xba, 0x73, 0xba, 0x73, 0xb2, 0x52, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73, 0x4e, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x05, 0x29, 0x08, 0x49, 0x4e, 0x89,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xe9, 0x58, 0x41, 0x08, 0x41, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x82, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0x2a, 0x61,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x71, 0xa1, 0x0a, 0x61,
+	0x83, 0x18, 0x82, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xec, 0x39,
+	0xba, 0x73, 0x99, 0x73, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x46, 0x29,
+	0x4f, 0x4a, 0xd3, 0x5a, 0xf3, 0x5a, 0xb1, 0x52,
+	0x0d, 0x42, 0x46, 0x29, 0x99, 0x73, 0xba, 0x73,
+	0x0c, 0x3a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xb2, 0x52, 0xba, 0x73, 0xf3, 0x5a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x67, 0x29, 0x99, 0x6b,
+	0xba, 0x73, 0x36, 0x63, 0x05, 0x21, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0x04, 0x21, 0xe3, 0x18,
+	0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73, 0x4e, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x4c, 0x71,
+	0x70, 0x99, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xa6, 0x38, 0x41, 0x08, 0x41, 0x08,
+	0x61, 0x08, 0x82, 0x10, 0xa2, 0x10, 0xc3, 0x18,
+	0x4c, 0x71, 0x91, 0xa9, 0x70, 0x99, 0xe4, 0x28,
+	0xe3, 0x18, 0xe4, 0x28, 0x70, 0x99, 0x91, 0xa9,
+	0x4c, 0x71, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18, 0x07, 0x49,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x63, 0x18, 0x61, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18, 0xec, 0x39,
+	0xba, 0x73, 0x99, 0x73, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xec, 0x39, 0x99, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x99, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xb2, 0x52, 0xba, 0x73, 0xf3, 0x5a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x05, 0x21, 0x36, 0x63, 0xba, 0x73,
+	0x99, 0x6b, 0x67, 0x29, 0x04, 0x21, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0x04, 0x21, 0x04, 0x21,
+	0x04, 0x21, 0x57, 0x6b, 0xba, 0x73, 0x4e, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x85, 0x30, 0x41, 0x08, 0x61, 0x08,
+	0x61, 0x08, 0x82, 0x10, 0xa2, 0x10, 0xe4, 0x20,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x4d, 0x79,
+	0xe3, 0x18, 0x4d, 0x79, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xe4, 0x28, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe6, 0x38,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x62, 0x10, 0x41, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x82, 0x10, 0x82, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18, 0xec, 0x39,
+	0xba, 0x73, 0x99, 0x73, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xa9, 0x31, 0x99, 0x73, 0xba, 0x73,
+	0x99, 0x73, 0x15, 0x63, 0xf4, 0x5a, 0x57, 0x6b,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xb2, 0x52, 0xba, 0x73, 0xf3, 0x5a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xd2, 0x52, 0xba, 0x73, 0xba, 0x73,
+	0xeb, 0x39, 0x04, 0x21, 0x04, 0x21, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0x04, 0x21, 0x04, 0x21,
+	0x04, 0x21, 0x57, 0x6b, 0xba, 0x73, 0x4e, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x85, 0x30, 0x41, 0x08, 0x61, 0x08,
+	0x82, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xe4, 0x28,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x4d, 0x79,
+	0xc3, 0x18, 0x4d, 0x79, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xe4, 0x28, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x06, 0x39,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x62, 0x10, 0x41, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18, 0xec, 0x39,
+	0xba, 0x73, 0x99, 0x73, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x36, 0x63, 0xba, 0x73, 0x57, 0x6b,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x47, 0x29, 0x70, 0x4a, 0xba, 0x73, 0xba, 0x73,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xb2, 0x52, 0xba, 0x73, 0xf3, 0x5a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x67, 0x29, 0xba, 0x73, 0xba, 0x73, 0x90, 0x4a,
+	0xe3, 0x18, 0x04, 0x21, 0xe3, 0x18, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73, 0x4e, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x28, 0x49,
+	0x4d, 0x81, 0x91, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xa6, 0x38, 0x61, 0x08, 0x61, 0x08,
+	0x82, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18,
+	0x4c, 0x71, 0x91, 0xa9, 0x70, 0x99, 0xe4, 0x20,
+	0xc3, 0x18, 0xc4, 0x20, 0x70, 0x99, 0x91, 0xa9,
+	0x2b, 0x69, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x08, 0x49,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x62, 0x10, 0x41, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x82, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xec, 0x39,
+	0xba, 0x73, 0x99, 0x73, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x67, 0x29, 0xba, 0x73, 0xba, 0x73, 0xcb, 0x39,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x04, 0x21, 0xba, 0x73, 0xba, 0x73,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xb2, 0x52, 0xba, 0x73, 0xf3, 0x5a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x04, 0x21, 0xd3, 0x5a, 0xb2, 0x52, 0x04, 0x21,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73, 0x4e, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xc3, 0x18, 0xc3, 0x20, 0xe7, 0x40, 0x4e, 0x81,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xe9, 0x58, 0x61, 0x08, 0x61, 0x08,
+	0x82, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0x2a, 0x61,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x70, 0xa1, 0xc8, 0x50,
+	0x61, 0x10, 0x82, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x0c, 0x42,
+	0xba, 0x73, 0x99, 0x73, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xaa, 0x31, 0xba, 0x73, 0xba, 0x73, 0x25, 0x21,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x04, 0x21, 0xba, 0x73, 0xba, 0x73,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xb2, 0x52, 0xba, 0x73, 0xf3, 0x5a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73, 0x4e, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10, 0xe8, 0x48,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x4e, 0x81, 0x61, 0x08, 0x61, 0x08,
+	0x82, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0x6e, 0x89,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x4f, 0x89, 0xc5, 0x28, 0xa2, 0x10, 0xc3, 0x18,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x0c, 0x42,
+	0xba, 0x73, 0x99, 0x73, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xcb, 0x39, 0xba, 0x73, 0xba, 0x73, 0x04, 0x21,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x04, 0x21, 0xba, 0x73, 0xba, 0x73,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xb2, 0x52, 0xba, 0x73, 0xf3, 0x5a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73, 0x4e, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10, 0xc5, 0x28,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x83, 0x20, 0x61, 0x08,
+	0x82, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe5, 0x28, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x70, 0x99, 0xa2, 0x10, 0xc3, 0x18,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xec, 0x39,
+	0xba, 0x73, 0x99, 0x73, 0xe4, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xcb, 0x39, 0xba, 0x73, 0xba, 0x73, 0x04, 0x21,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x04, 0x21, 0xba, 0x73, 0xba, 0x73,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xb2, 0x52, 0xba, 0x73, 0xf3, 0x5a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x70, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73, 0x4e, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xa2, 0x10, 0xa2, 0x10,
+	0x70, 0x99, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x0b, 0x69, 0x61, 0x08,
+	0x82, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0x4c, 0x71, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x2d, 0x79, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xa9, 0x31,
+	0xba, 0x73, 0xba, 0x73, 0x67, 0x29, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xa9, 0x31, 0xba, 0x73, 0xba, 0x73, 0x46, 0x29,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x04, 0x21, 0xba, 0x73, 0xba, 0x73,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x91, 0x52, 0xba, 0x73, 0x15, 0x63,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73, 0x4e, 0x4a,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xb1, 0x52, 0xba, 0x73,
+	0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0x09, 0x59,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0xa5, 0x30,
+	0x82, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0x06, 0x39, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x70, 0x99, 0x2c, 0x79, 0x2d, 0x79, 0x2e, 0x81,
+	0x2d, 0x79, 0xc7, 0x40, 0x82, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0x04, 0x21,
+	0x99, 0x73, 0xba, 0x73, 0xb2, 0x52, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x26, 0x21, 0x99, 0x73, 0xba, 0x73, 0x0d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x25, 0x21, 0xba, 0x73, 0xba, 0x73,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x2e, 0x42, 0xba, 0x73, 0x99, 0x73,
+	0x46, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xeb, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x15, 0x63, 0xba, 0x73, 0x91, 0x52,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xf3, 0x5a, 0xba, 0x73,
+	0xd2, 0x52, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x4c, 0x71, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x70, 0x99,
+	0xa3, 0x20, 0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18,
+	0xe5, 0x28, 0x70, 0x99, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0xe9, 0x50, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x4f, 0x4a, 0xba, 0x73, 0xba, 0x73, 0xd3, 0x5a,
+	0x47, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0x47, 0x29,
+	0x0c, 0x42, 0xa9, 0x31, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xf4, 0x5a, 0xba, 0x73, 0x99, 0x6b,
+	0xec, 0x39, 0x04, 0x21, 0x04, 0x21, 0xa9, 0x31,
+	0x91, 0x52, 0x99, 0x6b, 0xba, 0x73, 0xba, 0x73,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x46, 0x29, 0x99, 0x73, 0xba, 0x73,
+	0x35, 0x63, 0x67, 0x29, 0xe3, 0x18, 0x04, 0x21,
+	0x88, 0x31, 0x4e, 0x4a, 0x78, 0x6b, 0xba, 0x73,
+	0xba, 0x73, 0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x91, 0x52, 0xba, 0x73, 0x99, 0x6b,
+	0xa9, 0x31, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x18, 0xeb, 0x39, 0x99, 0x73, 0xba, 0x73,
+	0x2e, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x20, 0x4d, 0x79, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x6f, 0x91, 0xa4, 0x20, 0xa2, 0x10, 0xc3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe5, 0x28,
+	0x6f, 0x91, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x70, 0x99,
+	0x62, 0x10, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18,
+	0x04, 0x21, 0xf4, 0x5a, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x99, 0x6b, 0x99, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xf4, 0x5a, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x67, 0x29, 0x99, 0x6b, 0xba, 0x73,
+	0xba, 0x73, 0x99, 0x73, 0x99, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0x36, 0x63, 0x05, 0x21, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x4e, 0x42, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0x78, 0x6b, 0x99, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x70, 0x4a, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x46, 0x29, 0x78, 0x6b, 0xba, 0x73,
+	0xba, 0x73, 0x99, 0x6b, 0x78, 0x6b, 0x78, 0x6b,
+	0x78, 0x6b, 0x78, 0x6b, 0x78, 0x6b, 0x78, 0x6b,
+	0x78, 0x6b, 0x78, 0x6b, 0x78, 0x6b, 0x78, 0x6b,
+	0x99, 0x73, 0xba, 0x73, 0xba, 0x73, 0x57, 0x6b,
+	0x04, 0x21, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x20, 0x70, 0x99, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x71, 0xa1, 0xe7, 0x40, 0xc3, 0x18,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x28, 0x49, 0x91, 0xa1,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0xe8, 0x50,
+	0x41, 0x08, 0x41, 0x08, 0x41, 0x08, 0x61, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x04, 0x21, 0x4f, 0x4a, 0x99, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0x99, 0x73, 0x14, 0x5b, 0xe4, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x89, 0x31, 0x57, 0x6b,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x36, 0x63, 0xb2, 0x52, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x99, 0x6b, 0xba, 0x73, 0x2d, 0x42,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x2e, 0x42,
+	0x99, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xf4, 0x5a, 0x15, 0x63,
+	0xba, 0x73, 0x4e, 0x42, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x89, 0x31, 0x57, 0x6b,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0x15, 0x63, 0x67, 0x29,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x29, 0x59, 0x92, 0xa9, 0x92, 0xa9,
+	0x70, 0x99, 0x2c, 0x71, 0x0b, 0x69, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x4e, 0x89,
+	0x07, 0x41, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe4, 0x20,
+	0x28, 0x49, 0x6e, 0x89, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x2d, 0x79,
+	0x41, 0x08, 0x41, 0x08, 0x61, 0x08, 0x61, 0x08,
+	0x61, 0x08, 0x82, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x05, 0x21,
+	0xca, 0x39, 0x2d, 0x42, 0x0d, 0x42, 0xaa, 0x31,
+	0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x04, 0x21,
+	0xeb, 0x39, 0x6f, 0x4a, 0x4f, 0x4a, 0xec, 0x39,
+	0x47, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0x89, 0x31,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x68, 0x29, 0x68, 0x29, 0x25, 0x21,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x26, 0x21, 0x0c, 0x42, 0x4f, 0x4a, 0x2d, 0x42,
+	0xca, 0x39, 0x25, 0x21, 0xe3, 0x18, 0x05, 0x21,
+	0xec, 0x39, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x57, 0x6b, 0xba, 0x73,
+	0x4f, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x4a,
+	0xba, 0x73, 0x36, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x04, 0x21,
+	0x89, 0x31, 0x0d, 0x42, 0x2e, 0x42, 0x2e, 0x42,
+	0x2e, 0x42, 0x2e, 0x42, 0x2e, 0x42, 0x2e, 0x42,
+	0x2e, 0x42, 0x2e, 0x42, 0x2e, 0x42, 0x2e, 0x42,
+	0x0d, 0x42, 0x88, 0x31, 0xe4, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x88, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x67, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe4, 0x20, 0x06, 0x39, 0xc4, 0x20,
+	0xa2, 0x10, 0x82, 0x10, 0x82, 0x10, 0x0b, 0x69,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x91, 0xa1, 0x4e, 0x81, 0x4c, 0x71,
+	0x4b, 0x69, 0x4c, 0x71, 0x6e, 0x89, 0x91, 0xa1,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0xc7, 0x40, 0x41, 0x08, 0x61, 0x08, 0x82, 0x10,
+	0x82, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x36, 0x63, 0xba, 0x73,
+	0x70, 0x4a, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x4a,
+	0xba, 0x73, 0x56, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xa9, 0x31, 0xba, 0x73, 0xba, 0x73,
+	0x46, 0x29, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xa2, 0x10, 0x82, 0x10, 0x82, 0x10, 0x62, 0x10,
+	0x2d, 0x79, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x70, 0x99, 0x62, 0x10, 0x61, 0x08, 0x82, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xd3, 0x5a, 0xba, 0x73,
+	0x15, 0x63, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x4f, 0x4a,
+	0xba, 0x73, 0x56, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x4f, 0x4a, 0xba, 0x73, 0x99, 0x6b,
+	0xe4, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xa2, 0x10, 0xa2, 0x10, 0x82, 0x10, 0x61, 0x08,
+	0xc7, 0x48, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x6f, 0x91,
+	0x4f, 0x91, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xe9, 0x50, 0x82, 0x10, 0x82, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x04, 0x21, 0x04, 0x21, 0x04, 0x21, 0x04, 0x21,
+	0x04, 0x21, 0x04, 0x21, 0x04, 0x21, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xec, 0x39, 0xba, 0x73,
+	0xba, 0x73, 0xca, 0x39, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x4f, 0x4a,
+	0xba, 0x73, 0x57, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x26, 0x21, 0x78, 0x6b, 0xba, 0x73, 0xb2, 0x52,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xa2, 0x10, 0x82, 0x10, 0x82, 0x10,
+	0x4e, 0x89, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x2c, 0x71, 0x62, 0x10,
+	0x41, 0x08, 0xc9, 0x50, 0x71, 0xa1, 0x92, 0xa9,
+	0x70, 0xa1, 0x83, 0x20, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x04, 0x21, 0x04, 0x21,
+	0x04, 0x21, 0x24, 0x21, 0x24, 0x21, 0x24, 0x21,
+	0x04, 0x21, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x04, 0x21, 0x57, 0x63,
+	0xba, 0x73, 0x78, 0x6b, 0xca, 0x39, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x4f, 0x4a,
+	0xba, 0x73, 0x57, 0x63, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x67, 0x29,
+	0x36, 0x63, 0xba, 0x73, 0x99, 0x73, 0x67, 0x29,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10, 0xc5, 0x30,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xc7, 0x40, 0x41, 0x08, 0x41, 0x08,
+	0x41, 0x08, 0x41, 0x08, 0x62, 0x10, 0xe9, 0x58,
+	0x84, 0x28, 0x61, 0x08, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x68, 0x29,
+	0x99, 0x6b, 0xba, 0x73, 0xba, 0x73, 0x35, 0x63,
+	0x90, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a,
+	0x0c, 0x42, 0xe3, 0x18, 0xe3, 0x18, 0x4f, 0x4a,
+	0xba, 0x73, 0x78, 0x6b, 0x4f, 0x4a, 0x4f, 0x4a,
+	0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a,
+	0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a,
+	0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a,
+	0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a,
+	0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a, 0x4f, 0x4a,
+	0x4f, 0x4a, 0x70, 0x4a, 0xf3, 0x5a, 0x99, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0x2d, 0x42, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0x2b, 0x61,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x71, 0xa1,
+	0xa6, 0x38, 0x84, 0x20, 0x0b, 0x69, 0x70, 0x99,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x84, 0x28, 0x41, 0x08, 0x41, 0x08,
+	0x41, 0x08, 0x41, 0x08, 0x41, 0x08, 0x61, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x68, 0x29, 0x36, 0x63, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0x88, 0x31, 0xe3, 0x18, 0x4f, 0x4a,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0xba, 0x73, 0xba, 0x73, 0xba, 0x73, 0xba, 0x73,
+	0x78, 0x6b, 0xec, 0x39, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x2a, 0x61,
+	0x92, 0xa9, 0x92, 0xa9, 0x70, 0x99, 0xa5, 0x28,
+	0x61, 0x08, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x4f, 0x91, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x2d, 0x79, 0x0b, 0x71, 0xe9, 0x58,
+	0x0a, 0x61, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xa6, 0x38, 0x41, 0x08, 0x41, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0x61, 0x08, 0x61, 0x08,
+	0x61, 0x08, 0x82, 0x10, 0x82, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x04, 0x21, 0xec, 0x39, 0xb2, 0x52,
+	0x35, 0x63, 0x57, 0x63, 0x57, 0x63, 0x57, 0x63,
+	0xf3, 0x5a, 0x04, 0x21, 0xe3, 0x18, 0x67, 0x29,
+	0x15, 0x63, 0x57, 0x63, 0x57, 0x63, 0x57, 0x63,
+	0x57, 0x63, 0x57, 0x63, 0x57, 0x63, 0x57, 0x63,
+	0x57, 0x63, 0x57, 0x63, 0x57, 0x63, 0x57, 0x63,
+	0x57, 0x63, 0x57, 0x63, 0x57, 0x63, 0x57, 0x63,
+	0x57, 0x63, 0x57, 0x63, 0x57, 0x63, 0x57, 0x63,
+	0x57, 0x63, 0x57, 0x63, 0x57, 0x63, 0x57, 0x63,
+	0x57, 0x63, 0x36, 0x63, 0xf3, 0x5a, 0x2e, 0x42,
+	0x25, 0x21, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x07, 0x41, 0x2c, 0x71, 0xa3, 0x18, 0x82, 0x10,
+	0x61, 0x08, 0x61, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x4e, 0x81, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x2e, 0x81, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x41, 0x08, 0x4e, 0x89, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xc7, 0x40, 0x41, 0x08, 0x61, 0x08,
+	0x61, 0x08, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10,
+	0x82, 0x10, 0x82, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10, 0x82, 0x10,
+	0x82, 0x10, 0x61, 0x08, 0x61, 0x08, 0x61, 0x08,
+	0x2c, 0x79, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0xc7, 0x40, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x41, 0x08, 0x84, 0x28, 0x91, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0xc7, 0x48, 0x41, 0x08, 0x61, 0x08,
+	0x82, 0x10, 0x82, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10, 0xa2, 0x10,
+	0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10,
+	0x0a, 0x61, 0x92, 0xa9, 0x92, 0xa9, 0x70, 0x99,
+	0x61, 0x10, 0x41, 0x08, 0x41, 0x08, 0x41, 0x08,
+	0x61, 0x08, 0x61, 0x08, 0xe9, 0x50, 0x71, 0xa1,
+	0x0b, 0x69, 0x83, 0x20, 0x61, 0x08, 0x61, 0x08,
+	0x82, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xe7, 0x40, 0x70, 0x91, 0x91, 0xa9, 0xe9, 0x50,
+	0x61, 0x08, 0x61, 0x08, 0x61, 0x08, 0x61, 0x08,
+	0x61, 0x08, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10,
+	0x61, 0x08, 0x61, 0x08, 0x61, 0x08, 0x82, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xa2, 0x10, 0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xa2, 0x10, 0xa2, 0x10, 0x82, 0x10,
+	0x61, 0x08, 0x61, 0x08, 0x61, 0x08, 0x82, 0x10,
+	0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10,
+	0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10, 0x82, 0x10,
+	0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xa2, 0x10, 0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x4d, 0x79,
+	0x92, 0xa9, 0x06, 0x39, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x70, 0x99, 0x71, 0xa1, 0xe4, 0x20,
+	0xe3, 0x18, 0x05, 0x31, 0x2a, 0x61, 0x6f, 0x89,
+	0x92, 0xa9, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x05, 0x31, 0x2a, 0x61,
+	0x6f, 0x89, 0x92, 0xa9, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x20, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x70, 0x99,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xa2, 0x10,
+	0xa2, 0x10, 0x82, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x07, 0x41,
+	0x92, 0xa9, 0x4b, 0x69, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x07, 0x41, 0x92, 0xa9, 0x4c, 0x71, 0xe3, 0x18,
+	0xe3, 0x18, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x20, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x70, 0x99,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xa2, 0x10, 0xa2, 0x10, 0xa2, 0x10, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x70, 0x99, 0x71, 0xa1, 0xe3, 0x20, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x4c, 0x79, 0x92, 0xa9, 0x06, 0x39, 0xe3, 0x18,
+	0xe3, 0x18, 0x6f, 0x91, 0x2b, 0x61, 0x06, 0x39,
+	0x70, 0x99, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x91, 0x2b, 0x61,
+	0x06, 0x39, 0x70, 0x99, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x20, 0x92, 0xa9, 0x4b, 0x69, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18, 0xc3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xc3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x2b, 0x61, 0x92, 0xa9, 0x08, 0x49, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe4, 0x20,
+	0x71, 0xa1, 0x6f, 0x91, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x70, 0x99, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x70, 0x99, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x20, 0x92, 0xa9, 0x4b, 0x69, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xc3, 0x18, 0xc3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe5, 0x28, 0x92, 0xa9, 0x4e, 0x81, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x29, 0x51,
+	0x92, 0xa9, 0x2a, 0x59, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x70, 0x99, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x70, 0x99, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x20, 0x92, 0xa9, 0x70, 0x99, 0x70, 0x99,
+	0x71, 0xa9, 0x6f, 0x91, 0x2a, 0x61, 0xe4, 0x20,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x4e, 0x81, 0x71, 0xa9, 0xe5, 0x28,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6e, 0x89,
+	0x91, 0xa9, 0xe4, 0x28, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x70, 0x99, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x70, 0x99, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x20, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x6f, 0x89,
+	0xe4, 0x20, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x28, 0x49, 0x92, 0xa9, 0x2a, 0x61,
+	0xe3, 0x18, 0xe3, 0x18, 0x05, 0x31, 0x92, 0xa9,
+	0x4d, 0x79, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x70, 0x99, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x70, 0x99, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x20, 0x4d, 0x79, 0x07, 0x41, 0xe4, 0x20,
+	0xe4, 0x28, 0x08, 0x49, 0x70, 0x99, 0x92, 0xa9,
+	0x2a, 0x59, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe4, 0x20, 0x71, 0xa1, 0x70, 0x91,
+	0xe3, 0x18, 0xe3, 0x18, 0x4b, 0x69, 0x92, 0xa9,
+	0x07, 0x41, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x70, 0x99, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x70, 0x99, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x06, 0x31, 0x92, 0xa9,
+	0x6e, 0x89, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x4c, 0x71, 0x92, 0xa9,
+	0x06, 0x39, 0xe3, 0x18, 0x70, 0x99, 0x70, 0x99,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x70, 0x99, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x70, 0x99, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x91, 0xa1,
+	0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x06, 0x39, 0x92, 0xa9,
+	0x4c, 0x71, 0x08, 0x49, 0x92, 0xa9, 0x2b, 0x61,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x70, 0x99, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x70, 0x99, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x06, 0x31, 0x92, 0xa9,
+	0x6e, 0x89, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x6f, 0x91,
+	0x91, 0xa1, 0x4e, 0x81, 0x92, 0xa9, 0x05, 0x29,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x70, 0x99, 0x70, 0x99, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x70, 0x99, 0x70, 0x99, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0x2b, 0x61, 0x2a, 0x61, 0x06, 0x31, 0xe4, 0x20,
+	0xe4, 0x28, 0x08, 0x49, 0x70, 0x99, 0x92, 0xa9,
+	0x2a, 0x61, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0x29, 0x59,
+	0x92, 0xa9, 0x92, 0xa9, 0x4e, 0x81, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x6e, 0x89, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x6f, 0x89, 0xe3, 0x18, 0xe3, 0x18, 0xe4, 0x28,
+	0x92, 0xa9, 0x6f, 0x89, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x6e, 0x89, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x6f, 0x89, 0xe3, 0x18, 0xe3, 0x18,
+	0x4c, 0x71, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x6f, 0x89,
+	0xe4, 0x20, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe4, 0x20,
+	0x71, 0xa9, 0x92, 0xa9, 0x28, 0x49, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0x6e, 0x89, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x6f, 0x89, 0xe3, 0x18, 0xe3, 0x18, 0xe4, 0x28,
+	0x92, 0xa9, 0x6f, 0x89, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0x6e, 0x89, 0x92, 0xa9,
+	0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9, 0x92, 0xa9,
+	0x92, 0xa9, 0x6f, 0x89, 0xe3, 0x18, 0xe3, 0x18,
+	0xe4, 0x28, 0x2a, 0x61, 0x6f, 0x89, 0x91, 0xa1,
+	0x71, 0xa1, 0x6f, 0x91, 0x2a, 0x61, 0xe4, 0x20,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
+	0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18, 0xe3, 0x18,
 };
diff --git a/hw-tests/dual-core/main.c b/hw-tests/dual-core/main.c
index 60636833753d48b3812833266f01876297037a1d..30026b8051f1e64f775dbcee8df46fd7b1d8615b 100644
--- a/hw-tests/dual-core/main.c
+++ b/hw-tests/dual-core/main.c
@@ -3,27 +3,34 @@
  ******************************************************************************/
 
 /***** Includes *****/
-#include "pmic.h"
-#include "leds.h"
 #include "card10.h"
+#include "leds.h"
+#include "pmic.h"
 
-#include "gfx.h"
 #include "display.h"
+#include "gfx.h"
 
 #include "tmr_utils.h"
 
-#include <stdio.h>
+#include <Heart.h>
 #include <stdint.h>
+#include <stdio.h>
 #include <string.h>
-#include <Heart.h>
 
 int main(void)
 {
 	card10_init();
 	card10_diag();
 
-	gfx_copy_region_raw(
-		&display_screen, 0, 0, 160, 80, 2, (const void *)(Heart)
+	gfx_copy_region(
+		&display_screen,
+		0,
+		0,
+		160,
+		80,
+		GFX_RAW,
+		sizeof(Heart),
+		(const void *)(Heart)
 	);
 	gfx_update(&display_screen);
 
diff --git a/hw-tests/ecgtest/main.c b/hw-tests/ecgtest/main.c
index 2ca6cbdd84f9f3279af06eebccbc282b37f41fe9..f572ce73493280b45b92d8cc8923d5ffa2b9c6d4 100644
--- a/hw-tests/ecgtest/main.c
+++ b/hw-tests/ecgtest/main.c
@@ -401,11 +401,11 @@ int main(void)
 
 	uint32_t ecgFIFO, readECGSamples, idx, ETAG[32], status;
 	int16_t ecgSample[32];
-	const int EINT_STATUS_MASK       = 1 << 23;
-	const int FIFO_OVF_MASK          = 0x7;
-	const int FIFO_VALID_SAMPLE_MASK = 0x0;
-	const int FIFO_FAST_SAMPLE_MASK  = 0x1;
-	const int ETAG_BITS_MASK         = 0x7;
+	const uint32_t EINT_STATUS_MASK       = 1 << 23;
+	const uint32_t FIFO_OVF_MASK          = 0x7;
+	const uint32_t FIFO_VALID_SAMPLE_MASK = 0x0;
+	const uint32_t FIFO_FAST_SAMPLE_MASK  = 0x1;
+	const uint32_t ETAG_BITS_MASK         = 0x7;
 
 	while (1) {
 #if 1
diff --git a/hw-tests/hello-world/main.c b/hw-tests/hello-world/main.c
index 87fdab3ba7d8bf33eea462ce5b71d0bf1eacbd5e..5f2a82aad5b14a52cfa94ee3e3f6acf891a3dfa3 100644
--- a/hw-tests/hello-world/main.c
+++ b/hw-tests/hello-world/main.c
@@ -30,8 +30,15 @@ int main(void)
 	card10_init();
 	card10_diag();
 
-	gfx_copy_region_raw(
-		&display_screen, 0, 0, 160, 80, 2, (const void *)(Heart)
+	gfx_copy_region(
+		&display_screen,
+		0,
+		0,
+		160,
+		80,
+		GFX_RAW,
+		sizeof(Heart),
+		(const void *)(Heart)
 	);
 	gfx_update(&display_screen);
 
diff --git a/hw-tests/ips/main.c b/hw-tests/ips/main.c
index 6aa51eae2c518e69219f7e16af89e39b33a4cb24..b638a7832310f0d681c57f979001b595fe1e140c 100644
--- a/hw-tests/ips/main.c
+++ b/hw-tests/ips/main.c
@@ -37,22 +37,24 @@ int main(void)
 	gfx_line(&display_screen, 100, 10, 70, 40, 2, yellow);
 	gfx_circle(&display_screen, 85, 25, 22, 2, green);
 
-	gfx_copy_region_raw(
+	gfx_copy_region(
 		&display_screen,
 		120,
 		0,
 		40,
 		40,
-		2,
+		GFX_RAW,
+		40 * 40 * 2,
 		(const void *)(gImage_40X40)
 	);
-	gfx_copy_region_raw(
+	gfx_copy_region(
 		&display_screen,
 		0,
 		0,
 		160,
 		80,
-		2,
+		GFX_RAW,
+		160 * 80 * 2,
 		(const void *)(gImage_160X80)
 	);
 	gfx_update(&display_screen);
diff --git a/lib/card10/card10.c b/lib/card10/card10.c
index 09cc44ff293b8001d7121be3b22b8939bc9fd0e8..51ac0429390159c97bd787bc1b59fd3654ad7c8d 100644
--- a/lib/card10/card10.c
+++ b/lib/card10/card10.c
@@ -69,7 +69,7 @@ void card10_init(void)
 	)
 		;
 	/* If we don't have a valid time yet, set it to 2019-01-01 */
-	if (RTC_GetSecond() < 1546300800UL) {
+	if (RTC_GetSecond() < 1546300800L) {
 		while (RTC_Init(MXC_RTC, 1546300800UL, 0, NULL) == E_BUSY)
 			;
 	}
@@ -224,7 +224,7 @@ void card10_poll(void)
 	portexpander_poll();
 }
 
-void card10_reset(void)
+void __attribute__((noreturn)) card10_reset(void)
 {
 	printf("Resetting ...\n");
 	/*
@@ -235,6 +235,9 @@ void card10_reset(void)
 		__asm volatile("nop");
 	}
 	MXC_GCR->rstr0 = MXC_F_GCR_RSTR0_SYSTEM;
+
+	while (1)
+		__WFI();
 }
 
 void GPIO0_IRQHandler(void)
diff --git a/lib/card10/card10.h b/lib/card10/card10.h
index fc90fe67f47527cbdbcf2a0b30a9c9d53d70d3df..192058f02a76361323e10c50d2e20f6a5a26f427 100644
--- a/lib/card10/card10.h
+++ b/lib/card10/card10.h
@@ -15,5 +15,5 @@ void core1_start(void *isr);
 void core1_stop(void);
 
 void card10_poll(void);
-void card10_reset(void);
+void card10_reset(void) __attribute__((noreturn));
 #endif
diff --git a/lib/card10/portexpander.c b/lib/card10/portexpander.c
index 52eb88975a660306f540567b55abe56dc53e6151..c1a025e299777e298c4fae47025ccfad11ae51d9 100644
--- a/lib/card10/portexpander.c
+++ b/lib/card10/portexpander.c
@@ -100,11 +100,10 @@ int portexpander_init(void)
 
 	// Enable pull-ups for buttons
 	// Enable outputs for the transistors, the LED and the LCD reset
-	for (int i = 0; i < sizeof(pe_pin_config) / sizeof(pe_pin_config[0]);
+	for (size_t i = 0; i < sizeof(pe_pin_config) / sizeof(pe_pin_config[0]);
 	     i++) {
-		MXC_ASSERT(
-			portexpander_config(&pe_pin_config[i]) == E_NO_ERROR
-		);
+		ret = portexpander_config(&pe_pin_config[i]);
+		MXC_ASSERT(ret == E_NO_ERROR);
 	}
 
 	// Latch inputs so we can figure out whether an interrupt was caused by a rising or falling edge
@@ -161,7 +160,7 @@ int portexpander_config(const portexpander_cfg_t *cfg)
 		return E_BAD_PARAM;
 	}
 
-	portexpander_write(PE_C_PULL_ENABLE, pull_selection_state);
+	portexpander_write(PE_C_PULL_SEL, pull_selection_state);
 	portexpander_write(PE_C_PULL_ENABLE, pull_enable_state);
 
 	return E_NO_ERROR;
diff --git a/lib/ff13/meson.build b/lib/ff13/meson.build
index 6336bf286498c0b4e89c720cc2e0e8a78beb0fe6..63f069c18b055ca9d5004ff6bd6cbe5295427490 100644
--- a/lib/ff13/meson.build
+++ b/lib/ff13/meson.build
@@ -1,6 +1,5 @@
 includes = include_directories(
   './Source/',
-  './util/',
 )
 
 sources = files(
@@ -8,7 +7,6 @@ sources = files(
   './Source/ff.c',
   './Source/ffsystem.c',
   './Source/ffunicode.c',
-  './util/fs_util.c',
 )
 
 lib = static_library(
@@ -16,6 +14,7 @@ lib = static_library(
   sources,
   include_directories: includes,
   dependencies: [periphdriver, mx25lba],
+  c_args: '-w',
 )
 
 libff13 = declare_dependency(
diff --git a/lib/ff13/util/fs_util.c b/lib/ff13/util/fs_util.c
deleted file mode 100644
index f576de73285568e4f7b712d6780f42cbb2655b3a..0000000000000000000000000000000000000000
--- a/lib/ff13/util/fs_util.c
+++ /dev/null
@@ -1,106 +0,0 @@
-#include "fs_util.h"
-#include "ff.h"
-#include <stdint.h>
-#include <string.h>
-
-FATFS FatFs;          /* File system object for logical drive */
-FS_USAGE FsUsage;
-
-
-int fs_info(FATFS *fs)
-{
-    memcpy(fs, &FatFs, sizeof(FATFS));
-    return 0;
-}
-int fs_usage(FATFS *fs, FS_USAGE *fs_usage)
-{
-    FRESULT res;
-    DWORD tot_clust, fre_clust, sec_size;
-
-    res = f_getfree("/", &fre_clust, &fs);
-    if(res != FR_OK)
-        return -res;
-
-    // sectore size = sectors per cluster *  sector size
-#if FF_MAX_SS == FF_MIN_SS
-    sec_size = fs->csize * FF_MAX_SS;
-#else
-    sec_size = fs->csize * fs.ssize;
-#endif
-
-    // total/free sectors * sectore size
-    tot_clust = fs->n_fatent - 2;
-    fs_usage->total = tot_clust * sec_size; //FatFs.ssize;
-    fs_usage->free = fre_clust * sec_size; //FatFs.ssize;
-
-    return 0;
-}
-
-int fs_read_file(char * filename, void * data, int len){
-    FIL file;
-    UINT readbytes;
-    int res;
-
-    res=f_open(&file, filename, FA_OPEN_EXISTING|FA_READ);
-    if(res){
-        return -1;
-    };
-
-    res = f_read(&file, data, len, &readbytes);
-    if(res){
-        return -1;
-    };
-
-    f_close(&file);
-
-	return readbytes;
-}
-
-int fs_read_text_file(char * filename, char * data, int len){
-    int readbytes;
-
-    if(len<1) return -1;
-    readbytes=fs_read_file(filename,data,len-1);
-    if(readbytes<0){
-        data[0]=0;
-        return readbytes;
-    };
-    data[readbytes]=0;
-    while(readbytes>0 && data[readbytes-1]<0x20){
-        data[--readbytes]=0;
-    };
-    return readbytes;
-}
-
-
-int fs_write_file(char * filename, const void * data, int len){
-    FIL file;
-    UINT writebytes;
-    int res;
-
-	res=f_open(&file, filename, FA_CREATE_ALWAYS|FA_WRITE);
-    if(res){
-        return -res;
-    };
-
-    res = f_write(&file, data, len, &writebytes);
-    if(res){
-        return -res;
-    };
-    f_close(&file);
-
-	return writebytes;
-}
-
-int fs_get_file_size(char * filename){
-    FILINFO finfo;
-    int res;
-
-    /// XXX: Untested
-    res=f_stat(filename, &finfo);
-    if(res){
-        return -1;
-    }
-
-    return finfo.fsize;
-}
diff --git a/lib/gfx/framebuffer.c b/lib/gfx/framebuffer.c
index 672e956a3467999a9d8c232acb3510f4711786cb..6c8dc3aac453214494b1758a6771a0ff3959ee8f 100644
--- a/lib/gfx/framebuffer.c
+++ b/lib/gfx/framebuffer.c
@@ -2,8 +2,8 @@
 
 void fb_clear_to_color(struct framebuffer *fb, Color c)
 {
-	for (int y = 0; y < fb->height; y++) {
-		for (int x = 0; x < fb->width; x++)
+	for (size_t y = 0; y < fb->height; y++) {
+		for (size_t x = 0; x < fb->width; x++)
 			fb_setpixel(fb, x, y, c);
 	}
 }
@@ -77,7 +77,7 @@ void *fb_pixel(struct framebuffer *fb, int x, int y)
 
 	if (xo < 0 || yo < 0)
 		return NULL;
-	if (xo >= fb->width || yo >= fb->height)
+	if (xo >= (int)fb->width || yo >= (int)fb->height)
 		return NULL;
 
 	const size_t bpp = fb_bytes_per_pixel(fb);
diff --git a/lib/gfx/gfx.c b/lib/gfx/gfx.c
index 49b8d3a8d618bf49c1ed849f49c97316b9210496..886ecdeeb99b6054ca718d05342438ade33eb25e 100644
--- a/lib/gfx/gfx.c
+++ b/lib/gfx/gfx.c
@@ -17,7 +17,7 @@ void gfx_setpixel(struct gfx_region *r, int x, int y, Color c)
 {
 	if (x < 0 || y < 0)
 		return;
-	if (x >= r->width || y >= r->height)
+	if ((size_t)x >= r->width || (size_t)y >= r->height)
 		return;
 
 	fb_setpixel(r->fb, r->x + x, r->y + y, c);
@@ -90,14 +90,11 @@ void gfx_puts(
 	while (*str) {
 		// if the current position plus the width of the next character
 		// would bring us outside of the display ...
-		if ((x + font->Width) > r->width) {
+		if ((x + font->Width) > (int)r->width) {
 			// ... we move down a line before printing the character
 			x = 0;
 			y += font->Height;
 		}
-		// if the line is outside the display we return
-		if (y >= r->height)
-			return;
 
 		// now print the character
 		gfx_putchar(font, r, x, y, *str, fg, bg);
@@ -273,15 +270,17 @@ Color gfx_color(struct gfx_region *reg, enum gfx_color color)
 	return gfx_color_rgb(reg, c->r, c->g, c->b);
 }
 
-void gfx_copy_region_raw(
+static void gfx_copy_region_raw(
 	struct gfx_region *reg,
 	int x,
 	int y,
 	int w,
 	int h,
-	size_t bpp,
+	size_t size,
 	const void *p
 ) {
+	size_t bpp = size / (w * h);
+
 	for (int y_ = 0; y_ < h; y_++) {
 		for (int x_ = 0; x_ < w; x_++) {
 			Color c;
@@ -299,6 +298,96 @@ void gfx_copy_region_raw(
 	}
 }
 
+static void gfx_copy_region_mono(
+	struct gfx_region *reg,
+	int x,
+	int y,
+	int w,
+	int h,
+	size_t size,
+	const void *p
+) {
+	const char *bp = p;
+	int bit        = 0;
+	Color white    = gfx_color(reg, WHITE);
+	Color black    = gfx_color(reg, BLACK);
+
+	for (int y_ = 0; y_ < h; y_++) {
+		for (int x_ = 0; x_ < w; x_++) {
+			int value = *bp & (1 << bit);
+			if (++bit >= 8) {
+				bp++;
+				bit %= 8;
+
+				if ((const void *)(bp) >= (p + size))
+					return;
+			}
+
+			Color c = value ? white : black;
+			gfx_setpixel(reg, x + x_, y + y_, c);
+		}
+	}
+}
+
+/*
+ * "Decompress" the image.  The algorithm works as follows:
+ *
+ * Each byte encodes up to 127 pixels in either white or black.  The most
+ * significant bit determines the color, the remaining 7 bits determine the
+ * amount.
+ */
+static void gfx_copy_region_rle_mono(
+	struct gfx_region *reg,
+	int x,
+	int y,
+	int w,
+	int h,
+	size_t size,
+	const void *p
+) {
+	const char *data = p;
+	int idx          = 0;
+	Color white      = gfx_color(reg, WHITE);
+	Color black      = gfx_color(reg, BLACK);
+
+	for (size_t i = 0; i < size; i++) {
+		Color color    = (data[i] & 0x80) ? white : black;
+		uint8_t length = data[i] & 0x7f;
+
+		for (int j = 0; j < length; j++) {
+			uint16_t x = idx % w;
+			uint16_t y = idx / w;
+			gfx_setpixel(reg, x, y, color);
+			idx++;
+		}
+	}
+}
+
+void gfx_copy_region(
+	struct gfx_region *reg,
+	int x,
+	int y,
+	int w,
+	int h,
+	enum gfx_encoding encoding,
+	size_t size,
+	const void *p
+) {
+	switch (encoding) {
+	case GFX_RAW:
+		gfx_copy_region_raw(reg, x, y, w, h, size, p);
+		break;
+	case GFX_MONO:
+		gfx_copy_region_mono(reg, x, y, w, h, size, p);
+		break;
+	case GFX_RLE_MONO:
+		gfx_copy_region_rle_mono(reg, x, y, w, h, size, p);
+		break;
+	default:
+		break;
+	}
+}
+
 void gfx_copy_raw(struct gfx_region *reg, const void *p, size_t size)
 {
 	fb_copy_raw(reg->fb, p, size);
diff --git a/lib/gfx/gfx.h b/lib/gfx/gfx.h
index 0f64a429b59170182077b7d01e2d1cd027743974..4c9a16e508fef1ac4d7346d7adeeee62d71d5c1f 100644
--- a/lib/gfx/gfx.h
+++ b/lib/gfx/gfx.h
@@ -43,6 +43,12 @@ enum gfx_color {
 	COLORS
 };
 
+enum gfx_encoding {
+	GFX_RAW,
+	GFX_MONO,
+	GFX_RLE_MONO
+};
+
 struct gfx_color_rgb {
 	uint8_t r;
 	uint8_t g;
@@ -51,8 +57,9 @@ struct gfx_color_rgb {
 
 Color gfx_color(struct gfx_region *reg, enum gfx_color color);
 
-void gfx_copy_region_raw(struct gfx_region *reg, int x, int y, int w, int h,
-					         size_t bpp, const void *p);
+void gfx_copy_region(struct gfx_region *reg, int x, int y, int w, int h,
+				enum gfx_encoding encoding, size_t size,
+							 const void *p);
 void gfx_copy_raw(struct gfx_region *reg, const void *p, size_t size);
 
 #endif
diff --git a/lib/gfx/textbuffer.c b/lib/gfx/textbuffer.c
index c52e68292a93efa87827c1a523a3d2d2cff73273..6034f2357f3c891befee082ccebdfcf82100b4ff 100644
--- a/lib/gfx/textbuffer.c
+++ b/lib/gfx/textbuffer.c
@@ -41,7 +41,7 @@ static void scrollup(struct txt_buffer *tm)
 
 	for (int row = 0; row < last_row; row++)
 		memcpy(&tm->text[row][0], &tm->text[row + 1][0], line_size);
-	for (int col = 0; col < width_(tm); col++) {
+	for (size_t col = 0; col < width_(tm); col++) {
 		struct txt_glyph *g = &tm->text[last_row][col];
 		g->ch               = ' ';
 		g->fg_color         = tm->fg_color;
@@ -63,7 +63,7 @@ static inline void advance_cursor(struct txt_buffer *tm)
 	const int last_row = height_(tm) - 1;
 
 	tm->cursor_column++;
-	if (tm->cursor_column >= width_(tm)) {
+	if (tm->cursor_column >= (int)width_(tm)) {
 		tm->cursor_column = 0;
 		tm->cursor_row++;
 		if (tm->cursor_row > last_row)
@@ -226,9 +226,9 @@ void txt_set_cursor(struct txt_buffer *tm, int x, int y, int draw_cursor)
 {
 	tm->draw_cursor = draw_cursor;
 
-	if (x < 0 || x >= width_(tm))
+	if (x < 0 || x >= (int)width_(tm))
 		return;
-	if (y < 0 || y >= height_(tm))
+	if (y < 0 || y >= (int)height_(tm))
 		return;
 
 	tm->cursor_column = x;
diff --git a/lib/micropython/gen-modules.py b/lib/micropython/gen-modules.py
index 64868e33e48f693ad7d9103e6590e3e83350407f..805c80c78b9d1da538c79095f270783686f54ace 100644
--- a/lib/micropython/gen-modules.py
+++ b/lib/micropython/gen-modules.py
@@ -3,6 +3,8 @@
 
 import sys
 import os
+import tempfile
+import shutil
 
 
 def main():
@@ -16,23 +18,41 @@ def main():
         modules |= makemoduledefs.find_module_registrations(source)
 
     stdout = sys.stdout
-    with open(sys.argv[2], "w") as f:
-        sys.stdout = f
+    with tempfile.TemporaryFile("w+") as temp:
+        sys.stdout = temp
         makemoduledefs.generate_module_table_header(sorted(modules))
-    sys.stdout = stdout
+        sys.stdout = stdout
+
+        # Read contents of existing file and compare
+        try:
+            with open(sys.argv[2], "r") as f:
+                old_content = f.read()
+        except FileNotFoundError:
+            old_content = ""
+
+        temp.seek(0)
+        new_content = temp.read()
+
+        if new_content == old_content:
+            # If both file contain the same content, exit early
+            sys.exit(0)
 
-    try:
-        os.mkdir(os.path.dirname(sys.argv[2]) + "/genhdr")
-    except FileExistsError:
-        pass
-
-    linkname = os.path.dirname(sys.argv[2]) + "/genhdr/" + os.path.basename(sys.argv[2])
-    if os.path.exists(linkname):
-        os.unlink(linkname)
-    os.symlink(
-        "../" + os.path.basename(sys.argv[2]),
-        linkname,
-    )
+        with open(sys.argv[2], "w") as f:
+            f.write(new_content)
+
+        try:
+            os.mkdir(os.path.dirname(sys.argv[2]) + "/genhdr")
+        except FileExistsError:
+            pass
+
+        linkname = (
+            os.path.dirname(sys.argv[2]) + "/genhdr/" + os.path.basename(sys.argv[2])
+        )
+        if os.path.exists(linkname):
+            os.unlink(linkname)
+        shutil.copy(sys.argv[2], linkname)
+
+    sys.stdout = stdout
 
 
 if __name__ == "__main__":
diff --git a/lib/micropython/gen-qstr.sh b/lib/micropython/gen-qstr.sh
index dda7d45772120ef9443a7ae896ef39a0c17c7bfb..747ae3f614104dadf98e0d579ccc3c0ae22a1c6f 100755
--- a/lib/micropython/gen-qstr.sh
+++ b/lib/micropython/gen-qstr.sh
@@ -11,9 +11,6 @@ shift 5
 
 OUTPUT_DIR="$(dirname "$OUTPUT")"
 
-mkdir -p "$OUTPUT_DIR/genhdr"
-ln -sf "$(realpath --relative-to="$OUTPUT_DIR/genhdr" "$OUTPUT")" "$OUTPUT_DIR/genhdr/$(basename "$OUTPUT")"
-
 # call gcc -E to generate qstr.i.last
 gcc -E -DNO_QSTR -I"$SOURCE_DIR/micropython" -I"$PROJECT_SRC" -I"$OUTPUT_DIR" "$@" >"$OUTPUT_DIR/qstr.i.last"
 
diff --git a/lib/micropython/meson.build b/lib/micropython/meson.build
index dbd9c8fdbbb09316a37f2905fa83381af6f52421..4777aa4e851114cb786e29a2b1ecaa082232d199 100644
--- a/lib/micropython/meson.build
+++ b/lib/micropython/meson.build
@@ -31,7 +31,7 @@ mpy_cross_wrapper = executable(
   'mpy-cross-wrapper.c',
   link_depends: mpy_cross_bin,
   native: true,
-  c_args: ['-DMPY_CROSS_PATH="' + meson.current_build_dir() + '"'],
+  c_args: ['-DMPY_CROSS_PATH="' + meson.current_build_dir() + '"', '-Wno-unused-parameter'],
 )
 
 mpy_cross = generator(
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy.a b/lib/sdk/Libraries/BTLE/cordio-phy.a
index 177273f66c6cf5addcadef8e209e05a03e10f116..8f9f4ab9bb78e988cc25274536c992ca7d59f6d9 100644
Binary files a/lib/sdk/Libraries/BTLE/cordio-phy.a and b/lib/sdk/Libraries/BTLE/cordio-phy.a differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/afe_modulation.o b/lib/sdk/Libraries/BTLE/cordio-phy/afe_modulation.o
new file mode 100644
index 0000000000000000000000000000000000000000..bb6020aa519601252503a527f96a35ec23b66306
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/afe_modulation.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/agc_control.o b/lib/sdk/Libraries/BTLE/cordio-phy/agc_control.o
new file mode 100644
index 0000000000000000000000000000000000000000..5a0699e80d122a26d9f3581e0bf1b5c9d44a2200
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/agc_control.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_api.o b/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_api.o
new file mode 100644
index 0000000000000000000000000000000000000000..e61c4ea743931ad9e05bee9ec0d5cc597e4ad83b
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_api.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_drv.o b/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_drv.o
new file mode 100644
index 0000000000000000000000000000000000000000..19f3f7c1fa5460708f8ca1671638855f64d85f01
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_drv.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/bb_drv.o b/lib/sdk/Libraries/BTLE/cordio-phy/bb_drv.o
new file mode 100644
index 0000000000000000000000000000000000000000..a4e372b7d8ca58b3725b3691bd886ba875109e33
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/bb_drv.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_ctrl.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_ctrl.o
new file mode 100644
index 0000000000000000000000000000000000000000..a39406c0b4ea59b5e13e6a2fe620b91b8eb997f6
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_ctrl.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_init.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_init.o
new file mode 100644
index 0000000000000000000000000000000000000000..b8b179454fac839542062bcd0b61b74b12fe683d
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_init.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_trx.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_trx.o
new file mode 100644
index 0000000000000000000000000000000000000000..5cdeff7472b951b990d1aa561f840999058f22cd
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_trx.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_rx_setup.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_rx_setup.o
new file mode 100644
index 0000000000000000000000000000000000000000..d4625b5b2cf10ba320e068923407d2eeb02feff5
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_rx_setup.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_time_corr.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_time_corr.o
new file mode 100644
index 0000000000000000000000000000000000000000..a73c047cc9f04cb76e63d387459bbac865d321f8
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_time_corr.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_tx_setup.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_tx_setup.o
new file mode 100644
index 0000000000000000000000000000000000000000..2a3abd71d9c57a1b178479a0f29b9ed1074c8f30
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_tx_setup.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/board_config.o b/lib/sdk/Libraries/BTLE/cordio-phy/board_config.o
new file mode 100644
index 0000000000000000000000000000000000000000..3f327cb876ce59e88a4b4fe15ba0a9f673f70464
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/board_config.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_cmu.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_cmu.o
new file mode 100644
index 0000000000000000000000000000000000000000..eec3132f3622bcc2b94a167c2344bae81e6819f4
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_cmu.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_crypto.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_crypto.o
new file mode 100644
index 0000000000000000000000000000000000000000..18161206a90b359ddf3791664e3f7c98dd0d3e8c
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_crypto.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_event.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_event.o
new file mode 100644
index 0000000000000000000000000000000000000000..6c0f52b1d460f61fbe755d4879b6ef243ccb0082
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_event.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_intc.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_intc.o
new file mode 100644
index 0000000000000000000000000000000000000000..915d5cd98ea803488cbd3a872822a41e7379ae7f
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_intc.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_pmu.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_pmu.o
new file mode 100644
index 0000000000000000000000000000000000000000..a6bf33e334957503aa02f969a745cbdab7959638
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_pmu.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_spim.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_spim.o
new file mode 100644
index 0000000000000000000000000000000000000000..32ba938d8202baa9ba982f295983b744fa90ef92
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_spim.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_trx_timers.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_trx_timers.o
new file mode 100644
index 0000000000000000000000000000000000000000..f4846c2871f888745ec65c466b4b2c0ad1b29709
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_trx_timers.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ll_dbg_pin.o b/lib/sdk/Libraries/BTLE/cordio-phy/ll_dbg_pin.o
new file mode 100644
index 0000000000000000000000000000000000000000..4d30c637fec91d2d07420e761c1208d5e2cef64a
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ll_dbg_pin.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ll_debug.o b/lib/sdk/Libraries/BTLE/cordio-phy/ll_debug.o
new file mode 100644
index 0000000000000000000000000000000000000000..4d30c637fec91d2d07420e761c1208d5e2cef64a
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ll_debug.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_ble.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_ble.o
new file mode 100644
index 0000000000000000000000000000000000000000..3f9df66c071a6387322354c0f5c354a28d39dc9f
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_ble.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_crypto.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_crypto.o
new file mode 100644
index 0000000000000000000000000000000000000000..8579a1dabb62e9cbf79b2b916aa5bf67c01ad5e5
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_crypto.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_rx.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_rx.o
new file mode 100644
index 0000000000000000000000000000000000000000..47939a6d0056aba0b708fecc7b6641ce4e4346a5
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_rx.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_setup.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_setup.o
new file mode 100644
index 0000000000000000000000000000000000000000..64a2bed00892dfa0ac02ef04a735e9615326280b
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_setup.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timer.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timer.o
new file mode 100644
index 0000000000000000000000000000000000000000..1a08cfa9e3907921afebca0e341526504bed896b
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timer.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timestamp.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timestamp.o
new file mode 100644
index 0000000000000000000000000000000000000000..50bc1aeb821377bc1a0085ee51994e8151f028fe
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timestamp.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_tx.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_tx.o
new file mode 100644
index 0000000000000000000000000000000000000000..ed0f595fae359128f1661f5c45adf28a66f1d45b
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_tx.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_int_handlers.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_int_handlers.o
new file mode 100644
index 0000000000000000000000000000000000000000..5dc2342a02e89e6cd9183eda3ee2ed5e168b7790
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_int_handlers.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_util.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_util.o
new file mode 100644
index 0000000000000000000000000000000000000000..eea2e238648005037f381ba57a2be640db958ac9
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_util.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/pan2g_config.o b/lib/sdk/Libraries/BTLE/cordio-phy/pan2g_config.o
new file mode 100644
index 0000000000000000000000000000000000000000..f3e396fd49bf8fdd8a44c914511a20bad966035b
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/pan2g_config.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/rffe_config.o b/lib/sdk/Libraries/BTLE/cordio-phy/rffe_config.o
new file mode 100644
index 0000000000000000000000000000000000000000..f85751ee8404042b32f113a15f6c74d313e918c3
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/rffe_config.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/sequencer_ext.o b/lib/sdk/Libraries/BTLE/cordio-phy/sequencer_ext.o
new file mode 100644
index 0000000000000000000000000000000000000000..4f4bb9f847ecf2c6fe9c91b337ae04f8146b12dc
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/sequencer_ext.o differ
diff --git a/lib/sdk/Libraries/BTLE/link_layer/controller/sources/ble/lctr/lctr_sm_conn_slave.c b/lib/sdk/Libraries/BTLE/link_layer/controller/sources/ble/lctr/lctr_sm_conn_slave.c
index 55cb910926fee6db1c93233b664882a11cebe5dc..ce3334e782fdacc1ca7c8bc57a72ab49ac2b1539 100644
--- a/lib/sdk/Libraries/BTLE/link_layer/controller/sources/ble/lctr/lctr_sm_conn_slave.c
+++ b/lib/sdk/Libraries/BTLE/link_layer/controller/sources/ble/lctr/lctr_sm_conn_slave.c
@@ -217,6 +217,15 @@ void lctrConnStatelessEventHandler(lctrConnCtx_t *pCtx, uint8_t event)
   {
     case LCTR_CONN_TERMINATED:
       LL_TRACE_INFO2("lctrConnStatelessEventHandler: handle=%u, state=%u, event=TERMINATED", LCTR_GET_CONN_HANDLE(pCtx), pCtx->state);
+
+	  /* card10 HACK:
+	   * After an encrypted connection is closed, the stack does not instruct the radio to turn off encryption again.
+	   * There is no direct interface to this either. lctrCalcSessionKey() does transfer the flag though. */
+      lctrDisableTxDataEnc(pCtx);
+      lctrDisableRxDataEnc(pCtx);
+      lctrCalcSessionKey(pCtx);
+	  /*END card10 HACK */
+
       lctrNotifyHostDisconnectInd(pCtx);
       lctrFreeConnCtx(pCtx);
       break;
diff --git a/lib/sdk/Libraries/Boards/card10/Source/board.c b/lib/sdk/Libraries/Boards/card10/Source/board.c
index e1407f08c14c2424537501e7e0f4ff32b80054a6..0739721bc2eec48bb2cf70d423ec6cfcc8bab370 100644
--- a/lib/sdk/Libraries/Boards/card10/Source/board.c
+++ b/lib/sdk/Libraries/Boards/card10/Source/board.c
@@ -98,7 +98,7 @@ int Board_Init(void)
         {PORT_0, PIN_31, GPIO_FUNC_OUT, GPIO_PAD_NONE},     // ECG switch
     };
     const unsigned int num_pins = (sizeof(pins) / sizeof(gpio_cfg_t));
-    int i;
+    unsigned int i;
     for (i = 0; i < num_pins; i++) {
         GPIO_OutClr(&pins[i]);
         GPIO_Config(&pins[i]);
diff --git a/lib/vendor/Maxim/MAX86150/max86150.c b/lib/vendor/Maxim/MAX86150/max86150.c
index ab14bb1086a56f4af34ae046dbcc07f602f20f18..203df693a4f8cbbbc06d992afee7803ec0693197 100644
--- a/lib/vendor/Maxim/MAX86150/max86150.c
+++ b/lib/vendor/Maxim/MAX86150/max86150.c
@@ -18,151 +18,132 @@
 
 typedef uint8_t byte;
 
-static const uint8_t MAX86150_INTSTAT1 =		0x00;
-static const uint8_t MAX86150_INTSTAT2 =		0x01;
-static const uint8_t MAX86150_INTENABLE1 =		0x02;
-static const uint8_t MAX86150_INTENABLE2 =		0x03;
+static const uint8_t MAX86150_INTSTAT1   = 0x00;
+static const uint8_t MAX86150_INTSTAT2   = 0x01;
+static const uint8_t MAX86150_INTENABLE1 = 0x02;
+static const uint8_t MAX86150_INTENABLE2 = 0x03;
 
-static const uint8_t MAX86150_FIFOWRITEPTR = 	0x04;
-static const uint8_t MAX86150_FIFOOVERFLOW = 	0x05;
-static const uint8_t MAX86150_FIFOREADPTR = 	0x06;
-static const uint8_t MAX86150_FIFODATA 		=		0x07;
+static const uint8_t MAX86150_FIFOWRITEPTR = 0x04;
+static const uint8_t MAX86150_FIFOOVERFLOW = 0x05;
+static const uint8_t MAX86150_FIFOREADPTR  = 0x06;
+static const uint8_t MAX86150_FIFODATA     = 0x07;
 
-static const uint8_t MAX86150_FIFOCONFIG = 		0x08;
-static const uint8_t MAX86150_FIFOCONTROL1= 	0x09;
-static const uint8_t MAX86150_FIFOCONTROL2 = 	0x0A;
+static const uint8_t MAX86150_FIFOCONFIG   = 0x08;
+static const uint8_t MAX86150_FIFOCONTROL1 = 0x09;
+static const uint8_t MAX86150_FIFOCONTROL2 = 0x0A;
 
-static const uint8_t MAX86150_SYSCONTROL = 	0x0D;
-static const uint8_t MAX86150_PPGCONFIG1 = 		0x0E;
-static const uint8_t MAX86150_PPGCONFIG2 = 		0x0F;
-static const uint8_t MAX86150_LED_PROX_AMP = 	0x10;
+static const uint8_t MAX86150_SYSCONTROL   = 0x0D;
+static const uint8_t MAX86150_PPGCONFIG1   = 0x0E;
+static const uint8_t MAX86150_PPGCONFIG2   = 0x0F;
+static const uint8_t MAX86150_LED_PROX_AMP = 0x10;
 
-static const uint8_t MAX86150_LED1_PULSEAMP = 	0x11;
-static const uint8_t MAX86150_LED2_PULSEAMP = 	0x12;
-static const uint8_t MAX86150_LED_RANGE 		= 	0x14;
-static const uint8_t MAX86150_LED_PILOT_PA 	= 	0x15;
+static const uint8_t MAX86150_LED1_PULSEAMP = 0x11;
+static const uint8_t MAX86150_LED2_PULSEAMP = 0x12;
+static const uint8_t MAX86150_LED_RANGE     = 0x14;
+static const uint8_t MAX86150_LED_PILOT_PA  = 0x15;
 
-static const uint8_t MAX86150_ECG_CONFIG1 	= 	0x3C;
-static const uint8_t MAX86150_ECG_CONFIG3 	= 	0x3E;
-static const uint8_t MAX86150_PROXINTTHRESH = 	0x10;
+static const uint8_t MAX86150_ECG_CONFIG1   = 0x3C;
+static const uint8_t MAX86150_ECG_CONFIG3   = 0x3E;
+static const uint8_t MAX86150_PROXINTTHRESH = 0x10;
 
-static const uint8_t MAX86150_PARTID = 			0xFF;
+static const uint8_t MAX86150_PARTID = 0xFF;
 
 // MAX86150 Commands
-static const uint8_t MAX86150_INT_A_FULL_MASK =		(byte)~0b10000000;
-static const uint8_t MAX86150_INT_A_FULL_ENABLE = 	0x80;
-static const uint8_t MAX86150_INT_A_FULL_DISABLE = 	0x00;
+static const uint8_t MAX86150_INT_A_FULL_MASK    = (byte)~0b10000000;
+static const uint8_t MAX86150_INT_A_FULL_ENABLE  = 0x80;
+static const uint8_t MAX86150_INT_A_FULL_DISABLE = 0x00;
 
-static const uint8_t MAX86150_INT_DATA_RDY_MASK = (byte)~0b01000000;
-static const uint8_t MAX86150_INT_DATA_RDY_ENABLE =	0x40;
+static const uint8_t MAX86150_INT_DATA_RDY_MASK    = (byte)~0b01000000;
+static const uint8_t MAX86150_INT_DATA_RDY_ENABLE  = 0x40;
 static const uint8_t MAX86150_INT_DATA_RDY_DISABLE = 0x00;
 
-static const uint8_t MAX86150_INT_ALC_OVF_MASK = (byte)~0b00100000;
-static const uint8_t MAX86150_INT_ALC_OVF_ENABLE = 	0x20;
+static const uint8_t MAX86150_INT_ALC_OVF_MASK    = (byte)~0b00100000;
+static const uint8_t MAX86150_INT_ALC_OVF_ENABLE  = 0x20;
 static const uint8_t MAX86150_INT_ALC_OVF_DISABLE = 0x00;
 
-static const uint8_t MAX86150_INT_PROX_INT_MASK = (byte)~0b00010000;
-static const uint8_t MAX86150_INT_PROX_INT_ENABLE = 0x10;
+static const uint8_t MAX86150_INT_PROX_INT_MASK    = (byte)~0b00010000;
+static const uint8_t MAX86150_INT_PROX_INT_ENABLE  = 0x10;
 static const uint8_t MAX86150_INT_PROX_INT_DISABLE = 0x00;
 
-static const uint8_t MAX86150_SAMPLEAVG_MASK =	(byte)~0b11100000;
-static const uint8_t MAX86150_SAMPLEAVG_1 = 	0x00;
-static const uint8_t MAX86150_SAMPLEAVG_2 = 	0x20;
-static const uint8_t MAX86150_SAMPLEAVG_4 = 	0x40;
-static const uint8_t MAX86150_SAMPLEAVG_8 = 	0x60;
-static const uint8_t MAX86150_SAMPLEAVG_16 = 	0x80;
-static const uint8_t MAX86150_SAMPLEAVG_32 = 	0xA0;
-
-static const uint8_t MAX86150_ROLLOVER_MASK = 	0xEF;
-static const uint8_t MAX86150_ROLLOVER_ENABLE = 0x10;
-static const uint8_t MAX86150_ROLLOVER_DISABLE = 0x00;
-
-static const uint8_t MAX86150_A_FULL_MASK = 	0xF0;
-
-static const uint8_t MAX86150_SHUTDOWN_MASK = 	0x7F;
-static const uint8_t MAX86150_SHUTDOWN = 		0x80;
-static const uint8_t MAX86150_WAKEUP = 			0x00;
-
-static const uint8_t MAX86150_RESET_MASK = 		0xFE;
-static const uint8_t MAX86150_RESET = 			0x01;
-
-static const uint8_t MAX86150_MODE_MASK = 		0xF8;
-static const uint8_t MAX86150_MODE_REDONLY = 	0x02;
-static const uint8_t MAX86150_MODE_REDIRONLY = 	0x03;
-static const uint8_t MAX86150_MODE_MULTILED = 	0x07;
-
-static const uint8_t MAX86150_ADCRANGE_MASK = 	0x9F;
-static const uint8_t MAX86150_ADCRANGE_2048 = 	0x00;
-static const uint8_t MAX86150_ADCRANGE_4096 = 	0x20;
-static const uint8_t MAX86150_ADCRANGE_8192 = 	0x40;
-static const uint8_t MAX86150_ADCRANGE_16384 = 	0x60;
-
-static const uint8_t MAX86150_SAMPLERATE_MASK = 0xE3;
-static const uint8_t MAX86150_SAMPLERATE_50 = 	0x00;
-static const uint8_t MAX86150_SAMPLERATE_100 = 	0x04;
-static const uint8_t MAX86150_SAMPLERATE_200 = 	0x08;
-static const uint8_t MAX86150_SAMPLERATE_400 = 	0x0C;
-static const uint8_t MAX86150_SAMPLERATE_800 = 	0x10;
-static const uint8_t MAX86150_SAMPLERATE_1000 = 0x14;
-static const uint8_t MAX86150_SAMPLERATE_1600 = 0x18;
-static const uint8_t MAX86150_SAMPLERATE_3200 = 0x1C;
-
-static const uint8_t MAX86150_PULSEWIDTH_MASK = 0xFC;
-static const uint8_t MAX86150_PULSEWIDTH_69 = 	0x00;
-static const uint8_t MAX86150_PULSEWIDTH_118 = 	0x01;
-static const uint8_t MAX86150_PULSEWIDTH_215 = 	0x02;
-static const uint8_t MAX86150_PULSEWIDTH_411 = 	0x03;
-
-static const uint8_t MAX86150_SLOT1_MASK = 		0xF0;
-static const uint8_t MAX86150_SLOT2_MASK = 		0x0F;
-static const uint8_t MAX86150_SLOT3_MASK = 		0xF0;
-static const uint8_t MAX86150_SLOT4_MASK = 		0x0F;
-
-static const uint8_t SLOT_NONE 				= 			0x00;
-static const uint8_t SLOT_RED_LED 		= 			0x01;
-static const uint8_t SLOT_IR_LED 			= 			0x02;
-static const uint8_t SLOT_RED_PILOT 	=				0x09;
-static const uint8_t SLOT_IR_PILOT 		= 			0x0A;
-static const uint8_t SLOT_ECG					= 			0x0D;
-
-static const uint8_t MAX_30105_EXPECTEDPARTID = 0x1E;
-
-static uint8_t _i2caddr;
-
-//activeLEDs is the number of channels turned on, and can be 1 to 3. 2 is common for Red+IR.
-static byte activeDevices; //Gets set during max86150_setup. Allows max86150_check() to calculate how many bytes to read from FIFO
-
-static void max86150_bitMask(uint8_t reg, uint8_t mask, uint8_t thing);
-
-#define STORAGE_SIZE 128 //Each long is 4 bytes so limit this to fit on your micro
-typedef struct Record
-{
-    uint32_t red[STORAGE_SIZE];
-    uint32_t IR[STORAGE_SIZE];
-    int32_t ecg[STORAGE_SIZE];
-    byte head;
-    byte tail;
+static const uint8_t MAX86150_SAMPLEAVG_MASK = (byte)~0b00000111;
+
+static const uint8_t MAX86150_ROLLOVER_MASK    = (byte)~0b00010000;
+static const uint8_t MAX86150_ROLLOVER_ENABLE  = 0b00010000;
+static const uint8_t MAX86150_ROLLOVER_DISABLE = 0b00000000;
+
+static const uint8_t MAX86150_ALMOST_FULL_CLEAR_MASK    = (byte)~0b01000000;
+static const uint8_t MAX86150_ALMOST_FULL_CLEAR_ENABLE  = 0b01000000;
+static const uint8_t MAX86150_ALMOST_FULL_CLEAR_DISABLE = 0b00000000;
+
+static const uint8_t MAX86150_ALMOST_FULL_REPEAT_MASK    = (byte)~0b00100000;
+static const uint8_t MAX86150_ALMOST_FULL_REPEAT_ENABLE  = 0b00100000;
+static const uint8_t MAX86150_ALMOST_FULL_REPEAT_DISABLE = 0b00000000;
+
+static const uint8_t MAX86150_A_FULL_MASK = (byte)~0b00001111;
+
+static const uint8_t MAX86150_SHUTDOWN_MASK = (byte)~0b00000010;
+static const uint8_t MAX86150_SHUTDOWN      = 0b10;
+static const uint8_t MAX86150_WAKEUP        = 0b00;
+
+static const uint8_t MAX86150_FIFO_ENABLE_MASK = (byte)~0b00000100;
+static const uint8_t MAX86150_FIFO_ENABLE      = 0b100;
+static const uint8_t MAX86150_FIFO_DISABLE     = 0b000;
+
+static const uint8_t MAX86150_RESET_MASK = (byte)~0b00000001;
+static const uint8_t MAX86150_RESET      = 0b1;
+
+static const uint8_t MAX86150_ADCRANGE_MASK = (byte)~0b11000000;
+
+static const uint8_t MAX86150_PPG_SAMPLERATE_MASK = (byte)~0b00111100;
+
+static const uint8_t MAX86150_PPG_PULSEWIDTH_MASK = (byte)~0b00000011;
+
+static const uint8_t MAX86150_SLOT1_MASK = 0xF0;
+static const uint8_t MAX86150_SLOT2_MASK = 0x0F;
+static const uint8_t MAX86150_SLOT3_MASK = 0xF0;
+static const uint8_t MAX86150_SLOT4_MASK = 0x0F;
+
+static const uint8_t MAX86150_LED1_RANGE_MASK = (byte)~0b00000011;
+static const uint8_t MAX86150_LED2_RANGE_MASK = (byte)~0b00001100;
+
+static const uint8_t MAX86150_ECG_SAMPLERATE_MASK = (byte)~0b00000111;
+
+static const uint8_t MAX86150_ECG_PGA_GAIN_MASK = (byte)~0b00001100;
+
+static const uint8_t MAX86150_ECG_IA_GAIN_MASK = (byte)~0b00000011;
+
+static const uint8_t MAX86150_EXPECTEDPARTID = 0x1E;
+
+static byte activeDevices =
+	3; //Gets set during max86150_setup. Allows max86150_check() to calculate how many bytes to read from FIFO
+
+#define STORAGE_SIZE                                                           \
+	128 //Each long is 4 bytes so limit this to fit on your micro
+typedef struct Record {
+	uint32_t red[STORAGE_SIZE];
+	uint32_t IR[STORAGE_SIZE];
+	int32_t ecg[STORAGE_SIZE];
+	byte head;
+	byte tail;
 } sense_struct; //This is our circular buffer of readings from the sensor
 
 static sense_struct sense;
 
 static void delay(int ms)
 {
-    TMR_Delay(MXC_TMR0, MSEC(ms), 0);
+	TMR_Delay(MXC_TMR0, MSEC(ms), 0);
 }
 
 bool max86150_begin(void)
 {
-  _i2caddr = MAX86150_ADDRESS;
-
-  // Step 1: Initial Communication and Verification
-  // Check that a MAX86150 is connected
-  if (max86150_readPartID() != MAX_30105_EXPECTEDPARTID) {
-    // Error -- Part ID read from MAX86150 does not match expected part ID.
-    // This may mean there is a physical connectivity problem (broken wire, unpowered, etc).
-    return false;
-  }
-  return true;
+	// Step 1: Initial Communication and Verification
+	// Check that a MAX86150 is connected
+	if (max86150_read_part_id() != MAX86150_EXPECTEDPARTID) {
+		// Error -- Part ID read from MAX86150 does not match expected part ID.
+		// This may mean there is a physical connectivity problem (broken wire, unpowered, etc).
+		return false;
+	}
+	return true;
 }
 
 //
@@ -170,498 +151,704 @@ bool max86150_begin(void)
 //
 
 //Begin Interrupt configuration
-uint8_t max86150_getINT1(void)
+uint8_t max86150_get_int1(void)
 {
-  return (max86150_readRegister8(_i2caddr, MAX86150_INTSTAT1));
-}
-uint8_t max86150_getINT2(void) {
-  return (max86150_readRegister8(_i2caddr, MAX86150_INTSTAT2));
-}
-
-void max86150_enableAFULL(void) {
-  max86150_bitMask(MAX86150_INTENABLE1, MAX86150_INT_A_FULL_MASK, MAX86150_INT_A_FULL_ENABLE);
+	return (max86150_read_register(MAX86150_ADDRESS, MAX86150_INTSTAT1));
 }
-void max86150_disableAFULL(void) {
-  max86150_bitMask(MAX86150_INTENABLE1, MAX86150_INT_A_FULL_MASK, MAX86150_INT_A_FULL_DISABLE);
-}
-
-void max86150_enableDATARDY(void) {
-  max86150_bitMask(MAX86150_INTENABLE1, MAX86150_INT_DATA_RDY_MASK, MAX86150_INT_DATA_RDY_ENABLE);
-}
-void max86150_disableDATARDY(void) {
-  max86150_bitMask(MAX86150_INTENABLE1, MAX86150_INT_DATA_RDY_MASK, MAX86150_INT_DATA_RDY_DISABLE);
-}
-
-void max86150_enableALCOVF(void) {
-  max86150_bitMask(MAX86150_INTENABLE1, MAX86150_INT_ALC_OVF_MASK, MAX86150_INT_ALC_OVF_ENABLE);
-}
-void max86150_disableALCOVF(void) {
-  max86150_bitMask(MAX86150_INTENABLE1, MAX86150_INT_ALC_OVF_MASK, MAX86150_INT_ALC_OVF_DISABLE);
+uint8_t max86150_get_int2(void)
+{
+	return (max86150_read_register(MAX86150_ADDRESS, MAX86150_INTSTAT2));
 }
 
-void max86150_enablePROXINT(void) {
-  max86150_bitMask(MAX86150_INTENABLE1, MAX86150_INT_PROX_INT_MASK, MAX86150_INT_PROX_INT_ENABLE);
-}
-void max86150_disablePROXINT(void) {
-  max86150_bitMask(MAX86150_INTENABLE1, MAX86150_INT_PROX_INT_MASK, MAX86150_INT_PROX_INT_DISABLE);
+void max86150_set_int_full(bool enabled)
+{
+	if (enabled) {
+		max86150_bit_mask(
+			MAX86150_INTENABLE1,
+			MAX86150_INT_A_FULL_MASK,
+			MAX86150_INT_A_FULL_ENABLE
+		);
+	} else {
+		max86150_bit_mask(
+			MAX86150_INTENABLE1,
+			MAX86150_INT_A_FULL_MASK,
+			MAX86150_INT_A_FULL_DISABLE
+		);
+	}
+}
+
+void max86150_set_int_datardy(bool enabled)
+{
+	if (enabled) {
+		max86150_bit_mask(
+			MAX86150_INTENABLE1,
+			MAX86150_INT_DATA_RDY_MASK,
+			MAX86150_INT_DATA_RDY_ENABLE
+		);
+	} else {
+		max86150_bit_mask(
+			MAX86150_INTENABLE1,
+			MAX86150_INT_DATA_RDY_MASK,
+			MAX86150_INT_DATA_RDY_DISABLE
+		);
+	}
+}
+
+void max86150_set_int_ambient_light_overflow(bool enabled)
+{
+	if (enabled) {
+		max86150_bit_mask(
+			MAX86150_INTENABLE1,
+			MAX86150_INT_ALC_OVF_MASK,
+			MAX86150_INT_ALC_OVF_ENABLE
+		);
+	} else {
+		max86150_bit_mask(
+			MAX86150_INTENABLE1,
+			MAX86150_INT_ALC_OVF_MASK,
+			MAX86150_INT_ALC_OVF_DISABLE
+		);
+	}
+}
+
+void max86150_set_int_proximity(bool enabled)
+{
+	if (enabled) {
+		max86150_bit_mask(
+			MAX86150_INTENABLE1,
+			MAX86150_INT_PROX_INT_MASK,
+			MAX86150_INT_PROX_INT_ENABLE
+		);
+	} else {
+		max86150_bit_mask(
+			MAX86150_INTENABLE1,
+			MAX86150_INT_PROX_INT_MASK,
+			MAX86150_INT_PROX_INT_DISABLE
+		);
+	}
 }
 //End Interrupt configuration
 
-void max86150_softReset(void) {
-  max86150_bitMask(MAX86150_SYSCONTROL, MAX86150_RESET_MASK, MAX86150_RESET);
-
-  // Poll for bit to clear, reset is then complete
-  // Timeout after 100ms
-  //TODO
-  //unsigned long startTime = millis();
-  //while (millis() - startTime < 100)
-  {
-    //uint8_t response = max86150_readRegister8(_i2caddr, MAX86150_SYSCONTROL);
-    //if ((response & MAX86150_RESET) == 0) break; //We're done!
-    delay(1); //Let's not over burden the I2C bus
-  }
-}
-
-void max86150_shutDown(void) {
-  // Put IC into low power mode (datasheet pg. 19)
-  // During shutdown the IC will continue to respond to I2C commands but will
-  // not update with or take new readings (such as temperature)
-  max86150_bitMask(MAX86150_SYSCONTROL, MAX86150_SHUTDOWN_MASK, MAX86150_SHUTDOWN);
-}
-
-void max86150_wakeUp(void) {
-  // Pull IC out of low power mode (datasheet pg. 19)
-  max86150_bitMask(MAX86150_SYSCONTROL, MAX86150_SHUTDOWN_MASK, MAX86150_WAKEUP);
+void max86150_soft_reset(void)
+{
+	max86150_bit_mask(
+		MAX86150_SYSCONTROL, MAX86150_RESET_MASK, MAX86150_RESET
+	);
+
+	// Poll for bit to clear, reset is then complete
+	// Timeout after 100 tries
+	uint8_t tries = 0;
+	while (tries < 100) {
+		uint8_t response = max86150_read_register(
+			MAX86150_ADDRESS, MAX86150_SYSCONTROL
+		);
+		if ((response & MAX86150_RESET) == 0)
+			break; //We're done!
+		tries++;
+		delay(1); //Let's not over burden the I2C bus
+	}
+}
+
+void max86150_shut_down(void)
+{
+	// Put IC into low power mode (datasheet pg. 19)
+	// During shutdown the IC will continue to respond to I2C commands but will
+	// not update with or take new readings (such as temperature)
+	max86150_bit_mask(
+		MAX86150_SYSCONTROL, MAX86150_SHUTDOWN_MASK, MAX86150_SHUTDOWN
+	);
 }
 
-void max86150_setLEDMode(uint8_t mode) {
-  // Set which LEDs are used for sampling -- Red only, RED+IR only, or custom.
-  // See datasheet, page 19
-  //max86150_bitMask(MAX86150_PPGCONFIG1, MAX86150_MODE_MASK, mode);
+void max86150_wake_up(void)
+{
+	// Pull IC out of low power mode (datasheet pg. 19)
+	max86150_bit_mask(
+		MAX86150_SYSCONTROL, MAX86150_SHUTDOWN_MASK, MAX86150_WAKEUP
+	);
 }
 
-void max86150_setADCRange(uint8_t adcRange) {
-  // adcRange: one of MAX86150_ADCRANGE_2048, _4096, _8192, _16384
-  //max86150_bitMask(MAX86150_PARTICLECONFIG, MAX86150_ADCRANGE_MASK, adcRange);
+void max86150_set_fifo_enable(bool enabled)
+{
+	if (enabled) {
+		max86150_bit_mask(
+			MAX86150_SYSCONTROL,
+			MAX86150_FIFO_ENABLE_MASK,
+			MAX86150_FIFO_ENABLE
+		);
+	} else {
+		max86150_bit_mask(
+			MAX86150_SYSCONTROL,
+			MAX86150_FIFO_ENABLE_MASK,
+			MAX86150_FIFO_DISABLE
+		);
+	}
+}
+
+void max86150_set_ppg_adc_range(uint8_t adcRange)
+{
+	// adcRange: one of MAX86150_ADCRANGE_*
+	max86150_bit_mask(
+		MAX86150_PPGCONFIG1, MAX86150_ADCRANGE_MASK, adcRange
+	);
 }
 
-void max86150_setSampleRate(uint8_t sampleRate) {
-  // sampleRate: one of MAX86150_SAMPLERATE_50, _100, _200, _400, _800, _1000, _1600, _3200
-  //max86150_bitMask(MAX86150_PARTICLECONFIG, MAX86150_SAMPLERATE_MASK, sampleRate);
+void max86150_set_ppg_sample_rate(uint8_t sampleRate)
+{
+	// sampleRate: one of MAX86150_PPG_SAMPLERATE_*
+	max86150_bit_mask(
+		MAX86150_PPGCONFIG1, MAX86150_PPG_SAMPLERATE_MASK, sampleRate
+	);
 }
 
-void max86150_setPulseWidth(uint8_t pulseWidth) {
-  // pulseWidth: one of MAX86150_PULSEWIDTH_69, _188, _215, _411
-  //max86150_bitMask(MAX86150_PPGCONFIG1, MAX86150_PULSEWIDTH_MASK, pulseWidth);
+void max86150_set_ppg_pulse_width(uint8_t pulseWidth)
+{
+	// pulseWidth: one of MAX86150_PPG_PULSEWIDTH_*
+	max86150_bit_mask(
+		MAX86150_PPGCONFIG1, MAX86150_PPG_PULSEWIDTH_MASK, pulseWidth
+	);
 }
 
 // NOTE: Amplitude values: 0x00 = 0mA, 0x7F = 25.4mA, 0xFF = 50mA (typical)
 // See datasheet, page 21
-void max86150_setPulseAmplitudeRed(uint8_t amplitude)
+void max86150_set_led_red_amplitude(uint8_t amplitude)
 {
-  max86150_writeRegister8(_i2caddr, MAX86150_LED2_PULSEAMP, amplitude);
+	max86150_write_register(
+		MAX86150_ADDRESS, MAX86150_LED2_PULSEAMP, amplitude
+	);
+	max86150_bit_mask(
+		MAX86150_LED_RANGE,
+		MAX86150_LED2_RANGE_MASK,
+		MAX86150_LED2_RANGE_50
+	);
 }
 
-void max86150_setPulseAmplitudeIR(uint8_t amplitude)
+void max86150_set_led_ir_amplitude(uint8_t amplitude)
 {
-  max86150_writeRegister8(_i2caddr, MAX86150_LED1_PULSEAMP, amplitude);
+	max86150_write_register(
+		MAX86150_ADDRESS, MAX86150_LED1_PULSEAMP, amplitude
+	);
+	max86150_bit_mask(
+		MAX86150_LED_RANGE,
+		MAX86150_LED1_RANGE_MASK,
+		MAX86150_LED1_RANGE_50
+	);
 }
 
-void max86150_setPulseAmplitudeProximity(uint8_t amplitude) {
-  max86150_writeRegister8(_i2caddr, MAX86150_LED_PROX_AMP, amplitude);
+void max86150_set_led_proximity_amplitude(uint8_t amplitude)
+{
+	max86150_write_register(
+		MAX86150_ADDRESS, MAX86150_LED_PROX_AMP, amplitude
+	);
 }
 
-void max86150_setProximityThreshold(uint8_t threshMSB)
+void max86150_set_proximity_threshold(uint8_t threshMSB)
 {
-  // The threshMSB signifies only the 8 most significant-bits of the ADC count.
-  max86150_writeRegister8(_i2caddr, MAX86150_PROXINTTHRESH, threshMSB);
+	// The threshMSB signifies only the 8 most significant-bits of the ADC count.
+	max86150_write_register(
+		MAX86150_ADDRESS, MAX86150_PROXINTTHRESH, threshMSB
+	);
 }
 
 //Given a slot number assign a thing to it
 //Devices are SLOT_RED_LED or SLOT_RED_PILOT (proximity)
 //Assigning a SLOT_RED_LED will pulse LED
 //Assigning a SLOT_RED_PILOT will ??
-void max86150_enableSlot(uint8_t slotNumber, uint8_t device)
-{
-	  //uint8_t originalContents;
-
-	  switch (slotNumber) {
-	    case (1):
-	      max86150_bitMask(MAX86150_FIFOCONTROL1, MAX86150_SLOT1_MASK, device);
-	      break;
-	    case (2):
-	      max86150_bitMask(MAX86150_FIFOCONTROL1, MAX86150_SLOT2_MASK, device << 4);
-	      break;
-	    case (3):
-	      max86150_bitMask(MAX86150_FIFOCONTROL2, MAX86150_SLOT3_MASK, device);
-	      break;
-	    case (4):
-	      max86150_bitMask(MAX86150_FIFOCONTROL2, MAX86150_SLOT4_MASK, device << 4);
-	      break;
-	    default:
-	      //Shouldn't be here!
-	      break;
-	  }
+void max86150_fifo_enable_slot(uint8_t slotNumber, uint8_t device)
+{
+	switch (slotNumber) {
+	case (1):
+		max86150_bit_mask(
+			MAX86150_FIFOCONTROL1, MAX86150_SLOT1_MASK, device
+		);
+		break;
+	case (2):
+		max86150_bit_mask(
+			MAX86150_FIFOCONTROL1,
+			MAX86150_SLOT2_MASK,
+			device << 4
+		);
+		break;
+	case (3):
+		max86150_bit_mask(
+			MAX86150_FIFOCONTROL2, MAX86150_SLOT3_MASK, device
+		);
+		break;
+	case (4):
+		max86150_bit_mask(
+			MAX86150_FIFOCONTROL2,
+			MAX86150_SLOT4_MASK,
+			device << 4
+		);
+		break;
+	default:
+		//Shouldn't be here!
+		break;
+	}
 }
 
 //Clears all slot assignments
 void max86150_disableSlots(void)
 {
-  max86150_writeRegister8(_i2caddr, MAX86150_FIFOCONTROL1, 0);
-  max86150_writeRegister8(_i2caddr, MAX86150_FIFOCONTROL2, 0);
+	max86150_write_register(MAX86150_ADDRESS, MAX86150_FIFOCONTROL1, 0);
+	max86150_write_register(MAX86150_ADDRESS, MAX86150_FIFOCONTROL2, 0);
 }
 
 //
 // FIFO Configuration
 //
 
-void max86150_setFIFOAverage(uint8_t numberOfSamples)
+void max86150_set_ppg_averaging(uint8_t numberOfSamples)
 {
-  max86150_bitMask(MAX86150_FIFOCONFIG, MAX86150_SAMPLEAVG_MASK, numberOfSamples);
+	max86150_bit_mask(
+		MAX86150_FIFOCONFIG, MAX86150_SAMPLEAVG_MASK, numberOfSamples
+	);
 }
 
 //Resets all points to start in a known state
-void max86150_clearFIFO(void) {
-  max86150_writeRegister8(_i2caddr, MAX86150_FIFOWRITEPTR, 0);
-  max86150_writeRegister8(_i2caddr, MAX86150_FIFOOVERFLOW, 0);
-  max86150_writeRegister8(_i2caddr, MAX86150_FIFOREADPTR, 0);
+void max86150_clear_fifo(void)
+{
+	max86150_write_register(MAX86150_ADDRESS, MAX86150_FIFOWRITEPTR, 0);
+	max86150_write_register(MAX86150_ADDRESS, MAX86150_FIFOOVERFLOW, 0);
+	max86150_write_register(MAX86150_ADDRESS, MAX86150_FIFOREADPTR, 0);
 }
 
 //Enable roll over if FIFO over flows
-void max86150_enableFIFORollover(void) {
-  max86150_bitMask(MAX86150_FIFOCONFIG, MAX86150_ROLLOVER_MASK, MAX86150_ROLLOVER_ENABLE);
-}
-
-//Disable roll over if FIFO over flows
-void max86150_disableFIFORollover(void) {
-  max86150_bitMask(MAX86150_FIFOCONFIG, MAX86150_ROLLOVER_MASK, MAX86150_ROLLOVER_DISABLE);
+void max86150_set_fifo_rollover(bool enabled)
+{
+	if (enabled) {
+		max86150_bit_mask(
+			MAX86150_FIFOCONFIG,
+			MAX86150_ROLLOVER_MASK,
+			MAX86150_ROLLOVER_ENABLE
+		);
+	} else {
+		max86150_bit_mask(
+			MAX86150_FIFOCONFIG,
+			MAX86150_ROLLOVER_MASK,
+			MAX86150_ROLLOVER_DISABLE
+		);
+	}
+}
+
+//Enable fifo almost full flag clear on data read
+void max86150_set_fifo_almost_full_clear(bool enabled)
+{
+	if (enabled) {
+		max86150_bit_mask(
+			MAX86150_FIFOCONFIG,
+			MAX86150_ALMOST_FULL_CLEAR_MASK,
+			MAX86150_ALMOST_FULL_CLEAR_ENABLE
+		);
+	} else {
+		max86150_bit_mask(
+			MAX86150_FIFOCONFIG,
+			MAX86150_ALMOST_FULL_CLEAR_MASK,
+			MAX86150_ALMOST_FULL_CLEAR_DISABLE
+		);
+	}
+}
+
+//Enable fifo almost full flag repeated assertion
+void max86150_set_fifo_almost_full_repeat(bool enabled)
+{
+	if (enabled) {
+		max86150_bit_mask(
+			MAX86150_FIFOCONFIG,
+			MAX86150_ALMOST_FULL_REPEAT_MASK,
+			MAX86150_ALMOST_FULL_REPEAT_ENABLE
+		);
+	} else {
+		max86150_bit_mask(
+			MAX86150_FIFOCONFIG,
+			MAX86150_ALMOST_FULL_REPEAT_MASK,
+			MAX86150_ALMOST_FULL_REPEAT_DISABLE
+		);
+	}
 }
 
 //Power on default is 32 samples
 //Note it is reverse: 0x00 is 32 samples, 0x0F is 17 samples
-void max86150_setFIFOAlmostFull(uint8_t numberOfSamples) {
-  max86150_bitMask(MAX86150_FIFOCONFIG, MAX86150_A_FULL_MASK, numberOfSamples);
+void max86150_set_fifo_almost_full(uint8_t numberOfSamples)
+{
+	max86150_bit_mask(
+		MAX86150_FIFOCONFIG, MAX86150_A_FULL_MASK, numberOfSamples
+	);
 }
 
 //Read the FIFO Write Pointer
-uint8_t max86150_getWritePointer(void) {
-  return (max86150_readRegister8(_i2caddr, MAX86150_FIFOWRITEPTR));
+uint8_t max86150_get_fifo_write_pointer(void)
+{
+	return (max86150_read_register(MAX86150_ADDRESS, MAX86150_FIFOWRITEPTR));
 }
 
 //Read the FIFO Read Pointer
-uint8_t max86150_getReadPointer(void) {
-  return (max86150_readRegister8(_i2caddr, MAX86150_FIFOREADPTR));
-}
-
-// Set the PROX_INT_THRESHold
-void max86150_setPROXINTTHRESH(uint8_t val) {
-  max86150_writeRegister8(_i2caddr, MAX86150_PROXINTTHRESH, val);
+uint8_t max86150_get_fifo_read_pointer(void)
+{
+	return (max86150_read_register(MAX86150_ADDRESS, MAX86150_FIFOREADPTR));
 }
 
 //
 // Device ID and Revision
 //
-uint8_t max86150_readPartID() {
-  return max86150_readRegister8(_i2caddr, MAX86150_PARTID);
+uint8_t max86150_read_part_id()
+{
+	return max86150_read_register(MAX86150_ADDRESS, MAX86150_PARTID);
 }
 
-//Setup the sensor
-//The MAX86150 has many settings. By default we select:
-// Sample Average = 4
-// Mode = MultiLED
-// ADC Range = 16384 (62.5pA per LSB)
-// Sample rate = 50
-//Use the default max86150_setup if you are just getting started with the MAX86150 sensor
-void max86150_setup(byte powerLevel, byte sampleAverage, byte ledMode, int sampleRate, int pulseWidth, int adcRange)
+//Set ecg sample rate
+void max86150_set_ecg_sample_rate(uint8_t sampleRate)
 {
-		activeDevices=3;
-		max86150_writeRegister8(_i2caddr,MAX86150_SYSCONTROL,0x01);
-		delay(100);
-		max86150_writeRegister8(_i2caddr,MAX86150_FIFOCONFIG,0x7F);
-
-		//FIFO Configuration
-		//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-		//The chip will average multiple samples of same type together if you wish
-		if (sampleAverage == 1) max86150_setFIFOAverage(MAX86150_SAMPLEAVG_1); //No averaging per FIFO record
-		else if (sampleAverage == 2) max86150_setFIFOAverage(MAX86150_SAMPLEAVG_2);
-		else if (sampleAverage == 4) max86150_setFIFOAverage(MAX86150_SAMPLEAVG_4);
-		else if (sampleAverage == 8) max86150_setFIFOAverage(MAX86150_SAMPLEAVG_8);
-		else if (sampleAverage == 16) max86150_setFIFOAverage(MAX86150_SAMPLEAVG_16);
-		else if (sampleAverage == 32) max86150_setFIFOAverage(MAX86150_SAMPLEAVG_32);
-		else max86150_setFIFOAverage(MAX86150_SAMPLEAVG_4);
-
-		uint16_t FIFOCode = 0x00;
-
-	  FIFOCode = FIFOCode<<4 | 0x0009;// : FIFOCode;  //insert ECG front of ETI in FIFO
-	  FIFOCode = FIFOCode<<8 | 0x0021;//) : FIFOCode; //insert Red(2) and IR (1) in front of ECG in FIFO
+	// sampleRate: one of MAX86150_ECG_SAMPLERATE_*
+	max86150_bit_mask(
+		MAX86150_ECG_CONFIG1, MAX86150_ECG_SAMPLERATE_MASK, sampleRate
+	);
+}
 
+//Set ecg pga gain
+void max86150_set_ecg_pga_gain(uint8_t gain)
+{
+	// sampleRate: one of MAX86150_ECG_PGA_GAIN_*
+	max86150_bit_mask(
+		MAX86150_ECG_CONFIG3, MAX86150_ECG_PGA_GAIN_MASK, gain
+	);
+}
 
-		//FIFO Control 1 = FD2|FD1, FIFO Control 2 = FD4|FD3
+//Set ecg pga gain
+void max86150_set_ecg_instrumentation_amplifier_gain(uint8_t gain)
+{
+	// sampleRate: one of MAX86150_ECG_IA_GAIN_*
+	max86150_bit_mask(
+		MAX86150_ECG_CONFIG3, MAX86150_ECG_IA_GAIN_MASK, gain
+	);
+}
 
-		max86150_writeRegister8(_i2caddr,MAX86150_FIFOCONTROL1,(0b00100001));
-		//max86150_writeRegister8(_i2caddr,MAX86150_FIFOCONTROL1,(0b00001001));
-		//max86150_writeRegister8(_i2caddr,MAX86150_FIFOCONTROL1,(0b00000010));
-		max86150_writeRegister8(_i2caddr,MAX86150_FIFOCONTROL2,(0b00001001));
-		//max86150_writeRegister8(_i2caddr,MAX86150_FIFOCONTROL2,(0b00000000));
-		//max86150_writeRegister8(_i2caddr,MAX86150_FIFOCONTROL1, (char)(FIFOCode & 0x00FF) );
-		//max86150_writeRegister8(_i2caddr,MAX86150_FIFOCONTROL2, (char)(FIFOCode >>8) );
+//Setup the sensor
+//The MAX86150 has many settings.
+//Use the default max86150_setup if you are just getting started with the MAX86150 sensor
+void max86150_setup(const uint8_t ppg_sample_rate)
+{
+	max86150_soft_reset();
+	max86150_set_ppg_averaging(MAX86150_SAMPLEAVG_4);
+	max86150_set_fifo_rollover(true);
+	max86150_set_fifo_almost_full(8);
+	max86150_set_fifo_almost_full_clear(true);
+	max86150_set_fifo_almost_full_repeat(true);
 
-		max86150_writeRegister8(_i2caddr,MAX86150_PPGCONFIG1,0b11010001);
-		//max86150_writeRegister8(_i2caddr,MAX86150_PPGCONFIG1,0b11100111);
+	max86150_fifo_enable_slot(1, MAX86150_SLOT_RED_LED);
+	max86150_fifo_enable_slot(2, MAX86150_SLOT_IR_LED);
+	max86150_fifo_enable_slot(3, MAX86150_SLOT_ECG);
+	//max86150_fifo_enable_slot(4, MAX86150_SLOT_NONE);
 
-		max86150_writeRegister8(_i2caddr,MAX86150_PPGCONFIG2, 0x06);
-		max86150_writeRegister8(_i2caddr,MAX86150_LED_RANGE, 0x00 ); // PPG_ADC_RGE: 32768nA
+	max86150_set_ppg_adc_range(MAX86150_ADCRANGE_16384);
+	max86150_set_ppg_sample_rate(ppg_sample_rate);
+	max86150_set_ppg_pulse_width(MAX86150_PPG_PULSEWIDTH_100);
 
-		max86150_writeRegister8(_i2caddr,MAX86150_SYSCONTROL,0x04);//start FIFO
+	max86150_set_led_ir_amplitude(0x66);
+	max86150_set_led_red_amplitude(0x66);
 
-		max86150_writeRegister8(_i2caddr,MAX86150_ECG_CONFIG1,0b00000011);
-		//max86150_writeRegister8(_i2caddr,MAX86150_ECG_CONFIG1,0b00000001);
-		max86150_writeRegister8(_i2caddr,MAX86150_ECG_CONFIG3,0b00001101);
+	max86150_set_ecg_sample_rate(MAX86150_ECG_SAMPLERATE_200);
+	max86150_set_ecg_pga_gain(MAX86150_ECG_PGA_GAIN_8);
+	max86150_set_ecg_instrumentation_amplifier_gain(
+		MAX86150_ECG_IA_GAIN_9_5
+	);
 
-		max86150_setPulseAmplitudeRed(0xFF);
-		max86150_setPulseAmplitudeIR(0xFF);
+	max86150_set_int_datardy(false);
+	max86150_set_int_full(true);
 
-  //Multi-LED Mode Configuration, Enable the reading of the three LEDs
-  //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-  //max86150_enableSlot(1, SLOT_RED_LED);
-  //if (ledMode > 1)
-	//max86150_enableSlot(2, SLOT_IR_LED);
-  //if (ledMode > 2)
-	//max86150_enableSlot(3, SLOT_ECG);
-  //max86150_enableSlot(1, SLOT_RED_PILOT);
-  //max86150_enableSlot(2, SLOT_IR_PILOT);
-  //max86150_enableSlot(3, SLOT_GREEN_PILOT);
-  //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+	max86150_clear_fifo(); //Reset the FIFO before we begin checking the sensor
 
-  	max86150_clearFIFO(); //Reset the FIFO before we begin checking the sensor
+	max86150_set_fifo_enable(true);
 }
 
 //Tell caller how many samples are max86150_available
 uint8_t max86150_available(void)
 {
-  int8_t numberOfSamples = sense.head - sense.tail;
-  if (numberOfSamples < 0) numberOfSamples += STORAGE_SIZE;
+	int8_t numberOfSamples = sense.head - sense.tail;
+	if (numberOfSamples < 0)
+		numberOfSamples += STORAGE_SIZE;
 
-  return (numberOfSamples);
+	return (numberOfSamples);
 }
 
 //Report the most recent red value
-uint32_t max86150_getRed(void)
+uint32_t max86150_get_red(void)
 {
-  //Check the sensor for new data for 250ms
-  if(max86150_safeCheck(250))
-    return (sense.red[sense.head]);
-  else
-    return(0); //Sensor failed to find new data
+	//Check the sensor for new data for 250ms
+	if (max86150_safeCheck(250))
+		return (sense.red[sense.head]);
+	else
+		return (0); //Sensor failed to find new data
 }
 
 //Report the most recent IR value
-uint32_t max86150_getIR(void)
+uint32_t max86150_get_ir(void)
 {
-  //Check the sensor for new data for 250ms
-  if(max86150_safeCheck(250))
-    return (sense.IR[sense.head]);
-  else
-    return(0); //Sensor failed to find new data
+	//Check the sensor for new data for 250ms
+	if (max86150_safeCheck(250))
+		return (sense.IR[sense.head]);
+	else
+		return (0); //Sensor failed to find new data
 }
 
 //Report the most recent Green value
-int32_t max86150_getECG(void)
+int32_t max86150_get_ecg(void)
 {
-  //Check the sensor for new data for 250ms
-  if(max86150_safeCheck(250))
-    return (sense.ecg[sense.head]);
-  else
-    return(0); //Sensor failed to find new data
+	//Check the sensor for new data for 250ms
+	if (max86150_safeCheck(250))
+		return (sense.ecg[sense.head]);
+	else
+		return (0); //Sensor failed to find new data
 }
 
 //Report the next Red value in the FIFO
-uint32_t max86150_getFIFORed(void)
+uint32_t max86150_get_fifo_red(void)
 {
-  return (sense.red[sense.tail]);
+	return (sense.red[sense.tail]);
 }
 
 //Report the next IR value in the FIFO
-uint32_t max86150_getFIFOIR(void)
+uint32_t max86150_get_fifo_ir(void)
 {
-  return (sense.IR[sense.tail]);
+	return (sense.IR[sense.tail]);
 }
 
 //Report the next Green value in the FIFO
-int32_t max86150_getFIFOECG(void)
+int32_t max86150_get_fifo_ecg(void)
 {
-  return (sense.ecg[sense.tail]);
+	return (sense.ecg[sense.tail]);
 }
 
 //Advance the tail
-void max86150_nextSample(void)
+void max86150_next_sample(void)
 {
-  if(max86150_available()) //Only advance the tail if new data is max86150_available
-  {
-    sense.tail++;
-    sense.tail %= STORAGE_SIZE; //Wrap condition
-  }
+	if (max86150_available()) { //Only advance the tail if new data is max86150_available
+		sense.tail++;
+		sense.tail %= STORAGE_SIZE; //Wrap condition
+	}
 }
 
+//Polls the sensor for new data
+//Call regularly
+//If new data is max86150_available, it updates the head and tail in the main struct
+//Returns number of new samples obtained
+uint8_t max86150_get_sample(uint32_t *red, uint32_t *ir, int32_t *ecg)
+{
+	//Read register FIDO_DATA in (3-byte * number of active LED) chunks
+	//Until FIFO_RD_PTR = FIFO_WR_PTR
+
+	byte readPointer  = max86150_get_fifo_read_pointer();
+	byte writePointer = max86150_get_fifo_write_pointer();
+
+	int numberOfSamples = 0;
+
+	//Do we have new data?
+	if (readPointer != writePointer) {
+		//Calculate the number of readings we need to get from sensor
+		numberOfSamples = writePointer - readPointer;
+		if (numberOfSamples < 0)
+			numberOfSamples += 32; //Wrap condition
+
+		//Get ready to read a burst of data from the FIFO register
+		uint8_t command[] = { MAX86150_FIFODATA };
+
+		// Important! true is for repeated start (since we are not reading complete fifo)
+		// See https://os.mbed.com/users/laserdad/code/MAX86150_ECG_PPG//file/3c728f3d1f10/main.cpp/
+		I2C_MasterWrite(
+			MXC_I2C1_BUS0, MAX86150_ADDRESS << 1, command, 1, true
+		);
+
+		if (numberOfSamples > 0) {
+			uint8_t data[3 * 3];
+			I2C_MasterRead(
+				MXC_I2C1_BUS0,
+				MAX86150_ADDRESS << 1,
+				data,
+				3 * 3,
+				0
+			);
+
+			*red = (data[0] << 16) | (data[1] << 8) | (data[2]);
+			*ir  = (data[3] << 16) | (data[4] << 8) | (data[5]);
+			*ecg = (data[6] << 16) | (data[7] << 8) | (data[8]);
+		}
+
+	}                         //End readPtr != writePtr
+	return (numberOfSamples); //Let the world know how much new data we found
+}
 //Polls the sensor for new data
 //Call regularly
 //If new data is max86150_available, it updates the head and tail in the main struct
 //Returns number of new samples obtained
 uint16_t max86150_check(void)
 {
-  //Read register FIDO_DATA in (3-byte * number of active LED) chunks
-  //Until FIFO_RD_PTR = FIFO_WR_PTR
-
-  byte readPointer = max86150_getReadPointer();
-  byte writePointer = max86150_getWritePointer();
-
-  int numberOfSamples = 0;
-
-  //Do we have new data?
-  if (readPointer != writePointer)
-  {
-    //Calculate the number of readings we need to get from sensor
-    numberOfSamples = writePointer - readPointer;
-    if (numberOfSamples < 0) numberOfSamples += 32; //Wrap condition
-
-    //We now have the number of readings, now calc bytes to read
-    //For this example we are just doing Red and IR (3 bytes each)
-    int bytesLeftToRead = numberOfSamples * activeDevices * 3;
-
-    //Get ready to read a burst of data from the FIFO register
-    uint8_t command[] = {MAX86150_FIFODATA};
-    I2C_MasterWrite(MXC_I2C1_BUS0, _i2caddr << 1, command, 1, 0);
-
-    //We may need to read as many as 288 bytes so we read in blocks no larger than I2C_BUFFER_LENGTH
-    //I2C_BUFFER_LENGTH changes based on the platform. 64 bytes for SAMD21, 32 bytes for Uno.
-    //Wire.requestFrom() is limited to BUFFER_LENGTH which is 32 on the Uno
-    while (bytesLeftToRead > 0)
-    {
-      int toGet = bytesLeftToRead;
-      if (toGet > I2C_BUFFER_LENGTH)
-      {
-        //If toGet is 32 this is bad because we read 6 bytes (Red+IR * 3 = 6) at a time
-        //32 % 6 = 2 left over. We don't want to request 32 bytes, we want to request 30.
-        //32 % 9 (Red+IR+GREEN) = 5 left over. We want to request 27.
-
-        toGet = I2C_BUFFER_LENGTH - (I2C_BUFFER_LENGTH % (activeDevices * 3)); //Trim toGet to be a multiple of the samples we need to read
-      }
-
-      bytesLeftToRead -= toGet;
-
-      //Request toGet number of bytes from sensor
-      //_i2cPort->requestFrom(_i2caddr, toGet);
-      uint8_t data[toGet];
-      uint8_t *p = data;
-      I2C_MasterRead(MXC_I2C1_BUS0, _i2caddr << 1, data, toGet, 0);
-
-      while (toGet > 0)
-      {
-        sense.head++; //Advance the head of the storage struct
-        sense.head %= STORAGE_SIZE; //Wrap condition
-
-        byte temp[sizeof(uint32_t)]; //Array of 4 bytes that we will convert into long
-        uint32_t tempLong;
-
-        //Burst read three bytes - RED
-        temp[3] = 0;
-        temp[2] = *p++;
-        temp[1] = *p++;
-        temp[0] = *p++;
-
-        //Convert array to long
-        memcpy(&tempLong, temp, sizeof(tempLong));
+	//Read register FIDO_DATA in (3-byte * number of active LED) chunks
+	//Until FIFO_RD_PTR = FIFO_WR_PTR
+
+	byte readPointer  = max86150_get_fifo_read_pointer();
+	byte writePointer = max86150_get_fifo_write_pointer();
+
+	int numberOfSamples = 0;
+
+	//Do we have new data?
+	if (readPointer != writePointer) {
+		//Calculate the number of readings we need to get from sensor
+		numberOfSamples = writePointer - readPointer;
+		if (numberOfSamples < 0)
+			numberOfSamples += 32; //Wrap condition
+
+		//We now have the number of readings, now calc bytes to read
+		//For this example we are just doing Red and IR (3 bytes each)
+		int bytesLeftToRead = numberOfSamples * activeDevices * 3;
+
+		//Get ready to read a burst of data from the FIFO register
+		uint8_t command[] = { MAX86150_FIFODATA };
+		I2C_MasterWrite(
+			MXC_I2C1_BUS0, MAX86150_ADDRESS << 1, command, 1, 0
+		);
+
+		//We may need to read as many as 288 bytes so we read in blocks no larger than I2C_BUFFER_LENGTH
+		//I2C_BUFFER_LENGTH changes based on the platform. 64 bytes for SAMD21, 32 bytes for Uno.
+		//Wire.requestFrom() is limited to BUFFER_LENGTH which is 32 on the Uno
+		while (bytesLeftToRead > 0) {
+			int toGet = bytesLeftToRead;
+			if (toGet > I2C_BUFFER_LENGTH) {
+				//If toGet is 32 this is bad because we read 9 bytes (Red+IR+ECG * 3 = 9) at a time
+				//32 % 9 = 5 left over. We don't want to request 32 bytes, we want to request 27.
+				//32 % 9 (Red+IR+GREEN) = 5 left over. We want to request 27.
+
+				toGet = I2C_BUFFER_LENGTH -
+					(I2C_BUFFER_LENGTH %
+					 (activeDevices *
+					  3)); //Trim toGet to be a multiple of the samples we need to read
+			}
+
+			bytesLeftToRead -= toGet;
+
+			//Request toGet number of bytes from sensor
+			//_i2cPort->requestFrom(MAX86150_ADDRESS, toGet);
+			uint8_t data[bytesLeftToRead];
+			uint8_t *p = data;
+			I2C_MasterRead(
+				MXC_I2C1_BUS0,
+				MAX86150_ADDRESS << 1,
+				data,
+				bytesLeftToRead,
+				0
+			);
+
+			while (bytesLeftToRead > 0) {
+				sense.head++; //Advance the head of the storage struct
+				sense.head %= STORAGE_SIZE; //Wrap condition
+
+				byte temp[sizeof(
+					uint32_t)]; //Array of 4 bytes that we will convert into long
+				uint32_t tempLong;
+
+				//Burst read three bytes - RED
+				temp[3] = 0;
+				temp[2] = *p++;
+				temp[1] = *p++;
+				temp[0] = *p++;
+
+				//Convert array to long
+				memcpy(&tempLong, temp, sizeof(tempLong));
 
 				tempLong &= 0x7FFFF; //Zero out all but 18 bits
 
-        sense.red[sense.head] = tempLong; //Store this reading into the sense array
+				sense.red[sense.head] =
+					tempLong; //Store this reading into the sense array
 
-        if (activeDevices > 1)
-        {
-          //Burst read three more bytes - IR
-          temp[3] = 0;
-          temp[2] = *p++;
-          temp[1] = *p++;
-          temp[0] = *p++;
+				if (activeDevices > 1) {
+					//Burst read three more bytes - IR
+					temp[3] = 0;
+					temp[2] = *p++;
+					temp[1] = *p++;
+					temp[0] = *p++;
 
-          //Convert array to long
-          memcpy(&tempLong, temp, sizeof(tempLong));
+					//Convert array to long
+					memcpy(&tempLong,
+					       temp,
+					       sizeof(tempLong));
 					//Serial.println(tempLong);
-				  tempLong &= 0x7FFFF; //Zero out all but 18 bits
+					tempLong &=
+						0x7FFFF; //Zero out all but 18 bits
 
-				  sense.IR[sense.head] = tempLong;
-        }
+					sense.IR[sense.head] = tempLong;
+				}
 
-        if (activeDevices > 2)
-        {
-          //Burst read three more bytes - ECG
+				if (activeDevices > 2) {
+					//Burst read three more bytes - ECG
 					int32_t tempLongSigned;
-
-          temp[3] = 0;
-          temp[2] = *p++;
-          temp[1] = *p++;
-          temp[0] = *p++;
+					temp[3] = 0;
+					temp[2] = *p++;
+					temp[1] = *p++;
+					temp[0] = *p++;
 
 					//Serial.println(tempLong);
-          //Convert array to long
-          memcpy(&tempLongSigned, temp, sizeof(tempLongSigned));
-
-		  		//tempLong &= 0x3FFFF; //Zero out all but 18 bits
+					//Convert array to long
+					memcpy(&tempLongSigned,
+					       temp,
+					       sizeof(tempLongSigned));
+					//tempLong &= 0x3FFFF; //Zero out all but 18 bits
+					sense.ecg[sense.head] = tempLongSigned;
+				}
 
-          sense.ecg[sense.head] = tempLongSigned;
-        }
-
-        toGet -= activeDevices * 3;
-      }
-    } //End while (bytesLeftToRead > 0)
-  } //End readPtr != writePtr
-  return (numberOfSamples); //Let the world know how much new data we found
+				bytesLeftToRead -= activeDevices * 3;
+			}
+		}                 //End while (bytesLeftToRead > 0)
+	}                         //End readPtr != writePtr
+	return (numberOfSamples); //Let the world know how much new data we found
 }
 
 //Check for new data but give up after a certain amount of time
 //Returns true if new data was found
 //Returns false if new data was not found
-bool max86150_safeCheck(uint8_t maxTimeToCheck)
+bool max86150_safe_check(uint8_t max_tries)
 {
-  // TODO
-  //uint32_t markTime = millis();
-
-  while(1)
-  {
-	//if(millis() - markTime > maxTimeToCheck) return(false);
+	uint8_t tries = 0;
 
-	if(max86150_check() == true) //We found new data!
-	  return(true);
+	while (tries < max_tries) {
+		if (max86150_check() == true) { //We found new data!
+			return (true);
+		}
 
-	delay(1);
-  }
+		tries++;
+		delay(1);
+	}
+	return false;
 }
 
 //Given a register, read it, mask it, and then set the thing
-void max86150_bitMask(uint8_t reg, uint8_t mask, uint8_t thing)
+void max86150_bit_mask(uint8_t reg, uint8_t mask, uint8_t thing)
 {
-  // Grab current register context
-  uint8_t originalContents = max86150_readRegister8(_i2caddr, reg);
+	// Grab current register context
+	uint8_t originalContents =
+		max86150_read_register(MAX86150_ADDRESS, reg);
 
-  // Zero-out the portions of the register we're interested in
-  originalContents = originalContents & mask;
+	// Zero-out the portions of the register we're interested in
+	originalContents = originalContents & mask;
 
-  // Change contents
-  max86150_writeRegister8(_i2caddr, reg, originalContents | thing);
+	// Change contents
+	max86150_write_register(
+		MAX86150_ADDRESS, reg, originalContents | thing
+	);
 }
 
-uint8_t max86150_readRegister8(uint8_t address, uint8_t reg) {
-
-  uint8_t tempData = 0;
-  uint8_t command[] = {reg};
-  I2C_MasterWrite(MXC_I2C1_BUS0, address << 1, command, 1, 0);
+uint8_t max86150_read_register(uint8_t address, uint8_t reg)
+{
+	uint8_t tempData  = 0;
+	uint8_t command[] = { reg };
+	// Important! true is for repeated start (since we are not reading complete fifo)
+	// See https://os.mbed.com/users/laserdad/code/MAX86150_ECG_PPG//file/3c728f3d1f10/main.cpp/
+	I2C_MasterWrite(MXC_I2C1_BUS0, address << 1, command, 1, true);
 
-  I2C_MasterRead(MXC_I2C1_BUS0, address << 1, &tempData, 1, 0);
+	I2C_MasterRead(MXC_I2C1_BUS0, address << 1, &tempData, 1, 0);
 
-  return tempData;
+	return tempData;
 }
 
-void max86150_writeRegister8(uint8_t address, uint8_t reg, uint8_t value) {
-  uint8_t command[] = {reg, value};
-  I2C_MasterWrite(MXC_I2C1_BUS0, address << 1, command, 2, 0);
+void max86150_write_register(uint8_t address, uint8_t reg, uint8_t value)
+{
+	uint8_t command[] = { reg, value };
+	I2C_MasterWrite(MXC_I2C1_BUS0, address << 1, command, 2, 0);
 }
diff --git a/lib/vendor/Maxim/MAX86150/max86150.h b/lib/vendor/Maxim/MAX86150/max86150.h
index c9454ea51b32d591824e14ea2db2b7735b28735b..66b102183186fe2626aa17b7f62ad33589aa936a 100644
--- a/lib/vendor/Maxim/MAX86150/max86150.h
+++ b/lib/vendor/Maxim/MAX86150/max86150.h
@@ -18,86 +18,115 @@
 #include <stdint.h>
 #include <stdbool.h>
 
-typedef uint8_t byte;
 
-bool max86150_begin(void);
-
-uint32_t max86150_getRed(void); //Returns immediate red value
-uint32_t max86150_getIR(void); //Returns immediate IR value
-int32_t max86150_getECG(void); //Returns immediate ECG value
-bool max86150_safeCheck(uint8_t maxTimeToCheck); //Given a max amount of time, check for new data
-
-// Configuration
-void max86150_softReset();
-void max86150_shutDown();
-void max86150_wakeUp();
+static const uint8_t MAX86150_SAMPLEAVG_1 = 	0b000;
+static const uint8_t MAX86150_SAMPLEAVG_2 = 	0b001;
+static const uint8_t MAX86150_SAMPLEAVG_4 = 	0b010;
+static const uint8_t MAX86150_SAMPLEAVG_8 = 	0b011;
+static const uint8_t MAX86150_SAMPLEAVG_16 = 	0b100;
+static const uint8_t MAX86150_SAMPLEAVG_32 = 	0b101;
+
+static const uint8_t MAX86150_ADCRANGE_4096 = 	0b00000000;
+static const uint8_t MAX86150_ADCRANGE_8192 = 	0b01000000;
+static const uint8_t MAX86150_ADCRANGE_16384 = 	0b10000000;
+static const uint8_t MAX86150_ADCRANGE_32768 = 	0b11000000;
+
+static const uint8_t MAX86150_PPG_SAMPLERATE_10 =	0b00000000;
+static const uint8_t MAX86150_PPG_SAMPLERATE_20 =	0b00000100;
+static const uint8_t MAX86150_PPG_SAMPLERATE_50 =	0b00001000;
+static const uint8_t MAX86150_PPG_SAMPLERATE_84 =	0b00001100;
+static const uint8_t MAX86150_PPG_SAMPLERATE_100 =	0b00010000;
+static const uint8_t MAX86150_PPG_SAMPLERATE_200 =	0b00010100;
+static const uint8_t MAX86150_PPG_SAMPLERATE_400 =	0b00011000;
+static const uint8_t MAX86150_PPG_SAMPLERATE_800 =	0b00011100;
+static const uint8_t MAX86150_PPG_SAMPLERATE_1000 =	0b00100000;
+static const uint8_t MAX86150_PPG_SAMPLERATE_1600 =	0b00100100;
+static const uint8_t MAX86150_PPG_SAMPLERATE_3200 =	0b00101000;
+
+static const uint8_t MAX86150_PPG_PULSEWIDTH_50 =	0b00;
+static const uint8_t MAX86150_PPG_PULSEWIDTH_100 =	0b01;
+static const uint8_t MAX86150_PPG_PULSEWIDTH_200 =	0b10;
+static const uint8_t MAX86150_PPG_PULSEWIDTH_400 =	0b11;
+
+static const uint8_t MAX86150_SLOT_NONE =	0b0000;
+static const uint8_t MAX86150_SLOT_RED_LED =	0b0010;
+static const uint8_t MAX86150_SLOT_IR_LED =	0b0001;
+static const uint8_t MAX86150_SLOT_RED_PILOT =	0b0110;
+static const uint8_t MAX86150_SLOT_IR_PILOT =	0b0101;
+static const uint8_t MAX86150_SLOT_ECG =	0b1001;
+
+static const uint8_t MAX86150_LED1_RANGE_50 =	0b00;
+static const uint8_t MAX86150_LED1_RANGE_100 =	0b01;
+static const uint8_t MAX86150_LED2_RANGE_50 =	0b0000;
+static const uint8_t MAX86150_LED2_RANGE_100 =	0b0100;
+
+static const uint8_t MAX86150_ECG_SAMPLERATE_200 =	0b011;
+static const uint8_t MAX86150_ECG_SAMPLERATE_400 =	0b010;
+static const uint8_t MAX86150_ECG_SAMPLERATE_800 =	0b001;
+static const uint8_t MAX86150_ECG_SAMPLERATE_1600 =	0b000;
+static const uint8_t MAX86150_ECG_SAMPLERATE_3200 =	0b100;
+
+static const uint8_t MAX86150_ECG_PGA_GAIN_1 =		0b0000;
+static const uint8_t MAX86150_ECG_PGA_GAIN_2 =		0b0100;
+static const uint8_t MAX86150_ECG_PGA_GAIN_4 =		0b1000;
+static const uint8_t MAX86150_ECG_PGA_GAIN_8 =		0b1100;
+
+static const uint8_t MAX86150_ECG_IA_GAIN_5 =		0b00;
+static const uint8_t MAX86150_ECG_IA_GAIN_9_5 =		0b01;
+static const uint8_t MAX86150_ECG_IA_GAIN_20 =		0b10;
+static const uint8_t MAX86150_ECG_IA_GAIN_50 =		0b11;
 
-void max86150_setLEDMode(uint8_t mode);
 
-void max86150_setADCRange(uint8_t adcRange);
-void max86150_setSampleRate(uint8_t sampleRate);
-void max86150_setPulseWidth(uint8_t pulseWidth);
 
-void max86150_setPulseAmplitudeRed(uint8_t value);
-void max86150_setPulseAmplitudeIR(uint8_t value);
-void max86150_setPulseAmplitudeProximity(uint8_t value);
-
-void max86150_setProximityThreshold(uint8_t threshMSB);
+bool max86150_begin(void);
 
-//Multi-led configuration mode (page 22)
-void max86150_enableSlot(uint8_t slotNumber, uint8_t device); //Given slot number, assign a device to slot
+uint8_t max86150_get_int1(void);
+uint8_t max86150_get_int2(void);
+
+void max86150_set_int_full(bool enabled);
+void max86150_set_int_datardy(bool enabled);
+void max86150_set_int_ambient_light_overflow(bool enabled);
+void max86150_set_int_proximity(bool enabled);
+
+void max86150_soft_reset(void);
+void max86150_shut_down(void);
+void max86150_wake_up(void);
+void max86150_set_ppg_adc_range(uint8_t adcRange);
+void max86150_set_ppg_sample_rate(uint8_t sampleRate);
+void max86150_set_ppg_pulse_width(uint8_t pulseWidth);
+void max86150_set_led_red_amplitude(uint8_t amplitude);
+void max86150_set_led_ir_amplitude(uint8_t amplitude);
+void max86150_set_led_proximity_amplitude(uint8_t amplitude);
+void max86150_set_proximity_threshold(uint8_t threshMSB);
+void max86150_fifo_enable_slot(uint8_t slotNumber, uint8_t device);
 void max86150_disableSlots(void);
-
-// Data Collection
-
-//Interrupts (page 13, 14)
-uint8_t max86150_getINT1(void); //Returns the main interrupt group
-uint8_t max86150_getINT2(void); //Returns the temp ready interrupt
-void max86150_enableAFULL(void); //Enable/disable individual interrupts
-void max86150_disableAFULL(void);
-void max86150_enableDATARDY(void);
-void max86150_disableDATARDY(void);
-void max86150_enableALCOVF(void);
-void max86150_disableALCOVF(void);
-void max86150_enablePROXINT(void);
-void max86150_disablePROXINT(void);
-void max86150_enableDIETEMPRDY(void);
-void max86150_disableDIETEMPRDY(void);
-
-//FIFO Configuration (page 18)
-void max86150_setFIFOAverage(uint8_t samples);
-void max86150_enableFIFORollover();
-void max86150_disableFIFORollover();
-void max86150_setFIFOAlmostFull(uint8_t samples);
-
-//FIFO Reading
-uint16_t max86150_check(void); //Checks for new data and fills FIFO
-uint8_t max86150_available(void); //Tells caller how many new samples are available (head - tail)
-void max86150_nextSample(void); //Advances the tail of the sense array
-uint32_t max86150_getFIFORed(void); //Returns the FIFO sample pointed to by tail
-uint32_t max86150_getFIFOIR(void); //Returns the FIFO sample pointed to by tail
-int32_t max86150_getFIFOECG(void); //Returns the FIFO sample pointed to by tail
-
-uint8_t max86150_getWritePointer(void);
-uint8_t max86150_getReadPointer(void);
-void max86150_clearFIFO(void); //Sets the read/write pointers to zero
-
-//Proximity Mode Interrupt Threshold
-void max86150_setPROXINTTHRESH(uint8_t val);
-
-// Die Temperature
-float max86150_readTemperature();
-float max86150_readTemperatureF();
-
-// Detecting ID/Revision
-uint8_t max86150_getRevisionID();
-uint8_t max86150_readPartID();
-uint8_t max86150_readRegLED();
-
-// Setup the IC with user selectable settings
-//void max86150_setup(byte powerLevel = 0x1F, byte sampleAverage = 4, byte ledMode = 3, int sampleRate = 400, int pulseWidth = 411, int adcRange = 4096);
-void max86150_setup(byte powerLevel, byte sampleAverage, byte ledMode, int sampleRate, int pulseWidth, int adcRange);
-
-// Low-level I2C communication
-uint8_t max86150_readRegister8(uint8_t address, uint8_t reg);
-void max86150_writeRegister8(uint8_t address, uint8_t reg, uint8_t value);
+void max86150_set_ppg_averaging(uint8_t numberOfSamples);
+void max86150_clear_fifo(void);
+void max86150_set_fifo_rollover(bool enabled);
+void max86150_set_fifo_almost_full_clear(bool enabled);
+void max86150_set_fifo_almost_full_repeat(bool enabled);
+void max86150_set_fifo_almost_full(uint8_t numberOfSamples);
+uint8_t max86150_get_fifo_write_pointer(void);
+uint8_t max86150_get_fifo_read_pointer(void);
+uint8_t max86150_read_part_id();
+void max86150_set_ecg_sample_rate(uint8_t sampleRate);
+void max86150_set_ecg_pga_gain(uint8_t gain);
+void max86150_set_ecg_instrumentation_amplifier_gain(uint8_t gain);
+
+void max86150_setup(const uint8_t ppg_sample_rate);
+
+uint8_t max86150_available(void);
+uint32_t max86150_get_red(void);
+uint32_t max86150_get_ir(void);
+int32_t max86150_get_ecg(void);
+uint32_t max86150_get_fifo_red(void);
+uint32_t max86150_get_fifo_ir(void);
+int32_t max86150_get_fifo_ecg(void);
+void max86150_next_sample(void);
+uint8_t max86150_get_sample(uint32_t *red, uint32_t *ir, int32_t *ecg);
+uint16_t max86150_check(void);
+bool max86150_safe_check(uint8_t max_tries);
+
+void max86150_bit_mask(uint8_t reg, uint8_t mask, uint8_t thing);
+uint8_t max86150_read_register(uint8_t address, uint8_t reg);
+void max86150_write_register(uint8_t address, uint8_t reg, uint8_t value);
diff --git a/meson.build b/meson.build
index f1586ec93aa9aae174a8a26bc95d1cc708e0cea5..8a0ae60bda2324f27f2cf51b185a73777537017f 100644
--- a/meson.build
+++ b/meson.build
@@ -7,6 +7,7 @@ project(
     'c_std=c99',
     'b_staticpic=false',
     'b_asneeded=false',
+    'warning_level=2',
   ],
 )
 
@@ -17,6 +18,8 @@ assert(
 )
 
 add_global_arguments(
+  '-Wno-unused-parameter',
+  '-Wno-old-style-declaration',
   meson.get_cross_property('target_defs'),
   language: 'c',
 )
diff --git a/preload/apps/bhi160/__init__.py b/preload/apps/bhi160/__init__.py
index c1f4325092a83b4b23975f9057bec7b2caee3e67..a6de8fc23ade4b2b34d05f5f32031cd5dd12fb6b 100644
--- a/preload/apps/bhi160/__init__.py
+++ b/preload/apps/bhi160/__init__.py
@@ -14,19 +14,23 @@ STATUS_COLORS = [
     color.GREEN,
 ]
 
-with contextlib.ExitStack() as cx:
-    disp = cx.enter_context(display.open())
 
+def sensors(**args):
+    while True:
+        with bhi160.BHI160Orientation(**args) as s:
+            yield s, "Orientation"
+        with bhi160.BHI160Accelerometer(**args) as s:
+            yield s, "Accel"
+        with bhi160.BHI160Gyroscope(**args) as s:
+            yield s, "Gyro"
+        with bhi160.BHI160Magnetometer(**args) as s:
+            yield s, "Magnetic"
+
+
+with display.open() as disp:
     args = {"sample_rate": 10, "sample_buffer_len": 20}
 
-    sensor_iter = itertools.cycle(
-        [
-            (cx.enter_context(bhi160.BHI160Orientation(**args)), "Orientation"),
-            (cx.enter_context(bhi160.BHI160Accelerometer(**args)), "Accel"),
-            (cx.enter_context(bhi160.BHI160Gyroscope(**args)), "Gyro"),
-            (cx.enter_context(bhi160.BHI160Magnetometer(**args)), "Magnetic"),
-        ]
-    )
+    sensor_iter = sensors(**args)
     sensor, sensor_name = next(sensor_iter)
 
     for ev in simple_menu.button_events(timeout=0.1):
diff --git a/preload/apps/bhi160/metadata.json b/preload/apps/bhi160/metadata.json
index e8a0a37a4779bf3916449420f7724172b4eee021..807bf71206b9ef35d764a4fe6a9d8e564fe8f9e3 100644
--- a/preload/apps/bhi160/metadata.json
+++ b/preload/apps/bhi160/metadata.json
@@ -1 +1 @@
-{"author": "card10badge team", "name": "BHI160", "description": "Read BHI160 sensor data", "category": "Hardware", "revision": 1}
+{"author": "card10 contributors", "name": "BHI160", "description": "Read BHI160 sensor data", "category": "Hardware", "revision": -1, "source":"preload"}
diff --git a/preload/apps/ble/metadata.json b/preload/apps/ble/metadata.json
index 4726c23629fac128a30e18462cef67f518bbd9ed..e8538282997818ec7fb575fa380a2ca5cc36308c 100644
--- a/preload/apps/ble/metadata.json
+++ b/preload/apps/ble/metadata.json
@@ -1 +1 @@
-{"author": "card10badge team", "name": "Bluetooth", "description": "Toggle Bluetooth Low Energy Indicator", "category": "Hardware", "revision": 1}
+{"author": "card10 contributors", "name": "Bluetooth", "description": "Toggle Bluetooth Low Energy Indicator", "category": "Hardware", "revision": -1, "source":"preload"}
diff --git a/preload/apps/ecg/__init__.py b/preload/apps/ecg/__init__.py
index 8a501a21b667ade943fca83ca2e6dd32186ad983..775fb2cec01d8170f9aa1ccd2ff34cf7223d2f38 100644
--- a/preload/apps/ecg/__init__.py
+++ b/preload/apps/ecg/__init__.py
@@ -7,12 +7,13 @@ import max30001
 import math
 import struct
 import itertools
+from ecg.settings import *
 
+config = ecg_settings()
 WIDTH = 160
 HEIGHT = 80
 OFFSET_Y = 49
-ECG_RATE = 128
-HISTORY_MAX = ECG_RATE * 4
+HISTORY_MAX = WIDTH * 4
 DRAW_AFTER_SAMPLES = 5
 SCALE_FACTOR = 30
 MODE_USB = "USB"
@@ -26,24 +27,18 @@ COLOR_MODE_USB = [0, 0, 255]
 COLOR_WRITE_FG = [255, 255, 255]
 COLOR_WRITE_BG = [255, 0, 0]
 
-current_mode = MODE_FINGER
-modes = itertools.cycle(
-    [
-        ({"bar", "pulse"}, {"text": "Top + Pulse", "posx": 0}),
-        ({}, {"text": "off", "posx": 55}),
-        ({"bar"}, {"text": "Top Only", "posx": 25}),
-        ({"pulse"}, {"text": "Pulse Only", "posx": 5}),
-    ]
-)
-led_mode = next(modes)[0]
 history = []
+
+# variables for file output
 filebuffer = bytearray()
 write = 0
-bias = True
+write_time_string = ""
+samples_since_start_of_write = 0
+
 update_screen = 0
 pause_screen = 0
-pause_histogram = False
-histogram_offset = 0
+pause_graph = False
+graph_offset = 0
 sensor = 0
 disp = display.open()
 last_sample_count = 1
@@ -51,19 +46,25 @@ last_sample_count = 1
 leds.dim_top(1)
 COLORS = [((23 + (15 * i)) % 360, 1.0, 1.0) for i in range(11)]
 
-
 # variables for high-pass filter
+# note: corresponds to 1st order hpf with -3dB at ~18.7Hz
+# general formula: f(-3dB)=-(sample_rate/tau)*ln(1-betadash)
 moving_average = 0
 alpha = 2
 beta = 3
+betadash = beta / (alpha + beta)
 
 
 def update_history(datasets):
     global history, moving_average, alpha, beta, last_sample_count
     last_sample_count = len(datasets)
     for val in datasets:
-        history.append(val - moving_average)
-        moving_average = (alpha * moving_average + beta * val) / (alpha + beta)
+        if "HP" in config.get_option("Filter"):
+            history.append(val - moving_average)
+            moving_average += betadash * (val - moving_average)
+            # identical to: moving_average = (alpha * moving_average + beta * val) / (alpha + beta)
+        else:
+            history.append(val)
 
     # trim old elements
     history = history[-HISTORY_MAX:]
@@ -75,7 +76,7 @@ samples_since_last_pulse = 0
 last_pulse_blink = 0
 q_threshold = -1
 r_threshold = 1
-q_spike = -ECG_RATE
+q_spike = -500  # just needs to be long ago
 
 
 def neighbours(n, lst):
@@ -97,6 +98,8 @@ def detect_pulse(num_new_samples):
     # consider ["CDE", "DEF"]
     # new samples: "GHI" => "ABCDEFGHI"
     # consider ["EFG", "FGH", "GHI"]
+    ecg_rate = config.get_option("Rate")
+
     for [prev, cur, next_] in neighbours(3, history[-(num_new_samples + 2) :]):
         samples_since_last_pulse += 1
 
@@ -107,33 +110,37 @@ def detect_pulse(num_new_samples):
         elif (
             prev < cur > next_
             and cur > r_threshold
-            and samples_since_last_pulse - q_spike < ECG_RATE // 10
+            and samples_since_last_pulse - q_spike < ecg_rate // 10
         ):
-            # the full QRS complex is < 0.1s long, so the q and r spike in particular cannot be more than ECG_RATE//10 samples apart
-            pulse = 60 * ECG_RATE // samples_since_last_pulse
-            samples_since_last_pulse = 0
-            q_spike = -ECG_RATE
+            # the full QRS complex is < 0.1s long, so the q and r spike in particular cannot be more than ecg_rate//10 samples apart
+            pulse = 60 * ecg_rate // samples_since_last_pulse
+            q_spike = -ecg_rate
             if pulse < 30 or pulse > 210:
                 pulse = -1
+            elif write > 0 and "pulse" in config.get_option("Log"):
+                write_pulse()
             # we expect the next r-spike to be at least 60% as high as this one
             r_threshold = (cur * 3) // 5
-        elif samples_since_last_pulse > 2 * ECG_RATE:
+            samples_since_last_pulse = 0
+        elif samples_since_last_pulse > 2 * ecg_rate:
             q_threshold = -1
             r_threshold = 1
             pulse = -1
 
 
 def callback_ecg(datasets):
-    global update_screen, history, filebuffer, write
+    global update_screen, history, filebuffer, write, samples_since_start_of_write
     update_screen += len(datasets)
+    if write > 0:
+        samples_since_start_of_write += len(datasets)
 
-    # update histogram datalist
-    if not pause_histogram:
+    # update graph datalist
+    if not pause_graph:
         update_history(datasets)
         detect_pulse(len(datasets))
 
     # buffer for writes
-    if write > 0:
+    if write > 0 and "graph" in config.get_option("Log"):
         for value in datasets:
             filebuffer.extend(struct.pack("h", value))
             if len(filebuffer) >= FILEBUFFERBLOCK:
@@ -141,20 +148,18 @@ def callback_ecg(datasets):
 
     # don't update on every callback
     if update_screen >= DRAW_AFTER_SAMPLES:
-        draw_histogram()
+        draw_graph()
 
 
-def write_filebuffer():
-    global write, filebuffer
+def append_to_file(fileprefix, content):
+    global write, pause_screen
     # write to file
-    chars = ""
-    lt = utime.localtime(write)
-    filename = "/ecg-{:04d}-{:02d}-{:02d}_{:02d}{:02d}{:02d}.log".format(*lt)
+    filename = "/ecg_logs/{}-{}.log".format(fileprefix, write_time_string)
 
     # write stuff to disk
     try:
         f = open(filename, "ab")
-        f.write(filebuffer)
+        f.write(content)
         f.close()
     except OSError as e:
         print("Please check the file or filesystem", e)
@@ -168,18 +173,28 @@ def write_filebuffer():
         disp.update()
         close_sensor()
     except:
-        print("Unexpected error, stop writeing logfile")
+        print("Unexpected error, stop writing logfile")
         write = 0
 
+
+def write_pulse():
+    # estimates timestamp as calls to utime.time() take too much time
+    approx_timestamp = write + samples_since_start_of_write // config.get_option("Rate")
+    append_to_file("pulse", struct.pack("ib", approx_timestamp, pulse))
+
+
+def write_filebuffer():
+    global filebuffer
+    append_to_file("ecg", filebuffer)
     filebuffer = bytearray()
 
 
 def open_sensor():
     global sensor
     sensor = max30001.MAX30001(
-        usb=(current_mode == MODE_USB),
-        bias=bias,
-        sample_rate=ECG_RATE,
+        usb=(config.get_option("Mode") == "USB"),
+        bias=config.get_option("Bias"),
+        sample_rate=config.get_option("Rate"),
         callback=callback_ecg,
     )
 
@@ -189,36 +204,8 @@ def close_sensor():
     sensor.close()
 
 
-def toggle_mode():
-    global current_mode, disp, pause_screen
-    if write > 0:
-        pause_screen = utime.time_ms() + 500
-        disp.clear(COLOR_BACKGROUND)
-        disp.print("Locked", posx=30, posy=30, fg=COLOR_TEXT)
-        disp.update()
-        return
-
-    close_sensor()
-    current_mode = MODE_USB if current_mode == MODE_FINGER else MODE_FINGER
-    open_sensor()
-
-
-def toggle_bias():
-    global bias, disp, pause_screen
-    if write > 0:
-        pause_screen = utime.time_ms() + 500
-        disp.clear(COLOR_BACKGROUND)
-        disp.print("Locked", posx=30, posy=30, fg=COLOR_TEXT)
-        disp.update()
-        return
-
-    close_sensor()
-    bias = not bias
-    open_sensor()
-
-
 def toggle_write():
-    global write, disp, pause_screen
+    global write, disp, pause_screen, filebuffer, samples_since_start_of_write, write_time_string
     pause_screen = utime.time_ms() + 1000
     disp.clear(COLOR_BACKGROUND)
     if write > 0:
@@ -229,6 +216,13 @@ def toggle_write():
     else:
         filebuffer = bytearray()
         write = utime.time()
+        lt = utime.localtime(write)
+        write_time_string = "{:04d}-{:02d}-{:02d}_{:02d}{:02d}{:02d}".format(*lt)
+        samples_since_start_of_write = 0
+        try:
+            os.mkdir("ecg_logs")
+        except:
+            pass
         disp.print("Start", posx=45, posy=20, fg=COLOR_TEXT)
         disp.print("logging", posx=30, posy=40, fg=COLOR_TEXT)
 
@@ -236,25 +230,13 @@ def toggle_write():
 
 
 def toggle_pause():
-    global pause_histogram, histogram_offset, history, leds
-    if pause_histogram:
-        pause_histogram = False
+    global pause_graph, graph_offset, history, leds
+    if pause_graph:
+        pause_graph = False
         history = []
     else:
-        pause_histogram = True
-    histogram_offset = 0
-    leds.clear()
-
-
-def toggle_leds():
-    global led_mode, disp, pause_screen, leds, modes
-    led_mode, display_args = next(modes)
-
-    pause_screen = utime.time_ms() + 250
-    disp.clear(COLOR_BACKGROUND)
-    disp.print("LEDs", posx=50, posy=20, fg=COLOR_TEXT)
-    disp.print(**display_args, posy=40, fg=COLOR_TEXT)
-    disp.update()
+        pause_graph = True
+    graph_offset = 0
     leds.clear()
 
 
@@ -263,6 +245,8 @@ def draw_leds(vmin, vmax):
     # vmax should be in [0, 1]
     global pulse, samples_since_last_pulse, last_pulse_blink
 
+    led_mode = config.get_option("LEDs")
+
     # stop blinking
     if not bool(led_mode):
         return
@@ -294,8 +278,8 @@ def draw_leds(vmin, vmax):
     leds.update()
 
 
-def draw_histogram():
-    global disp, history, current_mode, bias, write, pause_screen, update_screen
+def draw_graph():
+    global disp, history, write, pause_screen, update_screen
 
     # skip rendering due to message beeing shown
     if pause_screen == -1:
@@ -309,32 +293,32 @@ def draw_histogram():
 
     disp.clear(COLOR_BACKGROUND)
 
-    # offset in pause_histogram mode
-    window_end = int(len(history) - histogram_offset)
-    s_start = max(0, window_end - (ECG_RATE * 2))
+    # offset in pause_graph mode
+    timeWindow = config.get_option("Window")
+    window_end = int(len(history) - graph_offset)
     s_end = max(0, window_end)
-    s_draw = max(0, s_end - WIDTH)
+    s_start = max(0, s_end - WIDTH * timeWindow)
 
     # get max value and calc scale
     value_max = max(abs(x) for x in history[s_start:s_end])
     scale = SCALE_FACTOR / (value_max if value_max > 0 else 1)
 
-    # draw histogram
+    # draw graph
     # values need to be inverted so high values are drawn with low pixel coordinates (at the top of the screen)
-    draw_points = (int(-x * scale + OFFSET_Y) for x in history[s_draw:s_end])
+    draw_points = (int(-x * scale + OFFSET_Y) for x in history[s_start:s_end])
 
     prev = next(draw_points)
     for x, value in enumerate(draw_points):
-        disp.line(x, prev, x + 1, value, col=COLOR_LINE)
+        disp.line(x // timeWindow, prev, (x + 1) // timeWindow, value, col=COLOR_LINE)
         prev = value
 
     # draw text: mode/bias/write
-    if pause_histogram:
+    if pause_graph:
         disp.print(
             "Pause"
             + (
-                " -{:0.1f}s".format(histogram_offset / ECG_RATE)
-                if histogram_offset > 0
+                " -{:0.1f}s".format(graph_offset / config.get_option("Rate"))
+                if graph_offset > 0
                 else ""
             ),
             posx=0,
@@ -348,11 +332,14 @@ def draw_histogram():
         )
         if pulse < 0:
             disp.print(
-                current_mode + ("+Bias" if bias else ""),
+                config.get_option("Mode")
+                + ("+Bias" if config.get_option("Bias") else ""),
                 posx=0,
                 posy=0,
                 fg=(
-                    COLOR_MODE_FINGER if current_mode == MODE_FINGER else COLOR_MODE_USB
+                    COLOR_MODE_FINGER
+                    if config.get_option("Mode") == MODE_FINGER
+                    else COLOR_MODE_USB
                 ),
             )
         else:
@@ -361,7 +348,9 @@ def draw_histogram():
                 posx=0,
                 posy=0,
                 fg=(
-                    COLOR_MODE_FINGER if current_mode == MODE_FINGER else COLOR_MODE_USB
+                    COLOR_MODE_FINGER
+                    if config.get_option("Mode") == MODE_FINGER
+                    else COLOR_MODE_USB
                 ),
             )
 
@@ -376,7 +365,7 @@ def draw_histogram():
 
 
 def main():
-    global pause_histogram, histogram_offset
+    global pause_graph, graph_offset, pause_screen
 
     # show button layout
     disp.clear(COLOR_BACKGROUND)
@@ -386,10 +375,10 @@ def main():
         "       Pause >", posx=0, posy=28, fg=COLOR_MODE_FINGER, font=display.FONT16
     )
     disp.print(
-        "   Mode/Bias >", posx=0, posy=44, fg=COLOR_MODE_USB, font=display.FONT16
+        "    Settings >", posx=0, posy=44, fg=COLOR_MODE_USB, font=display.FONT16
     )
     disp.print(
-        "< LED/WriteLog", posx=0, posy=64, fg=COLOR_WRITE_BG, font=display.FONT16
+        "< WriteLog    ", posx=0, posy=64, fg=COLOR_WRITE_BG, font=display.FONT16
     )
     disp.update()
     utime.sleep(3)
@@ -404,90 +393,64 @@ def main():
             )
 
             # TOP RIGHT
+            #
+            # pause
 
             # down
             if button_pressed["TOP_RIGHT"] == 0 and v & buttons.TOP_RIGHT != 0:
-                button_pressed["TOP_RIGHT"] = utime.time_ms()
+                button_pressed["TOP_RIGHT"] = 1
                 toggle_pause()
 
             # up
             if button_pressed["TOP_RIGHT"] > 0 and v & buttons.TOP_RIGHT == 0:
-                duration = utime.time_ms() - button_pressed["TOP_RIGHT"]
                 button_pressed["TOP_RIGHT"] = 0
 
             # BOTTOM LEFT
             #
             # on pause = shift view left
-            # long = toggle write
-            # short = toggle leds
-
-            # down, and still pressed
-            if (
-                button_pressed["BOTTOM_LEFT"] > 0
-                and v & buttons.BOTTOM_LEFT != 0
-                and not pause_histogram
-            ):
-                duration = utime.time_ms() - button_pressed["BOTTOM_LEFT"]
-                if duration > 1000:
-                    button_pressed["BOTTOM_LEFT"] = -1
-                    toggle_write()
-
-            # register down event
-            elif button_pressed["BOTTOM_LEFT"] == 0 and v & buttons.BOTTOM_LEFT != 0:
-                button_pressed["BOTTOM_LEFT"] = utime.time_ms()
+            # else = toggle write
 
-            # register up event but event already called
-            if button_pressed["BOTTOM_LEFT"] == -1 and v & buttons.BOTTOM_LEFT == 0:
-                button_pressed["BOTTOM_LEFT"] = 0
+            # down
+            if button_pressed["BOTTOM_LEFT"] == 0 and v & buttons.BOTTOM_LEFT != 0:
+                button_pressed["BOTTOM_LEFT"] = 1
+                if pause_graph:
+                    l = len(history)
+                    graph_offset += config.get_option("Rate") / 2
+                    if l - graph_offset < WIDTH * config.get_option("Window"):
+                        graph_offset = l - WIDTH * config.get_option("Window")
+                else:
+                    toggle_write()
 
-            # register normal up event
-            elif button_pressed["BOTTOM_LEFT"] > 0 and v & buttons.BOTTOM_LEFT == 0:
-                duration = utime.time_ms() - button_pressed["BOTTOM_LEFT"]
+            # up
+            if button_pressed["BOTTOM_LEFT"] > 0 and v & buttons.BOTTOM_LEFT == 0:
                 button_pressed["BOTTOM_LEFT"] = 0
-                if not pause_histogram:
-                    toggle_leds()
-                else:
-                    l = len(history)
-                    histogram_offset += ECG_RATE / 2
-                    if l - histogram_offset < WIDTH:
-                        histogram_offset = l - WIDTH
 
             # BOTTOM RIGHT
             #
             # on pause = shift view right
-            # long = toggle bias
-            # short = toggle mode (finger/usb)
-
-            # down, and still pressed
-            if (
-                button_pressed["BOTTOM_RIGHT"] > 0
-                and v & buttons.BOTTOM_RIGHT != 0
-                and not pause_histogram
-            ):
-                duration = utime.time_ms() - button_pressed["BOTTOM_RIGHT"]
-                if duration > 1000:
-                    button_pressed["BOTTOM_RIGHT"] = -1
-                    toggle_bias()
-
-            # register down event
-            elif button_pressed["BOTTOM_RIGHT"] == 0 and v & buttons.BOTTOM_RIGHT != 0:
-                button_pressed["BOTTOM_RIGHT"] = utime.time_ms()
-
-            # register up event but event already called
-            if button_pressed["BOTTOM_RIGHT"] == -1 and v & buttons.BOTTOM_RIGHT == 0:
-                button_pressed["BOTTOM_RIGHT"] = 0
+            # else = show settings
 
-            # register normal up event
-            elif button_pressed["BOTTOM_RIGHT"] > 0 and v & buttons.BOTTOM_RIGHT == 0:
-                duration = utime.time_ms() - button_pressed["BOTTOM_RIGHT"]
-                button_pressed["BOTTOM_RIGHT"] = 0
-                if pause_histogram:
-                    histogram_offset -= ECG_RATE / 2
-                    histogram_offset -= histogram_offset % (ECG_RATE / 2)
-                    if histogram_offset < 0:
-                        histogram_offset = 0
+            # down
+            if button_pressed["BOTTOM_RIGHT"] == 0 and v & buttons.BOTTOM_RIGHT != 0:
+                button_pressed["BOTTOM_RIGHT"] = 1
+                if pause_graph:
+                    graph_offset -= config.get_option("Rate") / 2
+                    graph_offset -= graph_offset % (config.get_option("Rate") / 2)
+                    if graph_offset < 0:
+                        graph_offset = 0
                 else:
-                    toggle_mode()
+                    pause_screen = -1  # hide graph
+                    leds.clear()  # disable all LEDs
+                    config.run()  # show config menu
+                    close_sensor()  # reset sensor in case mode or bias was changed TODO do not close sensor otherwise?
+                    open_sensor()
+                    pause_screen = 0  # start plotting graph again
+                    # returning from menu was by pressing the TOP_RIGHT button
+                    button_pressed["TOP_RIGHT"] = 1
+
+            # up
+            if button_pressed["BOTTOM_RIGHT"] > 0 and v & buttons.BOTTOM_RIGHT == 0:
+                button_pressed["BOTTOM_RIGHT"] = 0
 
 
 if __name__ == "__main__":
diff --git a/preload/apps/ecg/metadata.json b/preload/apps/ecg/metadata.json
index 8c553a32e558232272b9cc0710156f5f83d968ac..8a62057119eb0a261cfe7f6757dcbaf22b88e4db 100644
--- a/preload/apps/ecg/metadata.json
+++ b/preload/apps/ecg/metadata.json
@@ -1 +1 @@
-{"name":"ECG","description":"A simple ecg monitor which displays the heart rate and allows you to switch between usb and finger reader.","category":"hardware","author":"griffon","revision":1}
+{"name":"ECG","description":"A simple ecg monitor which displays the heart rate and allows you to switch between usb and finger reader.","category":"hardware","author":"card10 contributors","revision":-1,"source":"preload"}
diff --git a/preload/apps/ecg/settings.py b/preload/apps/ecg/settings.py
new file mode 100644
index 0000000000000000000000000000000000000000..ca49bbd109a0b7d372b7320ea5b89c4444fd396b
--- /dev/null
+++ b/preload/apps/ecg/settings.py
@@ -0,0 +1,113 @@
+import color
+import simple_menu
+import itertools
+
+
+class Settings(simple_menu.Menu):
+    color_1 = color.CAMPGREEN
+    color_2 = color.CAMPGREEN_DARK
+
+    selected_options = {}
+
+    def __init__(self):
+        super().__init__([("return", False)])
+
+    def on_select(self, value, index):
+        if index == 0:
+            self.exit()
+        else:
+            self.selected_options[value[0]] = next(value[1])
+            self.write_to_file()
+
+    def entry2name(self, value):
+        if value[0] == "return":
+            return value[0]
+        else:
+            return "{}: {}".format(value[0], self.selected_options[value[0]][0])
+
+    def add_option(self, option):
+        self.entries.append(option)
+        self.selected_options[option[0]] = next(option[1])
+
+    def get_option(self, name):
+        return self.selected_options[name][1]
+
+    def load_from_file(self):
+        config_path = "/".join(__file__.split("/")[0:-1])
+        try:
+            f = open("{}/config.cfg".format(config_path), "r")
+            for line in f:
+                parts = [x.strip() for x in line.split(":")]
+                if parts[0] in self.selected_options:
+                    # find corresponding entry from menu to get access to the corresponding itertools.cycle
+                    option_cycle = next(x for x in self.entries if x[0] == parts[0])[1]
+                    if self.selected_options[parts[0]][0] != parts[1]:
+                        previous = self.selected_options[parts[0]][0]
+                        self.selected_options[parts[0]] = next(option_cycle)
+                        while self.selected_options[parts[0]][0] not in {
+                            parts[1],
+                            previous,
+                        }:
+                            self.selected_options[parts[0]] = next(option_cycle)
+
+                        if self.selected_options[parts[0]][0] == previous:
+                            print(
+                                "Settings: unknown option '{}' for key '{}'".format(
+                                    parts[1], parts[0]
+                                )
+                            )
+                else:
+                    print("Settings: unknown key '{}'".format(parts[0]))
+            f.close()
+        except OSError:
+            print("Settings could not be loaded from file. Maybe it did not exist yet?")
+
+    def write_to_file(self):
+        config_path = "/".join(__file__.split("/")[0:-1])
+        try:
+            f = open("{}/config.cfg".format(config_path), "w")
+            for option_name in self.selected_options:
+                f.write(
+                    "{}:{}\n".format(option_name, self.selected_options[option_name][0])
+                )
+            f.close()
+        except OSError as e:
+            print("Settings could not be written to file! Error: {}".format(e))
+
+
+def ecg_settings():
+    config = Settings()
+    config.add_option(
+        (
+            "LEDs",
+            itertools.cycle(
+                [
+                    ("off", {}),
+                    ("Pulse", {"pulse"}),
+                    ("Bar", {"bar"}),
+                    ("Full", {"pulse", "bar"}),
+                ]
+            ),
+        )
+    )
+    config.add_option(("Mode", itertools.cycle([("Finger", "Finger"), ("USB", "USB")])))
+    config.add_option(("Bias", itertools.cycle([("on", True), ("off", False)])))
+    config.add_option(("Filter", itertools.cycle([("HP", {"HP"}), ("off", {})])))
+    config.add_option(("Rate", itertools.cycle([("128Hz", 128), ("256Hz", 256)])))
+    config.add_option(("Window", itertools.cycle([("1x", 1), ("2x", 2), ("3x", 3)])))
+    config.add_option(
+        (
+            "Log",
+            itertools.cycle(
+                [
+                    ("graph", {"graph"}),
+                    ("pulse", {"pulse"}),
+                    ("full", {"graph", "pulse"}),
+                ]
+            ),
+        )
+    )
+
+    config.load_from_file()
+
+    return config
diff --git a/preload/apps/personal_state/metadata.json b/preload/apps/personal_state/metadata.json
index 55ba63ef12071f8cf66784bb63886013525bf2ea..b4e2901acee14411aa8dcfb2af9b2d9a920b4b28 100644
--- a/preload/apps/personal_state/metadata.json
+++ b/preload/apps/personal_state/metadata.json
@@ -1 +1 @@
-{"author": "card10badge team", "name": "Personal State", "description": "Change the personal state LED", "category": "Hardware", "revision": 1}
+{"author": "card10 contributors", "name": "Personal State", "description": "Change the personal state LED", "category": "Hardware", "revision": -1, "source":"preload"}
diff --git a/preload/apps/spo2/__init__.py b/preload/apps/spo2/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..6775f040baf1a464d54ba38c792c044676c196d6
--- /dev/null
+++ b/preload/apps/spo2/__init__.py
@@ -0,0 +1,96 @@
+import max86150
+import display
+
+
+class SPO2:
+    def __init__(self):
+        self.sensor = None
+        self.RATE = 128
+        self.HISTORY_MAX = self.RATE * 4
+        self.history = []
+        self.update_screen = 0
+        self.disp = display.open()
+        self.DRAW_AFTER_SAMPLES = 5
+        self.histogram_offset = 0
+        self.WIDTH = 160
+        self.SCALE_FACTOR = 30
+        self.OFFSET_Y = 49
+        self.COLOR_BACKGROUND = [0, 0, 0]
+        self.avg = [0] * 10
+        self.avg_pos = 0
+        self.last_sample = 0.0
+        self.filtered_value = 0.0
+
+    def open(self):
+        def callback(datasets):
+            self.update_screen += len(datasets)
+
+            self.update_history(datasets)
+
+            # don't update on every callback
+            if self.update_screen >= self.DRAW_AFTER_SAMPLES:
+                self.draw_histogram()
+
+        self.sensor = max86150.MAX86150(callback)
+        while True:
+            pass
+
+    def update_history(self, datasets):
+        for val in datasets:
+            # get red value (first in tuple)
+            self.avg[self.avg_pos] = val.red
+            if self.avg_pos < 9:
+                self.avg_pos += 1
+            else:
+                self.avg_pos = 0
+
+            avg_data = sum(self.avg) / 10
+            # DC offset removal
+            self.filtered_value = 0.9 * (
+                self.filtered_value + avg_data - self.last_sample
+            )
+            self.last_sample = avg_data
+            self.history.append(self.filtered_value)
+
+        # trim old elements
+        self.history = self.history[-self.HISTORY_MAX :]
+
+    def draw_histogram(self):
+        self.disp.clear(self.COLOR_BACKGROUND)
+
+        # offset in pause_histogram mode
+        window_end = len(self.history) - self.histogram_offset
+        s_start = max(0, window_end - (self.RATE * 2))
+        s_end = max(0, window_end)
+        s_draw = max(0, s_end - self.WIDTH)
+
+        # get max value and calc scale
+        value_max = max(abs(x) for x in self.history[s_start:s_end])
+        scale = self.SCALE_FACTOR / (value_max if value_max > 0 else 1)
+
+        # draw histogram
+        draw_points = (
+            int(x * scale + self.OFFSET_Y) for x in self.history[s_draw:s_end]
+        )
+
+        prev = next(draw_points)
+        for x, value in enumerate(draw_points):
+            self.disp.line(x, prev, x + 1, value)
+            prev = value
+
+        self.disp.update()
+        self.update_screen = 0
+
+    def close(self):
+        if self.self is not None:
+            self.sensor.close()
+            self.sensor = None
+
+
+if __name__ == "__main__":
+    sensor = SPO2()
+    try:
+        sensor.open()
+    except KeyboardInterrupt as e:
+        sensor.close()
+        raise e
diff --git a/preload/apps/spo2/metadata.json b/preload/apps/spo2/metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..427dc08a2177561ff74eb114fc76b48e9cb77977
--- /dev/null
+++ b/preload/apps/spo2/metadata.json
@@ -0,0 +1 @@
+{"name":"SPO2","description":"A simple oximetetry monitor.","category":"hardware","author":"card10 contributors","revision":-1,"source":"preload"}
diff --git a/preload/main.py b/preload/main.py
index 7c8417e9ae1375779ef5a7c2fd4fdcca35cd36b7..eca0ccb401ba2474e61608a992c6fc377d54ed30 100644
--- a/preload/main.py
+++ b/preload/main.py
@@ -3,7 +3,13 @@ import os
 
 def main():
     # Try loading analog clock
-    default_app = "apps/analog_clock/__init__.py"
+    try:
+        import config
+
+        default_app = config.get_string("default_app")
+    except OSError:
+        default_app = "apps/analog_clock/__init__.py"
+
     try:
         with open(default_app, "r"):
             pass
diff --git a/preload/menu.py b/preload/menu.py
index e9077e3611920f1fdb74b33347fe8db4f88eca27..1ace36aa43f5d5ccfe0106eba245320517263ca6 100644
--- a/preload/menu.py
+++ b/preload/menu.py
@@ -5,6 +5,7 @@ You can customize this script however you want :)  If you want to go back to
 the default version, just delete this file; the firmware will recreate it on
 next run.
 """
+import buttons
 import collections
 import color
 import display
@@ -16,17 +17,32 @@ import utime
 
 App = collections.namedtuple("App", ["name", "path"])
 
+# Favorite apps which are shown at the very top of the app list
+FAVORITE_APPS = ["personal_state", "ecg"]
 
-def enumerate_apps():
-    """List all installed apps."""
+
+def enumerate_entries():
     for f in os.listdir("/"):
         if f == "main.py":
             yield App("Home", f)
 
-    for app in sorted(os.listdir("/apps")):
+    yield App("USB Storage", "USB_STORAGE_FLAG")
+
+    yield from enumerate_apps(FAVORITE_APPS)
+
+    yield from sorted(enumerate_apps(), key=lambda b: b.name.lower())
+
+
+def enumerate_apps(apps=None):
+    """List all installed apps."""
+    for app in apps or os.listdir("/apps"):
         if app.startswith("."):
             continue
 
+        # Skip special apps when enumerating from filesystem
+        if apps is None and app in FAVORITE_APPS:
+            continue
+
         if app.endswith(".py") or app.endswith(".elf"):
             yield App(app, "/apps/" + app)
             continue
@@ -39,8 +55,57 @@ def enumerate_apps():
                 info["name"], "/apps/{}/{}".format(app, info.get("bin", "__init__.py"))
             )
         except Exception as e:
-            print("Could not load /apps/{}/metadata.json!".format(app))
+            print("'{}': metadata.json is invalid ... hoping for the best.".format(app))
             sys.print_exception(e)
+            pyfile = "/apps/{}/__init__.py".format(app)
+            try:
+                open(pyfile).close()
+                yield App(app, pyfile)
+            except OSError:
+                print(pyfile, "does not even exist :(")
+                pass
+
+
+def usb_mode(disp):
+    os.usbconfig(os.USB_FLASH)
+
+    disp.clear(color.CAMPGREEN)
+    disp.print("USB Storage", posx=3, posy=20, fg=color.CAMPGREEN_DARK)
+    disp.print("open", posx=52, posy=40, fg=color.CAMPGREEN_DARK)
+    disp.update()
+
+    utime.sleep_ms(200)
+
+    # Wait for select button to be released
+    while buttons.read() == buttons.TOP_RIGHT:
+        pass
+
+    # Wait for any button to be pressed and disable USB storage again
+    while buttons.read() == 0:
+        pass
+
+    os.usbconfig(os.USB_SERIAL)
+
+    # Exit after USB-Mode to reload menu
+    os.exit(0)
+
+
+class SubMenu(simple_menu.Menu):
+    timeout = 30.0
+
+    def on_select(self, name, index):
+        print(name)
+        if name == "Make Default":
+            self.disp.clear(color.CHAOSBLUE)
+            self.disp.print("Making", posx=0, posy=20)
+            self.disp.print(self.app.name, posx=0, posy=40)
+            self.disp.print("default", posx=0, posy=60)
+            self.disp.update()
+            import config
+
+            config.set_string("default_app", self.app.path)
+            utime.sleep(1)
+        self.exit()
 
 
 class MainMenu(simple_menu.Menu):
@@ -52,6 +117,10 @@ class MainMenu(simple_menu.Menu):
     def on_select(self, app, index):
         self.disp.clear().update()
         try:
+            if app.path == "USB_STORAGE_FLAG":
+                usb_mode(self.disp)
+                return
+
             print("Trying to load " + app.path)
             os.exec(app.path)
         except OSError as e:
@@ -61,6 +130,14 @@ class MainMenu(simple_menu.Menu):
             utime.sleep(1.0)
             os.exit(1)
 
+    def on_long_select(self, app, index):
+        print("Long press\n")
+        if app.path not in ["main.py", "USB_STORAGE_FLAG"]:
+            # sm = SubMenu(("Make Default", "Fav", "Unfav", "Delete", "Exit"))
+            sm = SubMenu(("Make Default", "Exit", "", ""))
+            sm.app = app
+            sm.run()
+
     def on_timeout(self):
         try:
             f = open("main.py")
@@ -70,6 +147,14 @@ class MainMenu(simple_menu.Menu):
             pass
 
 
+def loading_message():
+    with display.open() as disp:
+        disp.clear(color.CHAOSBLUE)
+        disp.print("Loading", posx=31, posy=20)
+        disp.print("menu ...", posx=24, posy=40)
+        disp.update()
+
+
 def no_apps_message():
     """Display a warning if no apps are installed."""
     with display.open() as disp:
@@ -87,9 +172,14 @@ def no_apps_message():
 
 
 if __name__ == "__main__":
-    apps = list(enumerate_apps())
+    loading_message()
+
+    try:
+        apps = list(enumerate_entries())
+    except OSError:
+        apps = []
 
-    if apps == []:
+    if not apps:
         no_apps_message()
 
     MainMenu(apps).run()
diff --git a/pycardium/genhdr/meson.build b/pycardium/genhdr/meson.build
new file mode 100644
index 0000000000000000000000000000000000000000..a130c8642e0a4728451af8d68537b3252966f294
--- /dev/null
+++ b/pycardium/genhdr/meson.build
@@ -0,0 +1,6 @@
+qstr_genhdr_h = custom_target(
+  'genhdr-qstrdefs.generated.h',
+  output: 'qstrdefs.generated.h',
+  input: qstr_h,
+  command: ['cp', '@INPUT@', '@OUTPUT@'],
+)
diff --git a/pycardium/main.c b/pycardium/main.c
index b87b4a1e26cedd4da3ccfd744c0f66894be6b2d0..3aec04919f1cbe3b6858f07697878897424ede7b 100644
--- a/pycardium/main.c
+++ b/pycardium/main.c
@@ -2,10 +2,12 @@
 #include "api/caller.h"
 #include "mphalport.h"
 #include "card10-version.h"
+#include "modules/interrupt.h"
 
 #include "max32665.h"
 
 #include "lib/utils/pyexec.h"
+#include "lib/mp-readline/readline.h"
 #include "py/gc.h"
 #include "py/runtime.h"
 #include "py/stackctrl.h"
@@ -45,6 +47,9 @@ int main(void)
 
 		mp_init();
 
+		readline_init0();
+		interrupt_init0();
+
 		/* request by badge.team */
 		mp_obj_list_init(mp_sys_path, 0);
 		mp_obj_list_append(mp_sys_path, MP_ROM_QSTR(MP_QSTR_));
diff --git a/pycardium/meson.build b/pycardium/meson.build
index bc2337002098e032da67976adc7120f25d67db2d..d12e62f5ed6e58cd8699890a404ffc23a4b33f15 100644
--- a/pycardium/meson.build
+++ b/pycardium/meson.build
@@ -3,20 +3,22 @@ name = 'pycardium'
 modsrc = files(
   'modules/bhi160-sys.c',
   'modules/buttons.c',
+  'modules/sys_config.c',
   'modules/fat_file.c',
   'modules/fat_reader_import.c',
   'modules/gpio.c',
   'modules/interrupt.c',
-  'modules/sys_leds.c',
   'modules/light_sensor.c',
   'modules/max30001-sys.c',
+  'modules/max86150.c',
   'modules/os.c',
   'modules/personal_state.c',
   'modules/power.c',
+  'modules/sys_bme680.c',
   'modules/sys_display.c',
+  'modules/sys_leds.c',
   'modules/utime.c',
   'modules/vibra.c',
-  'modules/sys_bme680.c',
   'modules/ws2812.c'
 )
 
@@ -43,6 +45,7 @@ qstr_h = custom_target(
   input: [
     'modules/qstrdefs.h',
     'mpconfigport.h',
+    modules_h,
     micropython_sources,
     micropython_extmod_sources,
   ],
@@ -50,7 +53,9 @@ qstr_h = custom_target(
   command: [micropython_gen_qstr, meson.current_source_dir(), '@OUTPUT@', '@INPUT@'],
 )
 
-mp_headers = [version_h, modules_h, qstr_h]
+subdir('./genhdr')
+
+mp_headers = [version_h, modules_h, qstr_h, qstr_genhdr_h]
 
 #################################
 #    Python Frozen Modules      #
@@ -76,7 +81,8 @@ upy = static_library(
   micropython_additional_sources,
   micropython_extmod_sources,
   mp_headers,
-  include_directories: micropython_includes,
+  include_directories: [micropython_includes, include_directories('../epicardium')],
+  c_args: '-w',
 )
 
 elf = executable(
diff --git a/pycardium/modules/buttons.c b/pycardium/modules/buttons.c
index ab8dabd7d28692f7e586dc64d717c4c3cfb6aa31..ace61e722efdb977d12951a4eb96031dbb9dd005 100644
--- a/pycardium/modules/buttons.c
+++ b/pycardium/modules/buttons.c
@@ -5,13 +5,24 @@
 
 #include "epicardium.h"
 
-static mp_obj_t mp_buttons_read(mp_obj_t mask_in)
+static mp_obj_t mp_buttons_read(size_t n_args, const mp_obj_t *args)
 {
-	uint8_t mask          = mp_obj_get_int(mask_in);
+	uint8_t mask;
+	if (n_args == 1) {
+		mp_int_t mask_int = mp_obj_get_int(args[0]);
+		if (mask_int > 255) {
+			mp_raise_ValueError("mask must be less than 256");
+		}
+		mask = (uint8_t)mask_int;
+	} else {
+		mask = 0xff;
+	}
 	uint8_t button_states = epic_buttons_read(mask);
 	return MP_OBJ_NEW_SMALL_INT(button_states);
 }
-static MP_DEFINE_CONST_FUN_OBJ_1(buttons_read_obj, mp_buttons_read);
+static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(
+	buttons_read_obj, 0, 1, mp_buttons_read
+);
 
 static const mp_rom_map_elem_t buttons_module_globals_table[] = {
 	{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_buttons) },
diff --git a/pycardium/modules/interrupt.c b/pycardium/modules/interrupt.c
index 9e2058e591c85333058976f667c88e5450635b4f..ad3b86d73424c91bfe6dde576f92dd4a842da968 100644
--- a/pycardium/modules/interrupt.c
+++ b/pycardium/modules/interrupt.c
@@ -7,20 +7,22 @@
 #include "py/obj.h"
 #include "py/runtime.h"
 
-// TODO: these should be intialized as mp_const_none
-mp_obj_t callbacks[EPIC_INT_NUM] = {
-	0,
-};
+void interrupt_init0(void)
+{
+	int id;
+	for (id = 0; id < EPIC_INT_NUM; id++) {
+		MP_STATE_PORT(interrupt_callbacks)[id] = NULL;
+	}
+}
 
 void epic_isr_default_handler(api_int_id_t id)
 {
 	// TODO: check if id is out of rante
 	// TOOD: check against mp_const_none
+	mp_obj_t callback = MP_STATE_PORT(interrupt_callbacks)[id];
 	if (id < EPIC_INT_NUM) {
-		if (callbacks[id]) {
-			mp_sched_schedule(
-				callbacks[id], MP_OBJ_NEW_SMALL_INT(id)
-			);
+		if (callback) {
+			mp_sched_schedule(callback, MP_OBJ_NEW_SMALL_INT(id));
 		}
 	}
 }
@@ -35,7 +37,7 @@ mp_obj_t mp_interrupt_set_callback(mp_obj_t id_in, mp_obj_t callback_obj)
 
 	// TODO: throw error if id is out of range
 	if (id < EPIC_INT_NUM) {
-		callbacks[id] = callback_obj;
+		MP_STATE_PORT(interrupt_callbacks)[id] = callback_obj;
 	}
 
 	return mp_const_none;
@@ -95,6 +97,8 @@ static const mp_rom_map_elem_t interrupt_module_globals_table[] = {
 	  MP_OBJ_NEW_SMALL_INT(EPIC_INT_BHI160_GYROSCOPE) },
 	{ MP_ROM_QSTR(MP_QSTR_MAX30001_ECG),
 	  MP_OBJ_NEW_SMALL_INT(EPIC_INT_MAX30001_ECG) },
+	{ MP_ROM_QSTR(MP_QSTR_MAX86150),
+	  MP_OBJ_NEW_SMALL_INT(EPIC_INT_MAX86150) },
 
 };
 static MP_DEFINE_CONST_DICT(
diff --git a/pycardium/modules/interrupt.h b/pycardium/modules/interrupt.h
index 3588d1e0b9bd7fd93dd58f4f4753aa89abc35ca1..ef931034e5fd157f708da2e0cc38d5666abecbdb 100644
--- a/pycardium/modules/interrupt.h
+++ b/pycardium/modules/interrupt.h
@@ -2,6 +2,8 @@
 
 #include "py/obj.h"
 
+void interrupt_init0(void);
+
 mp_obj_t mp_interrupt_set_callback(mp_obj_t id_in, mp_obj_t callback_obj);
 mp_obj_t mp_interrupt_enable_callback(mp_obj_t id_in);
 mp_obj_t mp_interrupt_disable_callback(mp_obj_t id_in);
diff --git a/pycardium/modules/max86150.c b/pycardium/modules/max86150.c
new file mode 100644
index 0000000000000000000000000000000000000000..e02617ebf65093fa4aa747de2fdedbae982b188f
--- /dev/null
+++ b/pycardium/modules/max86150.c
@@ -0,0 +1,91 @@
+#include "py/obj.h"
+#include "py/objlist.h"
+#include "py/runtime.h"
+#include "py/builtin.h"
+#include "api/common.h"
+#include "mphalport.h"
+
+#include "epicardium.h"
+
+STATIC mp_obj_t mp_max86150_enable_sensor(size_t n_args, const mp_obj_t *args)
+{
+	struct max86150_sensor_config cfg = { 0 };
+	cfg.sample_buffer_len             = mp_obj_get_int(args[0]);
+	cfg.ppg_sample_rate               = mp_obj_get_int(args[1]);
+
+	int stream_id = epic_max86150_enable_sensor(&cfg, sizeof(cfg));
+
+	if (stream_id < 0) {
+		mp_raise_OSError(-stream_id);
+	}
+
+	return MP_OBJ_NEW_SMALL_INT(stream_id);
+}
+
+STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(
+	mp_max86150_enable_sensor_obj, 2, 2, mp_max86150_enable_sensor
+);
+
+STATIC mp_obj_t mp_max86150_read_sensor(mp_obj_t stream_id_in)
+{
+	// do not use too big buf
+	// 256*12 is close to stack size of 4096, reduced to 64
+	struct max86150_sensor_data buf[64];
+	int stream_id = mp_obj_get_int(stream_id_in);
+
+	int n = epic_stream_read(stream_id, buf, sizeof(buf));
+
+	mp_obj_list_t *list = mp_obj_new_list(0, NULL);
+	for (int i = 0; i < n; i++) {
+		mp_obj_t tuple[3];
+
+		tuple[0] = mp_obj_new_int(buf[i].red);
+		tuple[1] = mp_obj_new_int(buf[i].ir);
+		tuple[2] = mp_obj_new_int(buf[i].ecg);
+
+		mp_obj_list_append(list, mp_obj_new_tuple(3, tuple));
+	}
+
+	return MP_OBJ_FROM_PTR(list);
+}
+
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(
+	mp_max86150_read_sensor_obj, mp_max86150_read_sensor
+);
+
+STATIC mp_obj_t mp_max86150_disable_sensor(void)
+{
+	int ret = epic_max86150_disable_sensor();
+
+	if (ret != 0) {
+		mp_raise_OSError(-ret);
+	}
+
+	return mp_const_none;
+}
+
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(
+	mp_max86150_disable_sensor_obj, mp_max86150_disable_sensor
+);
+
+STATIC const mp_rom_map_elem_t max86150_module_globals_table[] = {
+	{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_sys_max86150) },
+	{ MP_ROM_QSTR(MP_QSTR_enable_sensor),
+	  MP_ROM_PTR(&mp_max86150_enable_sensor_obj) },
+	{ MP_ROM_QSTR(MP_QSTR_read_sensor),
+	  MP_ROM_PTR(&mp_max86150_read_sensor_obj) },
+	{ MP_ROM_QSTR(MP_QSTR_disable_sensor),
+	  MP_ROM_PTR(&mp_max86150_disable_sensor_obj) },
+};
+STATIC MP_DEFINE_CONST_DICT(
+	max86150_module_globals, max86150_module_globals_table
+);
+
+const mp_obj_module_t max86150_module = {
+	.base    = { &mp_type_module },
+	.globals = (mp_obj_dict_t *)&max86150_module_globals,
+};
+
+/* clang-format off */
+/* Register the module to make it available in Python */
+MP_REGISTER_MODULE(MP_QSTR_sys_max86150, max86150_module, MODULE_MAX86150_ENABLED);
diff --git a/pycardium/modules/os.c b/pycardium/modules/os.c
index 384a71e24385e638133a75f9de3d253f7ad2ec68..d8e6a105f0061e75afd0fae7bce2a8aa8d9e5b79 100644
--- a/pycardium/modules/os.c
+++ b/pycardium/modules/os.c
@@ -29,7 +29,7 @@ bool pycrd_filename_restricted(const char *path)
 	}
 	fname = path;
 
-	for (int i = 0;
+	for (size_t i = 0;
 	     i < sizeof(forbidden_files) / sizeof(forbidden_files[0]);
 	     i++) {
 		if (strcasecmp(fname, forbidden_files[i]) == 0) {
@@ -91,10 +91,16 @@ static mp_obj_t mp_os_reset(void)
 }
 static MP_DEFINE_CONST_FUN_OBJ_0(reset_obj, mp_os_reset);
 
-static mp_obj_t mp_os_listdir(mp_obj_t py_path)
+static mp_obj_t mp_os_listdir(size_t n_args, const mp_obj_t *args)
 {
-	const char *path = mp_obj_str_get_str(py_path);
-	int fd           = epic_file_opendir(path);
+	const char *path;
+	if (n_args == 1) {
+		path = mp_obj_str_get_str(args[0]);
+	} else {
+		path = "";
+	}
+
+	int fd = epic_file_opendir(path);
 
 	if (fd < 0) {
 		mp_raise_OSError(-fd);
@@ -118,7 +124,7 @@ static mp_obj_t mp_os_listdir(mp_obj_t py_path)
 	epic_file_close(fd);
 	return MP_OBJ_FROM_PTR(list);
 }
-static MP_DEFINE_CONST_FUN_OBJ_1(listdir_obj, mp_os_listdir);
+static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(listdir_obj, 0, 1, mp_os_listdir);
 
 static mp_obj_t mp_os_unlink(mp_obj_t py_path)
 {
diff --git a/pycardium/modules/py/bhi160.py b/pycardium/modules/py/bhi160.py
index 231ba75ffbeac6379d694d000c3dd30bad7a8364..430508d10f2406c39a96f6062b7a7dafb1879be5 100644
--- a/pycardium/modules/py/bhi160.py
+++ b/pycardium/modules/py/bhi160.py
@@ -37,6 +37,9 @@ class BHI160:
         self.close()
 
     def close(self):
+        """
+        Close the connection to the sensor
+        """
         if self.active:
             self.active = False
             ret = sys_bhi160.disable_sensor(self.sensor_id)
@@ -48,6 +51,18 @@ class BHI160:
             interrupt.set_callback(self.interrupt_id, None)
 
     def read(self):
+        """
+        Read sensor values
+
+        :returns: The recent collected sensor values as a list. If no data is
+            available the list contains no elements. Maximum length of the list
+            is ``sample_buffer_len``. The last element contains the most recent
+            data. The elements contains a sensor specific named tuple. See the
+            documentation of the sensor class for more information.
+
+        .. warning::
+            Weird behaviour ahead: If the internal buffer overflows, the new samples will be dropped.
+        """
         result = []
         if self.active:
             for sample in sys_bhi160.read_sensor(self.stream_id):
@@ -70,6 +85,28 @@ class BHI160:
 
 
 class BHI160Accelerometer(BHI160):
+    """
+    Accelerometer of the BHI160.
+
+    This sensors sample data named tuple contains the following fields:
+
+    - ``x``: Acceleration along the x axis
+    - ``y``: Acceleration along the y axis
+    - ``z``: Acceleration along the z axis
+    - ``status``: accuracy / "confidence" value of the sensor (0 being worst and 3 being best)
+
+    .. todo::
+        These values are not scaled correctly
+
+    :param int sample_rate: Sample rate (optional, default is 4, range is 1 - 200 in *Hz*)
+    :param int dynamic_range: Dynamic range (optional, default is 2)
+    :param callback: Call this callback when enough data is collected (optional, default is None)
+
+            .. todo::
+               The callback functionality is untested, so do not be confused if it does not work.
+    :param int sample_buffer_len: Length of sample buffer (optional, default is 200)
+    """
+
     def __init__(
         self, sample_rate=4, dynamic_range=2, callback=None, sample_buffer_len=200
     ):
@@ -90,6 +127,28 @@ class BHI160Accelerometer(BHI160):
 
 
 class BHI160Gyroscope(BHI160):
+    """
+    Gyroscope of the BHI160.
+
+    This sensors sample data named tuple contains the following fields:
+
+    - ``x``: Rotation around the x axis
+    - ``y``: Rotation around the y axis
+    - ``z``: Rotation around the z axis
+    - ``status``: accuracy / "confidence" value of the sensor (0 being worst and 3 being best)
+
+    .. todo::
+        These values are not scaled correctly
+
+    :param int sample_rate: Sample rate (optional, default is 4, range is 1 - 200 in *Hz*)
+    :param int dynamic_range: Dynamic range (optional, default is 2)
+    :param callback: Call this callback when enough data is collected (optional, default is None)
+
+            .. todo::
+               The callback functionality is untested, so do not be confused if it does not work.
+    :param int sample_buffer_len: Length of sample buffer (optional, default is 200)
+    """
+
     def __init__(
         self, sample_rate=4, dynamic_range=2, callback=None, sample_buffer_len=200
     ):
@@ -110,6 +169,30 @@ class BHI160Gyroscope(BHI160):
 
 
 class BHI160Orientation(BHI160):
+    """
+    Orientation of the BHI160. Orientation is a virtual sensor that combines
+    Accelerometer, Magnetometer and Gyroscope using the IMU Algorithm to
+    calculate an absolute orientation.
+
+    This sensors sample data named tuple contains the following fields:
+
+    - ``x``: azimuth
+    - ``y``: pitch
+    - ``z``: roll
+    - ``status``: accuracy / "confidence" value of the sensor (0 being worst and 3 being best)
+
+    .. todo::
+        These values are not scaled correctly
+
+    :param int sample_rate: Sample rate (optional, default is 4, range is 1 - 200 in *Hz*)
+    :param int dynamic_range: This parameter is unused for the Orientation.
+    :param callback: Call this callback when enough data is collected (optional, default is None)
+
+            .. todo::
+               The callback functionality is untested, so do not be confused if it does not work.
+    :param int sample_buffer_len: Length of sample buffer (optional, default is 200)
+    """
+
     def __init__(
         self, sample_rate=4, dynamic_range=2, callback=None, sample_buffer_len=200
     ):
@@ -130,6 +213,30 @@ class BHI160Orientation(BHI160):
 
 
 class BHI160Magnetometer(BHI160):
+    """
+    Magnetometer of the BHI160
+
+    This sensors sample data named tuple contains the following fields:
+
+    - ``x``: Magnetic field along the x axis
+    - ``y``: Magnetic field along the y axis
+    - ``z``: Magnetic field along the z axis
+    - ``status``: accuracy / "confidence" value of the sensor (0 being worst and 3 being best)
+
+    .. todo::
+        These values are not scaled correctly
+
+    :param int sample_rate: Sample rate (optional, default is 4, range is 1 - 200 in *Hz*)
+    :param int dynamic_range: Dynamic range (optional, default is 1)
+    :param callback: Call this callback when enough data is collected (optional, default is None)
+
+            .. todo::
+               The callback functionality is untested, so do not be confused if it does not work.
+    :param int sample_buffer_len: Length of sample buffer (optional, default is 200)
+
+   .. versionadded:: 1.11
+    """
+
     def __init__(
         self, sample_rate=4, dynamic_range=1, callback=None, sample_buffer_len=200
     ):
diff --git a/pycardium/modules/py/config.py b/pycardium/modules/py/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..8d70936ff2ba9c161712ad07a244f6ebe583a646
--- /dev/null
+++ b/pycardium/modules/py/config.py
@@ -0,0 +1,48 @@
+import sys_config
+
+
+def set_string(key, value):
+    """
+    Write a string to the configuration file ``card10.cfg``.
+
+    Both ``key`` and ``value`` must be strings or must be
+    convertible to a string using the ``str()`` function.
+
+    ``key`` must not contain spaces, control characters (including tabs),
+    number signs ans equal signs.
+    ``value` must not contain control characters (including tabs).
+    Neither is allowed to contain the sub-string ``execute_elf``.
+
+    The key/value pair is immediately written to the configuration
+    file (``card10.cfg``). After the file is written, configuration
+    is read again and the new value is available via ``config.get_string``.
+
+    :param str key:     Name of the configuration option.
+    :param str value:   Value to write.
+    :raises OSError: If writing to the configuration file failed.
+    :raises OSError: If key or value contain illegal characters.
+    :raises ValueError: If key or value contain the sub-string ``execute_elf``.
+
+    .. versionadded:: 1.16
+    """
+
+    sys_config.set_string(str(key), str(value))
+
+
+def get_string(key):
+    """
+    Read a string from the configuration file ``card10.cfg``.
+
+    ``key`` must be a string or must be convertible to a string using
+    the ``str()`` function.
+
+
+    :param str key: Name of the configuration option.
+    :rtype: str
+    :returns: Value of the configuration option.
+    :raises OSError: if the key is not present in the configuration.
+
+    .. versionadded:: 1.16
+    """
+
+    return sys_config.get_string(str(key))
diff --git a/pycardium/modules/py/display.py b/pycardium/modules/py/display.py
index d7854aa3aefb9ebeda1db30598a1505a3884ff7d..da5169908325c03b58620524a85cea1bb702d42e 100644
--- a/pycardium/modules/py/display.py
+++ b/pycardium/modules/py/display.py
@@ -75,8 +75,8 @@ class Display:
         :param text: Text to print
         :param fg: Foreground color (expects RGB triple)
         :param bg: Background color (expects RGB triple) or None for transparent background
-        :param posx: X-Position of the first character, 0 <= posx <= 159
-        :param posy: Y-Position of the first character, 0 <= posy <= 79
+        :param posx: X-Position of the first character
+        :param posy: Y-Position of the first character
         :param font: 0 <= font <= 4 (currently) selects a font
 
         Avaiable Fonts:
@@ -110,8 +110,8 @@ class Display:
         """
         Draws a pixel on the display
 
-        :param x: X coordinate, 0<= x <= 159
-        :param y: Y coordinate, 0<= y <= 79
+        :param x: X coordinate
+        :param y: Y coordinate
         :param col: color of the pixel (expects RGB tripple)
         """
 
@@ -134,10 +134,10 @@ class Display:
         """
         Draws a line on the display.
 
-        :param xs: X start coordinate, 0 <= xs <= 159
-        :param ys: Y start coordinate, 0 <= ys <= 79
-        :param xe: X end coordinate, 0 <= xe <= 159
-        :param ye: Y end coordinate, 0 <= ye <= 79
+        :param xs: X start coordinate
+        :param ys: Y start coordinate
+        :param xe: X end coordinate
+        :param ye: Y end coordinate
         :param col: color of the line (expects RGB triple)
         :param dotted: whether the line should be dotted or not
            (questionable implementation: draws every other pixel white, draws
@@ -154,10 +154,10 @@ class Display:
         """
         Draws a rectangle on the display.
 
-        :param xs: X start coordinate, 0 <= xs <= 159
-        :param ys: Y start coordinate, 0 <= ys <= 79
-        :param xe: X end coordinate, 0 <= xe <= 159
-        :param ye: Y end coordinate, 0 <= ye <= 79
+        :param xs: X start coordinate
+        :param ys: Y start coordinate
+        :param xe: X end coordinate
+        :param ye: Y end coordinate
         :param col: color of the outline and fill (expects RGB triple)
         :param filled: whether the rectangle should be filled or not
         :param size: size of the individual pixels, ranges from 1 to 8
@@ -172,8 +172,8 @@ class Display:
         """
         Draws a circle on the display.
 
-        :param x: center x coordinate, 0 <= x <= 159
-        :param y: center y coordinate, 0 <= y <= 79
+        :param x: center x coordinate
+        :param y: center y coordinate
         :param rad: radius
         :param col: color of the outline and fill (expects RGB triple)
         :param filled: whether the rectangle should be filled or not
diff --git a/pycardium/modules/py/max86150.py b/pycardium/modules/py/max86150.py
new file mode 100644
index 0000000000000000000000000000000000000000..7a799c1ca6096752cba2d3f5e33218ffc1dfd9c3
--- /dev/null
+++ b/pycardium/modules/py/max86150.py
@@ -0,0 +1,86 @@
+import sys_max86150
+import uerrno
+import interrupt
+import ucollections
+
+Max86150Data = ucollections.namedtuple("Max86150Data", ["red", "infrared", "ecg"])
+
+
+class MAX86150:
+    """
+    The MAX86150 class provides a stram interface to the MAX86150 PPG and ECG.
+
+    .. code-block:: python
+
+        import MAX86150
+        m = max86150.MAX86150()
+        m.read()
+        m.close()
+    """
+
+    def __init__(self, callback=None, sample_buffer_len=128, sample_rate=200):
+        """
+        Initializes the MAX86150 (if it is not already running).
+
+        :param callback: If not None: A callback which is called with the data when ever new data is available
+
+        """
+        self.active = False
+        self.stream_id = -uerrno.ENODEV
+        self.interrupt_id = interrupt.MAX86150
+        self._callback = callback
+        self.sample_rate = sample_rate
+        self.sample_buffer_len = sample_buffer_len
+        self.enable_sensor()
+
+    def enable_sensor(self):
+        """
+        Enables the sensor. Automatically called by __init__.
+        """
+        interrupt.disable_callback(self.interrupt_id)
+        interrupt.set_callback(self.interrupt_id, self._interrupt)
+        self.stream_id = sys_max86150.enable_sensor(
+            self.sample_buffer_len, self.sample_rate
+        )
+
+        self.active = True
+
+        if self._callback:
+            interrupt.enable_callback(self.interrupt_id)
+
+    def __enter__(self):
+        return self
+
+    def __exit__(self, _et, _ev, _t):
+        self.close()
+
+    def close(self):
+        """
+        Close the currently open connection to the sensor.
+        """
+
+        if self.active:
+            self.active = False
+            sys_max86150.disable_sensor()
+
+            interrupt.disable_callback(self.interrupt_id)
+            interrupt.set_callback(self.interrupt_id, None)
+
+    def read(self):
+        """
+        Read as many samples (signed integer) as currently available.
+        """
+        assert self.active, "Sensor is inactive"
+        result = []
+        for sample in sys_max86150.read_sensor(self.stream_id):
+            result.append(self._convert(sample))
+        return result
+
+    def _convert(self, sample):
+        return Max86150Data(sample[0], sample[1], sample[2])
+
+    def _interrupt(self, _):
+        if self.active:
+            data = self.read()
+            if self._callback:
+                self._callback(data)
diff --git a/pycardium/modules/py/meson.build b/pycardium/modules/py/meson.build
index d2669a19213f7d0f19d66b47e1dc4d4ebeac24c5..b8d3310f053c8a46febe1935b15686cbcff86c6a 100644
--- a/pycardium/modules/py/meson.build
+++ b/pycardium/modules/py/meson.build
@@ -1,13 +1,15 @@
 python_modules = files(
+  'config.py',
   'bhi160.py',
   'bme680.py',
   'color.py',
-  'htmlcolor.py',
   'display.py',
+  'htmlcolor.py',
+  'ledfx.py',
   'leds.py',
   'max30001.py',
+  'max86150.py',
   'pride.py',
-  'ledfx.py',
   'simple_menu.py',
 
   # MicroPython Standard-Library
diff --git a/pycardium/modules/py/simple_menu.py b/pycardium/modules/py/simple_menu.py
index 18279db442ee22e1ce882a98478229126c82ed8a..8ff0f62da0b67bd95a6acf8e3a0319bf1b339475 100644
--- a/pycardium/modules/py/simple_menu.py
+++ b/pycardium/modules/py/simple_menu.py
@@ -120,6 +120,14 @@ class Menu:
     .. versionadded:: 1.9
     """
 
+    right_buttons_scroll = False
+    """
+    Use top right and bottom right buttons to move in the list
+    instead of bottom left and bottom right buttons.
+
+    .. versionadded:: 1.13
+    """
+
     def on_scroll(self, item, index):
         """
         Hook when the selector scrolls to a new item.
@@ -133,6 +141,18 @@ class Menu:
         """
         pass
 
+    def on_long_select(self, item, index):
+        """
+        Hook when an item as selected using a long press.
+
+        The given ``index`` was selected with a long SELECT button press.  Overwrite
+        this function in your menu to perform an action on select.
+
+        :param item: The item which was selected.
+        :param int index: Index into the ``entries`` list of the ``item``.
+        """
+        pass
+
     def on_select(self, item, index):
         """
         Hook when an item as selected.
@@ -173,6 +193,12 @@ class Menu:
         self.idx = 0
         self.select_time = utime.time_ms()
         self.disp = display.open()
+        self.button_scroll_up = (
+            buttons.TOP_RIGHT if self.right_buttons_scroll else buttons.BOTTOM_LEFT
+        )
+        self.button_select = (
+            buttons.BOTTOM_LEFT if self.right_buttons_scroll else buttons.TOP_RIGHT
+        )
 
     def entry2name(self, value):
         """
@@ -208,23 +234,23 @@ class Menu:
         """
         string = self.entry2name(value)
 
-        if offset != 20 or len(string) < 10:
-            string = " " + string + " " * 9
-        else:
+        if offset == 20 and len(string) >= 10:
             # Slowly scroll entry to the side
             time_offset = (utime.time_ms() - self.select_time) // int(
                 self.scroll_speed * 1000
             )
             time_offset = time_offset % (len(string) - 7) - 1
             time_offset = min(len(string) - 10, max(0, time_offset))
-            string = " " + string[time_offset:]
-
-        self.disp.print(
-            string,
-            posy=offset,
-            fg=self.color_text,
-            bg=self.color_1 if index % 2 == 0 else self.color_2,
+            string = string[time_offset:]
+
+        self.disp.rect(
+            0,
+            offset,
+            180,
+            offset + 20,
+            col=self.color_1 if index % 2 == 0 else self.color_2,
         )
+        self.disp.print(string, posx=14, posy=offset, fg=self.color_text, bg=None)
 
     def draw_menu(self, offset=0):
         """
@@ -290,7 +316,7 @@ class Menu:
                     except Exception as e:
                         print("Exception during menu.on_scroll():")
                         sys.print_exception(e)
-                elif ev == buttons.BOTTOM_LEFT:
+                elif ev == self.button_scroll_up:
                     self.select_time = utime.time_ms()
                     self.draw_menu(8)
                     self.idx = (self.idx + len(self.entries) - 1) % len(self.entries)
@@ -301,9 +327,19 @@ class Menu:
                     except Exception as e:
                         print("Exception during menu.on_scroll():")
                         sys.print_exception(e)
-                elif ev == buttons.TOP_RIGHT:
+                elif ev == self.button_select:
+                    t0 = utime.time()
+                    long_press = False
+                    while buttons.read(buttons.TOP_RIGHT) > 0:
+                        if utime.time() - t0 > 1:
+                            long_press = True
+                            break
+
                     try:
-                        self.on_select(self.entries[self.idx], self.idx)
+                        if long_press:
+                            self.on_long_select(self.entries[self.idx], self.idx)
+                        else:
+                            self.on_select(self.entries[self.idx], self.idx)
                         self.select_time = utime.time_ms()
                     except _ExitMenuException:
                         raise
diff --git a/pycardium/modules/qstrdefs.h b/pycardium/modules/qstrdefs.h
index aaa5ac7ba9654daa0ae29e93db9e386af0d34a3b..4e5456766e177d6fb81a2c949b29856d23184bbd 100644
--- a/pycardium/modules/qstrdefs.h
+++ b/pycardium/modules/qstrdefs.h
@@ -53,8 +53,12 @@ Q(monotonic)
 Q(monotonic_ms)
 Q(time)
 Q(time_ms)
+Q(unix_time)
+Q(unix_time_ms)
 Q(set_time)
+Q(set_time_ms)
 Q(set_unix_time)
+Q(set_unix_time_ms)
 
 /* vibra */
 Q(vibra)
@@ -178,8 +182,14 @@ Q(CHAOS)
 Q(COMMUNICATION)
 Q(CAMP)
 
+/* required for interrupts */
 Q(MAX30001_ECG)
+Q(MAX86150)
 
 /* ws2812 */
 Q(ws2812)
 Q(set_all)
+
+Q(config)
+Q(set_string)
+Q(get_string)
diff --git a/pycardium/modules/sys_config.c b/pycardium/modules/sys_config.c
new file mode 100644
index 0000000000000000000000000000000000000000..a811a19a82ec75fba161cb40280475039348bf83
--- /dev/null
+++ b/pycardium/modules/sys_config.c
@@ -0,0 +1,85 @@
+#include "epicardium.h"
+
+#include "py/obj.h"
+#include "py/runtime.h"
+
+#include <string.h>
+#include <strings.h>
+
+#include <stdbool.h>
+
+static void extract_string(
+	mp_obj_t obj, char *buf, size_t buf_len, const char *error_message
+) {
+	size_t len;
+	const char *str_ptr = mp_obj_str_get_data(obj, &len);
+	/*
+	 * The string retrieved from MicroPython is not NULL-terminated so we
+	 * first need to copy it and add a NULL-byte.
+	 */
+	if (len > (buf_len - 1)) {
+		mp_raise_ValueError(error_message);
+	}
+	memcpy(buf, str_ptr, len);
+	buf[len] = '\0';
+}
+
+static mp_obj_t mp_config_set_string(mp_obj_t key_in, mp_obj_t value_in)
+{
+	const char *const forbidden_key = "execute_elf";
+
+	char key_str[128], value_str[128];
+
+	extract_string(key_in, key_str, sizeof(key_str), "key too long");
+	extract_string(
+		value_in, value_str, sizeof(value_str), "value too long"
+	);
+
+	if (strstr(key_str, forbidden_key) != NULL ||
+	    strstr(value_str, forbidden_key) != NULL) {
+		/* A Permission Error might be nice but is not available in MP */
+		mp_raise_ValueError("Not allowed");
+	}
+
+	int status = epic_config_set_string(key_str, value_str);
+	if (status < 0) {
+		mp_raise_OSError(-status);
+	}
+
+	return mp_const_none;
+}
+static MP_DEFINE_CONST_FUN_OBJ_2(set_string_obj, mp_config_set_string);
+
+static mp_obj_t mp_config_get_string(mp_obj_t key_in)
+{
+	char key_str[128], value_str[128];
+	extract_string(key_in, key_str, sizeof(key_str), "key too long");
+
+	int status =
+		epic_config_get_string(key_str, value_str, sizeof(value_str));
+	if (status < 0) {
+		mp_raise_OSError(-status);
+	}
+
+	mp_obj_t ret = mp_obj_new_str(value_str, strlen(value_str));
+	return ret;
+}
+static MP_DEFINE_CONST_FUN_OBJ_1(get_string_obj, mp_config_get_string);
+
+static const mp_rom_map_elem_t config_module_globals_table[] = {
+	{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_sys_config) },
+	{ MP_ROM_QSTR(MP_QSTR_set_string), MP_ROM_PTR(&set_string_obj) },
+	{ MP_ROM_QSTR(MP_QSTR_get_string), MP_ROM_PTR(&get_string_obj) },
+};
+
+static MP_DEFINE_CONST_DICT(config_module_globals, config_module_globals_table);
+
+// Define module object.
+const mp_obj_module_t config_module = {
+	.base    = { &mp_type_module },
+	.globals = (mp_obj_dict_t *)&config_module_globals,
+};
+
+/* This is a special macro that will make MicroPython aware of this module */
+/* clang-format off */
+MP_REGISTER_MODULE(MP_QSTR_sys_config, config_module, MODULE_CONFIG_ENABLED);
diff --git a/pycardium/modules/sys_display.c b/pycardium/modules/sys_display.c
index 4f92ab92dcc2cfc8cede58018c8778fe9e345918..40ec6125bfef12132ab9cbe3ce6273b807131d37 100644
--- a/pycardium/modules/sys_display.c
+++ b/pycardium/modules/sys_display.c
@@ -39,11 +39,11 @@ static mp_obj_t mp_display_print(size_t n_args, const mp_obj_t *args)
 		mp_raise_TypeError("input text must be a string");
 	}
 	GET_STR_DATA_LEN(args[0], print, print_len);
-	uint32_t posx = mp_obj_get_int(args[1]);
-	uint32_t posy = mp_obj_get_int(args[2]);
-	uint32_t fg   = get_color(args[3]);
-	uint32_t bg   = get_color(args[4]);
-	int res = epic_disp_print(posx, posy, (const char *)print, fg, bg);
+	int32_t posx = mp_obj_get_int(args[1]);
+	int32_t posy = mp_obj_get_int(args[2]);
+	uint32_t fg  = get_color(args[3]);
+	uint32_t bg  = get_color(args[4]);
+	int res      = epic_disp_print(posx, posy, (const char *)print, fg, bg);
 	if (res < 0) {
 		mp_raise_OSError(-res);
 	}
@@ -60,8 +60,8 @@ static mp_obj_t mp_display_print_adv(size_t n_args, const mp_obj_t *args)
 		mp_raise_TypeError("input text must be a string");
 	}
 	GET_STR_DATA_LEN(args[0], print, print_len);
-	uint32_t posx    = mp_obj_get_int(args[1]);
-	uint32_t posy    = mp_obj_get_int(args[2]);
+	int32_t posx     = mp_obj_get_int(args[1]);
+	int32_t posy     = mp_obj_get_int(args[2]);
 	uint32_t fg      = get_color(args[3]);
 	uint32_t bg      = get_color(args[4]);
 	uint8_t fontName = mp_obj_get_int(args[5]);
@@ -80,19 +80,10 @@ static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(
 /* draw pixel on the display */
 static mp_obj_t mp_display_pixel(size_t n_args, const mp_obj_t *args)
 {
-	uint16_t x   = mp_obj_get_int(args[0]);
-	uint16_t y   = mp_obj_get_int(args[1]);
+	int16_t x    = mp_obj_get_int(args[0]);
+	int16_t y    = mp_obj_get_int(args[1]);
 	uint16_t col = get_color(args[2]);
 
-	//TODO: Move sanity checks to epicardium
-	if (x > 160 || x < 0) {
-		mp_raise_ValueError("X-Coords have to be 0 < x < 160");
-	}
-
-	if (y > 80 || y < 0) {
-		mp_raise_ValueError("Y-Coords have to be 0 < y < 80");
-	}
-
 	int res = epic_disp_pixel(x, y, col);
 	if (res < 0) {
 		mp_raise_OSError(-res);
@@ -121,24 +112,15 @@ static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(
 /* draw line on the display */
 static mp_obj_t mp_display_line(size_t n_args, const mp_obj_t *args)
 {
-	uint16_t xs  = mp_obj_get_int(args[0]);
-	uint16_t ys  = mp_obj_get_int(args[1]);
-	uint16_t xe  = mp_obj_get_int(args[2]);
-	uint16_t ye  = mp_obj_get_int(args[3]);
+	int16_t xs   = mp_obj_get_int(args[0]);
+	int16_t ys   = mp_obj_get_int(args[1]);
+	int16_t xe   = mp_obj_get_int(args[2]);
+	int16_t ye   = mp_obj_get_int(args[3]);
 	uint16_t col = get_color(args[4]);
 	uint16_t ls  = mp_obj_get_int(args[5]);
 	uint16_t ps  = mp_obj_get_int(args[6]);
 
-	//TODO: Move sanity checks to epicardium
-	if (xs > 160 || xs < 0 || xe > 160 || xe < 0) {
-		mp_raise_ValueError("X-Coords have to be 0 < x < 160");
-	}
-
-	if (ys > 80 || ys < 0 || ye > 80 || ye < 0) {
-		mp_raise_ValueError("Y-Coords have to be 0 < x < 80");
-	}
-
-	if (ls > 1 || ls < 0) {
+	if (ls > 1) {
 		mp_raise_ValueError("Line style has to be 0 or 1");
 	}
 
@@ -155,24 +137,15 @@ static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(
 /* draw rectangle on the display */
 static mp_obj_t mp_display_rect(size_t n_args, const mp_obj_t *args)
 {
-	uint16_t xs  = mp_obj_get_int(args[0]);
-	uint16_t ys  = mp_obj_get_int(args[1]);
-	uint16_t xe  = mp_obj_get_int(args[2]);
-	uint16_t ye  = mp_obj_get_int(args[3]);
+	int16_t xs   = mp_obj_get_int(args[0]);
+	int16_t ys   = mp_obj_get_int(args[1]);
+	int16_t xe   = mp_obj_get_int(args[2]);
+	int16_t ye   = mp_obj_get_int(args[3]);
 	uint16_t col = get_color(args[4]);
 	uint16_t fs  = mp_obj_get_int(args[5]);
 	uint16_t ps  = mp_obj_get_int(args[6]);
 
-	//TODO: Move sanity checks to epicardium
-	if (xs > 160 || xs < 0 || xe > 160 || xe < 0) {
-		mp_raise_ValueError("X-Coords have to be 0 < x < 160");
-	}
-
-	if (ys > 80 || ys < 0 || ye > 80 || ye < 0) {
-		mp_raise_ValueError("Y-Coords have to be 0 < x < 80");
-	}
-
-	if (fs > 1 || fs < 0) {
+	if (fs > 1) {
 		mp_raise_ValueError("Fill style has to be 0 or 1");
 	}
 
@@ -189,14 +162,14 @@ static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(
 /* draw rectangle on the display */
 static mp_obj_t mp_display_circ(size_t n_args, const mp_obj_t *args)
 {
-	uint16_t x   = mp_obj_get_int(args[0]);
-	uint16_t y   = mp_obj_get_int(args[1]);
+	int16_t x    = mp_obj_get_int(args[0]);
+	int16_t y    = mp_obj_get_int(args[1]);
 	uint16_t rad = mp_obj_get_int(args[2]);
 	uint16_t col = get_color(args[3]);
 	uint16_t fs  = mp_obj_get_int(args[4]);
 	uint16_t ps  = mp_obj_get_int(args[5]);
 
-	if (fs > 1 || fs < 0) {
+	if (fs > 1) {
 		mp_raise_ValueError("Fill style has to be 0 or 1");
 	}
 
diff --git a/pycardium/modules/sys_leds.c b/pycardium/modules/sys_leds.c
index 302c356ec0198d4652dd1463920bc5b9f77272a7..5b111d50f96ea28838d95200fe9dcffb97376767 100644
--- a/pycardium/modules/sys_leds.c
+++ b/pycardium/modules/sys_leds.c
@@ -202,8 +202,8 @@ static MP_DEFINE_CONST_FUN_OBJ_2(leds_set_rocket_obj, mp_leds_set_rocket);
 
 static mp_obj_t mp_leds_get_rocket(mp_obj_t led_in)
 {
-	int led     = mp_obj_get_int(led_in);
-	uint8_t ret = epic_leds_get_rocket(led);
+	int led = mp_obj_get_int(led_in);
+	int ret = epic_leds_get_rocket(led);
 	if (ret == -EINVAL) {
 		mp_raise_ValueError(
 			"invalid value: maybe the led does not exists"
diff --git a/pycardium/modules/utime.c b/pycardium/modules/utime.c
index 9f71eef51e0dd22bec48f9c2091851c8c509cb27..1ca16df77c3a66fb8f117d31988ed44b3faac77c 100644
--- a/pycardium/modules/utime.c
+++ b/pycardium/modules/utime.c
@@ -5,27 +5,75 @@
 
 #include "py/mpconfig.h"
 #include "py/obj.h"
+#include "py/objint.h"
 #include "py/runtime.h"
 #include "extmod/utime_mphal.h"
 
+#include <string.h>
 #include <stdint.h>
+#include <stdlib.h>
 
 // Needs to be after the stdint include ...
 #include "lib/timeutils/timeutils.h"
 
 /* MicroPython has its epoch at 2000-01-01. Our RTC is in UTC */
 #define EPOCH_OFFSET 946684800UL
-#define TZONE_OFFSET 7200UL
+
+/* Default time zone: CET */
+#define TZONE_OFFSET 3600UL
+
+static uint32_t time_get_timezone_offset(void)
+{
+	static uint32_t offset = INT32_MAX;
+
+	/* Only read the timezone setting once after starting
+	 * the interpeter to not impact performance */
+	if (offset == INT32_MAX) {
+		offset = TZONE_OFFSET;
+
+		char buf[128];
+		int ret = epic_config_get_string("timezone", buf, sizeof(buf));
+
+		/* Understands formats like +0100, 0100, 100, -0800 */
+		if (ret == 0 && strlen(buf) > 0) {
+			errno             = 0;
+			long int timezone = strtol(buf, NULL, 10);
+			int sign          = 1;
+			if (timezone < 0) {
+				sign     = -1;
+				timezone = -timezone;
+			}
+			if (errno == 0) {
+				offset = (timezone / 100) * 3600;
+				offset += (timezone % 100) * 60;
+				offset *= sign;
+			}
+		}
+	}
+	return offset;
+}
 
 static mp_obj_t time_set_time(mp_obj_t secs)
 {
 	uint64_t timestamp = mp_obj_get_int(secs) * 1000ULL +
-			     EPOCH_OFFSET * 1000ULL - TZONE_OFFSET * 1000ULL;
+			     EPOCH_OFFSET * 1000ULL -
+			     time_get_timezone_offset() * 1000ULL;
 	epic_rtc_set_milliseconds(timestamp);
 	return mp_const_none;
 }
 static MP_DEFINE_CONST_FUN_OBJ_1(time_set_time_obj, time_set_time);
 
+static mp_obj_t time_set_time_ms(mp_obj_t msecs_obj)
+{
+	uint64_t msecs = 0;
+	mp_obj_int_to_bytes_impl(msecs_obj, false, 8, (byte *)&msecs);
+	uint64_t timestamp = msecs + EPOCH_OFFSET * 1000ULL -
+			     time_get_timezone_offset() * 1000ULL;
+	epic_rtc_set_milliseconds(timestamp);
+	return mp_const_none;
+}
+static MP_DEFINE_CONST_FUN_OBJ_1(time_set_time_ms_obj, time_set_time_ms);
+
 static mp_obj_t time_set_unix_time(mp_obj_t secs)
 {
 	uint64_t timestamp = mp_obj_get_int(secs) * 1000ULL;
@@ -34,10 +82,22 @@ static mp_obj_t time_set_unix_time(mp_obj_t secs)
 }
 static MP_DEFINE_CONST_FUN_OBJ_1(time_set_unix_time_obj, time_set_unix_time);
 
+static mp_obj_t time_set_unix_time_ms(mp_obj_t msecs_obj)
+{
+	uint64_t timestamp = 0;
+	mp_obj_int_to_bytes_impl(msecs_obj, false, 8, (byte *)&timestamp);
+	epic_rtc_set_milliseconds(timestamp);
+	return mp_const_none;
+}
+static MP_DEFINE_CONST_FUN_OBJ_1(
+	time_set_unix_time_ms_obj, time_set_unix_time_ms
+);
+
 static mp_obj_t time_time(void)
 {
 	mp_int_t seconds;
-	seconds = epic_rtc_get_seconds() - EPOCH_OFFSET + TZONE_OFFSET;
+	seconds = epic_rtc_get_seconds() - EPOCH_OFFSET +
+		  time_get_timezone_offset();
 	return mp_obj_new_int(seconds);
 }
 MP_DEFINE_CONST_FUN_OBJ_0(time_time_obj, time_time);
@@ -46,11 +106,25 @@ static mp_obj_t time_time_ms(void)
 {
 	uint64_t milliseconds;
 	milliseconds = epic_rtc_get_milliseconds() - EPOCH_OFFSET * 1000ULL +
-		       TZONE_OFFSET * 1000ULL;
+		       time_get_timezone_offset() * 1000ULL;
 	return mp_obj_new_int_from_ull(milliseconds);
 }
 MP_DEFINE_CONST_FUN_OBJ_0(time_time_ms_obj, time_time_ms);
 
+static mp_obj_t time_unix_time(void)
+{
+	mp_int_t seconds = epic_rtc_get_seconds();
+	return mp_obj_new_int(seconds);
+}
+MP_DEFINE_CONST_FUN_OBJ_0(time_unix_time_obj, time_unix_time);
+
+static mp_obj_t time_unix_time_ms(void)
+{
+	uint64_t milliseconds = epic_rtc_get_milliseconds();
+	return mp_obj_new_int_from_ull(milliseconds);
+}
+MP_DEFINE_CONST_FUN_OBJ_0(time_unix_time_ms_obj, time_unix_time_ms);
+
 static mp_obj_t time_monotonic(void)
 {
 	mp_int_t seconds;
@@ -72,7 +146,8 @@ static mp_obj_t time_localtime(size_t n_args, const mp_obj_t *args)
 	mp_int_t seconds;
 
 	if (n_args == 0 || args[0] == mp_const_none) {
-		seconds = epic_rtc_get_seconds() - EPOCH_OFFSET + TZONE_OFFSET;
+		seconds = epic_rtc_get_seconds() - EPOCH_OFFSET +
+			  time_get_timezone_offset();
 	} else {
 		seconds = mp_obj_get_int(args[0]);
 	}
@@ -124,8 +199,8 @@ static MP_DEFINE_CONST_FUN_OBJ_1(time_mktime_obj, time_mktime);
 /* Schedule an alarm */
 static mp_obj_t time_alarm(size_t n_args, const mp_obj_t *args)
 {
-	mp_int_t timestamp =
-		mp_obj_get_int(args[0]) + EPOCH_OFFSET - TZONE_OFFSET;
+	mp_int_t timestamp = mp_obj_get_int(args[0]) + EPOCH_OFFSET -
+			     time_get_timezone_offset();
 	if (n_args == 2) {
 		/* If a callback was given, register it for the RTC Alarm */
 		mp_obj_t callback = args[1];
@@ -146,17 +221,25 @@ static const mp_rom_map_elem_t time_module_globals_table[] = {
 	{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_utime) },
 	{ MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&time_time_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_time_ms), MP_ROM_PTR(&time_time_ms_obj) },
+	{ MP_ROM_QSTR(MP_QSTR_unix_time), MP_ROM_PTR(&time_unix_time_obj) },
+	{ MP_ROM_QSTR(MP_QSTR_unix_time_ms),
+	  MP_ROM_PTR(&time_unix_time_ms_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_monotonic), MP_ROM_PTR(&time_monotonic_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_monotonic_ms),
 	  MP_ROM_PTR(&time_monotonic_ms_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_set_time), MP_ROM_PTR(&time_set_time_obj) },
+	{ MP_ROM_QSTR(MP_QSTR_set_time_ms), MP_ROM_PTR(&time_set_time_ms_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_set_unix_time),
 	  MP_ROM_PTR(&time_set_unix_time_obj) },
+	{ MP_ROM_QSTR(MP_QSTR_set_unix_time_ms),
+	  MP_ROM_PTR(&time_set_unix_time_ms_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_localtime), MP_ROM_PTR(&time_localtime_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_mktime), MP_ROM_PTR(&time_mktime_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_sleep), MP_ROM_PTR(&mp_utime_sleep_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_sleep_ms), MP_ROM_PTR(&mp_utime_sleep_ms_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_sleep_us), MP_ROM_PTR(&mp_utime_sleep_us_obj) },
+	{ MP_ROM_QSTR(MP_QSTR_ticks_ms), MP_ROM_PTR(&mp_utime_ticks_ms_obj) },
+	{ MP_ROM_QSTR(MP_QSTR_ticks_us), MP_ROM_PTR(&mp_utime_ticks_us_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_alarm), MP_ROM_PTR(&time_alarm_obj) },
 #if 0
 	/* TODO: Implement those */
diff --git a/pycardium/mpconfigport.h b/pycardium/mpconfigport.h
index 767a69fbd78465b10c0ec5ea54608c8a0270670b..2b7059c895ae9d98c66b26c1c0319b09e6a0c71f 100644
--- a/pycardium/mpconfigport.h
+++ b/pycardium/mpconfigport.h
@@ -31,6 +31,7 @@ int mp_hal_trng_read_int(void);
 #define MICROPY_PY_ALL_SPECIAL_METHODS      (1)
 #define MICROPY_PY_BUILTINS_HELP            (1)
 #define MICROPY_PY_BUILTINS_HELP_MODULES    (1)
+#define MICROPY_PY_BUILTINS_INPUT           (1)
 #define MICROPY_PY_UBINASCII                (1)
 #define MICROPY_PY_UHEAPQ                   (1)
 #define MICROPY_PY_UJSON                    (1)
@@ -44,9 +45,11 @@ int mp_hal_trng_read_int(void);
 #define MICROPY_PY_UTIME_MP_HAL             (1)
 #define MICROPY_PY_IO_FILEIO                (1)
 #define MICROPY_PY_UERRNO                   (1)
+#define MICROPY_PY_FRAMEBUF                 (1)
 
 /* Modules */
 #define MODULE_BHI160_ENABLED               (1)
+#define MODULE_MAX86150_ENABLED             (1)
 #define MODULE_BME680_ENABLED               (1)
 #define MODULE_BUTTONS_ENABLED              (1)
 #define MODULE_DISPLAY_ENABLED              (1)
@@ -61,6 +64,7 @@ int mp_hal_trng_read_int(void);
 #define MODULE_UTIME_ENABLED                (1)
 #define MODULE_VIBRA_ENABLED                (1)
 #define MODULE_WS2812_ENABLED               (1)
+#define MODULE_CONFIG_ENABLED               (1)
 
 /*
  * This port is intended to be 32-bit, but unfortunately, int32_t for
@@ -91,7 +95,14 @@ typedef long mp_off_t;
 /* TODO: Document this */
 #define MP_STATE_PORT MP_STATE_VM
 
+#ifndef NO_QSTR
+#include "epicardium.h"
+#else
+#define EPIC_INT_NUM 1
+#endif
+
 /* For some reason, we need to define readline history manually */
 #define MICROPY_PORT_ROOT_POINTERS \
-    const char *readline_hist[16];
+    const char *readline_hist[16]; \
+    mp_obj_t interrupt_callbacks[EPIC_INT_NUM]; \
 
diff --git a/pycardium/mphalport.c b/pycardium/mphalport.c
index 60cd9df0cdf1e08a01ffd3df84772d9c6276e7ac..5ae9cee49f60b7c133d3bdd97bc8c3a293d6b29c 100644
--- a/pycardium/mphalport.c
+++ b/pycardium/mphalport.c
@@ -31,6 +31,11 @@ void pycardium_hal_init(void)
 	 * a character becomes available.
 	 */
 	epic_interrupt_enable(EPIC_INT_UART_RX);
+
+	/*
+	 * Configure SysTick timer for 1ms period.
+	 */
+	SysTick_Config(SystemCoreClock / 1000);
 }
 
 /******************************************************************************
@@ -107,7 +112,7 @@ void epic_isr_ctrl_c(void)
 
 void mp_hal_set_interrupt_char(char c)
 {
-	if (c != -1) {
+	if (c != '\xFF') {
 		mp_obj_exception_clear_traceback(
 			MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception))
 		);
@@ -120,23 +125,158 @@ void mp_hal_set_interrupt_char(char c)
 	}
 }
 
+/******************************************************************************
+ * SysTick timer at 1000 Hz
+ */
+
+static volatile uint64_t systick_count = 0;
+
+void SysTick_Handler(void)
+{
+	systick_count += 1;
+}
+
+/*
+ * Get an absolute "timestamp" in microseconds.
+ */
+static uint64_t systick_get_us()
+{
+	uint32_t irqsaved = __get_PRIMASK();
+	__set_PRIMASK(0);
+
+	uint64_t counts_per_us = SystemCoreClock / 1000000;
+	uint64_t us            = systick_count * 1000 +
+		      (SysTick->LOAD - SysTick->VAL) / counts_per_us;
+
+	__set_PRIMASK(irqsaved);
+
+	return us;
+}
+
+static void systick_delay_precise(uint32_t us)
+{
+	/*
+	 * Calculate how long the busy-spin needs to be.  As the very first
+	 * instruction, read the current timer value to ensure as little skew as
+	 * possible.
+	 *
+	 * Subtract 0.3us (constant_offset) to account for the duration of the
+	 * calculations.
+	 */
+	uint32_t count_to_overflow = SysTick->VAL;
+	uint32_t count_reload      = SysTick->LOAD;
+	uint32_t clocks_per_us     = SystemCoreClock / 1000000;
+	uint32_t constant_offset   = clocks_per_us * 3 / 10;
+	uint32_t delay_count       = us * clocks_per_us - constant_offset;
+
+	/*
+	 * Calculate the final count for both paths.  Marked as volatile so the
+	 * compiler can't move this into the branches and screw up the timing.
+	 */
+	volatile uint32_t count_final_direct = count_to_overflow - delay_count;
+	volatile uint32_t count_final_underflow =
+		count_reload - (delay_count - count_to_overflow);
+
+	if (delay_count > count_to_overflow) {
+		/*
+		 * Wait for the SysTick to underflow and then count down
+		 * to the final value.
+		 */
+		while (SysTick->VAL <= count_to_overflow ||
+		       SysTick->VAL > count_final_underflow) {
+			__NOP();
+		}
+	} else {
+		/*
+		 * Wait for the SysTick to count down to the final value.
+		 */
+		while (SysTick->VAL > count_final_direct) {
+			__NOP();
+		}
+	}
+}
+
+static void systick_delay_sleep(uint32_t us)
+{
+	uint64_t final_time = systick_get_us() + (uint64_t)us - 2;
+
+	while (1) {
+		uint64_t now = systick_get_us();
+
+		if (now >= final_time) {
+			break;
+		}
+
+		/*
+		 * Sleep with WFI if more than 1ms of delay is remaining.  The
+		 * SysTick interrupt is guaranteed to happen within any timespan
+		 * of 1ms.
+		 *
+		 * Use a critical section encompassing both the check and the
+		 * WFI to prevent a race-condition where the interrupt happens
+		 * just in between the check and WFI.
+		 */
+		uint32_t irqsaved = __get_PRIMASK();
+		__set_PRIMASK(0);
+		if ((now + 1000) < final_time) {
+			__WFI();
+		}
+		__set_PRIMASK(irqsaved);
+
+		/*
+		 * Handle pending MicroPython 'interrupts'.  This call could
+		 * potentially not return here when a handler raises an
+		 * exception.  Those will propagate outwards and thus make the
+		 * delay return early.
+		 *
+		 * One example of this happeing is the KeyboardInterrupt
+		 * (CTRL+C) which will abort the running code and exit to REPL.
+		 */
+		mp_handle_pending();
+	}
+}
+
+static void systick_delay(uint32_t us)
+{
+	if (us == 0)
+		return;
+
+	/*
+	 * For very short delays, use the systick_delay_precise() function which
+	 * delays with a microsecond accuracy.  For anything >1ms, use
+	 * systick_delay_sleep() which puts the CPU to sleep when nothing is
+	 * happening and also checks for MicroPython interrupts every now and
+	 * then.
+	 */
+	if (us < 1000) {
+		systick_delay_precise(us);
+	} else {
+		systick_delay_sleep(us);
+	}
+}
+
 /******************************************************************************
  * Time & Delay
  */
 
 void mp_hal_delay_ms(mp_uint_t ms)
 {
-	mxc_delay(ms * 1000);
+	systick_delay(ms * 1000);
 }
 
 void mp_hal_delay_us(mp_uint_t us)
 {
-	mxc_delay(us);
+	systick_delay(us);
 }
 
 mp_uint_t mp_hal_ticks_ms(void)
 {
-	return 0;
+	return (mp_uint_t)(systick_get_us() / 1000);
+}
+
+mp_uint_t mp_hal_ticks_us(void)
+{
+	return (mp_uint_t)systick_get_us();
 }
 
 /******************************************************************************
diff --git a/requirements.txt b/requirements.txt
index 73516b14481fc30a0516fad07a866ec007db3a8c..d9624a1c647130aa54177616300eeb9098c69dbf 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
 meson~=0.51.1
 crc16~=0.1.1
 pillow~=6.1.0
+pyserial~=3.4
diff --git a/tools/ecg-plot.py b/tools/ecg-plot.py
new file mode 100644
index 0000000000000000000000000000000000000000..119bdde96113660619bce4c1978ac58b2bda5ed6
--- /dev/null
+++ b/tools/ecg-plot.py
@@ -0,0 +1,43 @@
+# vim: set ts=4 sw=4 tw=0 et pm=:
+import numpy
+import sys
+import matplotlib.pyplot as plt
+
+
+def read(file_name):
+    signal = numpy.fromfile(file_name, dtype=numpy.int16)
+    return signal
+
+
+signal = read(sys.argv[1])
+factor = -1
+count = 5
+offset = 0
+
+signal = signal[offset * 128 :]
+
+count = min(min(len(signal) / 1280 + 1, 10), count)
+
+font = {"family": "serif", "color": "darkred", "weight": "normal", "size": 16}
+
+title = False
+
+for i in range(count):
+    plt.subplot(count, 1, i + 1)
+    sub_signal = signal[i * 1280 : (i + 1) * 1280] * factor
+
+    # pad with 0 as needed.
+    # TODO: find a better solution to visialize this
+    sub_signal = numpy.pad(sub_signal, (0, 1280 - len(sub_signal)), "constant")
+
+    time_scale = (
+        numpy.array(range(i * 1280, i * 1280 + len(sub_signal))) / 128.0 + offset
+    )
+
+    plt.plot(time_scale, sub_signal, "-")
+    if not title:
+        plt.title("File: %s" % sys.argv[1].split("/")[-1], fontdict=font)
+        title = True
+
+plt.xlabel("time (s)", fontdict=font)
+plt.show()
diff --git a/tools/ecg2wav.py b/tools/ecg2wav.py
new file mode 100644
index 0000000000000000000000000000000000000000..98843e42daa36264002aea5db2b1d0db75a47472
--- /dev/null
+++ b/tools/ecg2wav.py
@@ -0,0 +1,30 @@
+# vim: set ts=4 sw=4 tw=0 et pm=:
+import numpy
+import wave
+import sys
+import struct
+
+
+def read(file_name):
+    signal = numpy.fromfile(file_name, dtype=numpy.int16)
+    return signal
+
+
+signal = read(sys.argv[1])
+
+
+sampleRate = 128.0  # hertz
+duration = len(signal) / sampleRate  # seconds
+
+wavef = wave.open("out.wav", "w")
+wavef.setnchannels(1)  # mono
+wavef.setsampwidth(2)
+wavef.setframerate(sampleRate)
+
+for i in range(int(duration * sampleRate)):
+    value = int(signal[i])
+    data = struct.pack("<h", value)
+    wavef.writeframesraw(data)
+
+
+wavef.close()
diff --git a/tools/imageconvert.py b/tools/imageconvert.py
deleted file mode 100755
index 72ea36139b31c3115307968c73ce5cccfa0fb483..0000000000000000000000000000000000000000
--- a/tools/imageconvert.py
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env python3
-
-from PIL import Image
-import sys
-
-if len(sys.argv) < 2:
-    print("Usage: %s <image file>" % sys.argv[0])
-    sys.exit(1)
-
-im = Image.open(sys.argv[1])
-
-out_name = '.'.join(sys.argv[1].split('.')[:-1])
-
-print(out_name)
-out = open(out_name + ".h", 'w')
-
-out.write("const unsigned char %s[] = {\n" % out_name.split('/')[-1])
-
-for x in range(im.size[1]):
-    for y in range(im.size[0]):
-        px = im.getpixel((y, x))
-
-        px16 = ((px[0] >> 3) << 11) | ((px[1] >> 2) << 5) | (px[2] >> 3)
-
-        px16h = (px16 & 0xFF00) >> 8
-        px16l = px16 & 0xFF
-
-        out.write("0x%02x, 0x%02x,\n" % (px16l, px16h))
-
-out.write("};\n")
diff --git a/tools/make-release.sh b/tools/make-release.sh
index 09946b6543c6371ac5688410cb7221bcb5f082c7..e73f4f7cef2390bc927a4541db54b3e16d981afd 100755
--- a/tools/make-release.sh
+++ b/tools/make-release.sh
@@ -52,11 +52,11 @@ fi
 release_dir="release-$version"
 mkdir "$release_dir"
 
-message "Building (non-jailbreak) release version ..."
+message "Building release version ..."
 ./bootstrap.sh
 ninja -C build/
 
-message "Creating (non-jailbreak) release archive ..."
+message "Creating release archive ..."
 mkdir "$release_dir/$release_name"
 cp -r -t "$release_dir/$release_name" preload/*
 cp build/pycardium/pycardium_epicardium.bin "$release_dir/$release_name/card10.bin"
@@ -66,20 +66,5 @@ cp build/pycardium/pycardium_epicardium.bin "$release_dir/$release_name/card10.b
 mkdir "$release_dir/elfs"
 cp -t "$release_dir/elfs" build/epicardium/epicardium.elf build/pycardium/pycardium.elf build/bootloader/bootloader.elf
 
-message "Building (jailbreak) release version ..."
-./bootstrap.sh -Djailbreak_card10=true
-ninja -C build/
-
-message "Creating (jailbreak) release archive ..."
-mkdir "$release_dir/$release_name-jailbreak"
-cp -r -t "$release_dir/$release_name-jailbreak" preload/*
-cp build/pycardium/pycardium_epicardium.bin "$release_dir/$release_name-jailbreak/card10.bin"
-( cd "$release_dir"; zip -r "$release_name-jailbreak"{.zip,}; )
-
-# Copy ELFs
-mkdir "$release_dir/elfs-jailbreak"
-cp -t "$release_dir/elfs-jailbreak" build/epicardium/epicardium.elf build/pycardium/pycardium.elf
-
 message "Done!"
-echo "Archive (non-jailbreak): $release_dir/$release_name.zip"
-echo "Archive (jailbreak):     $release_dir/$release_name-jailbreak.zip"
+echo "Archive: $release_dir/$release_name.zip"
diff --git a/tools/poor-profiler/README.md b/tools/poor-profiler/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..42e2e4b1750e8a4a0097940f6bbb67f405c2a079
--- /dev/null
+++ b/tools/poor-profiler/README.md
@@ -0,0 +1,37 @@
+poor-profiler
+-------------
+This is a (rather poor) attempt at building a profiler for card10.  The
+idea is based on the [poor man's profiler](https://poormansprofiler.org/).
+Essentially, it uses stack-traces gathered using GDB.  This means,
+execution will be significantly slowed down which might make certain
+features of the firmware misbehave.  Use with care!
+
+That said, here is how to use it:
+
+1. Configure the profiler by adjusting `nsamples` and `sleeptime` in
+   [`poor-profiler.sh`](https://git.card10.badge.events.ccc.de/card10/firmware/blob/master/tools/poor-profiler/poor-profiler.sh).
+   (If anyone wants to send a patch which makes this script use proper
+   commandline args, please do!)
+2. Start profiling!  Just call
+   ```bash
+   ./tools/poor-profiler/poor-profiler.sh >/tmp/samples
+   ```
+   from the firmware repository root.
+3. Next, collapse the samples using the
+   [`poor-collapse.sh`](https://git.card10.badge.events.ccc.de/card10/firmware/blob/master/tools/poor-profiler/poor-collapse.sh)
+   script:
+   ```bash
+   $ ./tools/poor-profiler/poor-collapse.sh /tmp/samples >/tmp/samples.collapsed
+   ```
+4. Finally, feed the collapsed samples into the Brendan Gregg's
+   [FlameGraph](https://github.com/brendangregg/FlameGraph) script which
+   will create an svg you can view (and interact with!) in your browser:
+   ```bash
+   $ /path/to/FlameGraph/flamegraph.pl /tmp/samples.collapsed >/tmp/flamegraph.svg
+   $ firefox /tmpflamegraph.svg
+   ```
+   (If you feel that a perl script is not modern enough, you can also use
+   [`inferno-flamegraph`](https://github.com/jonhoo/inferno) which is
+   written in Rust ...)
+
+Happy profiling!
diff --git a/tools/poor-profiler/poor-collapse.sh b/tools/poor-profiler/poor-collapse.sh
new file mode 100755
index 0000000000000000000000000000000000000000..6e6af32d53d2d5472a20d4c4d3069f8fc0e2e8cf
--- /dev/null
+++ b/tools/poor-profiler/poor-collapse.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+
+cat "$1" | \
+    sort | \
+    uniq -c | \
+    sort -r -n -k 1,1 | \
+    sed 's/^ \+\([0-9]\+\) \(.*\)$/\2 \1/g' | \
+    sort
diff --git a/tools/poor-profiler/poor-profiler.sh b/tools/poor-profiler/poor-profiler.sh
new file mode 100755
index 0000000000000000000000000000000000000000..91179b0d2c7e8ed4737b1a60880391bff215679f
--- /dev/null
+++ b/tools/poor-profiler/poor-profiler.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+
+nsamples=4096
+sleeptime=0.05
+
+for x in $(seq 1 $nsamples); do
+    printf "Capturing %6u/%u ...\n" "$x" "$nsamples" >&2
+    arm-none-eabi-gdb -nx -x init.gdb -ex "set pagination 0" -ex "bt" -ex "continue&" -batch build/epicardium/epicardium.elf 2>/dev/null | \
+        grep -E '^#' | \
+        tac | \
+        sed 's/^#[0-9]\+ \+0x.* in \(.*\) (.*$/\1/g;s/^#[0-9]\+ \+\(.*\) (.*$/\1/g' | \
+        tr '\n' ';' | \
+        sed 's/^\(.*\);$/\1\n/g'
+    sleep $sleeptime
+done
diff --git a/tools/pycard10.py b/tools/pycard10.py
index d5b51e7ed0572f62088201e075b6d4f5dc3d5d05..820925d1eb8a8568c8795c4182ff3f8d4e73a389 100755
--- a/tools/pycard10.py
+++ b/tools/pycard10.py
@@ -213,6 +213,11 @@ def main():
         "--device", default="/dev/ttyACM0", help="the serial device of the card10"
     )
     cmd_parser.add_argument("-c", "--command", help="program passed in as string")
+    cmd_parser.add_argument(
+        "--set-time",
+        action="store_true",
+        help="Set card10 system time to this host's time",
+    )
     cmd_parser.add_argument(
         "-w",
         "--wait",
@@ -241,7 +246,7 @@ def main():
     if args.reset:
         card10.soft_reset()
 
-    elif args.command is not None or len(args.files):
+    elif args.set_time or args.command is not None or len(args.files):
         # we must enter raw-REPL mode to execute commands
         # this will do a soft-reset of the board
         try:
@@ -268,6 +273,16 @@ def main():
                 stdout_write_bytes(ret_err)
                 sys.exit(1)
 
+        # Set card10 system time
+        if args.set_time:
+            now = round(time.time())
+            code = """\
+import utime
+utime.set_unix_time({time})
+print("Time was set to {time}!")
+"""
+            execbuffer(code.format(time=now))
+
         # run the command, if given
         if args.command is not None:
             execbuffer(args.command.encode("utf-8"))
diff --git a/tools/version-image.py b/tools/version-image.py
new file mode 100755
index 0000000000000000000000000000000000000000..0a20327c25d5e669e05ed90b5255e888a0ac61e5
--- /dev/null
+++ b/tools/version-image.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python3
+import argparse
+import os
+from PIL import Image
+
+
+def main() -> None:
+    parser = argparse.ArgumentParser(
+        description="""\
+Update the epicardium version-splash.  NOTE: You need to adjust
+epicardium/main.c if you want to actually see your version splash!!
+"""
+    )
+
+    parser.add_argument("image", help="Path to version image")
+
+    args = parser.parse_args()
+
+    im = Image.open(args.image)
+    assert im.size[0] == 160, "Image must be 160 pixels wide"
+    assert im.size[1] == 80, "Image must be 80 pixels high)"
+
+    # find version-splash.h
+    vsplash = os.path.join(os.path.dirname(__file__), "../epicardium/version-splash.h")
+
+    with open(vsplash, "w") as f:
+        tmp = """\
+#pragma once
+#include <stdint.h>
+
+/* clang-format off */
+const uint8_t version_splash[] = {
+"""
+        f.write(tmp)
+
+        for x in range(im.size[1]):
+            for y in range(im.size[0]):
+                px = im.getpixel((y, x))
+
+                px565 = ((px[0] >> 3) << 11) | ((px[1] >> 2) << 5) | (px[2] >> 3)
+                byte_high = (px565 & 0xFF00) >> 8
+                byte_low = px565 & 0xFF
+
+                if y % 4 == 0:
+                    f.write("\t")
+
+                f.write("0x{:02x}, 0x{:02x},".format(byte_low, byte_high))
+
+                if y % 4 == 3:
+                    f.write("\n")
+                else:
+                    f.write(" ")
+
+        f.write("};\n")
+
+
+if __name__ == "__main__":
+    main()