Reorganize top-level directories with clearer naming convention

app -> app-desktop-macos, presets -> app-presets, server -> remote-server,
daw-config-reaper -> osc-config-daw, plugin-reaper-realearn -> plugin-reaper-relearn.
Updated run.py and presets.py path references accordingly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Paul Lipscomb
2026-07-15 17:51:05 -04:00
parent e58f06d9fa
commit 7ecc718f5d
2256 changed files with 11 additions and 5 deletions
@@ -0,0 +1,4 @@
indent_type = "Spaces"
# This is important. We use Lua primarily for building large data structures and omitting
# the parentheses is what makes this very readable.
call_parentheses = "NoSingleTable"
@@ -0,0 +1,14 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"johnnymorganz.luau-lsp",
"johnnymorganz.stylua"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": [
]
}
@@ -0,0 +1,4 @@
{
"luau-lsp.types.roblox": false,
"luau-lsp.sourcemap.enabled": false
}
@@ -0,0 +1,192 @@
# Compartment preset workspace
This folder is a ReaLearn compartment preset workspace. It should be a direct sub folder of the
ReaLearn
controller or main preset folder. The purpose of this folder is to contain a set of ReaLearn
compartment presets
and provide you with a convenient workspace to develop those presets.
## Choosing a good folder name
If you have created this workspace via ReaLearn, it will have an auto-generated name. As explained
further below,
the name of the workspace folder becomes part of the preset ID! Therefore, make sure to do one of
the following
things:
- **Either** rename this folder to a proper identifier of your choice (a name with only lowercase
letters and dashes,
e.g. `foo-bar`). A good default choice is to rename it to your operating system login name. If you
have already
saved presets from the ReaLearn user interface, that folder will probably already exist.
- **Or** copy all the files that you need from it to an already existing other workspace folder and
delete this one.
## Sharing presets with other users
Each workspace is completely self-contained, that means you can easily share it with other users
without having to worry about possible name conflicts or missing files:
1. You pass the complete workspace folder to the other user (e.g. by zipping and mailing it or by
using cloud sharing).
2. The other user switches to the correct compartment and presses "Menu → Compartment presets → Open
compartment preset folder" and puts your workspace folder into it.
3. The other user presses "Menu → Compartment presets → Reload all compartment presets from disk".
## Directory structure
The meaning of each file in this folder is determined by its file extension.
### Compartment presets
Compartment preset files within this folder can be arbitrarily nested. But be aware that the
preset's file path relative
to the controller or main preset folder is at the same time its ID! If you change its location or
name, you will make
it a different preset as far as ReaLearn is concerned!
**Example:** If the name of your workspace folder is `john` and you put your preset in
`john/foo/daw-control.json`,
the preset ID will be `john/foo/daw-control`.
Tips:
- Factory presets always begin with `factory`. This workspace name is reserved, so you shouldn't use
it. There's no way
to override factory presets.
- Presets can also reside directly in the main/controller preset folder, not in a workspace folder.
This was normal
in the past but is deprecated now. Such presets will show up as "Unsorted" in ReaLearn's preset
picker.
Presets can be written in the following different formats.
### Compartment presets in JSON format
**File extension:** `.json`
ReaLearn will read all files with this extension as compartment presets written
in [JSON](https://www.json.org/) format.
A JSON preset is essentially a big data structure that describes the contents of one ReaLearn
compartment, such as
mappings and groups. JSON presets are simple and verbose. They don't contain any logic and can
become very
repetitive.
It's the format in which ReaLearn saves presets whenever you use "Save as..." in the user
interface. For all other purposes, it's not recommended to use JSON! If you want to code your own
presets,
you should use the Luau format instead.
### Compartment presets in Luau format
**File extension:** `.preset.luau` or `.preset.lua`
ReaLearn will read all files with this extension as compartment presets written
in [Luau](https://luau-lang.org/).
A Luau preset is written in a real programming language. It contains a Luau program whose single
purpose is to return
a result. And that result should look very similar to the big data structure of JSON presets.
In addition to the actual Luau code, Luau compartment presets contain a meta-data section right at
the top,
which contains the name of the preset and other data that can be scanned by ReaLearn before actually
loading the
preset by executing its code.
If you have chosen to create this workspace with factory presets, you should find multiple Luau
presets in this folder
that can serve as starting point for building your own presets. You will realize that many of them
use Luau type
annotations and helper methods, which enables auto-completion during development and should make the
preset code
more understandable. If you want to learn more about this, read the section below.
As an additional help, you can use "Export to clipboard → Export ... compartment as Lua" in
ReaLearn. This gives you
a chunk of text formatted as Luau. It doesn't contain any logic, it looks more like a configuration
file
but its valid Luau code. This chunk of text is not a ready-made preset (because it's meant to be
used with
"Import from clipboard"). But you will see that a big part of the chunk is exactly the same kind of
data structure that you need to generate as part of a Luau preset.
### Reusable Luau modules
**File extension:** `.luau` or `.lua` (without `.preset`)
The workspace folder can contain Luau files that are not presets. ReaLearn ignores them when
scanning for
presets. But you can make use of them to make preset development more convenient.
Let's assume you have a function that you need in more than one preset. Instead of pasting it into
each preset, you can
put that function into a module and require it in each preset. Luau presets can use the function
`require()` to include
Luau modules that are located in the same workspace. The path passed to `require()` is always
relative to the workspace
root folder.
**Example:** `local my_module = require("my_module")` makes the contents of module `my_module.luau`
available in your
preset.
When ReaLearn creates a workspace for you, it will put a few useful modules into your workspace
root. You are free
to use them for developing your own presets. The most important file is `realearn.lua`, which
contains Luau type
declarations and helper functions. Have a look at the factory presets to see how to make use of
them.
Having said all that ... you don't need to use any type declarations, annotations or helper
functions, they are
completely optional. As long as the value that your script returns is a table and all the entries in
that table
meet ReaLearn's expectations, you are good.
## Basic process of coding presets
The basic process of coding presets goes like this:
1. Open the preset in your text editor
2. Make modifications
3. In ReaLearn, choose "Menu → Compartment presets → Reload all compartment presets from disk"
4. Find the preset in the preset menu and (re)load it into your compartment
If you code presets that reside in your *user workspace* (the folder that has the same name as your
operating-system
username), a welcome shortcut is available:
1. Open the preset in your text editor
2. Make modifications
3. Copy the complete code to the clipboard
4. In ReaLearn, press "Import from clipboard"
This doesn't "officially" load the preset but imports its contents, which has almost the same
effect. Please note that
ReaLearn can't detect from where you copied the code. That's why if the copied Luau code uses
`require()`, ReaLearn
will look for the required module **in the user workspace only**.
## Development environment
You can use *any* text editor to code ReaLearn presets. For basic auto-completion and other goodies,
it should
have special support for the [Luau](https://luau-lang.org/) language.
For a good coding experience right out of the box, I can
recommend [Visual Studio Code](https://code.visualstudio.com/).
The workspace created by ReaLearn is pre-configured to play nice with it:
1. Open Visual Studio Code
2. File → Open Folder... → Choose the workspace directory (in which this `README.md` file is
located) and press "Open"
3. View → Command Palette... → Search for "Extension: Show Recommended Extensions"
4. Install the recommended extensions
Now you are good to go! Open one of the factory presets and enjoy all syntax highlighting, code
completion,
code formatting, etc. :)
@@ -0,0 +1,49 @@
--!strict
--- Contains types for building ReaLearn feedback scripts in Lua.
local module = {}
--- Provides access to some data that might come in useful to create the feedback value.
export type Context = {
--- Queries arbitrary properties, e.g. target or mapping properties.
---
--- Those properties are the very same properties that you can use in textual feedback.
prop: (key: string) -> any?
}
--- You are supposed to return a value structured like that.
export type Output = {
--- Feedback event.
feedback_event: FeedbackEvent,
}
--- Feedback event.
export type FeedbackEvent = {
--- Feedback value (the most important piece of information to return).
---
--- Can either be ...
---
--- - ... a string (ideal for display sources)
--- - ... a number (ideal for LEDs and motor faders)
--- - ... nil (which means "turn source off", e.g. turn off the LED, turn down the motor fader, clear the display text)
--- - ... or anything else: `true`, `false` or an arbitrary table. The latter is currently only useful for the MIDI script source
--- because other sources don't support arbitrary tables.
value: any?,
--- Main color.
---
--- Either the default color (= `nil`) or an RGB color.
color: RgbColor?,
--- Background color.
---
--- Either the default color (= `nil`) or an RGB color.
background_color: RgbColor?,
}
--- Color in the RGB color system.
export type RgbColor = {
r: number,
g: number,
b: number,
}
return module
@@ -0,0 +1,80 @@
--!strict
--- Contains types for building ReaLearn MIDI scripts in Lua.
local module = {}
--- Type of the `y` variable in MIDI scripts, which represents the input value of the MIDI script.
---
--- This input value is usually generated by the "Target" and/or the "Glue" section.
export type InputValue = OffInputValue | NumericInputValue | TextInputValue | ComplexInputValue
--- Whenever the input value is `nil`, ReaLearn wants you to "switch off" feedback.
---
--- Meaning of "switch off" depending on the type of feedback element:
---
--- - LED: Switch LED off
--- - Motor fader: Tear it completely down
--- - Text display: Clear all characters
export type OffInputValue = nil
--- A simple numeric value.
---
--- ReaLearn sends this if the feedback type in the "Glue" section is set to "Numeric feedback".
---
--- Currently, this should always be a value within the unit interval, that is a value between 0.0 (= 0%)
--- and 1.0 (= 100%).
export type NumericInputValue = number
--- A chunk of text.
---
--- ReaLearn sends this if the feedback type in the "Glue" section is set to "Textual feedback".
---
--- This is obviously most useful for text displays. But it can also be used for LED. When you design
--- a virtual control scheme, you could for example declare that the text "blinking" should make the LED blink.
export type TextInputValue = string
--- A value that could be anything, from a simple number to a complex table.
---
--- ReaLearn sends this if the feedback type in the "Glue" section is set to "Dynamic feedback".
export type ComplexInputValue = any
--- Provides access to some data that might come in useful to create the outgoing MIDI messages.
export type Context = {
feedback_event: FeedbackEvent
}
--- More data about the feedback event which triggered the execution of this MIDI script.
export type FeedbackEvent = {
--- Color as set in the "Glue" section.
---
--- Either the default color (= `nil`) or an RGB color.
color: RgbColor?,
--- Background color as set in the "Glue" section.
background_color: RgbColor?,
}
--- Color in the RGB color system.
export type RgbColor = {
r: number,
g: number,
b: number,
}
--- You are supposed to return a value structured like that.
export type Output = {
--- Feedback address.
---
--- Each distinct feedback element on the controller (LED, motor fader, etc.) should get a unique feedback address.
--- If you get this value wrong or don't set it at all, you might experience weird feedback behavior, e.g. LEDs that
--- stay on or switch off when they shouldn't.
address: number?,
--- A list MIDI messages to be sent to the controller.
messages: { MidiMessage }
}
--- Array containing the raw bytes of a MIDI message.
---
--- You can express any kind of MIDI message with that.
export type MidiMessage = { number }
return module
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,18 @@
--!strict
--- Contains types and function stubs for building presets. The actual function implementations are provided
--- by the runtime.
local module = {}
--- Returns the content of the given file as string.
---
--- The given path is always relative to the module root.
---
--- This function is very useful when you build a preset in which the compartment contains commona Lua code.
--- Instead of writing the common Lua code as a Lua string, you can include it from a dedicated file. That way,
--- you can benefit from syntax highlighting and typechecking when building the common Lua code.
function module.include_str(path: string): string?
return nil
end
return module
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,127 @@
<svg
viewBox="0 0 100 100"
xmlns="http://www.w3.org/2000/svg"
class="ROOT_CLASSES_PLACEHOLDER"
>
<style>
<![CDATA[
:root {
/*
The following CSS variables are just for preview purposes. They are currently
not supported when generating the toolbar icons via `artwork-processor`.
When generating icons, we replace the --var references directly.
*/
--fg-color: #f5f5f5;
--bg-color: #616161;
}
/* Background */
#icon-background {
fill: var(--bg-color);
}
.toolbar-icon #icon-background {
fill-opacity: 0.0;
}
/* Watch frame */
#watch-frame, #watch-straps {
fill: var(--fg-color);
}
.toolbar-icon #watch-frame, .toolbar-icon #watch-straps {
fill: var(--fg-color);
}
/* Play button */
#button {
fill: var(--fg-color);
stroke: var(--fg-color);
}
.with-settings-icon #button {
display: none;
}
/* Settings icon */
#settings-icon {
display: none;
}
.with-settings-icon #settings-icon {
display: inline;
}
#settings-icon-circle {
fill: var(--fg-color);
}
/* Text badge */
#text-badge {
display: none;
}
.with-text-badge #text-badge {
display: inline;
}
#text-badge-circle {
fill: var(--fg-color);
stroke: var(--bg-color);
}
#text-badge-text {
fill: var(--bg-color);
}
]]>
</style>
<defs>
<mask id="cut-off-display">
<rect x="0" y="0" width="100" height="100" fill="white"/>
<circle cx="50" cy="50" r="30" fill="black"/>
</mask>
</defs>
<g id="icon-background">
<rect rx="15" width="100" height="100"/>
</g>
<g id="watch" mask="url(#cut-off-display)" transform="rotate(0, 50, 50)">
<g id="watch-frame" stroke-width="012">
<circle cx="50" cy="50" r="35"/>
</g>
<g id="watch-straps">
<polygon id="watch-strap" points="50,20, 100,30, 100,70, 50,80"/>
<use href="#watch-strap" x="0" y="0" transform="translate(100, 0) scale(-1, 1)"/>
</g>
</g>
<g id="button" stroke-width="15" stroke-linecap="round" stroke-linejoin="round"
transform="translate(50, 50) scale(0.6, 0.6) translate(-50, -50)"
mask="url(#cut-off-settings-icon)"
>
<path id="button-path"
d="
M 50,50
m -10,-20
q -10,20 0,40
q 15,-5 30,-20
q -15,-15 -30,-20
"
/>
</g>
<g id="settings-icon" transform="translate(26, 26) scale(2, 2)">
<path id="settings-icon-circle"
d="m9.25 22l-.4-3.2q-.325-.125-.612-.3t-.563-.375L4.7 19.375l-2.75-4.75l2.575-1.95Q4.5 12.5 4.5 12.338v-.675q0-.163.025-.338L1.95 9.375l2.75-4.75l2.975 1.25q.275-.2.575-.375t.6-.3l.4-3.2h5.5l.4 3.2q.325.125.613.3t.562.375l2.975-1.25l2.75 4.75l-2.575 1.95q.025.175.025.338v.674q0 .163-.05.338l2.575 1.95l-2.75 4.75l-2.95-1.25q-.275.2-.575.375t-.6.3l-.4 3.2zm2.8-6.5q1.45 0 2.475-1.025T15.55 12t-1.025-2.475T12.05 8.5q-1.475 0-2.488 1.025T8.55 12t1.013 2.475T12.05 15.5"/>
</g>
<g id="text-badge" transform="translate(50, 0) scale(0.5, 0.5)">
<circle id="text-badge-circle" cx="50" cy="50" r="25" stroke-width="2"/>
<text id="text-badge-text" x="50" y="55" font-family="Noto Sans" font-size="40"
text-anchor="middle" alignment-baseline="middle">
TEXT_PLACEHOLDER
</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

@@ -0,0 +1,3 @@
# Attention
The files in this directory are generated!
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

@@ -0,0 +1 @@
../../api/luau/.stylua.toml
@@ -0,0 +1 @@
../../api/luau/.vscode
@@ -0,0 +1 @@
../../api/luau/README.md
@@ -0,0 +1,254 @@
--- name: APC mini mk2
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Akai
--- device_name: APC mini mk2
--- description: |
--- This controller preset exposes all control elements of the APC mini mk2 in a neutral way. It supports
--- ReaLearn color feedback as well as Playtime slot status feedback.
--- midi_identity_pattern: F0 7E ? 06 02 47 4F 00 19 * F7
--- # This device exposes 2 USB MIDI ports, one for "Notes" and one for "Control". We are
--- # interested in "Control". Both MIDI ports reply with the same device identity. If we
--- # don't provide a MIDI output device pattern, it's possible that ReaLearn's automatic
--- # controller detection feature takes the "Notes" port ... and things wouldn't work!
--- # On Windows, the naming is different, that's why there's also "MIDIOUT2".
--- midi_output_port_patterns: ["macos:*Control*", "windows:APC mini mk2"]
--- provided_schemes: [akai/apc-mini-mk2, grid]
--!strict
-- Configuration
local resolve_shift = false
-- Requires
local preset_runtime = require("preset_runtime")
local realearn = require("realearn")
-- Define MIDI scripts
local common_lua = preset_runtime.include_str("akai/apc-mk2-lib/compartment-common.luau")
local function build_pad_script(pad_index: number): string
return `return require("compartment").pad_script({pad_index}, y, context)`
end
-- Parameters
local shift_param = realearn.Parameter {
index = 0,
name = "Shift",
}
local parameters: { realearn.Parameter }? = if resolve_shift then { shift_param } else nil
-- Single buttons
local function simple_button(id: string, name: string, key_number: number): realearn.Mapping
return realearn.Mapping {
id = id,
name = name,
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = key_number,
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
end
local mappings: { realearn.Mapping } = {
-- Main fader
{
id = "fm",
feedback_enabled = false,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 56,
character = "Range",
},
target = realearn.Target.Virtual {
id = "main/fader",
},
},
}
-- Shift
local no_shift_activation_condition: realearn.ActivationCondition?
if resolve_shift then
-- The activation condition reflecting the state that shift is not pressed.
no_shift_activation_condition = realearn.ActivationCondition.Modifier {
modifiers = {
{
parameter = 0,
on = false,
},
},
}
-- Mapping to make shift button switch to other set of virtual control elements
local shift_mapping = realearn.Mapping {
name = "Shift",
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 122,
},
target = realearn.Target.CompartmentParameterValue {
parameter = realearn.CompartmentParameterDescriptor.ById {
index = 0,
},
},
}
table.insert(mappings, shift_mapping)
-- Alternative set of virtual control elements
local alt_elements = {
{ key = 104, id = "cursor-up" },
{ key = 105, id = "cursor-down" },
{ key = 106, id = "cursor-left" },
{ key = 107, id = "cursor-right" },
{ key = 100, id = "volume" },
{ key = 101, id = "pan" },
{ key = 102, id = "sends" },
{ key = 103, id = "device" },
{ key = 112, id = "stop-clip" },
{ key = 113, id = "solo" },
{ key = 114, id = "mute" },
{ key = 115, id = "record-arm" },
{ key = 116, id = "track-select" },
{ key = 117, id = "drum" },
{ key = 118, id = "note" },
{ key = 119, id = "stop-all-clips" },
}
for _, element in ipairs(alt_elements) do
local mapping = realearn.Mapping {
activation_condition = realearn.ActivationCondition.Modifier {
modifiers = {
{
parameter = 0,
on = true,
},
},
},
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = element.key,
},
target = realearn.Target.Virtual {
id = element.id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
else
no_shift_activation_condition = nil
local mapping = simple_button("shift", "Shift", 122)
table.insert(mappings, mapping)
end
-- Channel faders
for i = 0, 7 do
local human_i = i + 1
local mapping = realearn.Mapping {
id = `f{human_i}`,
feedback_enabled = false,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 48 + i,
character = "Range",
},
target = realearn.Target.Virtual {
id = i,
},
}
table.insert(mappings, mapping)
end
-- Clip launch buttons
for col = 0, 7 do
local human_col = col + 1
for row = 0, 7 do
local human_row = row + 1
local key_number_offset = (7 - row) * 8
local id = `col{human_col}/row{human_row}/pad`
local control_mapping = realearn.Mapping {
id = id,
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = key_number_offset + col,
},
target = realearn.Target.Virtual {
id = id,
character = "Multi",
},
}
local feedback_mapping = realearn.Mapping {
id = `{id}-feedback`,
control_enabled = false,
source = realearn.Source.MidiScript {
script_kind = "Lua",
script = build_pad_script(key_number_offset + col),
},
target = realearn.Target.Virtual {
id = id,
character = "Multi",
},
}
table.insert(mappings, control_mapping)
table.insert(mappings, feedback_mapping)
end
end
-- Clip stop buttons
for col = 0, 7 do
local human_col = col + 1
local id = `col{human_col}/stop`
local mapping = realearn.Mapping {
id = id,
activation_condition = no_shift_activation_condition,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 100 + col,
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
-- Scene launch buttons
for row = 0, 7 do
local human_row = row + 1
local id = `row{human_row}/play`
local mapping = realearn.Mapping {
id = id,
activation_condition = no_shift_activation_condition,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 112 + row,
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
return realearn.Compartment {
parameters = parameters,
mappings = mappings,
common_lua = common_lua,
custom_data = {
grid = {
column_count = 8,
row_count = 8,
},
},
}
@@ -0,0 +1,251 @@
--- name: APC mini
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Akai
--- device_name: APC mini
--- description: |
--- This controller preset exposes all control elements of the APC mini mk2 in a neutral way. It supports
--- Playtime slot status feedback.
--- midi_identity_pattern: F0 7E ? 06 02 47 28 00 19 * F7
--- provided_schemes: [akai/apc-mini, grid]
--!strict
-- Configuration
local resolve_shift = false
-- Requires
local realearn = require("realearn")
-- Parameters
local shift_param = realearn.Parameter {
index = 0,
name = "Shift",
}
local parameters: { realearn.Parameter }? = if resolve_shift then { shift_param } else nil
-- Single buttons
local function simple_button(id: string, name: string, key_number: number): realearn.Mapping
return realearn.Mapping {
id = id,
name = name,
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = key_number,
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
end
local mappings: { realearn.Mapping } = {
-- Main fader
{
id = "fm",
feedback_enabled = false,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 56,
character = "Range",
},
target = realearn.Target.Virtual {
id = "main/fader",
},
},
}
-- Shift
local no_shift_activation_condition: realearn.ActivationCondition?
if resolve_shift then
-- The activation condition reflecting the state that shift is not pressed.
no_shift_activation_condition = realearn.ActivationCondition.Modifier {
modifiers = {
{
parameter = 0,
on = false,
},
},
}
-- Mapping to make shift button switch to other set of virtual control elements
local shift_mapping = realearn.Mapping {
name = "Shift",
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 98,
},
target = realearn.Target.CompartmentParameterValue {
parameter = realearn.CompartmentParameterDescriptor.ById {
index = 0,
},
},
}
table.insert(mappings, shift_mapping)
-- Alternative set of virtual control elements
local alt_elements = {
{ key = 64, id = "cursor-up" },
{ key = 65, id = "cursor-down" },
{ key = 66, id = "cursor-left" },
{ key = 67, id = "cursor-right" },
{ key = 68, id = "volume" },
{ key = 69, id = "pan" },
{ key = 70, id = "sends" },
{ key = 71, id = "device" },
{ key = 82, id = "stop-clip" },
{ key = 83, id = "solo" },
{ key = 84, id = "record-arm" },
{ key = 85, id = "mute" },
{ key = 86, id = "track-select" },
{ key = 89, id = "stop-all-clips" },
}
for _, element in ipairs(alt_elements) do
local mapping = realearn.Mapping {
activation_condition = realearn.ActivationCondition.Modifier {
modifiers = {
{
parameter = 0,
on = true,
},
},
},
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = element.key,
},
target = realearn.Target.Virtual {
id = element.id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
else
no_shift_activation_condition = nil
local mapping = simple_button("shift", "Shift", 98)
table.insert(mappings, mapping)
end
-- Channel faders
for i = 0, 7 do
local human_i = i + 1
local mapping = realearn.Mapping {
id = `f{human_i}`,
feedback_enabled = false,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 48 + i,
character = "Range",
},
target = realearn.Target.Virtual {
id = i,
},
}
table.insert(mappings, mapping)
end
-- Clip launch buttons
local feedback_value_table = realearn.FeedbackValueTable.FromTextToDiscrete {
value = {
-- Off
["playtime.slot_state.empty"] = 0,
-- Red
["playtime.slot_state.armed"] = 0,
-- Yellow
["playtime.slot_state.stopped"] = 5,
-- Green blinking
["playtime.slot_state.scheduled_for_play_start"] = 2,
-- Green
["playtime.slot_state.playing"] = 1,
-- Yellow
["playtime.slot_state.paused"] = 5,
-- Yellow blinking
["playtime.slot_state.scheduled_for_play_stop"] = 6,
-- Yellow blinking
["playtime.slot_state.scheduled_for_play_restart"] = 6,
-- Red blinking
["playtime.slot_state.scheduled_for_record_start"] = 4,
-- Red
["playtime.slot_state.recording"] = 3,
-- Yellow blinking
["playtime.slot_state.scheduled_for_record_stop"] = 6,
},
}
for col = 0, 7 do
local human_col = col + 1
for row = 0, 7 do
local human_row = row + 1
local key_number_offset = (7 - row) * 8
local id = `col{human_col}/row{human_row}/pad`
local mapping = realearn.Mapping {
id = id,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = key_number_offset + col,
},
glue = {
feedback_value_table = feedback_value_table,
},
target = realearn.Target.Virtual {
id = id,
character = "Multi",
},
}
table.insert(mappings, mapping)
end
end
-- Clip stop buttons
for col = 0, 7 do
local human_col = col + 1
local id = `col{human_col}/stop`
local mapping = realearn.Mapping {
id = id,
activation_condition = no_shift_activation_condition,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 64 + col,
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
-- Scene launch buttons
for row = 0, 7 do
local human_row = row + 1
local id = `row{human_row}/play`
local mapping = realearn.Mapping {
id = id,
activation_condition = no_shift_activation_condition,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 82 + row,
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
return realearn.Compartment {
parameters = parameters,
mappings = mappings,
custom_data = {
grid = {
column_count = 8,
row_count = 8,
},
},
}
@@ -0,0 +1,293 @@
--!strict
local midi_script = require("midi_script_source_runtime")
local module = {}
type FeedbackEntry = {
behavior: number,
color: number?,
}
local dark = 0x91
local medium = 0x93
local bright = 0x96
local pulsing = 0x9A
local blinking = 0x9B
local red_color = 6
local default_color = 3
local feedback_table: { [string]: FeedbackEntry? } = {
["playtime.slot_state.empty"] = {
behavior = dark,
color = 0,
},
["playtime.slot_state.armed"] = {
behavior = dark,
color = red_color,
},
["playtime.slot_state.stopped"] = {
behavior = dark,
},
["playtime.slot_state.ignited"] = {
behavior = dark,
},
["playtime.slot_state.scheduled_for_play_start"] = {
behavior = medium,
},
["playtime.slot_state.playing"] = {
behavior = pulsing,
},
["playtime.slot_state.paused"] = {
behavior = medium,
},
["playtime.slot_state.scheduled_for_play_stop"] = {
behavior = blinking,
},
["playtime.slot_state.scheduled_for_play_restart"] = {
behavior = blinking,
},
["playtime.slot_state.scheduled_for_record_start"] = {
behavior = medium,
color = red_color,
},
["playtime.slot_state.recording"] = {
behavior = pulsing,
color = red_color,
},
["playtime.slot_state.scheduled_for_record_stop"] = {
behavior = blinking,
color = red_color,
},
}
--- Although I got the true RGB colors to work, it was impossible to combine them with blinking
--- or pulsing behavior. So back to good old color palette.
local color_palette: { midi_script.RgbColor } = {
{r = 0x00, g= 0x00, b = 0x00},
{r = 0x1E, g= 0x1E, b = 0x1E},
{r = 0x7F, g= 0x7F, b = 0x7F},
{r = 0xFF, g= 0xFF, b = 0xFF},
{r = 0xFF, g= 0x4C, b = 0x4C},
{r = 0xFF, g= 0x00, b = 0x00},
{r = 0x59, g= 0x00, b = 0x00},
{r = 0x19, g= 0x00, b = 0x00},
{r = 0xFF, g= 0xBD, b = 0x6C},
{r = 0xFF, g= 0x54, b = 0x00},
{r = 0x59, g= 0x1D, b = 0x00},
{r = 0x27, g= 0x1B, b = 0x00},
{r = 0xFF, g= 0xFF, b = 0x4C},
{r = 0xFF, g= 0xFF, b = 0x00},
{r = 0x59, g= 0x59, b = 0x00},
{r = 0x19, g= 0x19, b = 0x00},
{r = 0x88, g= 0xFF, b = 0x4C},
{r = 0x54, g= 0xFF, b = 0x00},
{r = 0x1D, g= 0x59, b = 0x00},
{r = 0x14, g= 0x2B, b = 0x00},
{r = 0x4C, g= 0xFF, b = 0x4C},
{r = 0x00, g= 0xFF, b = 0x00},
{r = 0x00, g= 0x59, b = 0x00},
{r = 0x00, g= 0x19, b = 0x00},
{r = 0x4C, g= 0xFF, b = 0x5E},
{r = 0x00, g= 0xFF, b = 0x19},
{r = 0x00, g= 0x59, b = 0x0D},
{r = 0x00, g= 0x19, b = 0x02},
{r = 0x4C, g= 0xFF, b = 0x88},
{r = 0x00, g= 0xFF, b = 0x55},
{r = 0x00, g= 0x59, b = 0x1D},
{r = 0x00, g= 0x1F, b = 0x12},
{r = 0x4C, g= 0xFF, b = 0xB7},
{r = 0x00, g= 0xFF, b = 0x99},
{r = 0x00, g= 0x59, b = 0x35},
{r = 0x00, g= 0x19, b = 0x12},
{r = 0x4C, g= 0xC3, b = 0xFF},
{r = 0x00, g= 0xA9, b = 0xFF},
{r = 0x00, g= 0x41, b = 0x52},
{r = 0x00, g= 0x10, b = 0x19},
{r = 0x4C, g= 0x88, b = 0xFF},
{r = 0x00, g= 0x55, b = 0xFF},
{r = 0x00, g= 0x1D, b = 0x59},
{r = 0x00, g= 0x08, b = 0x19},
{r = 0x4C, g= 0x4C, b = 0xFF},
{r = 0x00, g= 0x00, b = 0xFF},
{r = 0x00, g= 0x00, b = 0x59},
{r = 0x00, g= 0x00, b = 0x19},
{r = 0x87, g= 0x4C, b = 0xFF},
{r = 0x54, g= 0x00, b = 0xFF},
{r = 0x19, g= 0x00, b = 0x64},
{r = 0x0F, g= 0x00, b = 0x30},
{r = 0xFF, g= 0x4C, b = 0xFF},
{r = 0xFF, g= 0x00, b = 0xFF},
{r = 0x59, g= 0x00, b = 0x59},
{r = 0x19, g= 0x00, b = 0x19},
{r = 0xFF, g= 0x4C, b = 0x87},
{r = 0xFF, g= 0x00, b = 0x54},
{r = 0x59, g= 0x00, b = 0x1D},
{r = 0x22, g= 0x00, b = 0x13},
{r = 0xFF, g= 0x15, b = 0x00},
{r = 0x99, g= 0x35, b = 0x00},
{r = 0x79, g= 0x51, b = 0x00},
{r = 0x43, g= 0x64, b = 0x00},
{r = 0x03, g= 0x39, b = 0x00},
{r = 0x00, g= 0x57, b = 0x35},
{r = 0x00, g= 0x54, b = 0x7F},
{r = 0x00, g= 0x00, b = 0xFF},
{r = 0x00, g= 0x45, b = 0x4F},
{r = 0x25, g= 0x00, b = 0xCC},
{r = 0x7F, g= 0x7F, b = 0x7F},
{r = 0x20, g= 0x20, b = 0x20},
{r = 0xFF, g= 0x00, b = 0x00},
{r = 0xBD, g= 0xFF, b = 0x2D},
{r = 0xAF, g= 0xED, b = 0x06},
{r = 0x64, g= 0xFF, b = 0x09},
{r = 0x10, g= 0x8B, b = 0x00},
{r = 0x00, g= 0xFF, b = 0x87},
{r = 0x00, g= 0xA9, b = 0xFF},
{r = 0x00, g= 0x2A, b = 0xFF},
{r = 0x3F, g= 0x00, b = 0xFF},
{r = 0x7A, g= 0x00, b = 0xFF},
{r = 0xB2, g= 0x1A, b = 0x7D},
{r = 0x40, g= 0x21, b = 0x00},
{r = 0xFF, g= 0x4A, b = 0x00},
{r = 0x88, g= 0xE1, b = 0x06},
{r = 0x72, g= 0xFF, b = 0x15},
{r = 0x00, g= 0xFF, b = 0x00},
{r = 0x3B, g= 0xFF, b = 0x26},
{r = 0x59, g= 0xFF, b = 0x71},
{r = 0x38, g= 0xFF, b = 0xCC},
{r = 0x5B, g= 0x8A, b = 0xFF},
{r = 0x31, g= 0x51, b = 0xC6},
{r = 0x87, g= 0x7F, b = 0xE9},
{r = 0xD3, g= 0x1D, b = 0xFF},
{r = 0xFF, g= 0x00, b = 0x5D},
{r = 0xFF, g= 0x7F, b = 0x00},
{r = 0xB9, g= 0xB0, b = 0x00},
{r = 0x90, g= 0xFF, b = 0x00},
{r = 0x83, g= 0x5D, b = 0x07},
{r = 0x39, g= 0x2b, b = 0x00},
{r = 0x14, g= 0x4C, b = 0x10},
{r = 0x0D, g= 0x50, b = 0x38},
{r = 0x15, g= 0x15, b = 0x2A},
{r = 0x16, g= 0x20, b = 0x5A},
{r = 0x69, g= 0x3C, b = 0x1C},
{r = 0xA8, g= 0x00, b = 0x0A},
{r = 0xDE, g= 0x51, b = 0x3D},
{r = 0xD8, g= 0x6A, b = 0x1C},
{r = 0xFF, g= 0xE1, b = 0x26},
{r = 0x9E, g= 0xE1, b = 0x2F},
{r = 0x67, g= 0xB5, b = 0x0F},
{r = 0x1E, g= 0x1E, b = 0x30},
{r = 0xDC, g= 0xFF, b = 0x6B},
{r = 0x80, g= 0xFF, b = 0xBD},
{r = 0x9A, g= 0x99, b = 0xFF},
{r = 0x8E, g= 0x66, b = 0xFF},
{r = 0x40, g= 0x40, b = 0x40},
{r = 0x75, g= 0x75, b = 0x75},
{r = 0xE0, g= 0xFF, b = 0xFF},
{r = 0xA0, g= 0x00, b = 0x00},
{r = 0x35, g= 0x00, b = 0x00},
{r = 0x1A, g= 0xD0, b = 0x00},
{r = 0x07, g= 0x42, b = 0x00},
{r = 0xB9, g= 0xB0, b = 0x00},
{r = 0x3F, g= 0x31, b = 0x00},
{r = 0xB3, g= 0x5F, b = 0x00},
{r = 0x4B, g= 0x15, b = 0x02},
{r = 0x40, g= 0x40, b = 0x40},
{r = 0x75, g= 0x75, b = 0x75},
{r = 0xE0, g= 0xFF, b = 0xFF},
{r = 0xA0, g= 0x00, b = 0x00},
{r = 0x35, g= 0x00, b = 0x00},
{r = 0x1A, g= 0xD0, b = 0x00},
{r = 0x07, g= 0x42, b = 0x00},
{r = 0xB9, g= 0xB0, b = 0x00},
{r = 0x3F, g= 0x31, b = 0x00},
{r = 0xB3, g= 0x5F, b = 0x00},
{r = 0x4B, g= 0x15, b = 0x02},
}
--- Returns the 0-based index within the given palette array.
local function find_closest_color_in_palette(color: midi_script.RgbColor, palette: {midi_script.RgbColor}): number
local ifurthest = 0
local furthest = 3 * math.pow(255, 2) + 1
for i,c in palette do
if color.r == c.r and color.g == c.g and color.b == c.b then
return i - 1
end
local distance = math.pow((color.r - c.r), 2) + math.pow((color.g - c.g), 2) + math.pow((color.b - c.b), 2)
if distance < furthest then
furthest = distance
ifurthest = i - 1
end
end
return ifurthest
end
function module.pad_script(pad_index: number, y: midi_script.InputValue, context: midi_script.Context): midi_script.Output
local address = pad_index
local off_color = 0x00
local off_output = {
address = address,
messages = {
{ bright, pad_index, off_color },
},
}
-- Handle "off" feedback
if y == nil then
return off_output
end
-- Handle numeric feedback
if type(y) == "number" then
-- Translate number to solid feedback color, just as with APC Key 25 mk1
local color = math.floor(y * 127)
return {
address = address,
messages = {
{ bright, pad_index, color },
},
}
end
-- Handle text feedback
if type(y) == "string" then
-- This is a grid controller, typically used for controlling a Playtime matrix, so we should be able to
-- handle text feedback that conforms to Playtime's clip state convention.
local entry = feedback_table[y]
if entry == nil then
-- Unknown texts switch the LED off
return off_output
end
local explicit_color = entry.color
if explicit_color ~= nil then
-- Switch LED to explicit color
return {
address = address,
messages = {
{ entry.behavior, pad_index, explicit_color },
},
}
end
-- No explicit color means we should use the event color (which is set in the "Glue" section)
local event_color = context.feedback_event.color
if event_color == nil then
-- Event has default color / no specific color
return {
address = address,
messages = {
{ entry.behavior, pad_index, default_color },
},
}
end
-- Find color available on the controller that's closest to the desired RGB color
local closest_color = find_closest_color_in_palette(event_color, color_palette)
return {
address = address,
messages = {
{ entry.behavior, pad_index, closest_color },
},
}
end
-- Complex feedback is highly individual. It doesn't make sense to handle this in a general-purpose controller preset.
return {
address = address,
messages = {},
}
end
return module
@@ -0,0 +1,26 @@
--- name: X-Touch One
--- realearn_version: 2.16.0
--- author: helgoboss
--- description: |
--- This controller preset implements support for the Behringer X-Touch One controller in MCU mode.
---
--- The MC modes cover all buttons and work great with the "Mackie Control" preset. A potential
--- downside is that the device itself controls the "Master" button, so you cant use that button in
--- ReaLearn to customize its logic.
--- setup_instructions: |
--- Select the correct mode by holding the stop button and pressing the encoder:
---
--- - If you have firmware < 1.10 (the firmware is displayed at startup), use mode "MC Std"
--- - If you have at least firmware 1.10, use mode "MC user"
--- device_manufacturer: Behringer
--- device_name: X-Touch One
--- provided_schemes: [daw]
--!strict
local commons = require("mackie/control-universal-lib/preset-common")
return commons.create_compartment {
companion_data = nil,
support_x_touch_colors = true,
}
@@ -0,0 +1,35 @@
--- name: Midi Fighter Twister - Grid
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: DJ TechTools
--- device_name: Midi Fighter Twister
--- description: |
--- This controller preset exposes the push encoders of the Midi Fighter Twister with the "grid" scheme, which means
--- it uses virtual element IDs such as "col1/row1/pad". This makes it compatible with main presets that are
--- built for generic grid controllers.
--- setup_instructions: |
--- The Midi Fighter Twister is a very customizable controller. Please follow the instructions at
--- https://github.com/helgoboss/helgobox/blob/master/doc/controllers.adoc#dj-techtools-midi-fighter-twister
--- to make it ready for ReaLearn.
--- midi_identity_pattern: F0 7E ? 06 02 00 01 79 05 00 01 00 * F7
--- provided_schemes: [djtechtools/midi-fighter-twister/grid, grid]
--!strict
local realearn = require("realearn")
local commons = require("djtechtools/midi-fighter-twister-lib/preset-common")
return commons.create_compartment {
create_push_target = function (col, row)
return realearn.Target.Virtual {
id = `col{col +1 }/row{row + 1}/pad`,
character = "Multi",
}
end,
create_turn_target = function (col, row)
return realearn.Target.Virtual {
id = `col{col +1 }/row{row + 1}/knob`,
character = "Multi",
}
end,
}
@@ -0,0 +1,268 @@
--!strict
local midi_script = require("midi_script_source_runtime")
local module = {}
local color_palette: { midi_script.RgbColor } = {
{ r = 0, g = 0, b = 0 },
{ r = 0, g = 0, b = 255 },
{ r = 0, g = 21, b = 255 },
{ r = 0, g = 34, b = 255 },
{ r = 0, g = 46, b = 255 },
{ r = 0, g = 59, b = 255 },
{ r = 0, g = 68, b = 255 },
{ r = 0, g = 80, b = 255 },
{ r = 0, g = 93, b = 255 },
{ r = 0, g = 106, b = 255 },
{ r = 0, g = 119, b = 255 },
{ r = 0, g = 127, b = 255 },
{ r = 0, g = 140, b = 255 },
{ r = 0, g = 153, b = 255 },
{ r = 0, g = 165, b = 255 },
{ r = 0, g = 178, b = 255 },
{ r = 0, g = 191, b = 255 },
{ r = 0, g = 199, b = 255 },
{ r = 0, g = 212, b = 255 },
{ r = 0, g = 225, b = 255 },
{ r = 0, g = 238, b = 255 },
{ r = 0, g = 250, b = 255 },
{ r = 0, g = 255, b = 250 },
{ r = 0, g = 255, b = 237 },
{ r = 0, g = 255, b = 225 },
{ r = 0, g = 255, b = 212 },
{ r = 0, g = 255, b = 199 },
{ r = 0, g = 255, b = 191 },
{ r = 0, g = 255, b = 178 },
{ r = 0, g = 255, b = 165 },
{ r = 0, g = 255, b = 153 },
{ r = 0, g = 255, b = 140 },
{ r = 0, g = 255, b = 127 },
{ r = 0, g = 255, b = 119 },
{ r = 0, g = 255, b = 106 },
{ r = 0, g = 255, b = 93 },
{ r = 0, g = 255, b = 80 },
{ r = 0, g = 255, b = 67 },
{ r = 0, g = 255, b = 59 },
{ r = 0, g = 255, b = 46 },
{ r = 0, g = 255, b = 33 },
{ r = 0, g = 255, b = 21 },
{ r = 0, g = 255, b = 8 },
{ r = 0, g = 255, b = 0 },
{ r = 12, g = 255, b = 0 },
{ r = 25, g = 255, b = 0 },
{ r = 38, g = 255, b = 0 },
{ r = 51, g = 255, b = 0 },
{ r = 63, g = 255, b = 0 },
{ r = 72, g = 255, b = 0 },
{ r = 84, g = 255, b = 0 },
{ r = 97, g = 255, b = 0 },
{ r = 110, g = 255, b = 0 },
{ r = 123, g = 255, b = 0 },
{ r = 131, g = 255, b = 0 },
{ r = 144, g = 255, b = 0 },
{ r = 157, g = 255, b = 0 },
{ r = 170, g = 255, b = 0 },
{ r = 182, g = 255, b = 0 },
{ r = 191, g = 255, b = 0 },
{ r = 203, g = 255, b = 0 },
{ r = 216, g = 255, b = 0 },
{ r = 229, g = 255, b = 0 },
{ r = 242, g = 255, b = 0 },
{ r = 255, g = 255, b = 0 },
{ r = 255, g = 246, b = 0 },
{ r = 255, g = 233, b = 0 },
{ r = 255, g = 220, b = 0 },
{ r = 255, g = 208, b = 0 },
{ r = 255, g = 195, b = 0 },
{ r = 255, g = 187, b = 0 },
{ r = 255, g = 174, b = 0 },
{ r = 255, g = 161, b = 0 },
{ r = 255, g = 148, b = 0 },
{ r = 255, g = 135, b = 0 },
{ r = 255, g = 127, b = 0 },
{ r = 255, g = 114, b = 0 },
{ r = 255, g = 102, b = 0 },
{ r = 255, g = 89, b = 0 },
{ r = 255, g = 76, b = 0 },
{ r = 255, g = 63, b = 0 },
{ r = 255, g = 55, b = 0 },
{ r = 255, g = 42, b = 0 },
{ r = 255, g = 29, b = 0 },
{ r = 255, g = 16, b = 0 },
{ r = 255, g = 4, b = 0 },
{ r = 255, g = 0, b = 4 },
{ r = 255, g = 0, b = 16 },
{ r = 255, g = 0, b = 29 },
{ r = 255, g = 0, b = 42 },
{ r = 255, g = 0, b = 55 },
{ r = 255, g = 0, b = 63 },
{ r = 255, g = 0, b = 76 },
{ r = 255, g = 0, b = 89 },
{ r = 255, g = 0, b = 102 },
{ r = 255, g = 0, b = 114 },
{ r = 255, g = 0, b = 127 },
{ r = 255, g = 0, b = 135 },
{ r = 255, g = 0, b = 148 },
{ r = 255, g = 0, b = 161 },
{ r = 255, g = 0, b = 174 },
{ r = 255, g = 0, b = 186 },
{ r = 255, g = 0, b = 195 },
{ r = 255, g = 0, b = 208 },
{ r = 255, g = 0, b = 221 },
{ r = 255, g = 0, b = 233 },
{ r = 255, g = 0, b = 246 },
{ r = 255, g = 0, b = 255 },
{ r = 242, g = 0, b = 255 },
{ r = 229, g = 0, b = 255 },
{ r = 216, g = 0, b = 255 },
{ r = 204, g = 0, b = 255 },
{ r = 191, g = 0, b = 255 },
{ r = 182, g = 0, b = 255 },
{ r = 169, g = 0, b = 255 },
{ r = 157, g = 0, b = 255 },
{ r = 144, g = 0, b = 255 },
{ r = 131, g = 0, b = 255 },
{ r = 123, g = 0, b = 255 },
{ r = 110, g = 0, b = 255 },
{ r = 97, g = 0, b = 255 },
{ r = 85, g = 0, b = 255 },
{ r = 72, g = 0, b = 255 },
{ r = 63, g = 0, b = 255 },
{ r = 50, g = 0, b = 255 },
{ r = 38, g = 0, b = 255 },
{ r = 25, g = 0, b = 255 },
{ r = 240, g = 240, b = 225 },
}
type FeedbackEntry = {
behavior: number,
color: number?,
}
local dark = 30
local medium = 40
local bright = 47
local pulsing = 12
local blinking = 8
local red_color = 83
local default_color = 21
local feedback_table: { [string]: FeedbackEntry? } = {
["playtime.slot_state.empty"] = {
behavior = bright,
color = 0,
},
["playtime.slot_state.armed"] = {
behavior = dark,
color = red_color,
},
["playtime.slot_state.stopped"] = {
behavior = dark,
},
["playtime.slot_state.ignited"] = {
behavior = dark,
},
["playtime.slot_state.scheduled_for_play_start"] = {
behavior = medium,
},
["playtime.slot_state.playing"] = {
behavior = pulsing,
},
["playtime.slot_state.paused"] = {
behavior = dark,
},
["playtime.slot_state.scheduled_for_play_stop"] = {
behavior = blinking,
},
["playtime.slot_state.scheduled_for_play_restart"] = {
behavior = blinking,
},
["playtime.slot_state.scheduled_for_record_start"] = {
behavior = medium,
color = red_color,
},
["playtime.slot_state.recording"] = {
behavior = pulsing,
color = red_color,
},
["playtime.slot_state.scheduled_for_record_stop"] = {
behavior = blinking,
color = red_color,
},
}
--- Returns the 0-based index within the given palette array.
local function find_closest_color_in_palette(color: midi_script.RgbColor, palette: { midi_script.RgbColor }): number
local ifurthest = 0
local furthest = 3 * math.pow(255, 2) + 1
for i, c in palette do
if color.r == c.r and color.g == c.g and color.b == c.b then
return i - 1
end
local distance = math.pow((color.r - c.r), 2) + math.pow((color.g - c.g), 2) + math.pow((color.b - c.b), 2)
if distance < furthest then
furthest = distance
ifurthest = i - 1
end
end
return ifurthest
end
local function create_output(pad_index: number, color_index: number, behavior: number): midi_script.Output
return {
address = pad_index,
messages = {
{ 0xB1, pad_index, color_index },
{ 0xB2, pad_index, behavior },
},
}
end
function module.pad_script(
pad_index: number,
y: midi_script.InputValue,
context: midi_script.Context
): midi_script.Output
local off_color = 0x00
local off_output = create_output(pad_index, off_color, bright)
-- Handle "off" feedback
if y == nil then
return off_output
end
-- Handle numeric feedback
if type(y) == "number" then
-- Translate number to solid feedback color.
local color = math.floor(y * 127)
return create_output(pad_index, color, bright)
end
-- Handle text feedback
if type(y) == "string" then
-- This can be used as a grid controller for controlling a Playtime matrix, so we should be able to
-- handle text feedback that conforms to Playtime's clip state convention.
local entry = feedback_table[y]
if entry == nil then
-- Unknown texts switch the LED off
return off_output
end
local explicit_color = entry.color
if explicit_color ~= nil then
-- Switch LED to explicit color
return create_output(pad_index, explicit_color, entry.behavior)
end
-- No explicit color means we should use the event color (which is set in the "Glue" section)
local event_color = context.feedback_event.color
if event_color == nil then
-- Event has default color / no specific color
return create_output(pad_index, default_color, entry.behavior)
end
-- Find color available on the controller that's closest to the desired RGB color
local closest_color = find_closest_color_in_palette(event_color, color_palette)
return create_output(pad_index, closest_color, entry.behavior)
end
-- Complex feedback is highly individual. It doesn't make sense to handle this in a general-purpose controller preset.
return {
address = pad_index,
messages = {},
}
end
return module
@@ -0,0 +1,605 @@
--!strict
local preset_runtime = require("preset_runtime")
local realearn = require("realearn")
local module = {}
export type MidiFighterTwisterPresetConfig = {
create_turn_target: (col: number, row: number) -> realearn.Target,
create_push_target: (col: number, row: number) -> realearn.Target,
}
local common_lua = preset_runtime.include_str("djtechtools/midi-fighter-twister-lib/compartment-common.luau")
local function build_pad_script(pad_index: number): string
return `return require("compartment").pad_script({pad_index}, y, context)`
end
function module.create_compartment(config: MidiFighterTwisterPresetConfig): realearn.Compartment
-- Preparation
local function pad_control(col: number, row: number, cc_number: number): realearn.Mapping
return realearn.Mapping {
id = `col{col + 1}/row{row + 1}/pad`,
feedback_enabled = false,
source = realearn.Source.MidiControlChangeValue {
channel = 1,
controller_number = cc_number,
character = "Button",
},
target = config.create_push_target(col, row),
}
end
local function pad_feedback(col: number, row: number, cc_number: number): realearn.Mapping
return realearn.Mapping {
id = `col{col + 1}/row{row + 1}/pad/feedback`,
control_enabled = false,
visible_in_projection = false,
source = realearn.Source.MidiScript {
script_kind = "Lua",
script = build_pad_script(cc_number),
},
target = config.create_push_target(col, row)
}
end
local function knob(col: number, row: number, cc_number: number): realearn.Mapping
return realearn.Mapping {
id = `col{col + 1}/row{row + 1}/knob`,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = cc_number,
character = "Relative2",
},
glue = {
step_factor_interval = { 1, 100 }
},
target = config.create_turn_target(col, row),
}
end
local function side_button(id: string, cc_number: number): realearn.Mapping
return realearn.Mapping {
id = id,
feedback_enabled = false,
source = realearn.Source.MidiControlChangeValue {
channel = 3,
controller_number = cc_number,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
end
local mappings: { realearn.Mapping } = {
-- Side buttons
side_button("bank-left", 8),
side_button("cursor-left", 9),
side_button("ch-left", 10),
side_button("bank-right", 11),
side_button("cursor-right", 12),
side_button("ch-right", 13),
}
-- Grid
local column_count = 4
local row_count = 4
for col = 0, column_count - 1 do
for row = 0, row_count - 1 do
local cc_number = row * row_count + col
table.insert(mappings, pad_control(col, row, cc_number))
table.insert(mappings, pad_feedback(col, row, cc_number))
table.insert(mappings, knob(col, row, cc_number))
end
end
-- Companion data
local companion_data = {
controls = {
{
height = 50,
id = "col4/row1/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col4/row1/knob",
"col4/row1/pad",
},
shape = "circle",
width = 50,
x = 400,
y = 0,
},
{
height = 50,
id = "col1/row2/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col1/row2/knob",
"col1/row2/pad",
},
shape = "circle",
width = 50,
x = 100,
y = 100,
},
{
height = 50,
id = "col4/row2/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col4/row2/knob",
"col4/row2/pad",
},
shape = "circle",
width = 50,
x = 400,
y = 100,
},
{
height = 50,
id = "col1/row1/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col1/row1/knob",
"col1/row1/pad",
},
shape = "circle",
width = 50,
x = 100,
y = 0,
},
{
height = 50,
id = "col3/row1/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col3/row1/knob",
"col3/row1/pad",
},
shape = "circle",
width = 50,
x = 300,
y = 0,
},
{
height = 50,
id = "col2/row1/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col2/row1/knob",
"col2/row1/pad",
},
shape = "circle",
width = 50,
x = 200,
y = 0,
},
{
height = 50,
id = "col2/row2/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col2/row2/knob",
"col2/row2/pad",
},
shape = "circle",
width = 50,
x = 200,
y = 100,
},
{
height = 50,
id = "col3/row2/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col3/row2/knob",
"col3/row2/pad",
},
shape = "circle",
width = 50,
x = 300,
y = 100,
},
{
height = 50,
id = "col2/row3/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col2/row3/knob",
"col2/row3/pad",
},
shape = "circle",
width = 50,
x = 200,
y = 200,
},
{
height = 50,
id = "col3/row3/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col3/row3/knob",
"col3/row3/pad",
},
shape = "circle",
width = 50,
x = 300,
y = 200,
},
{
height = 50,
id = "col4/row4/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col4/row4/knob",
"col4/row4/pad",
},
shape = "circle",
width = 50,
x = 400,
y = 300,
},
{
height = 50,
id = "col1/row4/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col1/row4/knob",
"col1/row4/pad",
},
shape = "circle",
width = 50,
x = 100,
y = 300,
},
{
height = 50,
id = "col2/row4/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col2/row4/knob",
"col2/row4/pad",
},
shape = "circle",
width = 50,
x = 200,
y = 300,
},
{
height = 50,
id = "col3/row4/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col3/row4/knob",
"col3/row4/pad",
},
shape = "circle",
width = 50,
x = 300,
y = 300,
},
{
height = 50,
id = "col1/row3/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col1/row3/knob",
"col1/row3/pad",
},
shape = "circle",
width = 50,
x = 100,
y = 200,
},
{
height = 50,
id = "col4/row3/knob",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "center",
["sizeConstrained"] = true,
},
mappings = {
"col4/row3/knob",
"col4/row3/pad",
},
shape = "circle",
width = 50,
x = 400,
y = 200,
},
{
height = 50,
id = "bank-right",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "belowBottom",
["sizeConstrained"] = true,
},
mappings = {
"bank-right",
},
shape = "rectangle",
width = 50,
x = 500,
y = 50,
},
{
height = 50,
id = "bank-left",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "belowBottom",
["sizeConstrained"] = true,
},
mappings = {
"bank-left",
},
shape = "rectangle",
width = 50,
x = 0,
y = 50,
},
{
height = 50,
id = "a78b277e-cfbf-4b2b-9cc6-1a550aeb87fd",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "belowBottom",
["sizeConstrained"] = true,
},
mappings = {
"ch-left",
},
shape = "rectangle",
width = 50,
x = 0,
y = 250,
},
{
height = 50,
id = "e312d2a2-ecf1-4189-95af-4174c43a750c",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "belowBottom",
["sizeConstrained"] = true,
},
mappings = {
"ch-right",
},
shape = "rectangle",
width = 50,
x = 500,
y = 250,
},
{
height = 50,
id = "cursor-left",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "belowBottom",
["sizeConstrained"] = true,
},
mappings = {
"cursor-left",
},
shape = "rectangle",
width = 50,
x = 0,
y = 150,
},
{
height = 50,
id = "cursor-right",
["labelOne"] = {
angle = 0,
position = "aboveTop",
["sizeConstrained"] = true,
},
["labelTwo"] = {
angle = 0,
position = "belowBottom",
["sizeConstrained"] = true,
},
mappings = {
"cursor-right",
},
shape = "rectangle",
width = 50,
x = 500,
y = 150,
},
},
["gridDivisionCount"] = 2,
["gridSize"] = 50,
}
-- Result
return realearn.Compartment {
mappings = mappings,
common_lua = common_lua,
custom_data = {
companion = companion_data,
numbered = {
multi_count = column_count * row_count,
button_count = column_count * row_count,
},
grid = {
column_count = column_count,
row_count = row_count,
},
},
}
end
return module
@@ -0,0 +1,35 @@
--- name: Midi Fighter Twister - Numbered
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: DJ TechTools
--- device_name: Midi Fighter Twister
--- description: |
--- This controller preset exposes the push encoders of the Midi Fighter Twister with the "numbered" scheme, which means
--- it uses virtual element IDs such as button 5 or knob 3. This makes it compatible with main presets that are
--- built for generic controllers that have a row of buttons and knobs.
--- setup_instructions: |
--- The Midi Fighter Twister is a very customizable controller. Please follow the instructions at
--- https://github.com/helgoboss/helgobox/blob/master/doc/controllers.adoc#dj-techtools-midi-fighter-twister
--- to make it ready for ReaLearn.
--- midi_identity_pattern: F0 7E ? 06 02 00 01 79 05 00 01 00 * F7
--- provided_schemes: [djtechtools/midi-fighter-twister/numbered, numbered]
--!strict
local realearn = require("realearn")
local commons = require("djtechtools/midi-fighter-twister-lib/preset-common")
return commons.create_compartment {
create_push_target = function (col, row)
return realearn.Target.Virtual {
id = row * 4 + col,
character = "Button",
}
end,
create_turn_target = function (col, row)
return realearn.Target.Virtual {
id = row * 4 + col,
character = "Multi",
}
end,
}
@@ -0,0 +1,729 @@
--!strict
local realearn = require("realearn")
local module = {}
export type McuPresetConfig = {
companion_data: any,
support_x_touch_colors: boolean,
}
function module.create_compartment(config: McuPresetConfig): realearn.Compartment
local channel_count = 8;
-- Replace with "XTouchMackieLcd" in order to be able to benefit from colors when using X-Touch.
local lcd_kind = "MackieLcd";
local binary_eight = {
[0] = "000",
[1] = "001",
[2] = "010",
[3] = "011",
[4] = "100",
[5] = "101",
[6] = "110",
[7] = "111",
}
local groups: { realearn.Group } = {
{
id = "fader",
name = "Fader",
},
{
id = "v-pot",
name = "V-Pot",
},
{
id = "v-select",
name = "V-Select",
},
{
id = "fader-touch",
name = "Fader Touch",
},
{
id = "select",
name = "Select",
},
{
id = "mute",
name = "Mute",
},
{
id = "solo",
name = "Solo",
},
{
id = "record-ready",
name = "Record-ready",
},
{
id = "v-pot-leds",
name = "V-Pot LEDs",
},
{
id = "lcd",
name = "LCD",
},
{
id = "meter",
name = "Meter",
},
}
local mappings: { realearn.Mapping } = {
{
id = "main/fader",
group = "fader",
source = realearn.Source.MidiPitchBendChangeValue {
channel = 8,
},
target = realearn.Target.Virtual {
id = "main/fader",
},
},
{
id = "jog",
feedback_enabled = false,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 60,
character = "Relative1",
fourteen_bit = false,
},
target = realearn.Target.Virtual {
id = "jog",
},
},
{
id = "main/fader/touch",
group = "fader-touch",
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 112,
},
target = realearn.Target.Virtual {
id = "main/fader/touch",
character = "Button",
learnable = false,
},
},
{
id = "marker",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 84,
},
target = realearn.Target.Virtual {
id = "marker",
character = "Button",
},
},
{
id = "read",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 74,
},
target = realearn.Target.Virtual {
id = "read",
character = "Button",
},
},
{
id = "write",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 75,
},
target = realearn.Target.Virtual {
id = "write",
character = "Button",
},
},
{
id = "ch-left",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 48,
},
target = realearn.Target.Virtual {
id = "ch-left",
character = "Button",
},
},
{
id = "ch-right",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 49,
},
target = realearn.Target.Virtual {
id = "ch-right",
character = "Button",
},
},
{
id = "bank-left",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 46,
},
target = realearn.Target.Virtual {
id = "bank-left",
character = "Button",
},
},
{
id = "bank-right",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 47,
},
target = realearn.Target.Virtual {
id = "bank-right",
character = "Button",
},
},
{
id = "rewind",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 91,
},
target = realearn.Target.Virtual {
id = "rewind",
character = "Button",
},
},
{
id = "fast-fwd",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 92,
},
target = realearn.Target.Virtual {
id = "fast-fwd",
character = "Button",
},
},
{
id = "play",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 94,
},
target = realearn.Target.Virtual {
id = "play",
character = "Button",
},
},
{
id = "stop",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 93,
},
target = realearn.Target.Virtual {
id = "stop",
character = "Button",
},
},
{
id = "record",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 95,
},
target = realearn.Target.Virtual {
id = "record",
character = "Button",
},
},
{
id = "cycle",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 86,
},
target = realearn.Target.Virtual {
id = "cycle",
character = "Button",
},
},
{
id = "zoom",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 100,
},
target = realearn.Target.Virtual {
id = "zoom",
character = "Button",
},
},
{
id = "scrub",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 101,
},
target = realearn.Target.Virtual {
id = "scrub",
character = "Button",
},
},
{
id = "cursor-left",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 98,
},
target = realearn.Target.Virtual {
id = "cursor-left",
character = "Button",
},
},
{
id = "cursor-right",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 99,
},
target = realearn.Target.Virtual {
id = "cursor-right",
character = "Button",
},
},
{
id = "cursor-up",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 96,
},
target = realearn.Target.Virtual {
id = "cursor-up",
character = "Button",
},
},
{
id = "cursor-down",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 97,
},
target = realearn.Target.Virtual {
id = "cursor-down",
character = "Button",
},
},
{
id = "nudge",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 85,
},
target = realearn.Target.Virtual {
id = "nudge",
character = "Button",
},
},
{
id = "drop",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 87,
},
target = realearn.Target.Virtual {
id = "drop",
character = "Button",
},
},
{
id = "replace",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 88,
},
target = realearn.Target.Virtual {
id = "replace",
character = "Button",
},
},
{
id = "click",
source = {
kind = "MidiNoteVelocity",
channel = 0,
key_number = 89,
},
target = realearn.Target.Virtual {
id = "click",
character = "Button",
},
},
{
id = "solo",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 90,
},
target = realearn.Target.Virtual {
id = "solo",
character = "Button",
},
},
{
id = "f1",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 54,
},
target = realearn.Target.Virtual {
id = "f1",
character = "Button",
},
},
{
id = "f2",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 55,
},
target = realearn.Target.Virtual {
id = "f2",
character = "Button",
},
},
{
id = "f3",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 56,
},
target = realearn.Target.Virtual {
id = "f3",
character = "Button",
},
},
{
id = "f4",
source = {
kind = "MidiNoteVelocity",
channel = 0,
key_number = 57,
},
target = realearn.Target.Virtual {
id = "f4",
character = "Button",
},
},
{
id = "f5",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 58,
},
target = realearn.Target.Virtual {
id = "f5",
character = "Button",
},
},
{
id = "f6",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 59,
},
target = realearn.Target.Virtual {
id = "f6",
character = "Button",
},
},
{
id = "smpte-beats",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 53,
},
target = realearn.Target.Virtual {
id = "smpte-beats",
character = "Button",
},
},
{
id = "lcd/assignment",
group = "lcd",
control_enabled = false,
source = realearn.Source.MackieSevenSegmentDisplay {
},
target = realearn.Target.Virtual {
id = "lcd/assignment",
},
},
{
id = "lcd/timecode",
group = "lcd",
control_enabled = false,
source = realearn.Source.MackieSevenSegmentDisplay {
scope = "Tc",
},
target = realearn.Target.Virtual {
id = "lcd/timecode",
},
},
}
-- For each channel
for ch = 0, channel_count - 1 do
local human_ch = ch + 1
local prefix = "ch"..human_ch.."/"
local v_select = realearn.Mapping {
id = prefix.."v-select",
group = "v-select",
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 32 + ch,
},
target = realearn.Target.Virtual {
id = prefix.."v-select",
character = "Button",
},
}
local fader_touch = realearn.Mapping {
id = prefix.."fader/touch",
group = "fader-touch",
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 104 + ch,
},
target = realearn.Target.Virtual {
id = prefix.."fader/touch",
character = "Button",
learnable = false,
},
}
local select = realearn.Mapping {
id = prefix.."select",
group = "select",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 24 + ch,
},
target = realearn.Target.Virtual {
id = prefix.."select",
character = "Button",
},
}
local fader = realearn.Mapping {
id = prefix.."fader",
group = "fader",
source = realearn.Source.MidiPitchBendChangeValue {
channel = ch,
},
target = realearn.Target.Virtual {
id = prefix.."fader",
},
}
local v_pot_control = realearn.Mapping {
id = prefix.."v-pot/control",
group = "v-pot",
feedback_enabled = false,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 16 + ch,
character = "Relative3",
fourteen_bit = false,
},
glue = {
step_factor_interval = {1, 100},
},
target = realearn.Target.Virtual {
id = prefix.."v-pot",
},
}
local v_pot_feedback_default = realearn.Mapping {
id = prefix.."v-pot/feedback",
group = "v-pot-leds",
control_enabled = false,
source = realearn.Source.MidiRaw {
pattern = "B0 3"..ch.." [0000 dcba]",
},
glue = {
source_interval = {0, 0.75},
},
target = realearn.Target.Virtual {
id = prefix.."v-pot",
},
}
local v_pot_feedback_wrap = realearn.Mapping {
id = prefix.."v-pot/wrap",
group = "v-pot-leds",
control_enabled = false,
source = realearn.Source.MidiRaw {
pattern = "B0 3"..ch.." [0010 dcba]",
},
glue = {
source_interval = {0, 0.75},
},
target = realearn.Target.Virtual {
id = prefix.."v-pot/wrap",
},
}
local v_pot_feedback_boost_cut = realearn.Mapping {
id = prefix.."v-pot/boost-cut",
group = "v-pot-leds",
control_enabled = false,
source = realearn.Source.MidiRaw {
pattern = "B0 3"..ch.." [0001 dcba]",
},
glue = {
source_interval = {0.05, 0.75},
},
target = realearn.Target.Virtual {
id = prefix.."v-pot/boost-cut",
},
}
local v_pot_feedback_single = realearn.Mapping {
id = prefix.."v-pot/single",
group = "v-pot-leds",
control_enabled = false,
source = realearn.Source.MidiRaw {
pattern = "B0 3"..ch.." [0000 dcba]",
},
glue = {
source_interval = {0, 0.75},
},
target = realearn.Target.Virtual {
id = prefix.."v-pot/single",
},
}
local v_pot_feedback_spread = realearn.Mapping {
id = prefix.."v-pot/spread",
group = "v-pot-leds",
control_enabled = false,
source = realearn.Source.MidiRaw {
pattern = "B0 3"..ch.." [0011 dcba]",
},
glue = {
source_interval = {0, 0.4},
},
target = realearn.Target.Virtual {
id = prefix.."v-pot/spread",
},
}
local mute = realearn.Mapping {
id = prefix.."mute",
group = "mute",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 16 + ch,
},
target = {
kind = "Virtual",
id = prefix.."mute",
character = "Button",
},
}
local solo = realearn.Mapping {
id = prefix.."solo",
group = "solo",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 8 + ch,
},
target = realearn.Target.Virtual {
id = prefix.."solo",
character = "Button",
},
}
local record_ready = realearn.Mapping {
id = prefix.."record-ready",
group = "record-ready",
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 0 + ch,
},
target = realearn.Target.Virtual {
id = prefix.."record-ready",
character = "Button",
},
}
local normal_lcd_line_1 = realearn.Source.MackieLcd {
channel = ch,
line = 0,
}
local x_touch_lcd_line_1 = realearn.Source.XTouchMackieLcd {
channel = ch,
line = 0,
}
local lcd_line1 = realearn.Mapping {
id = prefix.."lcd/line1",
group = "lcd",
control_enabled = false,
source = if config.support_x_touch_colors then x_touch_lcd_line_1 else normal_lcd_line_1,
target = realearn.Target.Virtual {
id = prefix.."lcd/line1",
},
}
local normal_lcd_line_2 = realearn.Source.MackieLcd {
channel = ch,
line = 1,
}
local x_touch_lcd_line_2 = realearn.Source.XTouchMackieLcd {
channel = ch,
line = 1,
}
local lcd_line2 = realearn.Mapping {
id = prefix.."lcd/line2",
group = "lcd",
control_enabled = false,
source = if config.support_x_touch_colors then x_touch_lcd_line_2 else normal_lcd_line_2,
target = realearn.Target.Virtual {
id = prefix.."lcd/line2",
},
}
local meter = realearn.Mapping {
id = prefix.."meter/peak",
group = "meter",
control_enabled = false,
source = realearn.Source.MidiRaw {
pattern = "D0 [0"..binary_eight[ch].." dcba]",
},
target = realearn.Target.Virtual {
id = prefix.."meter/peak",
},
}
table.insert(mappings, v_select)
table.insert(mappings, fader_touch)
table.insert(mappings, select)
table.insert(mappings, fader)
table.insert(mappings, v_pot_control)
table.insert(mappings, v_pot_feedback_default)
table.insert(mappings, v_pot_feedback_wrap)
table.insert(mappings, v_pot_feedback_boost_cut)
table.insert(mappings, v_pot_feedback_single)
table.insert(mappings, v_pot_feedback_spread)
table.insert(mappings, mute)
table.insert(mappings, solo)
table.insert(mappings, record_ready)
table.insert(mappings, lcd_line1)
table.insert(mappings, lcd_line2)
table.insert(mappings, meter)
end
return realearn.Compartment {
groups = groups,
mappings = mappings,
custom_data = {
companion = config.companion_data,
},
}
end
return module
@@ -0,0 +1,21 @@
--- name: Mackie Control Universal
--- realearn_version: 2.16.0
--- author: helgoboss
--- device_manufacturer: Mackie
--- device_name: Control Universal
--- description: |
--- This controller preset implements the Mackie Control Universal (MCU) MIDI protocol. It is supported by many
--- DAW control surfaces out there. I have tested it with Behringer X-Touch One, Behringer X-Touch Compact and
--- iCON Platform M+.
--- setup_instructions: |
--- You probably must put your controller into MCU mode for using this controller preset.
--- provided_schemes: [daw]
--!strict
local commons = require("mackie/control-universal-lib/preset-common")
return commons.create_compartment {
companion_data = nil,
support_x_touch_colors = false,
}
@@ -0,0 +1 @@
../../api/luau/midi_script_source_runtime.luau
@@ -0,0 +1,330 @@
--!strict
local midi_script = require("midi_script_source_runtime")
local module = {}
--- There's no way to put pads in a pulsing state with the true RGB sys-ex messages, so
--- we are back to an old-fashioned color palette. Whatever, close enough.
local color_palette: { midi_script.RgbColor } = {
{ r = 0x61, g = 0x61, b = 0x61 },
{ r = 0xb3, g = 0xb3, b = 0xb3 },
{ r = 0xdd, g = 0xdd, b = 0xdd },
{ r = 0xff, g = 0xff, b = 0xff },
{ r = 0xfc, g = 0xb3, b = 0xb3 },
{ r = 0xfa, g = 0x61, b = 0x61 },
{ r = 0xdd, g = 0x61, b = 0x61 },
{ r = 0xb3, g = 0x61, b = 0x61 },
{ r = 0xfe, g = 0xf3, b = 0xd5 },
{ r = 0xfb, g = 0xb3, b = 0x61 },
{ r = 0xdd, g = 0x8c, b = 0x61 },
{ r = 0xb3, g = 0x76, b = 0x61 },
{ r = 0xfc, g = 0xee, b = 0xa1 },
{ r = 0xfb, g = 0xff, b = 0x61 },
{ r = 0xdd, g = 0xdd, b = 0x61 },
{ r = 0xb3, g = 0xb3, b = 0x61 },
{ r = 0xdd, g = 0xff, b = 0xa1 },
{ r = 0xc2, g = 0xff, b = 0x61 },
{ r = 0xa1, g = 0xdd, b = 0x61 },
{ r = 0x81, g = 0xb3, b = 0x61 },
{ r = 0xc2, g = 0xff, b = 0xb3 },
{ r = 0x61, g = 0xfe, b = 0x61 },
{ r = 0x61, g = 0xdd, b = 0x61 },
{ r = 0x61, g = 0xb3, b = 0x61 },
{ r = 0xc2, g = 0xff, b = 0xc2 },
{ r = 0x61, g = 0xfe, b = 0x8c },
{ r = 0x61, g = 0xdd, b = 0x76 },
{ r = 0x61, g = 0xb3, b = 0x6b },
{ r = 0xc2, g = 0xfe, b = 0xcc },
{ r = 0x61, g = 0xfe, b = 0xcc },
{ r = 0x61, g = 0xdd, b = 0xa1 },
{ r = 0x61, g = 0xb3, b = 0x81 },
{ r = 0xc2, g = 0xfe, b = 0xf3 },
{ r = 0x61, g = 0xfd, b = 0xe9 },
{ r = 0x61, g = 0xdd, b = 0xc2 },
{ r = 0x61, g = 0xb3, b = 0x96 },
{ r = 0xc2, g = 0xf3, b = 0xff },
{ r = 0x61, g = 0xee, b = 0xff },
{ r = 0x61, g = 0xc7, b = 0xdd },
{ r = 0x61, g = 0xa1, b = 0xb3 },
{ r = 0xc2, g = 0xdd, b = 0xff },
{ r = 0x61, g = 0xc7, b = 0xff },
{ r = 0x61, g = 0xa1, b = 0xdd },
{ r = 0x61, g = 0x81, b = 0xb3 },
{ r = 0xa1, g = 0x8c, b = 0xff },
{ r = 0x61, g = 0x61, b = 0xff },
{ r = 0x61, g = 0x61, b = 0xdd },
{ r = 0x61, g = 0x61, b = 0xb3 },
{ r = 0xcc, g = 0xb3, b = 0xff },
{ r = 0xa1, g = 0x61, b = 0xff },
{ r = 0x81, g = 0x61, b = 0xdd },
{ r = 0x76, g = 0x61, b = 0xb3 },
{ r = 0xfe, g = 0xb3, b = 0xff },
{ r = 0xfe, g = 0x61, b = 0xff },
{ r = 0xdd, g = 0x61, b = 0xdd },
{ r = 0xb3, g = 0x61, b = 0xb3 },
{ r = 0xfd, g = 0xb3, b = 0xd5 },
{ r = 0xfc, g = 0x61, b = 0xc2 },
{ r = 0xdd, g = 0x61, b = 0xa1 },
{ r = 0xb3, g = 0x61, b = 0x8c },
{ r = 0xfa, g = 0x76, b = 0x61 },
{ r = 0xe9, g = 0xb3, b = 0x61 },
{ r = 0xdd, g = 0xc2, b = 0x61 },
{ r = 0xa1, g = 0xa1, b = 0x61 },
{ r = 0x61, g = 0xb3, b = 0x61 },
{ r = 0x61, g = 0xb3, b = 0x8c },
{ r = 0x61, g = 0x8c, b = 0xd5 },
{ r = 0x61, g = 0x61, b = 0xff },
{ r = 0x61, g = 0xb3, b = 0xb3 },
{ r = 0x8c, g = 0x62, b = 0xf3 },
{ r = 0xcc, g = 0xb3, b = 0xc2 },
{ r = 0x8c, g = 0x76, b = 0x81 },
{ r = 0xfa, g = 0x61, b = 0x61 },
{ r = 0xf3, g = 0xff, b = 0xa1 },
{ r = 0xee, g = 0xfc, b = 0x61 },
{ r = 0xcc, g = 0xff, b = 0x60 },
{ r = 0x76, g = 0xdd, b = 0x61 },
{ r = 0x61, g = 0xfe, b = 0xcc },
{ r = 0x61, g = 0xe9, b = 0xff },
{ r = 0x61, g = 0xa1, b = 0xff },
{ r = 0x8c, g = 0x61, b = 0xff },
{ r = 0xcc, g = 0x61, b = 0xfc },
{ r = 0xee, g = 0x8c, b = 0xdd },
{ r = 0xa1, g = 0x76, b = 0x61 },
{ r = 0xfb, g = 0xa1, b = 0x61 },
{ r = 0xdd, g = 0xf9, b = 0x62 },
{ r = 0xd5, g = 0xff, b = 0x8c },
{ r = 0x61, g = 0xfe, b = 0x61 },
{ r = 0xb3, g = 0xff, b = 0xa1 },
{ r = 0xcc, g = 0xfc, b = 0xd5 },
{ r = 0xb3, g = 0xfe, b = 0xf6 },
{ r = 0xcc, g = 0xe4, b = 0xff },
{ r = 0xa1, g = 0xc2, b = 0xf6 },
{ r = 0xd5, g = 0xc2, b = 0xf9 },
{ r = 0xf9, g = 0x8c, b = 0xff },
{ r = 0xfc, g = 0x61, b = 0xcc },
{ r = 0xfb, g = 0xc2, b = 0x61 },
{ r = 0xf3, g = 0xee, b = 0x61 },
{ r = 0xe4, g = 0xff, b = 0x61 },
{ r = 0xdd, g = 0xcc, b = 0x61 },
{ r = 0xb3, g = 0xa1, b = 0x61 },
{ r = 0x61, g = 0xba, b = 0x76 },
{ r = 0x76, g = 0xc2, b = 0x8c },
{ r = 0x81, g = 0x81, b = 0xa1 },
{ r = 0x81, g = 0x8c, b = 0xcc },
{ r = 0xcc, g = 0xaa, b = 0x81 },
{ r = 0xdd, g = 0x61, b = 0x61 },
{ r = 0xf9, g = 0xb3, b = 0xa1 },
{ r = 0xf9, g = 0xba, b = 0x76 },
{ r = 0xfc, g = 0xf3, b = 0x8d },
{ r = 0xe9, g = 0xf9, b = 0xa1 },
{ r = 0xd5, g = 0xee, b = 0x76 },
{ r = 0x81, g = 0x81, b = 0xa1 },
{ r = 0xf9, g = 0xf9, b = 0xd5 },
{ r = 0xdd, g = 0xfc, b = 0xe4 },
{ r = 0xe9, g = 0xe9, b = 0xff },
{ r = 0xe4, g = 0xd5, b = 0xff },
{ r = 0xb3, g = 0xb3, b = 0xb3 },
{ r = 0xd5, g = 0xd5, b = 0xd5 },
{ r = 0xf9, g = 0xff, b = 0xff },
{ r = 0xe9, g = 0x61, b = 0x61 },
{ r = 0xaa, g = 0x62, b = 0x61 },
{ r = 0x81, g = 0xf6, b = 0x62 },
{ r = 0x61, g = 0xb3, b = 0x61 },
{ r = 0xf3, g = 0xee, b = 0x61 },
{ r = 0xb3, g = 0xa1, b = 0x61 },
{ r = 0xee, g = 0xc2, b = 0x61 },
{ r = 0xc2, g = 0x76, b = 0x61 },
}
--- Returns the 0-based index within the given palette array.
local function find_closest_color_in_palette(color: midi_script.RgbColor, palette: { midi_script.RgbColor }): number
local ifurthest = 0
local furthest = 3 * math.pow(255, 2) + 1
for i, c in palette do
if color.r == c.r and color.g == c.g and color.b == c.b then
return i - 1
end
local distance = math.pow((color.r - c.r), 2) + math.pow((color.g - c.g), 2) + math.pow((color.b - c.b), 2)
if distance < furthest then
furthest = distance
ifurthest = i - 1
end
end
return ifurthest
end
type FeedbackEntry = {
behavior: number,
color: (number | midi_script.RgbColor)?,
brightness: number?,
}
local solid = 0x90
local flashing = 0x91
local pulsing = 0x92
local black_color = 0
local green_color = 0x15
local white_color = { r = 255, g = 255, b = 255 }
local red_color = { r = 255, g = 0, b = 0 }
local dark = 0.75
local medium = 0.90
local function create_feedback_table(play_color: number?): { [string]: FeedbackEntry? }
return {
["playtime.slot_state.empty"] = {
behavior = solid,
color = black_color,
},
["playtime.slot_state.armed"] = {
behavior = solid,
color = red_color,
brightness = dark,
},
["playtime.slot_state.stopped"] = {
behavior = solid,
brightness = dark,
},
["playtime.slot_state.ignited"] = {
behavior = solid,
brightness = dark,
},
["playtime.slot_state.scheduled_for_play_start"] = {
behavior = flashing,
color = play_color,
},
["playtime.slot_state.playing"] = {
behavior = pulsing,
color = play_color,
},
["playtime.slot_state.paused"] = {
behavior = solid,
brightness = medium,
},
["playtime.slot_state.scheduled_for_play_stop"] = {
behavior = flashing,
},
["playtime.slot_state.scheduled_for_play_restart"] = {
behavior = flashing,
color = play_color,
},
["playtime.slot_state.scheduled_for_record_start"] = {
behavior = solid,
color = red_color,
brightness = medium,
},
["playtime.slot_state.recording"] = {
behavior = pulsing,
color = red_color,
},
["playtime.slot_state.scheduled_for_record_stop"] = {
behavior = flashing,
color = red_color,
}
}
end
-- Uses original color when playing (currently disabled, will probably be a configuration option in the future)
local colorful_feedback_table = create_feedback_table(nil)
-- Uses green color when playing
local green_feedback_table = create_feedback_table(green_color)
local function build_messages(
pad_index: number,
behavior: number,
color_index: number
): { midi_script.MidiMessage }
if behavior == pulsing then
return {
{ 0x92, pad_index, color_index },
}
elseif behavior == flashing then
-- Flashing between actual color and black
return {
{ 0x90, pad_index, color_index },
{ 0x91, pad_index, black_color },
}
else
-- Solid
return {
{ 0x90, pad_index, color_index },
}
end
end
local function adjust_brightness(c: midi_script.RgbColor, factor: number): midi_script.RgbColor
return {
r = math.floor(c.r * factor),
g = math.floor(c.g * factor),
b = math.floor(c.b * factor),
}
end
local function transform_and_find_closest_color_in_palette(original_color: midi_script.RgbColor, brightness: number?): number
local transformed_color = if brightness then adjust_brightness(original_color, brightness) else original_color
local index = find_closest_color_in_palette(transformed_color, color_palette)
if index == 0 then
-- Don't let it become black just because of the darkening
return find_closest_color_in_palette(original_color, color_palette)
end
return index
end
local function get_palette_color_index(entry: FeedbackEntry, rgb_color: midi_script.RgbColor?): number
if type(entry.color) == "number" then
return entry.color
end
local final_rgb_color = entry.color or rgb_color or white_color
return transform_and_find_closest_color_in_palette(final_rgb_color, entry.brightness)
end
function module.pad_script(
pad_index: number,
y: midi_script.InputValue,
context: midi_script.Context
): midi_script.Output
local address = pad_index
local off_output = {
address = pad_index,
messages = build_messages(pad_index, solid, black_color),
}
-- Handle "off" feedback
if y == nil then
return off_output
end
-- Handle numeric feedback
if type(y) == "number" then
-- Translate number to solid feedback color
local color_index = math.floor(y * 127)
return {
address = address,
messages = {
{ solid, pad_index, color_index },
},
}
end
-- Handle text feedback
if type(y) == "string" then
-- This is a grid controller, typically used for controlling a Playtime matrix, so we should be able to
-- handle text feedback that conforms to Playtime's clip state convention.
local entry = green_feedback_table[y]
if entry == nil then
-- Unknown texts switch the LED off
return off_output
end
local color_index = get_palette_color_index(entry, context.feedback_event.color)
return {
address = pad_index,
messages = build_messages(pad_index, entry.behavior, color_index),
}
end
-- Complex feedback is highly individual. It doesn't make sense to handle this in a general-purpose controller preset.
return {
address = address,
messages = {},
}
end
return module
@@ -0,0 +1,152 @@
--- name: Launchpad Mini mk3 - Live mode
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Novation
--- device_name: Launchpad Mini mk3
--- description: |
--- This controller preset exposes all control elements of the Launchpad Mini mk3 in a neutral way. It supports
--- ReaLearn color feedback as well as Playtime slot status feedback.
--- midi_identity_pattern: F0 7E ? 06 02 00 20 29 13 01 00 00 * F7
--- midi_output_port_patterns: ["macos:*DAW*", "windows:LPMiniMK3 MIDI"]
--- provided_schemes: [novation/launchpad-mini-mk3/live, grid]
--!strict
-- Requires
local preset_runtime = require("preset_runtime")
local realearn = require("realearn")
-- Define MIDI scripts
local common_lua = preset_runtime.include_str("novation/launchpad-lib/compartment-common.luau")
local function build_pad_script(pad_index: number): string
return `return require("compartment").pad_script({pad_index}, y, context)`
end
-- Single buttons
local function simple_button(id: string, name: string, cc: number): realearn.Mapping
return realearn.Mapping {
id = id,
name = name,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = cc,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
end
local init_mapping = realearn.Mapping {
name = "Enter DAW mode and select session layout",
source = realearn.Source.MidiScript {
script_kind = "Lua",
script = [[
local standalone_mode = 0x00
local daw_mode = 0x01
local session_layout = 0x00
local mode = if y == nil then standalone_mode else daw_mode
local enter_or_leave_daw_mode_msg = { 0xF0, 0x00, 0x20, 0x29, 0x02, 0x0D, 0x10, mode, 0xF7 }
local select_session_layout = { 0xF0, 0x00, 0x20, 0x29, 0x02, 0x0D, 0x00, session_layout, 0xF7 }
local messages = {
enter_or_leave_daw_mode_msg,
}
if y then
table.insert(messages, select_session_layout)
end
return {
messages = messages
}
]]
},
target = realearn.Target.Dummy {
}
}
local mappings = {
init_mapping,
simple_button("cursor-up", "Up", 91),
simple_button("cursor-down", "Down", 92),
simple_button("cursor-left", "Left", 93),
simple_button("cursor-right", "Right", 94),
simple_button("session", "Session", 95),
simple_button("drums", "Drums", 96),
simple_button("keys", "Keys", 97),
simple_button("user", "User", 98),
}
-- Clip launch buttons
for col = 0, 7 do
local human_col = col + 1
for row = 0, 7 do
local human_row = row + 1
local key_number_offset = 11 + (7 - row) * 10
local id = `col{human_col}/row{human_row}/pad`
local control_mapping = realearn.Mapping {
id = id,
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = key_number_offset + col,
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
local feedback_mapping = realearn.Mapping {
id = `{id}-feedback`,
control_enabled = false,
source = realearn.Source.MidiScript {
script_kind = "Lua",
script = build_pad_script(key_number_offset + col),
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, control_mapping)
table.insert(mappings, feedback_mapping)
end
end
-- Scene launch buttons
for row = 0, 7 do
local human_row = row + 1
local id = `row{human_row}/play`
local mapping = realearn.Mapping {
id = id,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 19 + (7 - row) * 10,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
return realearn.Compartment {
common_lua = common_lua,
mappings = mappings,
custom_data = {
grid = {
column_count = 8,
row_count = 8,
},
}
}
@@ -0,0 +1,140 @@
--- name: Launchpad mk1 - Live mode
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Novation
--- device_name: Launchpad mk1
--- description: |
--- This controller preset exposes all control elements of the Launchpad mk1 in a neutral way. It supports Playtime slot status feedback.
---
--- This device cannot be auto-detected because it doesn't support the MIDI device inquiry protocol.
--- provided_schemes: [novation/launchpad-mk1, grid]
--!strict
-- Requires
local realearn = require("realearn")
-- Single buttons
local function simple_button(id: string, name: string, cc: number): realearn.Mapping
return realearn.Mapping {
id = id,
name = name,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = cc,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
end
local init_mapping = realearn.Mapping {
name = "Enable flashing LEDs",
source = realearn.Source.MidiRaw {
pattern = "B0 00 28",
},
target = realearn.Target.Dummy {
}
}
local mappings = {
init_mapping,
simple_button("cursor-up", "Up", 104),
simple_button("cursor-down", "Down", 105),
simple_button("cursor-left", "Left", 106),
simple_button("cursor-right", "Right", 107),
simple_button("session", "session", 108),
simple_button("user-1", "user 1", 109),
simple_button("user-2", "user 2", 110),
simple_button("mixer", "mixer", 111),
}
-- Clip launch buttons
local leds = {
off = 12,
red_low = 13,
red_full = 15,
amber_low = 29,
amber_full = 63,
yellow_full = 62,
green_low = 28,
green_full = 60,
red_flashing = 11,
amber_flashing = 59,
yellow_flashing = 58,
green_flashing = 56,
}
for col = 0, 7 do
local human_col = col + 1
for row = 0, 7 do
local human_row = row + 1
local key_number_offset = row * 16
local id = `col{human_col}/row{human_row}/pad`
local control_mapping = realearn.Mapping {
id = id,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = key_number_offset + col,
},
glue = realearn.Glue {
feedback_value_table = {
kind = "FromTextToDiscrete",
value = {
["playtime.slot_state.empty"] = leds.off,
["playtime.slot_state.armed"] = leds.red_low,
["playtime.slot_state.stopped"] = leds.amber_low,
["playtime.slot_state.ignited"] = leds.amber_low,
["playtime.slot_state.scheduled_for_play_start"] = leds.green_flashing,
["playtime.slot_state.playing"] = leds.green_full,
["playtime.slot_state.paused"] = leds.amber_low,
["playtime.slot_state.scheduled_for_play_stop"] = leds.amber_flashing,
["playtime.slot_state.scheduled_for_play_restart"] = leds.green_flashing,
["playtime.slot_state.scheduled_for_record_start"] = leds.red_flashing,
["playtime.slot_state.recording"] = leds.red_full,
["playtime.slot_state.scheduled_for_record_stop"] = leds.green_flashing,
},
}
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, control_mapping)
end
end
-- Scene launch buttons
for row = 0, 7 do
local human_row = row + 1
local id = `row{human_row}/play`
local mapping = realearn.Mapping {
id = id,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = 8 + row * 16,
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
return realearn.Compartment {
mappings = mappings,
custom_data = {
grid = {
column_count = 8,
row_count = 8,
},
}
}
@@ -0,0 +1,160 @@
--- name: Launchpad Pro mk2 - Live mode
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Novation
--- device_name: Launchpad Pro mk2
--- description: |
--- This controller preset exposes all control elements of the Launchpad Pro mk2 in a neutral way. It supports
--- ReaLearn color feedback as well as Playtime slot status feedback.
--- # I leave part of the family code dynamic. It's not always 00: https://github.com/helgoboss/helgobox/issues/939
--- midi_identity_pattern: F0 7E ? 06 02 00 20 29 51 00 ? 00 * F7
--- midi_output_port_patterns: ["macos:*Live*", "windows:*Launchpad Pro"]
--- provided_schemes: [novation/launchpad-pro-mk2/live, grid]
--!strict
-- Requires
local preset_runtime = require("preset_runtime")
local realearn = require("realearn")
-- Define MIDI scripts
local common_lua = preset_runtime.include_str("novation/launchpad-lib/compartment-common.luau")
local function build_pad_script(pad_index: number): string
return `return require("compartment").pad_script({pad_index}, y, context)`
end
-- Single buttons
local function simple_button(id: string, name: string, cc: number): realearn.Mapping
return realearn.Mapping {
id = id,
name = name,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = cc,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
end
local init_mapping = realearn.Mapping {
name = "Enter live mode",
source = realearn.Source.MidiScript {
script_kind = "Lua",
script = [[
local live_mode = 0x00
local standalone_mode = 0x01
local mode = if y == nil then standalone_mode else live_mode
return {
messages = {
{ 0xF0, 0x00, 0x20, 0x29, 0x02, 0x10, 0x21, mode, 0xF7 }
}
}
]]
},
target = realearn.Target.Dummy {
}
}
local mappings = {
init_mapping,
simple_button("cursor-up", "Up", 91),
simple_button("cursor-down", "Down", 92),
simple_button("cursor-left", "Left", 93),
simple_button("cursor-right", "Right", 94),
simple_button("session", "Session", 95),
simple_button("note", "Note", 96),
simple_button("device", "Device", 97),
simple_button("user", "User", 98),
simple_button("shift", "Shift", 80),
simple_button("click", "Click", 70),
simple_button("undo", "Undo", 60),
simple_button("delete", "Delete", 50),
simple_button("quantize", "Quantise", 40),
simple_button("duplicate", "Duplicate", 30),
simple_button("double", "Double", 20),
simple_button("record", "Record", 10),
simple_button("record-arm", "Record Arm", 1),
simple_button("track-select", "Track Select", 2),
simple_button("mute", "Mute", 3),
simple_button("solo", "Solo", 4),
simple_button("volume", "Volume", 5),
simple_button("pan", "Pan", 6),
simple_button("sends", "Sends", 7),
simple_button("stop-clip", "Stop Clip", 8),
}
-- Clip launch buttons
for col = 0, 7 do
local human_col = col + 1
for row = 0, 7 do
local human_row = row + 1
local key_number_offset = 11 + (7 - row) * 10
local id = `col{human_col}/row{human_row}/pad`
local control_mapping = realearn.Mapping {
id = id,
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = key_number_offset + col,
},
target = realearn.Target.Virtual {
id = id,
character = "Multi",
},
}
local feedback_mapping = realearn.Mapping {
id = `{id}-feedback`,
control_enabled = false,
source = realearn.Source.MidiScript {
script_kind = "Lua",
script = build_pad_script(key_number_offset + col),
},
target = realearn.Target.Virtual {
id = id,
character = "Multi",
},
}
table.insert(mappings, control_mapping)
table.insert(mappings, feedback_mapping)
end
end
-- Scene launch buttons
for row = 0, 7 do
local human_row = row + 1
local id = `row{human_row}/play`
local mapping = realearn.Mapping {
id = id,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 19 + (7 - row) * 10,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
return realearn.Compartment {
common_lua = common_lua,
mappings = mappings,
custom_data = {
grid = {
column_count = 8,
row_count = 8,
},
}
}
@@ -0,0 +1,185 @@
--- name: Launchpad Pro mk3 - Live mode
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Novation
--- device_name: Launchpad Pro mk3
--- description: |
--- This controller preset exposes all control elements of the Launchpad Pro mk3 in a neutral way. It supports
--- ReaLearn color feedback as well as Playtime slot status feedback.
--- midi_identity_pattern: F0 7E ? 06 02 00 20 29 23 01 00 00 * F7
--- midi_output_port_patterns: ["macos:*DAW*", "windows:*MIDIOUT3*"]
--- provided_schemes: [novation/launchpad-pro-mk3/live, grid]
--!strict
-- Requires
local preset_runtime = require("preset_runtime")
local realearn = require("realearn")
-- Define MIDI scripts
local common_lua = preset_runtime.include_str("novation/launchpad-lib/compartment-common.luau")
local function build_pad_script(pad_index: number): string
return `return require("compartment").pad_script({pad_index}, y, context)`
end
-- Single buttons
local function simple_button(id: string, name: string, cc: number): realearn.Mapping
return realearn.Mapping {
id = id,
name = name,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = cc,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
end
local init_mapping = realearn.Mapping {
name = "Enter DAW mode and select session layout",
source = realearn.Source.MidiScript {
script_kind = "Lua",
script = [[
local standalone_mode = 0x00
local daw_mode = 0x01
local session_layout = 0x00
local session_layout_page = 0x00
local mode = if y == nil then standalone_mode else daw_mode
local enter_or_leave_daw_mode_msg = { 0xF0, 0x00, 0x20, 0x29, 0x02, 0x0E, 0x10, mode, 0xF7 }
local select_session_layout = { 0xF0, 0x00, 0x20, 0x29, 0x02, 0x0E, 0x00, session_layout, session_layout_page, 0x00, 0xF7 }
local messages = {
enter_or_leave_daw_mode_msg,
}
if y then
table.insert(messages, select_session_layout)
end
return {
messages = messages
}
]]
},
target = realearn.Target.Dummy {
}
}
local mappings = {
init_mapping,
simple_button("shift", "Shift", 90),
simple_button("cursor-left", "Left", 91),
simple_button("cursor-right", "Right", 92),
simple_button("session", "Session", 93),
simple_button("cursor-up", "Up", 80),
simple_button("cursor-down", "Down", 70),
simple_button("delete", "Clear", 60),
simple_button("duplicate", "Duplicate", 50),
simple_button("quantize", "Quantise", 40),
simple_button("fixed-length", "Fixed length", 30),
simple_button("play", "Play", 20),
simple_button("record", "Record", 10),
simple_button("record-arm", "Record Arm", 1),
simple_button("mute", "Mute", 2),
simple_button("solo", "Solo", 3),
simple_button("volume", "Volume", 4),
simple_button("pan", "Pan", 5),
simple_button("sends", "Sends", 6),
simple_button("device", "Device", 7),
simple_button("stop-clip", "Stop Clip", 8),
}
-- Clip launch buttons
for col = 0, 7 do
local human_col = col + 1
for row = 0, 7 do
local human_row = row + 1
local key_number_offset = 11 + (7 - row) * 10
local id = `col{human_col}/row{human_row}/pad`
local control_mapping = realearn.Mapping {
id = id,
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = key_number_offset + col,
},
target = realearn.Target.Virtual {
id = id,
character = "Multi",
},
}
local feedback_mapping = realearn.Mapping {
id = `{id}-feedback`,
control_enabled = false,
source = realearn.Source.MidiScript {
script_kind = "Lua",
script = build_pad_script(key_number_offset + col),
},
target = realearn.Target.Virtual {
id = id,
character = "Multi",
},
}
table.insert(mappings, control_mapping)
table.insert(mappings, feedback_mapping)
end
end
-- Scene launch buttons
for row = 0, 7 do
local human_row = row + 1
local id = `row{human_row}/play`
local mapping = realearn.Mapping {
id = id,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 19 + (7 - row) * 10,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
-- Column action buttons
for col = 0, 7 do
local human_col = col + 1
local id = `col{human_col}/action`
local mapping = realearn.Mapping {
id = id,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 101 + col,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
return realearn.Compartment {
common_lua = common_lua,
mappings = mappings,
custom_data = {
grid = {
column_count = 8,
row_count = 8,
},
}
}
@@ -0,0 +1,152 @@
--- name: Launchpad X - Live mode
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Novation
--- device_name: Launchpad X
--- description: |
--- This controller preset exposes all control elements of the Launchpad X in a neutral way. It supports
--- ReaLearn color feedback as well as Playtime slot status feedback.
--- midi_identity_pattern: F0 7E ? 06 02 00 20 29 03 01 00 00 * F7
--- midi_output_port_patterns: ["macos:*DAW*", "windows:LPX MIDI"]
--- provided_schemes: [novation/launchpad-x/live, grid]
--!strict
-- Requires
local preset_runtime = require("preset_runtime")
local realearn = require("realearn")
-- Define MIDI scripts
local common_lua = preset_runtime.include_str("novation/launchpad-lib/compartment-common.luau")
local function build_pad_script(pad_index: number): string
return `return require("compartment").pad_script({pad_index}, y, context)`
end
-- Single buttons
local function simple_button(id: string, name: string, cc: number): realearn.Mapping
return realearn.Mapping {
id = id,
name = name,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = cc,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
end
local init_mapping = realearn.Mapping {
name = "Enter DAW mode and select session layout",
source = realearn.Source.MidiScript {
script_kind = "Lua",
script = [[
local standalone_mode = 0x00
local daw_mode = 0x01
local session_layout = 0x00
local mode = if y == nil then standalone_mode else daw_mode
local enter_or_leave_daw_mode_msg = { 0xF0, 0x00, 0x20, 0x29, 0x02, 0x0C, 0x10, mode, 0xF7 }
local select_session_layout = { 0xF0, 0x00, 0x20, 0x29, 0x02, 0x0C, 0x00, session_layout, 0xF7 }
local messages = {
enter_or_leave_daw_mode_msg,
}
if y then
table.insert(messages, select_session_layout)
end
return {
messages = messages
}
]]
},
target = realearn.Target.Dummy {
}
}
local mappings = {
init_mapping,
simple_button("cursor-up", "Up", 91),
simple_button("cursor-down", "Down", 92),
simple_button("cursor-left", "Left", 93),
simple_button("cursor-right", "Right", 94),
simple_button("session", "Session", 95),
simple_button("note", "Note", 96),
simple_button("custom", "Custom", 97),
simple_button("record", "Record", 98),
}
-- Clip launch buttons
for col = 0, 7 do
local human_col = col + 1
for row = 0, 7 do
local human_row = row + 1
local key_number_offset = 11 + (7 - row) * 10
local id = `col{human_col}/row{human_row}/pad`
local control_mapping = realearn.Mapping {
id = id,
feedback_enabled = false,
source = realearn.Source.MidiNoteVelocity {
channel = 0,
key_number = key_number_offset + col,
},
target = realearn.Target.Virtual {
id = id,
character = "Multi",
},
}
local feedback_mapping = realearn.Mapping {
id = `{id}-feedback`,
control_enabled = false,
source = realearn.Source.MidiScript {
script_kind = "Lua",
script = build_pad_script(key_number_offset + col),
},
target = realearn.Target.Virtual {
id = id,
character = "Multi",
},
}
table.insert(mappings, control_mapping)
table.insert(mappings, feedback_mapping)
end
end
-- Scene launch buttons
for row = 0, 7 do
local human_row = row + 1
local id = `row{human_row}/play`
local mapping = realearn.Mapping {
id = id,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = 19 + (7 - row) * 10,
character = "Button",
},
target = realearn.Target.Virtual {
id = id,
character = "Button",
},
}
table.insert(mappings, mapping)
end
return realearn.Compartment {
common_lua = common_lua,
mappings = mappings,
custom_data = {
grid = {
column_count = 8,
row_count = 8,
},
}
}
@@ -0,0 +1 @@
../../api/luau/playtime.luau
@@ -0,0 +1 @@
../../api/luau/preset_runtime.luau
@@ -0,0 +1 @@
../../api/luau/realearn.luau
@@ -0,0 +1,722 @@
--!strict
local realearn = require("realearn")
local module = {}
export type PresetMode = "native" | "midi-absolute" | "midi-relative"
export type PresetConfig = {
mode: PresetMode,
}
function module.create_compartment(config: PresetConfig): realearn.Compartment
-- Config
-- With this, we can simulate true relative control.
--
-- In MIDI mode, the encoders of the Console 1 send absolute control values, not relative ones. This is
-- not optimal because it means we can't define step sizes, wrap etc. However, as long as feedback is enabled, at least we don't
-- need to suffer from parameter jumps (a common disadvantage of absolute control).
-- This is because the Console 1 doesn't just use the feedback to set the LED ring, it also resets its internal encoder
-- value to the incoming feedback value.
--
-- If we simulate relative control, we get the advantages of relative control. However, it doesn't
-- work so nicely with feedback :( The "reset-internal-encoder-value" mechanism mentioned above interferes.
-- Without further treatment, this makes the control stuck. We can make control work by not sending echo feedback
-- but then the indicated LED ring value is incorrect when we turn the encoder (however, it is correct when changing the parameter
-- in REAPER itself - as long as we don't disable feedback completely).
-- The technique we use right now is to compare with the previously sent feedback value - if available - and otherwise the previously
-- sent control value. This sort of works, but there can be glitches because it's not always sure that the last-sent feedback value
-- has actually been received by the controller.
local simulate_relative_control_in_midi_mode = config.mode == "midi-relative"
local native_mode = config.mode == "native"
-- Code
local realearn = require("realearn")
local sysex_to_relative_transformation = [[
y_type = 1;
y = prev_timestamp == 0 ? (
1
) : (
// Implement encoder acceleration based on timestamp diffs
diff_millis = (realearn_timestamp - prev_timestamp) * 1000;
added = 10 / diff_millis;
// realearn_dbg(added);
1 + added
);
prev_timestamp = realearn_timestamp;
]]
local abs_to_rel_transformation = [[
y_type = 1;
// If the last-sent feedback value is available, we use this one as reference (because the controller
// resets its internal value to the last-sent feedback value). If not (e.g. if feedback is disabled),
// we use the last-sent control value as reference.
ref = realearn_last_feedback_value == prev_last_feedback_value ? prev_x : realearn_last_feedback_value;
y = count == 0 ? (
// On first invocation, we don't have any reference value to compare to
0
) : x > ref || x == 1 ? (
// Controller sends higher number than reference value or encoder hit right boundary. Looks like an increment.
1
) : x < ref || x == 0 ? (
// Controller sends lower number than reference value or encoder hit left boundary. Looks like a decrement.
-1
) : (
// No change
none
);
prev_last_feedback_value = last_feedback_value;
prev_x = x;
count += 1;
]]
local mappings = {}
local function button(
id: string,
target: realearn.Target,
name: string,
cc: number?,
on_sysex: string,
off_sysex: string
)
local cc_source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = cc,
character = "Button",
}
if native_mode then
local on_mapping = realearn.Mapping {
id = `{id}-on`,
feedback_enabled = false,
name = name,
source = realearn.Source.MidiRaw {
pattern = on_sysex,
},
target = target,
}
table.insert(mappings, on_mapping)
local off_mapping = realearn.Mapping {
id = `{id}-off`,
feedback_enabled = false,
name = name,
source = realearn.Source.MidiRaw {
pattern = off_sysex,
},
glue = {
reverse = true,
},
target = target,
}
table.insert(mappings, off_mapping)
if cc then
local feedback_mapping = realearn.Mapping {
id = `{id}-feedback`,
control_enabled = false,
name = name,
source = cc_source,
target = target,
}
table.insert(mappings, feedback_mapping)
end
else
local mapping = realearn.Mapping {
id = id,
name = name,
source = cc_source,
target = target,
}
table.insert(mappings, mapping)
end
end
local function named_button(id: string, name: string, cc: number?, on_sysex: string, off_sysex: string)
local target = realearn.Target.Virtual {
id = id,
character = "Button",
}
button(id, target, name, cc, on_sysex, off_sysex)
end
local function numbered_button(index: number, name: string, cc: number, on_sysex: string, off_sysex: string)
local target = realearn.Target.Virtual {
id = index,
character = "Button",
}
button(tostring(index), target, name, cc, on_sysex, off_sysex)
end
local function encoder(id: string, name: string, cc: number, cw_sysex: string, ccw_sysex: string)
local cc_source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = cc,
character = "Range",
-- Preventing echo feedback would make the LED ring show the incorrect value when we turn the encoder
-- (it would be correct when changing the parameter in REAPER itself).
-- feedback_behavior = "PreventEchoFeedback",
}
local target = realearn.Target.Virtual {
id = id,
character = "Multi",
}
if native_mode then
local cw_mapping = realearn.Mapping {
id = `{id}-cw`,
feedback_enabled = false,
name = name,
source = realearn.Source.MidiRaw {
pattern = cw_sysex,
character = "Button",
},
glue = realearn.Glue {
control_transformation = sysex_to_relative_transformation,
step_factor_interval = {1, 100},
},
target = target,
}
local ccw_mapping = realearn.Mapping {
id = `{id}-ccw`,
feedback_enabled = false,
name = name,
source = realearn.Source.MidiRaw {
pattern = ccw_sysex,
character = "Button",
},
glue = {
control_transformation = sysex_to_relative_transformation,
step_factor_interval = {1, 100},
reverse = true,
},
target = target,
}
local feedback_mapping = realearn.Mapping {
id = `{id}-feedback`,
control_enabled = false,
name = name,
source = cc_source,
target = target,
}
table.insert(mappings, cw_mapping)
table.insert(mappings, ccw_mapping)
table.insert(mappings, feedback_mapping)
else
local mapping = realearn.Mapping {
id = id,
name = name,
source = cc_source,
glue = realearn.Glue {
control_transformation = if simulate_relative_control_in_midi_mode then abs_to_rel_transformation else nil,
},
target = target,
}
table.insert(mappings, mapping)
end
end
local function meter(id: string, name: string, cc: number)
local m = realearn.Mapping {
id = id,
name = name,
control_enabled = false,
source = realearn.Source.MidiControlChangeValue {
channel = 0,
controller_number = cc,
character = "Range",
},
target = realearn.Target.Virtual {
id = id,
character = "Multi",
},
}
table.insert(mappings, m)
end
-- Named buttons in row 1
named_button("display-on", "Display: On", 102, "", "")
named_button(
"display/mode",
"Display: Mode",
104,
"F0 7D 00 00 00 00 02 00 01 7F 01 02 55 0A 0C F7",
"F0 7D 00 00 00 00 02 00 01 00 41 38 39 27 01 F7"
)
named_button(
"page/prev",
"Page: -",
97,
"F0 7D 00 00 00 00 02 00 03 7F 33 34 37 08 0D F7",
"F0 7D 00 00 00 00 02 00 03 00 73 0E 5B 25 00 F7"
)
named_button(
"page/next",
"Page: +",
96,
"F0 7D 00 00 00 00 02 00 04 7F 7C 75 21 4F 0E F7",
"F0 7D 00 00 00 00 02 00 04 00 3C 4F 4D 62 03 F7"
)
named_button(
"track/group",
"Track: Group",
123,
"F0 7D 00 00 00 00 02 00 19 7F 03 19 4D 53 06 F7",
"F0 7D 00 00 00 00 02 00 19 00 43 23 21 7E 0B F7"
)
named_button(
"track/copy",
"Track: Copy",
120,
"F0 7D 00 00 00 00 02 00 1A 7F 28 34 1E 10 07 F7",
"F0 7D 00 00 00 00 02 00 1A 00 68 0E 72 3D 0A F7"
)
named_button(
"order",
"Order",
14,
"F0 7D 00 00 00 00 02 00 3A 7F 3D 30 3A 32 0A F7",
"F0 7D 00 00 00 00 02 00 3A 00 7D 0A 56 1F 07 F7"
)
named_button(
"external-sidechain",
"External Sidechain",
17,
"F0 7D 00 00 00 00 02 00 3B 7F 24 2B 0B 73 0A F7",
"F0 7D 00 00 00 00 02 00 3B 00 64 11 67 5E 07 F7"
)
-- Numbered buttons in row 1
numbered_button(
0,
`Select track 1`,
21,
"F0 7D 00 00 00 00 02 00 05 7F 65 6E 10 0E 0E F7",
"F0 7D 00 00 00 00 02 00 05 00 25 54 7C 23 03 F7"
)
numbered_button(
1,
`Select track 2`,
22,
"F0 7D 00 00 00 00 02 00 06 7F 4E 43 43 4D 0F F7",
"F0 7D 00 00 00 00 02 00 06 00 0E 79 2F 60 02 F7"
)
numbered_button(
2,
`Select track 3`,
23,
"F0 7D 00 00 00 00 02 00 07 7F 57 58 72 0C 0F F7",
"F0 7D 00 00 00 00 02 00 07 00 17 62 1E 21 02 F7"
)
numbered_button(
3,
`Select track 4`,
24,
"F0 7D 00 00 00 00 02 00 08 7F 50 40 6E 43 02 F7",
"F0 7D 00 00 00 00 02 00 08 00 10 7A 02 6E 0F F7"
)
numbered_button(
4,
`Select track 5`,
25,
"F0 7D 00 00 00 00 02 00 09 7F 49 5B 5F 02 02 F7",
"F0 7D 00 00 00 00 02 00 09 00 09 61 33 2F 0F F7"
)
numbered_button(
5,
`Select track 6`,
26,
"F0 7D 00 00 00 00 02 00 0A 7F 62 76 0C 41 03 F7",
"F0 7D 00 00 00 00 02 00 0A 00 22 4C 60 6C 0E F7"
)
numbered_button(
6,
"Select track 7",
27,
"F0 7D 00 00 00 00 02 00 0B 7F 7B 6D 3D 00 03 F7",
"F0 7D 00 00 00 00 02 00 0B 00 3B 57 51 2D 0E F7"
)
numbered_button(
7,
"Select track 8",
28,
"F0 7D 00 00 00 00 02 00 0C 7F 34 2C 2B 47 00 F7",
"F0 7D 00 00 00 00 02 00 0C 00 74 16 47 6A 0D F7"
)
numbered_button(
8,
"Select track 9",
29,
"F0 7D 00 00 00 00 02 00 0D 7F 2D 37 1A 06 00 F7",
"F0 7D 00 00 00 00 02 00 0D 00 6D 0D 76 2B 0D F7"
)
numbered_button(
9,
"Select track 10",
30,
"F0 7D 00 00 00 00 02 00 0E 7F 06 1A 49 45 01 F7",
"F0 7D 00 00 00 00 02 00 0E 00 46 20 25 68 0C F7"
)
numbered_button(
10,
"Select track 11",
31,
"F0 7D 00 00 00 00 02 00 0F 7F 1F 01 78 04 01 F7",
"F0 7D 00 00 00 00 02 00 0F 00 5F 3B 14 29 0C F7"
)
numbered_button(
11,
"Select track 12",
32,
"F0 7D 00 00 00 00 02 00 10 7F 52 5B 76 1A 08 F7",
"F0 7D 00 00 00 00 02 00 10 00 12 61 1A 37 05 F7"
)
numbered_button(
12,
"Select track 13",
33,
"F0 7D 00 00 00 00 02 00 11 7F 4B 40 47 5B 08 F7",
"F0 7D 00 00 00 00 02 00 11 00 0B 7A 2B 76 05 F7"
)
numbered_button(
13,
"Select track 14",
34,
"F0 7D 00 00 00 00 02 00 12 7F 60 6D 14 18 09 F7",
"F0 7D 00 00 00 00 02 00 12 00 20 57 78 35 04 F7"
)
numbered_button(
14,
"Select track 15",
35,
"F0 7D 00 00 00 00 02 00 13 7F 79 76 25 59 09 F7",
"F0 7D 00 00 00 00 02 00 13 00 39 4C 49 74 04 F7"
)
numbered_button(
15,
"Select track 16",
36,
"F0 7D 00 00 00 00 02 00 14 7F 36 37 33 1E 0A F7",
"F0 7D 00 00 00 00 02 00 14 00 76 0D 5F 33 07 F7"
)
numbered_button(
16,
"Select track 17",
37,
"F0 7D 00 00 00 00 02 00 15 7F 2F 2C 02 5F 0A F7",
"F0 7D 00 00 00 00 02 00 15 00 6F 16 6E 72 07 F7"
)
numbered_button(
17,
"Select track 18",
38,
"F0 7D 00 00 00 00 02 00 16 7F 04 01 51 1C 0B F7",
"F0 7D 00 00 00 00 02 00 16 00 44 3B 3D 31 06 F7"
)
numbered_button(
18,
"Select track 19",
39,
"F0 7D 00 00 00 00 02 00 17 7F 1D 1A 60 5D 0B F7",
"F0 7D 00 00 00 00 02 00 17 00 5D 20 0C 70 06 F7"
)
numbered_button(
19,
"Select track 20",
40,
"F0 7D 00 00 00 00 02 00 18 7F 1A 02 7C 12 06 F7",
"F0 7D 00 00 00 00 02 00 18 00 5A 38 10 3F 0B F7"
)
-- Buttons in row 2
named_button(
"shape",
"Shape",
53,
"F0 7D 00 00 00 00 02 00 21 7F 14 06 71 28 01 F7",
"F0 7D 00 00 00 00 02 00 21 00 54 3C 1D 05 0C F7"
)
named_button(
"eq",
"Equalizer",
80,
"F0 7D 00 00 00 00 02 00 27 7F 42 5C 56 2E 02 F7",
"F0 7D 00 00 00 00 02 00 27 00 02 66 3A 03 0F F7"
)
named_button(
"comp",
"Compressor",
46,
"F0 7D 00 00 00 00 02 00 34 7F 23 33 17 3C 07 F7",
"F0 7D 00 00 00 00 02 00 34 00 63 09 7B 11 0A F7"
)
-- Buttons in row 3
named_button(
"eq/low/type",
"EQ: Low type",
93,
"F0 7D 00 00 00 00 02 00 28 7F 45 44 4A 61 0F F7",
"F0 7D 00 00 00 00 02 00 28 00 05 7E 26 4C 02 F7"
)
named_button(
"eq/high/type",
"EQ: High type",
65,
"F0 7D 00 00 00 00 02 00 31 7F 5E 44 63 79 05 F7",
"F0 7D 00 00 00 00 02 00 31 00 1E 7E 0F 54 08 F7"
)
-- Buttons in row 4
named_button(
"shape/hard-gate",
"Shape: Hard Gate",
59,
"F0 7D 00 00 00 00 02 00 23 7F 26 30 13 2A 00 F7",
"F0 7D 00 00 00 00 02 00 23 00 66 0A 7F 07 0D F7"
)
named_button(
"solo",
"Solo",
13,
"F0 7D 00 00 00 00 02 00 3F 7F 40 47 4E 77 08 F7",
"F0 7D 00 00 00 00 02 00 3F 00 00 7D 22 5A 05 F7"
)
named_button(
"mute",
"Mute",
12,
"F0 7D 00 00 00 00 02 00 40 7F 68 60 2B 4E 04 F7",
"F0 7D 00 00 00 00 02 00 40 00 28 5A 47 63 09 F7"
)
-- Remaining buttons
named_button(
"filters-to-compressor",
"Filters to Compressor",
61,
"F0 7D 00 00 00 00 02 00 1E 7F 4C 58 5B 14 05 F7",
"F0 7D 00 00 00 00 02 00 1E 00 0C 62 37 39 08 F7"
)
named_button(
"phase-inv",
"Phase Inv.",
108,
"F0 7D 00 00 00 00 02 00 1F 7F 55 43 6A 55 05 F7",
"F0 7D 00 00 00 00 02 00 1F 00 15 79 06 78 08 F7"
)
named_button(
"preset",
"Preset",
58,
"F0 7D 00 00 00 00 02 00 20 7F 0D 1D 40 69 01 F7",
"F0 7D 00 00 00 00 02 00 20 00 4D 27 2C 44 0C F7"
)
if native_mode then
named_button(
"fine-adjust",
"Fine Adjust",
nil,
"F0 7D 00 00 00 00 02 00 02 7F 2A 2F 06 49 0D F7",
"F0 7D 00 00 00 00 02 00 02 00 6A 15 6A 64 00 F7"
)
end
-- Encoders in row 1
encoder(
"high-cut",
"High Cut",
105,
"F0 7D 00 00 00 00 02 00 1C 7F 7E 6E 39 16 04 F7",
"F0 7D 00 00 00 00 02 00 1C 00 3E 54 55 3B 09 F7"
)
encoder(
"shape/gate-release",
"Shape: Gate Release",
56,
"F0 7D 00 00 00 00 02 00 24 7F 69 71 05 6D 03 F7",
"F0 7D 00 00 00 00 02 00 24 00 29 4B 69 40 0E F7"
)
encoder(
"eq/low-mid/type",
"EQ: Low Mid Type",
90,
"F0 7D 00 00 00 00 02 00 2C 7F 21 28 0F 65 0D F7",
"F0 7D 00 00 00 00 02 00 2C 00 61 12 63 48 00 F7"
)
encoder(
"eq/high-mid/type",
"EQ: High Mid Type",
87,
"F0 7D 00 00 00 00 02 00 2F 7F 0A 05 5C 26 0C F7",
"F0 7D 00 00 00 00 02 00 2F 00 4A 3F 30 0B 01 F7"
)
encoder(
"comp/attack",
"Comp: Attack",
51,
"F0 7D 00 00 00 00 02 00 37 7F 08 1E 44 7F 06 F7",
"F0 7D 00 00 00 00 02 00 37 00 48 24 28 52 0B F7"
)
encoder(
"drive",
"Drive",
15,
"F0 7D 00 00 00 00 02 00 3C 7F 6B 6A 1D 34 09 F7",
"F0 7D 00 00 00 00 02 00 3C 00 2B 50 71 19 04 F7"
)
-- Encoders in row 2
encoder(
"shape/gate",
"Shape: Gate",
54,
"F0 7D 00 00 00 00 02 00 22 7F 3F 2B 22 6B 00 F7",
"F0 7D 00 00 00 00 02 00 22 00 7F 11 4E 46 0D F7"
)
encoder(
"comp/ratio",
"Comp: Ratio",
49,
"F0 7D 00 00 00 00 02 00 35 7F 3A 28 26 7D 07 F7",
"F0 7D 00 00 00 00 02 00 35 00 7A 12 4A 50 0A F7"
)
-- Encoders in row 3
encoder(
"low-cut",
"Low Cut",
103,
"F0 7D 00 00 00 00 02 00 1D 7F 67 75 08 57 04 F7",
"F0 7D 00 00 00 00 02 00 1D 00 27 4F 64 7A 09 F7"
)
encoder(
"shape/sustain",
"Shape: Sustain",
55,
"F0 7D 00 00 00 00 02 00 25 7F 70 6A 34 2C 03 F7",
"F0 7D 00 00 00 00 02 00 25 00 30 50 58 01 0E F7"
)
encoder(
"eq/low/freq",
"EQ: Low Frequency",
92,
"F0 7D 00 00 00 00 02 00 29 7F 5C 5F 7B 20 0F F7",
"F0 7D 00 00 00 00 02 00 29 00 1C 65 17 0D 02 F7"
)
encoder(
"eq/low-mid/freq",
"EQ: Low Mid Frequency",
89,
"F0 7D 00 00 00 00 02 00 2B 7F 6E 69 19 22 0E F7",
"F0 7D 00 00 00 00 02 00 2B 00 2E 53 75 0F 03 F7"
)
encoder(
"eq/high-mid/freq",
"EQ: High Mid Frequency",
86,
"F0 7D 00 00 00 00 02 00 2E 7F 13 1E 6D 67 0C F7",
"F0 7D 00 00 00 00 02 00 2E 00 53 24 01 4A 01 F7"
)
encoder(
"eq/high/freq",
"EQ: High Frequency",
83,
"F0 7D 00 00 00 00 02 00 32 7F 75 69 30 3A 04 F7",
"F0 7D 00 00 00 00 02 00 32 00 35 53 5C 17 09 F7"
)
encoder(
"comp/release",
"Comp: Release",
48,
"F0 7D 00 00 00 00 02 00 38 7F 0F 06 58 30 0B F7",
"F0 7D 00 00 00 00 02 00 38 00 4F 3C 34 1D 06 F7"
)
encoder(
"character",
"Character",
18,
"F0 7D 00 00 00 00 02 00 3D 7F 72 71 2C 75 09 F7",
"F0 7D 00 00 00 00 02 00 3D 00 32 4B 40 58 04 F7"
)
-- Encoders in row 4
encoder(
"input/gain",
"Input Gain",
107,
"F0 7D 00 00 00 00 02 00 1B 7F 31 2F 2F 51 07 F7",
"F0 7D 00 00 00 00 02 00 1B 00 71 15 43 7C 0A F7"
)
encoder(
"comp/parallel-dry-wet",
"Comp: Parallel Dry/Wet",
50,
"F0 7D 00 00 00 00 02 00 36 7F 11 05 75 3E 06 F7",
"F0 7D 00 00 00 00 02 00 36 00 51 3F 19 13 0B F7"
)
-- Encoders in row 5
encoder(
"shape/punch",
"Shape: Punch",
57,
"F0 7D 00 00 00 00 02 00 26 7F 5B 47 67 6F 02 F7",
"F0 7D 00 00 00 00 02 00 26 00 1B 7D 0B 42 0F F7"
)
encoder(
"eq/low/gain",
"EQ: Low Gain",
91,
"F0 7D 00 00 00 00 02 00 2A 7F 77 72 28 63 0E F7",
"F0 7D 00 00 00 00 02 00 2A 00 37 48 44 4E 03 F7"
)
encoder(
"eq/low-mid/gain",
"EQ: Low Mid Gain",
88,
"F0 7D 00 00 00 00 02 00 2D 7F 38 33 3E 24 0D F7",
"F0 7D 00 00 00 00 02 00 2D 00 78 09 52 09 00 F7"
)
encoder(
"eq/high-mid/gain",
"EQ: High Mid Gain",
85,
"F0 7D 00 00 00 00 02 00 30 7F 47 5F 52 38 05 F7",
"F0 7D 00 00 00 00 02 00 30 00 07 65 3E 15 08 F7"
)
encoder(
"eq/high/gain",
"EQ: High Gain",
82,
"F0 7D 00 00 00 00 02 00 33 7F 6C 72 01 7B 04 F7",
"F0 7D 00 00 00 00 02 00 33 00 2C 48 6D 56 09 F7"
)
encoder(
"comp/threshold",
"Comp: Threshold",
47,
"F0 7D 00 00 00 00 02 00 39 7F 16 1D 69 71 0B F7",
"F0 7D 00 00 00 00 02 00 39 00 56 27 05 5C 06 F7"
)
encoder(
"pan",
"Pan",
10,
"F0 7D 00 00 00 00 02 00 3E 7F 59 5C 7F 36 08 F7",
"F0 7D 00 00 00 00 02 00 3E 00 19 66 13 1B 05 F7"
)
encoder(
"output/volume",
"Volume",
7,
"F0 7D 00 00 00 00 02 00 41 7F 71 7B 1A 0F 04 F7",
"F0 7D 00 00 00 00 02 00 41 00 31 41 76 22 09 F7"
)
-- Meters
meter("input/meter/left", "Input Meter: Left channel", 110)
meter("input/meter/right", "Input Meter: Right channel", 111)
meter("output/meter/left", "Output Meter: Left channel", 112)
meter("output/meter/right", "Output Meter: Right channel", 113)
meter("shape/meter", "Shape Meter", 114)
meter("comp/meter", "Compressor Meter", 115)
return realearn.Compartment {
mappings = mappings,
}
end
return module
@@ -0,0 +1,51 @@
--- name: Console 1 mk2 - MIDI absolute mode
--- realearn_version: 2.16.12
--- author: helgoboss
--- device_manufacturer: Softube
--- device_name: Console 1 mk2
--- description: |
--- This controller preset implements support for the Softube Console 1 controller in MIDI mode, enabling absolute control.
---
--- Pros:
--- * LED feedback without glitches
--- * Button "On" is available and can be customized
---
--- Cons:
--- * Buttons can't be turned into momentary buttons (because Console1 doesn't send any message on release)
--- * True relative control is not possible (no user-defined step sizes and no wrap)
--- * Without pressing "Fine Adjust", encoder control is very coarse
--- * Button "Fine Adjust" can't be customized (it just switches to fine control on hardware side)
--- * In order to avoid parameter jumps with the encoders, feedback must be enabled (alternatively, you can use
--- ReaLearn's takeover modes)
---
--- setup_instructions: |
--- 1. Connect the controller
--- 2. Ensure that the Console 1 On-Screen Display software is **not** running!
---
--- provided_schemes: [softube/console1-mk2]
--!strict
-- Config
-- With this, we can simulate true relative control.
--
-- In MIDI mode, the encoders of the Console 1 send absolute control values, not relative ones. This is
-- not optimal because it means we can't define step sizes, wrap etc. However, as long as feedback is enabled, at least we don't
-- need to suffer from parameter jumps (a common disadvantage of absolute control).
-- This is because the Console 1 doesn't just use the feedback to set the LED ring, it also resets its internal encoder
-- value to the incoming feedback value.
--
-- If we simulate relative control, we get the advantages of relative control. However, it doesn't
-- work so nicely with feedback :( The "reset-internal-encoder-value" mechanism mentioned above interferes.
-- Without further treatment, this makes the control stuck. We can make control work by not sending echo feedback
-- but then the indicated LED ring value is incorrect when we turn the encoder (however, it is correct when changing the parameter
-- in REAPER itself - as long as we don't disable feedback completely).
-- The technique we use right now is to compare with the previously sent feedback value - if available - and otherwise the previously
-- sent control value. This sort of works, but there can be glitches because it's not always sure that the last-sent feedback value
-- has actually been received by the controller.
local commons = require("softube/console1-mk2-lib/preset-common")
return commons.create_compartment {
mode = "midi-absolute",
}
@@ -0,0 +1,33 @@
--- name: Console 1 mk2 - MIDI relative mode
--- realearn_version: 2.16.12
--- author: helgoboss
--- device_manufacturer: Softube
--- device_name: Console 1 mk2
--- description: |
--- This controller preset implements support for the Softube Console 1 controller in MIDI mode, enabling relative control.
---
--- Pros:
--- * True relative control
--- * Button "On" is available and can be customized
---
--- Cons:
--- * Buttons can't be turned into momentary buttons (because Console1 doesn't send any message on release)
--- * Occasional control and feedback glitches are possible (Console1 encoders send absolute messages in a way that makes
--- it hard to convert them into relative messages)
--- * Reacting to encoder increments (or decrements) only via encoder filter doesn't work
--- * Button "Fine Adjust" doesn't have any effect and can't be customized
---
--- setup_instructions: |
--- 1. Connect the controller
--- 2. Ensure that the Console 1 On-Screen Display software is **not** running!
---
--- provided_schemes: [softube/console1-mk2]
--!strict
-- Config
local commons = require("softube/console1-mk2-lib/preset-common")
return commons.create_compartment {
mode = "midi-relative",
}
@@ -0,0 +1,31 @@
--- name: Console 1 mk2 - Native mode
--- realearn_version: 2.16.12
--- author: helgoboss
--- device_manufacturer: Softube
--- device_name: Console 1 mk2
--- description: |
--- This controller preset implements support for the Softube Console 1 controller in native mode.
---
--- Pros:
--- * True relative control without glitches
--- * True momentary buttons
--- * LED feedback without glitches
--- * Button "Fine Adjust" is available and can be customized
---
--- Cons:
--- * Button "On" is not available
--- * Using Softube plug-ins that connect to the Console 1 is not possible (they would interfere)
---
--- setup_instructions: |
--- 1. Connect the controller
--- 2. Start the Console 1 On-Screen Display software
--- 3. Make sure to not use any Softube plug-ins
---
--- provided_schemes: [softube/console1-mk2]
--!strict
local commons = require("softube/console1-mk2-lib/preset-common")
return commons.create_compartment {
mode = "native",
}
@@ -0,0 +1 @@
../../api/luau/.stylua.toml
@@ -0,0 +1 @@
../../api/luau/.vscode
@@ -0,0 +1 @@
../../api/luau/README.md
@@ -0,0 +1,34 @@
--- name: APC Key 25 mk2 - Playtime
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Akai
--- device_name: APC Key 25 mk2
--- description: |
--- This main preset turns the APC Key 25 mk2 into a capable device for controlling Playtime. Hold Shift
--- to access advanced functions.
--- used_schemes: [akai/apc-key-25-mk2]
--- required_features: [playtime]
--!strict
local commons = require("akai/apc-lib/playtime-commons")
return commons.create_compartment {
use_column_stop_buttons = true,
stop_column_if_slot_empty = true,
mute_track_button_id = "row3/play",
arm_track_button_id = "row4/play",
column_count = 8,
row_count = 5,
up_button_id = "col1/stop",
down_button_id = "col2/stop",
left_button_id = "col3/stop",
right_button_id = "col4/stop",
volume_button_id = "col5/stop",
pan_button_id = "col6/stop",
send_button_id = "col7/stop",
device_button_id = "col8/stop",
stop_all_clips_button_id = "stop-all-clips",
stop_all_clips_need_shift = false,
}
@@ -0,0 +1,33 @@
--- name: APC Key 25 - Playtime
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Akai
--- device_name: APC Key 25
--- description: |
--- This main preset turns the APC Key 25 mk1 into a capable device for controlling Playtime. Hold Shift or Sustain
--- to access advanced functions.
--- used_schemes: [akai/apc-key-25]
--- required_features: [playtime]
--!strict
local commons = require("akai/apc-lib/playtime-commons")
return commons.create_compartment {
use_column_stop_buttons = true,
stop_column_if_slot_empty = true,
mute_track_button_id = "row4/play",
arm_track_button_id = "row3/play",
column_count = 8,
row_count = 5,
up_button_id = "col1/stop",
down_button_id = "col2/stop",
left_button_id = "col3/stop",
right_button_id = "col4/stop",
volume_button_id = "col5/stop",
pan_button_id = "col6/stop",
send_button_id = "col7/stop",
device_button_id = "col8/stop",
stop_all_clips_button_id = "stop-all-clips",
stop_all_clips_need_shift = false,
}
@@ -0,0 +1,886 @@
--!strict
local util = require("util")
local realearn = require("realearn")
local playtime_util = require("playtime_util")
local module = {}
export type ApcPlaytimePresetConfig = {
mute_track_button_id: string,
arm_track_button_id: string,
use_column_stop_buttons: boolean,
stop_column_if_slot_empty: boolean,
column_count: number,
row_count: number,
up_button_id: string,
down_button_id: string,
left_button_id: string,
right_button_id: string,
volume_button_id: string,
pan_button_id: string,
send_button_id: string,
device_button_id: string,
stop_all_clips_button_id: string,
stop_all_clips_need_shift: boolean,
}
function module.create_compartment(config: ApcPlaytimePresetConfig): realearn.Compartment
-- Aliases
local partial_mapping = util.partial_mapping
local turbo = playtime_util.turbo
local scroll_vertically = playtime_util.scroll_vertically
local scroll_horizontally = playtime_util.scroll_horizontally
-- Types
type Mode = {
index: number,
label: string,
}
type ModeMap = { [string]: Mode }
type ParameterMap = { [string]: realearn.Parameter }
type GroupMap = { [string]: realearn.Group }
-- Constants
local column_mode_count = 100
local knob_mode_count = 100
-- Column modes
local column_modes: ModeMap = {
stop = {
index = 0,
label = "Stop clip",
},
solo = {
index = 1,
label = "Solo",
},
record_arm = {
index = 2,
label = "Record arm",
},
mute = {
index = 3,
label = "Mute",
},
select = {
index = 4,
label = "Track select",
},
}
local sorted_column_modes = util.sorted_by_index(column_modes)
-- Knob modes
local knob_modes: ModeMap = {
volume = {
index = 0,
label = "Volume",
},
pan = {
index = 1,
label = "Pan",
},
sends = {
index = 2,
label = "Sends",
},
device = {
index = 3,
label = "Device",
},
}
local sorted_knob_modes = util.sorted_by_index(knob_modes)
-- Parameters
local params: ParameterMap = {
shift = {
index = 0,
name = "Shift modifier",
},
column_mode = {
index = 1,
name = "Column mode",
value_count = column_mode_count,
value_labels = util.extract_labels(sorted_column_modes),
},
knob_mode = {
index = 2,
name = "Knob mode",
value_count = knob_mode_count,
value_labels = util.extract_labels(sorted_knob_modes),
},
send = {
index = 3,
name = "Send",
value_count = 2,
},
sustain = {
index = 4,
name = "Sustain modifier",
},
}
-- Domain functions
local function create_index_expression(variable_name: string, index: number): string
return `{variable_name} + {index}`
end
local function create_col_expression(col: number): string
return create_index_expression("control_unit_column_index", col)
end
local function create_row_expression(row: number): string
return create_index_expression("control_unit_row_index", row)
end
local function create_slot_selector(col: number, row: number): realearn.PlaytimeSlotDescriptor
return realearn.PlaytimeSlotDescriptor.Dynamic {
column_expression = create_col_expression(col),
row_expression = create_row_expression(row),
}
end
local function create_column_selector(col: number): realearn.PlaytimeColumnDescriptor
return realearn.PlaytimeColumnDescriptor.Dynamic {
expression = create_col_expression(col),
}
end
local function create_row_selector(row: number): realearn.PlaytimeRowDescriptor
return realearn.PlaytimeRowDescriptor.Dynamic {
expression = create_row_expression(row),
}
end
local function knob(index: number)
return partial_mapping {
source = realearn.Source.Virtual {
character = "Multi",
id = index,
},
}
end
local function button(id: string)
return partial_mapping {
source = realearn.Source.Virtual {
character = "Button",
id = id,
},
}
end
local function column_stop_button(col: number)
return button(`col{col + 1}/stop`)
end
local function row_play_button(row: number)
return button(`row{row + 1}/play`)
end
local function slot_button(col: number, row: number)
return partial_mapping {
source = realearn.Source.Virtual {
character = "Multi",
id = `col{col + 1}/row{row + 1}/pad`,
},
}
end
local function shift_pressed(on: boolean)
return partial_mapping {
activation_condition = realearn.ActivationCondition.Modifier {
modifiers = {
{
parameter = params.shift.index,
on = on,
},
{
parameter = params.sustain.index,
on = false,
},
},
},
}
end
local function sustain_pressed(on: boolean)
return partial_mapping {
activation_condition = realearn.ActivationCondition.Modifier {
modifiers = {
{
parameter = params.sustain.index,
on = on,
},
{
parameter = params.shift.index,
on = false,
},
},
},
}
end
local function shift_or_sustain_pressed()
return partial_mapping {
activation_condition = realearn.ActivationCondition.Expression {
condition = `p[{params.shift.index}] || p[{params.sustain.index}]`,
},
}
end
local function shift_and_sustain_pressed()
return partial_mapping {
activation_condition = realearn.ActivationCondition.Modifier {
modifiers = {
{
parameter = params.sustain.index,
on = true,
},
{
parameter = params.shift.index,
on = true,
},
},
},
}
end
local function fire_max(millis: number)
return partial_mapping {
glue = {
fire_mode = realearn.FireMode.Normal {
press_duration_interval = { 0, millis },
},
},
}
end
local function fire_after_timeout(millis: number)
return partial_mapping {
glue = {
fire_mode = realearn.FireMode.AfterTimeout {
timeout = millis,
},
},
}
end
local function fire_on_single_press(max_duration: number)
return partial_mapping {
glue = {
fire_mode = realearn.FireMode.OnSinglePress {
max_duration = max_duration,
},
},
}
end
local function fire_on_double_press()
return partial_mapping {
glue = {
fire_mode = realearn.FireMode.OnDoublePress(),
},
}
end
local no_mod = shift_pressed(false)
local shift = shift_pressed(true)
local sustain = sustain_pressed(true)
local shift_or_sustain = shift_or_sustain_pressed()
local short_press = fire_max(200)
local long_press = fire_after_timeout(1000)
local single_press = fire_on_single_press(200)
local double_press = fire_on_double_press()
local function clip_matrix_action(action: realearn.PlaytimeMatrixAction)
return partial_mapping {
target = realearn.Target.PlaytimeMatrixAction {
action = action,
},
}
end
local function clip_column_action(col: number, action: realearn.PlaytimeColumnAction)
return partial_mapping {
target = realearn.Target.PlaytimeColumnAction {
column = create_column_selector(col),
action = action,
},
}
end
local function clip_row_action(row: number, action: realearn.PlaytimeRowAction)
return partial_mapping {
target = realearn.Target.PlaytimeRowAction {
row = create_row_selector(row),
action = action,
},
}
end
local function clip_column_track(col: number): realearn.TrackDescriptor
return realearn.TrackDescriptor.FromClipColumn {
column = create_column_selector(col),
context = "Playback",
}
end
local function column_track_target(col: number, track_target_kind: realearn.TargetKind, exclusive: boolean?)
return partial_mapping {
target = {
kind = track_target_kind,
track = clip_column_track(col),
exclusivity = if exclusive then "WithinFolderOnOnly" else nil,
} :: any,
}
end
local function route_target(col: number, route_target_kind: realearn.TargetKind)
return partial_mapping {
target = {
kind = route_target_kind,
route = realearn.RouteDescriptor.Dynamic {
track = clip_column_track(col),
expression = `p[{params.send.index}]`,
},
} :: any,
}
end
local function clip_transport_action(col: number, row: number, action: realearn.PlaytimeSlotTransportAction)
return partial_mapping {
target = realearn.Target.PlaytimeSlotTransportAction {
slot = create_slot_selector(col, row),
action = action,
stop_column_if_slot_empty = config.stop_column_if_slot_empty,
},
}
end
local function clip_management_action(col: number, row: number, action: realearn.PlaytimeSlotManagementAction)
return partial_mapping {
target = realearn.Target.PlaytimeSlotManagementAction {
slot = create_slot_selector(col, row),
action = action,
},
}
end
local function transport_action(action: realearn.TransportAction)
return partial_mapping {
target = realearn.Target.TransportAction {
action = action,
},
}
end
local function reaper_action(command: realearn.ReaperCommand)
return partial_mapping {
target = realearn.Target.ReaperAction {
command = command,
invocation = "Trigger",
},
}
end
local function toggle()
return partial_mapping {
glue = {
absolute_mode = "ToggleButton",
},
}
end
local function pick_up()
return partial_mapping {
glue = {
takeover_mode = "PickUpTolerant",
},
}
end
local function incremental()
return partial_mapping {
glue = {
absolute_mode = "IncrementalButton",
},
}
end
local function wrap()
return partial_mapping {
glue = {
wrap = true,
},
}
end
local function control_disabled()
return partial_mapping {
control_enabled = false,
visible_in_projection = false,
}
end
local function feedback_disabled()
return partial_mapping {
feedback_enabled = false,
}
end
local function set_param(index: number)
return partial_mapping {
target = realearn.Target.CompartmentParameterValue {
parameter = realearn.CompartmentParameterDescriptor.ById {
index = index,
},
},
}
end
local function name(n: string)
return partial_mapping {
name = n,
}
end
local function group(g: realearn.Group)
return partial_mapping {
group = g.id,
}
end
local function set_mode(mode: Mode, mode_count: number, mode_param_index: number)
local target_value = mode.index / (mode_count - 1)
return partial_mapping {
name = mode.label,
glue = {
target_interval = { target_value, target_value },
out_of_range_behavior = "Min",
},
target = realearn.Target.CompartmentParameterValue {
parameter = realearn.CompartmentParameterDescriptor.ById {
index = mode_param_index,
},
},
}
end
local function set_column_mode(mode: Mode)
return set_mode(mode, column_mode_count, params.column_mode.index)
end
local function set_knob_mode(mode: Mode)
return set_mode(mode, knob_mode_count, params.knob_mode.index)
end
local function column_mode_is(column_mode: Mode)
return realearn.ActivationCondition.Bank {
parameter = params.column_mode.index,
bank_index = column_mode.index,
}
end
local function knob_mode_is(knob_mode)
return realearn.ActivationCondition.Bank {
parameter = params.knob_mode.index,
bank_index = knob_mode.index,
}
end
-- Groups
local groups: GroupMap = {
slot_modes = {
name = "Slot modes",
},
column_modes = {
name = "Column modes",
},
record_settings = {
name = "Record settings",
},
knob_modes = {
name = "Knob modes",
},
slot_feedback = {
name = "Slot feedback",
},
slot_play = {
name = "Slot play",
},
slot_clear = {
name = "Slot clear",
},
slot_quantize = {
name = "Slot quantize",
},
slot_copy_or_paste = {
name = "Slot copy or paste",
},
slot_double = {
name = "Slot double section",
},
slot_halve = {
name = "Slot halve section",
},
column_stop = {
name = "Column stop",
activation_condition = column_mode_is(column_modes.stop),
},
row_play_scene = {
name = "Row play scene",
},
row_build_scene = {
name = "Row build scene",
},
row_copy_or_paste_scene = {
name = "Row copy or paste scene",
},
row_clear_scene = {
name = "Row clear scene",
},
column_solo = {
name = "Column solo",
activation_condition = column_mode_is(column_modes.solo),
},
column_record_arm = {
name = "Column record arm",
activation_condition = column_mode_is(column_modes.record_arm),
},
column_mute = {
name = "Column mute",
activation_condition = column_mode_is(column_modes.mute),
},
column_select = {
name = "Column select",
activation_condition = column_mode_is(column_modes.select),
},
knob_volume = {
name = "Knob volume",
activation_condition = knob_mode_is(knob_modes.volume),
},
knob_pan = {
name = "Knob pan",
activation_condition = knob_mode_is(knob_modes.pan),
},
knob_sends = {
name = "Knob sends",
activation_condition = knob_mode_is(knob_modes.sends),
},
knob_device = {
name = "Knob device",
activation_condition = knob_mode_is(knob_modes.device),
},
}
util.set_keys_as_ids(groups)
-- Mappings
local mappings = {
name("Play/stop") + no_mod + button("play") + toggle() + clip_matrix_action("PlayIgnitedOrEnterSilenceMode"),
name("Shift modifier") + button("shift") + set_param(params.shift.index),
name("Sustain modifier") + button("sustain") + set_param(params.sustain.index),
name("Undo") + shift + button("play") + clip_matrix_action("Undo"),
name("Record") + no_mod + button("record") + clip_matrix_action("SmartRecord"),
name("Redo") + shift + button("record") + clip_matrix_action("Redo"),
name("Build scene") + sustain + button("record") + clip_matrix_action("BuildScene"),
name("Switch send")
+ group(groups.knob_sends)
+ feedback_disabled()
+ shift
+ button("col7/stop")
+ incremental()
+ wrap()
+ set_param(params.send.index),
name("Column stop mode")
+ group(groups.column_modes)
+ shift
+ button("row1/play")
+ set_column_mode(column_modes.stop),
name("Column solo mode")
+ group(groups.column_modes)
+ shift
+ button("row2/play")
+ set_column_mode(column_modes.solo),
name("Column arm mode")
+ group(groups.column_modes)
+ shift
+ button(config.arm_track_button_id)
+ set_column_mode(column_modes.record_arm),
name("Column mute mode")
+ group(groups.column_modes)
+ shift
+ button(config.mute_track_button_id)
+ set_column_mode(column_modes.mute),
name("Column select mode")
+ group(groups.column_modes)
+ shift
+ button("row5/play")
+ set_column_mode(column_modes.select),
}
if config.stop_all_clips_need_shift then
-- We have a device that has a "Stop all clips" button but it needs shift to be pressed
table.insert(
mappings,
name("Stop all clips") + shift + button(config.stop_all_clips_button_id) + clip_matrix_action("Stop")
)
else
-- We have a device with a dedicated "Stop all clips" button
table.insert(
mappings,
name("Stop all clips") + no_mod + button(config.stop_all_clips_button_id) + clip_matrix_action("Stop")
)
table.insert(
mappings,
name("Click") + shift + button(config.stop_all_clips_button_id) + reaper_action(40364)
)
end
if config.use_column_stop_buttons then
-- Scrolling
table.insert(
mappings,
name("Scroll up") + shift_or_sustain + button(config.up_button_id) + turbo() + scroll_vertically(-1)
)
table.insert(
mappings,
name("Scroll down") + shift_or_sustain + button(config.down_button_id) + turbo() + scroll_vertically(1)
)
table.insert(
mappings,
name("Scroll left") + shift_or_sustain + button(config.left_button_id) + turbo() + scroll_horizontally(-1)
)
table.insert(
mappings,
name("Scroll right") + shift_or_sustain + button(config.right_button_id) + turbo() + scroll_horizontally(1)
)
-- Modes
table.insert(
mappings,
name("Knob volume mode")
+ group(groups.knob_modes)
+ shift
+ button(config.volume_button_id)
+ set_knob_mode(knob_modes.volume)
)
table.insert(
mappings,
name("Knob pan mode")
+ group(groups.knob_modes)
+ shift
+ button(config.pan_button_id)
+ set_knob_mode(knob_modes.pan)
)
table.insert(
mappings,
name("Knob send mode")
+ group(groups.knob_modes)
+ shift
+ button(config.send_button_id)
+ set_knob_mode(knob_modes.sends)
)
table.insert(
mappings,
name("Knob device mode")
+ group(groups.knob_modes)
+ shift
+ button(config.device_button_id)
+ set_knob_mode(knob_modes.device)
)
end
-- For each column
for col = 0, config.column_count - 1 do
-- Column stop button functions
if config.use_column_stop_buttons then
table.insert(
mappings,
name("Stop column")
+ group(groups.column_stop)
+ no_mod
+ column_stop_button(col)
+ clip_column_action(col, "Stop")
)
table.insert(
mappings,
name("Solo track")
+ group(groups.column_solo)
+ no_mod
+ toggle()
+ column_stop_button(col)
+ column_track_target(col, "TrackSoloState")
)
table.insert(
mappings,
name("Arm track")
+ group(groups.column_record_arm)
+ no_mod
+ toggle()
+ column_stop_button(col)
+ clip_column_action(col, "ArmStateExclusive")
)
table.insert(
mappings,
name("Mute track")
+ group(groups.column_mute)
+ no_mod
+ toggle()
+ column_stop_button(col)
+ column_track_target(col, "TrackMuteState")
)
table.insert(
mappings,
name("Select track")
+ group(groups.column_select)
+ no_mod
+ toggle()
+ column_stop_button(col)
+ column_track_target(col, "TrackSelectionState", true)
)
end
-- Knob functions
table.insert(
mappings,
name("Track volume") + group(groups.knob_volume) + knob(col) + pick_up() + column_track_target(col, "TrackVolume")
)
table.insert(
mappings,
name("Track pan") + group(groups.knob_pan) + knob(col) + pick_up() + column_track_target(col, "TrackPan")
)
table.insert(
mappings,
name("Track send volume") + group(groups.knob_sends) + knob(col) + pick_up() + route_target(col, "RouteVolume")
)
end
-- For each row
for row = 0, config.row_count - 1 do
table.insert(
mappings,
name("Play scene")
+ group(groups.row_play_scene)
+ feedback_disabled()
+ no_mod
+ row_play_button(row)
+ clip_row_action(row, "PlayScene")
)
table.insert(
mappings,
name("Copy or paste")
+ group(groups.row_copy_or_paste_scene)
+ sustain
+ short_press
+ row_play_button(row)
+ clip_row_action(row, "CopyOrPasteScene")
)
table.insert(
mappings,
name("Long = Clear")
+ group(groups.row_clear_scene)
+ feedback_disabled()
+ sustain
+ long_press
+ row_play_button(row)
+ clip_row_action(row, "ClearScene")
)
end
-- For each slot
for col = 0, config.column_count - 1 do
for row = 0, config.row_count - 1 do
-- Feedback
table.insert(
mappings,
name("Slot feedback")
+ group(groups.slot_feedback)
+ control_disabled()
+ slot_button(col, row)
+ playtime_util.slot_state_text_feedback()
+ clip_transport_action(col, row, "Trigger")
)
-- Control
table.insert(
mappings,
name("Slot trigger")
+ group(groups.slot_play)
+ feedback_disabled()
+ no_mod
+ slot_button(col, row)
+ clip_transport_action(col, row, "Trigger")
)
table.insert(
mappings,
name("Copy or paste")
+ group(groups.slot_copy_or_paste)
+ feedback_disabled()
+ sustain
+ single_press
+ slot_button(col, row)
+ toggle()
+ clip_management_action(col, row, "CopyOrPasteClip")
)
table.insert(
mappings,
name("Long = Delete")
+ group(groups.slot_clear)
+ feedback_disabled()
+ sustain
+ long_press
+ slot_button(col, row)
+ clip_management_action(col, row, "ClearSlot")
)
table.insert(
mappings,
name("2x = Edit")
+ group(groups.slot_quantize)
+ feedback_disabled()
+ sustain
+ double_press
+ slot_button(col, row)
+ toggle()
+ clip_management_action(col, row, "EditClip")
)
--table.insert(mappings, name("Overdub clip") + group(groups.slot_play) + feedback_disabled() + shift + single_press + slot_button(col, row) + toggle() + clip_transport_action(col, row, "RecordStop", false))
--table.insert(mappings, name("2x = Double section") + group(groups.slot_double) + feedback_disabled() + shift + double_press + slot_button(col, row) + adjust_clip_section_length_action(col, row, 2))
--table.insert(mappings, name("1x = Halve section") + group(groups.slot_double) + feedback_disabled() + shift + single_press + slot_button(col, row) + adjust_clip_section_length_action(col, row, 0.5))
table.insert(
mappings,
name("Fill slot")
+ group(groups.slot_quantize)
+ feedback_disabled()
+ shift
+ single_press
+ slot_button(col, row)
+ clip_management_action(col, row, "FillSlotWithSelectedItem")
)
end
end
return realearn.Compartment {
parameters = util.sorted_by_index(params),
groups = util.to_array(groups),
mappings = mappings :: any,
custom_data = {
playtime = {
control_unit = {
column_count = config.column_count,
row_count = config.row_count,
},
},
},
}
end
return module
@@ -0,0 +1,34 @@
--- name: APC mini mk2 - Playtime
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Akai
--- device_name: APC mini mk2
--- description: |
--- This main preset turns the APC mini mk2 into a capable device for controlling Playtime. Hold Shift
--- to access advanced functions.
--- used_schemes: [akai/apc-mini-mk2]
--- required_features: [playtime]
--!strict
local commons = require("akai/apc-lib/playtime-commons")
return commons.create_compartment {
use_column_stop_buttons = true,
stop_column_if_slot_empty = true,
mute_track_button_id = "row3/play",
arm_track_button_id = "row4/play",
column_count = 8,
row_count = 8,
up_button_id = "col5/stop",
down_button_id = "col6/stop",
left_button_id = "col7/stop",
right_button_id = "col8/stop",
volume_button_id = "col1/stop",
pan_button_id = "col2/stop",
send_button_id = "col3/stop",
device_button_id = "col4/stop",
stop_all_clips_button_id = "row8/play",
stop_all_clips_need_shift = true,
}
@@ -0,0 +1,34 @@
--- name: APC mini - Playtime
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Akai
--- device_name: APC mini
--- description: |
--- This main preset turns the APC mini into a capable device for controlling Playtime. Hold Shift
--- to access advanced functions.
--- used_schemes: [akai/apc-mini]
--- required_features: [playtime]
--!strict
local commons = require("akai/apc-lib/playtime-commons")
return commons.create_compartment {
use_column_stop_buttons = true,
stop_column_if_slot_empty = true,
mute_track_button_id = "row4/play",
arm_track_button_id = "row3/play",
column_count = 8,
row_count = 8,
up_button_id = "col1/stop",
down_button_id = "col2/stop",
left_button_id = "col3/stop",
right_button_id = "col4/stop",
volume_button_id = "col5/stop",
pan_button_id = "col6/stop",
send_button_id = "col7/stop",
device_button_id = "col8/stop",
stop_all_clips_button_id = "row8/play",
stop_all_clips_need_shift = true,
}
@@ -0,0 +1,75 @@
--- name: Generic grid controller - Playtime
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Generic
--- device_name: Generic
--- description: |
--- This main preset turns any grid-like controller into a device for doing very basic clip launching via Playtime.
---
--- This generic preset is intended to be used as fallback if no device-specific preset exists. It lacks features because it can't take advantage
--- of device-specific features.
--- used_schemes: [grid]
--- required_features: [playtime]
--!strict
-- Configuration
local stop_column_if_slot_empty = true
-- Requires
local realearn = require("realearn")
-- Constants
-- TODO This should be parameterized from the controller preset. One more reason to allow script parameterization :)
local column_count = 4
local row_count = 4
-- Mappings
local mappings = {}
-- For each slot
for col = 0, column_count - 1 do
for row = 0, row_count - 1 do
local mapping = realearn.Mapping {
name = `Trigger slot {col + 1}/{row + 1}`,
source = realearn.Source.Virtual {
character = "Multi",
id = `col{col + 1}/row{row + 1}/pad`,
},
glue = {
feedback = realearn.Feedback.Text {
text_expression = "{{ target.slot_state.id }}",
color = realearn.VirtualColor {
prop = "target.slot.color",
},
},
},
target = realearn.Target.PlaytimeSlotTransportAction {
slot = realearn.PlaytimeSlotDescriptor.Dynamic {
column_expression = `control_unit_column_index + {col}`,
row_expression = `control_unit_row_index + {row}`,
},
action = "Trigger",
stop_column_if_slot_empty = stop_column_if_slot_empty,
},
}
table.insert(mappings, mapping)
end
end
return realearn.Compartment {
mappings = mappings :: any,
custom_data = {
playtime = {
control_unit = {
column_count = column_count,
row_count = row_count,
},
},
},
}
@@ -0,0 +1,122 @@
--- name: Numbered - FX parameters
--- realearn_version: 2.16.0-pre.9
--- author: helgoboss
--- device_manufacturer: Generic
--- device_name: Generic
--- description: |
--- This main preset is built for controllers that offer a set of knobs and buttons. Each knob will control one parameter of
--- the unit FX (which by default resolves to the currently focused FX), starting with parameter 1. Each button will switch
--- to the next bank of parameters. If the controller has `bank-left` and `bank-right` buttons, they can be used to switch
--- between pages, making it possible to control even more parameters.
---
--- At the moment, this preset assumes that the controller has exactly 16 knobs and buttons. In future, this will be variable.
--- used_schemes: [numbered]
--!strict
local realearn = require("realearn")
--- Configuration
local multi_count = 16
local button_count = 16
-- Code
local page_count = 16
local bank_count = button_count
local parameters: { realearn.Parameter } = {
{
index = 0,
name = "Page",
value_count = page_count,
},
{
index = 1,
name = "Bank",
value_count = bank_count,
},
}
local mappings: { realearn.Mapping } = {
-- Side button left => Decrease page
realearn.Mapping {
name = "Page -",
source = realearn.Source.Virtual {
character = "Button",
id = "bank-left",
},
glue = {
absolute_mode = "IncrementalButton",
reverse = true,
},
target = realearn.Target.CompartmentParameterValue {
parameter = realearn.CompartmentParameterDescriptor.ById {
index = 0,
},
},
},
-- Side button right => Increase page
realearn.Mapping {
name = "Page +",
source = realearn.Source.Virtual {
character = "Button",
id = "bank-right",
},
glue = {
absolute_mode = "IncrementalButton",
reverse = false,
},
target = realearn.Target.CompartmentParameterValue {
parameter = realearn.CompartmentParameterDescriptor.ById {
index = 0,
},
},
},
}
-- Encoder movement => Set FX parameter value
for i = 0, multi_count - 1 do
local m = realearn.Mapping {
name = `Set parameter value {i + 1}`,
source = realearn.Source.Virtual {
character = "Multi",
id = i,
},
target = realearn.Target.FxParameterValue {
parameter = realearn.FxParameterDescriptor.Dynamic {
fx = realearn.FxDescriptor.Instance {},
expression = `p[0] * {page_count} * {bank_count} + p[1] * {bank_count} + {i}`,
},
},
}
table.insert(mappings, m)
end
-- Encoder push => Select bank
for i = 0, button_count - 1 do
local normalized_bank = i / (button_count - 1)
local m = realearn.Mapping {
name = `Switch to bank {i + 1}`,
source = realearn.Source.Virtual {
character = "Button",
id = i,
},
glue = {
out_of_range_behavior = "Min",
target_interval = { normalized_bank, normalized_bank },
},
target = realearn.Target.CompartmentParameterValue {
parameter = realearn.CompartmentParameterDescriptor.ById {
index = 1,
},
},
}
table.insert(mappings, m)
end
return realearn.Compartment {
parameters = parameters,
mappings = mappings,
}
@@ -0,0 +1,29 @@
local mappings = {}
for i = 0, 7 do
local m = {
name = tostring(i + 1),
source = {
kind = "Key",
keystroke = {
modifiers = 1,
key = 49 + i,
},
},
glue = {
button_filter = "PressOnly",
},
target = {
kind = "SendMidi",
message = "B0 00 0" .. i,
},
}
table.insert(mappings, m)
end
return {
kind = "MainCompartment",
value = {
mappings = mappings,
}
}
@@ -0,0 +1 @@
../../api/luau/midi_script_source_runtime.luau
@@ -0,0 +1,48 @@
--- name: Launchpad Mini mk3 - Playtime
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Novation
--- device_name: Launchpad Mini mk3
--- description: |
--- This main preset turns the Launchpad Mini mk3 into a capable device for controlling Playtime.
--- used_schemes: [novation/launchpad-mini-mk3/live]
--- required_features: [playtime]
--!strict
local commons = require("novation/launchpad-lib/playtime-commons")
return commons.create_compartment {
stop_column_if_slot_empty = true,
has_dedicated_column_action_buttons = false,
has_shift_button = false,
has_delete_button = false,
has_quantize_button = false,
has_fixed_length_button = false,
has_duplicate_button = false,
has_play_button = false,
has_record_button = false,
stop_clip_button_id = nil,
stop_clip_needs_mixer = false,
mute_button_id = nil,
mute_needs_mixer = false,
solo_button_id = nil,
solo_needs_mixer = false,
record_arm_button_id = nil,
record_arm_needs_mixer = false,
track_select_button_id = nil,
undo_button_id = nil,
undo_needs_shift = true,
redo_button_id = nil,
redo_needs_shift = true,
click_button_id = nil,
click_needs_shift = true,
double_button_id = nil,
double_needs_shift = true,
tap_button_id = nil,
tap_needs_shift = true,
use_last_row_play_button_for_column_modes = true,
use_mk1_colors = false,
}
@@ -0,0 +1,51 @@
--- name: Launchpad mk1 - Playtime
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Novation
--- device_name: Launchpad mk1
--- description: |
--- This main preset turns the Launchpad mk1 into a capable device for controlling Playtime.
---
--- The following features are not yet supported: vol, pan, snd A, snd B
--- used_schemes: [novation/launchpad-mk1]
--- required_features: [playtime]
--!strict
local commons = require("novation/launchpad-lib/playtime-commons")
return commons.create_compartment {
stop_column_if_slot_empty = true,
has_dedicated_column_action_buttons = false,
has_shift_button = false,
has_delete_button = false,
has_quantize_button = false,
has_fixed_length_button = false,
has_duplicate_button = false,
has_play_button = false,
has_record_button = false,
stop_clip_button_id = "row5/play",
stop_clip_needs_mixer = true,
mute_button_id = "row6/play",
mute_needs_mixer = true,
solo_button_id = "row7/play",
solo_needs_mixer = true,
record_arm_button_id = "row8/play",
record_arm_needs_mixer = true,
track_select_button_id = nil,
undo_button_id = nil,
undo_needs_shift = false,
redo_button_id = nil,
redo_needs_shift = false,
click_button_id = nil,
click_needs_shift = false,
double_button_id = nil,
double_needs_shift = false,
tap_button_id = nil,
tap_needs_shift = false,
use_last_row_play_button_for_column_modes = false,
mixer_button_id = "mixer",
use_mk1_colors = true,
}
@@ -0,0 +1,51 @@
--- name: Launchpad Pro mk2 - Playtime
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Novation
--- device_name: Launchpad Pro mk2
--- description: |
--- This main preset turns the Launchpad Pro mk2 into a capable device for controlling Playtime.
---
--- The following features are not yet supported: Note, Device, User, Volume, Pan, Sends, Record,
--- Record Quantise.
--- used_schemes: [novation/launchpad-pro-mk2/live]
--- required_features: [playtime]
--!strict
local commons = require("novation/launchpad-lib/playtime-commons")
return commons.create_compartment {
stop_column_if_slot_empty = true,
has_dedicated_column_action_buttons = false,
has_shift_button = true,
has_delete_button = true,
has_quantize_button = true,
has_fixed_length_button = false,
has_duplicate_button = true,
has_play_button = false,
has_record_button = true,
stop_clip_button_id = "stop-clip",
stop_clip_needs_mixer = false,
mute_button_id = "mute",
mute_needs_mixer = false,
solo_button_id = "solo",
solo_needs_mixer = false,
record_arm_button_id = "record-arm",
record_arm_needs_mixer = false,
track_select_button_id = "track-select",
undo_button_id = "undo",
undo_needs_shift = false,
redo_button_id = "undo",
redo_needs_shift = true,
click_button_id = "click",
click_needs_shift = false,
double_button_id = "double",
double_needs_shift = false,
tap_button_id = nil,
tap_needs_shift = false,
use_last_row_play_button_for_column_modes = false,
mixer_button_id = nil,
}
@@ -0,0 +1,54 @@
--- name: Launchpad Pro mk3 - Playtime
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Novation
--- device_name: Launchpad Pro mk3
--- description: |
--- This main preset turns the Launchpad Pro mk3 into a capable device for controlling Playtime.
---
--- The following features are not yet supported: Note, Chord, Custom, Sequencer, Projects, Volume, Pan, Sends, Device,
--- Swing, Tempo, Capture MIDI, Patterns, Steps, Pattern Settings, Velocity, Probability,
--- Mutation, Micro Step, Print to Clip.
--- used_schemes: [novation/launchpad-pro-mk3/live]
--- required_features: [playtime]
--!strict
local commons = require("novation/launchpad-lib/playtime-commons")
return commons.create_compartment {
stop_column_if_slot_empty = true,
has_dedicated_column_action_buttons = true,
has_shift_button = true,
has_delete_button = true,
has_quantize_button = true,
has_fixed_length_button = true,
has_duplicate_button = true,
has_play_button = true,
has_record_button = true,
stop_clip_button_id = "stop-clip",
stop_clip_needs_mixer = false,
mute_button_id = "mute",
mute_needs_mixer = false,
solo_button_id = "solo",
solo_needs_mixer = false,
record_arm_button_id = "record-arm",
record_arm_needs_mixer = false,
track_select_button_id = "track-select",
undo_button_id = "record-arm",
undo_needs_shift = true,
redo_button_id = "mute",
redo_needs_shift = true,
click_button_id = "solo",
click_needs_shift = true,
double_button_id = "duplicate",
double_needs_shift = true,
tap_button_id = "sends",
tap_needs_shift = true,
use_last_row_play_button_for_column_modes = false,
mixer_button_id = nil,
use_mk1_colors = false,
}
@@ -0,0 +1,51 @@
--- name: Launchpad X - Playtime
--- realearn_version: 2.16.0-pre.8
--- author: helgoboss
--- device_manufacturer: Novation
--- device_name: Launchpad X
--- description: |
--- This main preset turns the Launchpad X into a capable device for controlling Playtime.
---
--- The following features are not yet supported: Note, Custom, Volume, Pan, Send A, Send B, Capture MIDI
--- used_schemes: [novation/launchpad-x/live]
--- required_features: [playtime]
--!strict
local commons = require("novation/launchpad-lib/playtime-commons")
return commons.create_compartment {
stop_column_if_slot_empty = true,
has_dedicated_column_action_buttons = false,
has_shift_button = false,
has_delete_button = false,
has_quantize_button = false,
has_fixed_length_button = false,
has_duplicate_button = false,
has_play_button = false,
has_record_button = true,
stop_clip_button_id = "row5/play",
stop_clip_needs_mixer = true,
mute_button_id = "row6/play",
mute_needs_mixer = true,
solo_button_id = "row7/play",
solo_needs_mixer = true,
record_arm_button_id = "row8/play",
record_arm_needs_mixer = true,
track_select_button_id = nil,
undo_button_id = nil,
undo_needs_shift = false,
redo_button_id = nil,
redo_needs_shift = false,
click_button_id = nil,
click_needs_shift = false,
double_button_id = nil,
double_needs_shift = false,
tap_button_id = nil,
tap_needs_shift = false,
use_last_row_play_button_for_column_modes = false,
mixer_button_id = "session",
use_mk1_colors = false,
}
@@ -0,0 +1,51 @@
--!strict
type ArbitraryTable = { [any]: any }
--- Returns a new table that is the result of merging t2 into t1.
---
--- Values in t2 have precedence.
---
--- The result will be mergeable as well. This is good for "modifier chaining".
---
--- Typing not ideal because of https://github.com/luau-lang/luau/issues/392#issuecomment-1050344334
function merged<A, B>(t1: A, t2: B): A & B
if type(t1) ~= "table" or type(t2) ~= "table" then
return t1 :: any
end
local result = table.clone(t1)
for key, new_value in pairs(t2 :: ArbitraryTable) do
local old_value = result[key]
if old_value and type(old_value) == "table" and type(new_value) == "table" then
-- Merge table value as well
result[key] = merged(old_value, new_value) :: any
else
-- Simple use new value
result[key] = new_value
end
end
return result :: any
end
type PartialImpl = {
new: (part: ArbitraryTable) -> Partial,
__index: PartialImpl,
__add: (self: Partial, part: Partial) -> Partial,
}
export type Partial = typeof(setmetatable({}, {} :: PartialImpl))
local Partial: PartialImpl = {} :: PartialImpl
Partial.__index = Partial
function Partial.new(part)
return setmetatable(part, Partial)
end
function Partial:__add(part)
return Partial.new(merged(self, part) :: any)
end
return {
Partial = Partial,
}
@@ -0,0 +1 @@
../../api/luau/playtime.luau
@@ -0,0 +1,59 @@
--!strict
local realearn = require("realearn")
local util = require("util")
local playtime_util = {}
--- A partial mapping that enables turbo mode for buttons.
function playtime_util.turbo()
return util.partial_mapping {
glue = {
fire_mode = realearn.FireMode.AfterTimeoutKeepFiring {
timeout = 0,
rate = 100,
},
},
}
end
local function scroll(axis: realearn.Axis, amount: number)
local abs_amount = math.abs(amount)
return util.partial_mapping {
glue = {
absolute_mode = "IncrementalButton",
step_factor_interval = { abs_amount, abs_amount },
reverse = amount < 0,
--- This makes the LED switch off when no scrolling is possible in the given direction
feedback = realearn.Feedback.Numeric {
transformation = "x = y < 1",
},
},
target = realearn.Target.PlaytimeControlUnitScroll {
axis = axis,
},
}
end
function playtime_util.scroll_horizontally(amount: number)
return scroll("X", amount)
end
function playtime_util.scroll_vertically(amount: number)
return scroll("Y", amount)
end
function playtime_util.slot_state_text_feedback()
return util.partial_mapping {
glue = {
feedback = realearn.Feedback.Text {
text_expression = "{{ target.slot_state.id }}",
color = realearn.VirtualColor {
prop = "target.slot.color",
},
},
},
}
end
return playtime_util
@@ -0,0 +1 @@
../../api/luau/preset_runtime.luau
@@ -0,0 +1 @@
../../api/luau/realearn.luau
@@ -0,0 +1,56 @@
--!strict
local realearn = require("realearn")
local partial = require("partial")
local util = {}
--- Creates a partial mapping.
---
--- A partial mapping can be conveniently mixed with other partial mappings by using the + operator.
--- This enables a very intuitive but still flexible way of writing mappings.
---
--- Ideally, we would return Partial & Mapping but Luau has still issues with that. In particular, it
--- can't resolve the + operator when used in an intersection.
function util.partial_mapping(m: realearn.Mapping): partial.Partial
return partial.Partial.new(m)
end
--- Returns the values of the given key-value table as array.
function util.to_array<V>(t: { [string]: V }): { V }
local array = {}
for _, v in t do
table.insert(array, v)
end
return array
end
--- Returns the values of the given key-value table as array, sorted by the values'
--- `index` key.
function util.sorted_by_index<V>(t: { [string]: V }): { V }
local sorted = util.to_array(t)
local compare_index = function(left: any, right: any): boolean
return left.index < right.index
end
table.sort(sorted, compare_index)
return sorted
end
--- Takes a key-value table and adds a new attribute `id` to each value that
--- corresponds to the key.
function util.set_keys_as_ids(t: { [string]: { [string]: any } })
for key, value in pairs(t) do
value.id = key
end
end
--- Puts each `label` property value of the given array of tables into a new array.
function util.extract_labels(array: { { [string]: any } }): { string }
local labels = {}
for _, element in ipairs(array) do
table.insert(labels, element.label)
end
return labels
end
return util
@@ -0,0 +1,174 @@
<REAPER_PROJECT 0.1 "6.76/macOS-arm64" 1684918917
<NOTES 0 2
>
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 129
ENVATTACH 2
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 0
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 0 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 0
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
ZXZhdxgAAQ==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN preview
RENDER_FMT 0 2 44100
RENDER_1X 0
RENDER_RANGE 1 0 0 16 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
RENDER_NORMALIZE 1024 0.199526 0.988553 0 0.01 1 1
TIMELOCKMODE 0
TEMPOENVLOCKMODE 0
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
dmdnbwAAAD8AgAAAAIAAAAAgAAAAAAEAAA==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0 0 0 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_PANMODE 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {1A44F32F-E88B-2B4C-A60B-222DCF36C7AD}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {F19CF85F-99A8-F845-8518-98B7CEACE338}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {D3B5E682-D491-7D4B-8587-7D944522A799}
NAME Instrument
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
SEL 1
REC 0 0 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {D3B5E682-D491-7D4B-8587-7D944522A799}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 32 526 603 497
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaSynth (Cockos)" reasynth.vst.dylib 0 "" 1919251321<5653547265737972656173796E746800> ""
eXNlcu9e7f4AAAAAAgAAAAEAAAAAAAAAAgAAAAAAAABEAAAAAAAAAAAAEAA=
776t3g3wrd6mm8Q7F7fROgAAAAAAAAAAAAAAAM5NAD/pZ4g9AAAAAAAAAD8AAIA/AACAPwAAAD8AAAAAAAAAAAAAAAA=
AFByb2dyYW0gMQAQAAAA
>
FLOATPOS 0 0 0 0
FXID {EA473FFF-476B-E64C-8079-60BBA84EE352}
WAK 0 0
>
<ITEM
POSITION 0
SNAPOFFS 0
LENGTH 12
LOOP 0
ALLTAKES 0
FADEIN 1 0 0 1 0 0 0
FADEOUT 1 0 0 1 0 0 0
MUTE 0 0
SEL 1
IGUID {81A1F3C7-2BFA-0D42-BD48-42A5D048D8F8}
IID 1
NAME Preview
VOLPAN 1 0 1 -1
SOFFS 0 0
PLAYRATE 1 1 0 -1 0 0.0025
CHANMODE 0
GUID {9C0065EA-C1B7-0346-9A9A-8D0F996D43B4}
<SOURCE MIDI
HASDATA 1 960 QN
CCINTERP 32
POOLEDEVTS {32366689-1149-6141-B323-FC9CA5F53244}
E 0 90 3c 60
E 7680 80 3c 00
E 15360 b0 7b 00
CCINTERP 32
CHASE_CC_TAKEOFFS 1
GUID {96FA6347-6D67-734E-B45C-57C6CE0EF2B4}
IGNTEMPO 0 120 4 4
SRCCOLOR 0
VELLANE 1 100 0
CFGEDITVIEW 0 0.040521 61 12 0 -1 0 0 0 0.5
KEYSNAP 0
TRACKSEL 0
EVTFILTER 0 -1 -1 -1 -1 0 0 0 0 -1 -1 -1 -1 0 -1 0 -1 -1
CFGEDIT 1 1 0 1 0 0 1 1 1 1 1 1 64 64 1440 875 0 0 0 0 0 0 0 0 0 0 0 0 1 64
>
>
>
<EXTENSIONS
>
>
@@ -0,0 +1,371 @@
<REAPER_PROJECT 0.1 "6.56+dev0425/macOS-arm64" 1655740977
<NOTES 0 2
>
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 1
ENVATTACH 3
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 8
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
ZXZhdxgAAA==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
ZXZhdxgAAA==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.506024 0.5 0 -1 0 0 0 0 -1 -1 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_PANMODE 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {404EF9FF-A53F-3849-A42A-BBC88F3A6E5A}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {CE017E21-34CB-C840-9C97-52DEF1073C2D}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {66CD7EF1-D599-5640-92A6-E42A17C0D6AE}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 1
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 127 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {66CD7EF1-D599-5640-92A6-E42A17C0D6AE}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 380 61 991 703
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" realearn.vst.dylib 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAABcRgAAAQAAAAAAEAA=
eyJ2ZXJzaW9uIjoiMi4xMy4wLXByZS44IiwiaWQiOiJSeERyZHhpWCIsImNvbnRyb2xEZXZpY2VJZCI6IjQiLCJmZWVkYmFja0RldmljZUlkIjoiNCIsImRlZmF1bHRH
cm91cCI6e30sImRlZmF1bHRDb250cm9sbGVyR3JvdXAiOnt9LCJjb250cm9sbGVyTWFwcGluZ3MiOlt7ImlkIjoiYmFuay1sZWZ0Iiwic291cmNlIjp7ImNoYW5uZWwi
OjMsIm51bWJlciI6OCwiY2hhcmFjdGVyIjoxfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVs
ZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImJhbmstbGVmdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxl
ZCI6ZmFsc2V9LHsiaWQiOiJjdXJzb3ItbGVmdCIsInNvdXJjZSI6eyJjaGFubmVsIjozLCJudW1iZXIiOjksImNoYXJhY3RlciI6MX0sIm1vZGUiOnt9LCJ0YXJnZXQi
OnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjdXJz
b3ItbGVmdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaC1sZWZ0Iiwic291cmNlIjp7ImNoYW5uZWwi
OjMsIm51bWJlciI6MTAsImNoYXJhY3RlciI6MX0sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xF
bGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaC1sZWZ0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVk
IjpmYWxzZX0seyJpZCI6ImJhbmstcmlnaHQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MywibnVtYmVyIjoxMSwiY2hhcmFjdGVyIjoxfSwibW9kZSI6e30sInRhcmdldCI6
eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImJhbmst
cmlnaHQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY3Vyc29yLXJpZ2h0Iiwic291cmNlIjp7ImNoYW5u
ZWwiOjMsIm51bWJlciI6MTIsImNoYXJhY3RlciI6MX0sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRy
b2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjdXJzb3ItcmlnaHQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJ
c0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2gtcmlnaHQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MywibnVtYmVyIjoxMywiY2hhcmFjdGVyIjoxfSwibW9kZSI6e30sInRh
cmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6
ImNoLXJpZ2h0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNvbDEvcm93MS9wYWQiLCJzb3VyY2UiOnsi
Y2hhbm5lbCI6MSwibnVtYmVyIjowLCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwi
dmFsdWUiOnsic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJwbGF5aW5nIjo0MywicGF1c2VkIjoxLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RvcCI6NjQsInNj
aGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0LCJzdG9wcGVkIjoxLCJyZWNvcmRpbmciOjg2LCJlbXB0eSI6MCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2NH19
fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudElu
ZGV4IjoiY29sMS9yb3cxL3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMS9yb3cxL2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVt
YmVyIjowLCJjaGFyYWN0ZXIiOjN9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudElu
ZGV4IjoiY29sMS9yb3cxL2tub2IiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDEvcm93Mi9wYWQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVt
YmVyIjo0LCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwidmFsdWUiOnsicGF1c2Vk
IjoxLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJlbXB0eSI6MCwic2NoZWR1
bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwic3RvcHBlZCI6MX19fSwidGFyZ2V0Ijp7ImNh
dGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMS9yb3cy
L3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMS9yb3cyL2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjo0LCJjaGFyYWN0
ZXIiOjN9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMS9yb3cy
L2tub2IiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDEvcm93My9wYWQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjo4LCJjaGFyYWN0
ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwidmFsdWUiOnsic2NoZWR1bGVkX2Zvcl9yZWNvcmRf
c3RhcnQiOjY0LCJlbXB0eSI6MCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsInN0b3BwZWQiOjEsInBh
dXNlZCI6MSwicGxheWluZyI6NDMsInNjaGVkdWxlZF9mb3JfcGxheV9zdG9wIjo2NCwicmVjb3JkaW5nIjo4Nn19fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVh
bCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMS9yb3czL3BhZCIsInBvbGxGb3JG
ZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMS9yb3czL2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjo4LCJjaGFyYWN0ZXIiOjN9LCJtb2RlIjp7
fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMS9yb3czL2tub2IiLCJwb2xsRm9y
RmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDEvcm93NC9wYWQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjoxMiwiY2hhcmFjdGVyIjoxfSwibW9kZSI6
eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3Rv
cCI6NjQsInJlY29yZGluZyI6ODYsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0LCJzdG9wcGVkIjoxLCJz
Y2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsImVtcHR5IjowLCJwYXVzZWQiOjF9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6
ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDEvcm93NC9wYWQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNl
fX0seyJpZCI6ImNvbDEvcm93NC9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MTIsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsi
Y2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wxL3JvdzQva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFs
c2V9fSx7ImlkIjoiY29sMi9yb3cxL3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjEsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1
ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJzY2hlZHVsZWRfZm9yX3BsYXlf
c3RvcCI6NjQsImVtcHR5IjowLCJyZWNvcmRpbmciOjg2LCJwbGF5aW5nIjo0Mywic3RvcHBlZCI6MSwicGF1c2VkIjoxLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9w
Ijo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xF
bGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzEvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wy
L3JvdzEva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjEsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0
dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzEva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29s
Mi9yb3cyL3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjUsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQi
OiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwic3RvcHBlZCI6MSwic2NoZWR1
bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJlbXB0eSI6MCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJw
bGF5aW5nIjo0MywicGF1c2VkIjoxfX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1
dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzIvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wyL3JvdzIva25vYiIsInNv
dXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjUsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3Ii
OiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzIva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMi9yb3czL3BhZCIsInNv
dXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjksImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlz
Y3JldGUiLCJ2YWx1ZSI6eyJzdG9wcGVkIjoxLCJwYXVzZWQiOjEsInJlY29yZGluZyI6ODYsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQsInNjaGVkdWxlZF9m
b3JfcmVjb3JkX3N0YXJ0Ijo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsInBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RvcCI6NjQsImVt
cHR5IjowfX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xF
bGVtZW50SW5kZXgiOiJjb2wyL3JvdzMvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wyL3JvdzMva25vYiIsInNvdXJjZSI6eyJjaGFubmVs
IjowLCJudW1iZXIiOjksImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xF
bGVtZW50SW5kZXgiOiJjb2wyL3JvdzMva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMi9yb3c0L3BhZCIsInNvdXJjZSI6eyJjaGFubmVs
IjoxLCJudW1iZXIiOjEzLCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwidmFsdWUi
Onsic3RvcHBlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJwYXVzZWQi
OjEsInBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsImVtcHR5IjowLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NH19fSwidGFy
Z2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4Ijoi
Y29sMi9yb3c0L3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMi9yb3c0L2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjox
MywiY2hhcmFjdGVyIjozfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6
ImNvbDIvcm93NC9rbm9iIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wzL3JvdzEvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6
MiwiY2hhcmFjdGVyIjoxfSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InNjaGVkdWxlZF9m
b3JfcmVjb3JkX3N0YXJ0Ijo2NCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsInNj
aGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQsInBhdXNlZCI6MSwicmVjb3JkaW5nIjo4Niwic3RvcHBlZCI6MSwiZW1wdHkiOjB9fX0sInRhcmdldCI6eyJjYXRlZ29y
eSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93MS9wYWQi
LCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDMvcm93MS9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MiwiY2hhcmFjdGVyIjoz
fSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93MS9rbm9i
IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wzL3JvdzIvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6NiwiY2hhcmFjdGVyIjox
fSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3Ai
OjY0LCJyZWNvcmRpbmciOjg2LCJwbGF5aW5nIjo0MywicGF1c2VkIjoxLCJlbXB0eSI6MCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9y
X3BsYXlfc3RhcnQiOjY0LCJzdG9wcGVkIjoxLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjR9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJm
eEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93Mi9wYWQiLCJwb2xsRm9yRmVlZGJh
Y2siOmZhbHNlfX0seyJpZCI6ImNvbDMvcm93Mi9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6NiwiY2hhcmFjdGVyIjozfSwibW9kZSI6e30sInRh
cmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93Mi9rbm9iIiwicG9sbEZvckZlZWRi
YWNrIjpmYWxzZX19LHsiaWQiOiJjb2wzL3JvdzMvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MTAsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVl
ZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJyZWNvcmRpbmciOjg2LCJwbGF5aW5nIjo0MywicGF1c2VkIjoxLCJl
bXB0eSI6MCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJzdG9wcGVkIjoxLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInNjaGVkdWxlZF9mb3Jf
cmVjb3JkX3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIs
ImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wzL3JvdzMvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsi
aWQiOiJjb2wzL3JvdzMva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjEwLCJjaGFyYWN0ZXIiOjN9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVn
b3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMy9yb3czL2tub2IiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0s
eyJpZCI6ImNvbDMvcm93NC9wYWQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjoxNCwiY2hhcmFjdGVyIjoxfSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFi
bGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InBsYXlpbmciOjQzLCJwYXVzZWQiOjEsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQs
ImVtcHR5IjowLCJzdG9wcGVkIjoxLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RvcCI6NjQsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0LCJyZWNvcmRpbmciOjg2
LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjR9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1l
bnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93NC9wYWQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDMvcm93
NC9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MTQsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFs
IiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wzL3JvdzQva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sNC9y
b3cxL3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjMsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJG
cm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJwbGF5aW5nIjo0Mywic3RvcHBlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJlbXB0eSI6MCwic2No
ZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsInBhdXNlZCI6MSwicmVjb3JkaW5nIjo4Niwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2NCwic2NoZWR1bGVkX2Zv
cl9yZWNvcmRfc3RhcnQiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRv
biIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2w0L3JvdzEvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0L3JvdzEva25vYiIsInNvdXJj
ZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjMsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJp
ZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2w0L3JvdzEva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sNC9yb3cyL3BhZCIsInNvdXJj
ZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjcsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3Jl
dGUiLCJ2YWx1ZSI6eyJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJlbXB0eSI6MCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2
NCwicmVjb3JkaW5nIjo4Niwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwicGF1c2VkIjoxLCJzdG9wcGVk
IjoxfX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVt
ZW50SW5kZXgiOiJjb2w0L3JvdzIvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0L3JvdzIva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjow
LCJudW1iZXIiOjcsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVt
ZW50SW5kZXgiOiJjb2w0L3JvdzIva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sNC9yb3czL3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjox
LCJudW1iZXIiOjExLCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwidmFsdWUiOnsi
cGxheWluZyI6NDMsImVtcHR5IjowLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInNjaGVkdWxlZF9mb3JfcGxheV9zdG9wIjo2NCwicmVjb3JkaW5nIjo4
Niwic3RvcHBlZCI6MSwicGF1c2VkIjoxLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2NH19fSwidGFyZ2V0
Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29s
NC9yb3czL3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sNC9yb3czL2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoxMSwi
Y2hhcmFjdGVyIjozfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNv
bDQvcm93My9rbm9iIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0L3JvdzQvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MTUs
ImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJwYXVzZWQiOjEsInJl
Y29yZGluZyI6ODYsInNjaGVkdWxlZF9mb3JfcGxheV9zdG9wIjo2NCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2NCwiZW1wdHkiOjAsInNjaGVkdWxlZF9mb3Jf
cmVjb3JkX3N0b3AiOjY0LCJzdG9wcGVkIjoxLCJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnki
OiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2w0L3JvdzQvcGFkIiwi
cG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0L3JvdzQva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjE1LCJjaGFyYWN0ZXIiOjN9
LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sNC9yb3c0L2tub2Ii
LCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX1dLCJjb250cm9sbGVyQ3VzdG9tRGF0YSI6eyJjb21wYW5pb24iOnsiY29udHJvbHMiOlt7ImhlaWdodCI6NTAsImlkIjoi
Y29sNC9yb3cxL2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7
ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDQvcm93MS9rbm9iIiwiY29sNC9yb3cxL3Bh
ZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6NDAwLCJ5IjowfSx7ImhlaWdodCI6NTAsImlkIjoiY29sMS9yb3cyL2tub2IiLCJsYWJlbE9uZSI6eyJh
bmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIs
InNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDEvcm93Mi9rbm9iIiwiY29sMS9yb3cyL3BhZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1
MCwieCI6MTAwLCJ5IjoxMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2w0L3JvdzIva25vYiIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9w
Iiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVyIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFw
cGluZ3MiOlsiY29sNC9yb3cyL2tub2IiLCJjb2w0L3JvdzIvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgiOjUwLCJ4Ijo0MDAsInkiOjEwMH0seyJoZWlnaHQi
OjUwLCJpZCI6ImNvbDEvcm93MS9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJs
YWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2wxL3JvdzEva25vYiIsImNv
bDEvcm93MS9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjEwMCwieSI6MH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDMvcm93MS9rbm9iIiwibGFi
ZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24i
OiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2wzL3JvdzEva25vYiIsImNvbDMvcm93MS9wYWQiXSwic2hhcGUiOiJjaXJjbGUi
LCJ3aWR0aCI6NTAsIngiOjMwMCwieSI6MH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDIvcm93MS9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoi
YWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRy
dWV9LCJtYXBwaW5ncyI6WyJjb2wyL3JvdzEva25vYiIsImNvbDIvcm93MS9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjIwMCwieSI6MH0seyJo
ZWlnaHQiOjUwLCJpZCI6ImNvbDIvcm93Mi9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRy
dWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2wyL3JvdzIva25v
YiIsImNvbDIvcm93Mi9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjIwMCwieSI6MTAwfSx7ImhlaWdodCI6NTAsImlkIjoiY29sMy9yb3cyL2tu
b2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJw
b3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDMvcm93Mi9rbm9iIiwiY29sMy9yb3cyL3BhZCJdLCJzaGFwZSI6
ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6MzAwLCJ5IjoxMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2wyL3JvdzMva25vYiIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJw
b3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVyIiwic2l6ZUNvbnN0
cmFpbmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY29sMi9yb3czL2tub2IiLCJjb2wyL3JvdzMvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgiOjUwLCJ4IjoyMDAs
InkiOjIwMH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDMvcm93My9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29u
c3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJj
b2wzL3JvdzMva25vYiIsImNvbDMvcm93My9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjMwMCwieSI6MjAwfSx7ImhlaWdodCI6NTAsImlkIjoi
Y29sNC9yb3c0L2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7
ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDQvcm93NC9rbm9iIiwiY29sNC9yb3c0L3Bh
ZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6NDAwLCJ5IjozMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2wxL3JvdzQva25vYiIsImxhYmVsT25lIjp7
ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVy
Iiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY29sMS9yb3c0L2tub2IiLCJjb2wxL3JvdzQvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgi
OjUwLCJ4IjoxMDAsInkiOjMwMH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDIvcm93NC9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVU
b3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJt
YXBwaW5ncyI6WyJjb2wyL3JvdzQva25vYiIsImNvbDIvcm93NC9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjIwMCwieSI6MzAwfSx7ImhlaWdo
dCI6NTAsImlkIjoiY29sMy9yb3c0L2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0s
ImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDMvcm93NC9rbm9iIiwi
Y29sMy9yb3c0L3BhZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6MzAwLCJ5IjozMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2wxL3JvdzMva25vYiIs
ImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0
aW9uIjoiY2VudGVyIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY29sMS9yb3czL2tub2IiLCJjb2wxL3JvdzMvcGFkIl0sInNoYXBlIjoiY2ly
Y2xlIiwid2lkdGgiOjUwLCJ4IjoxMDAsInkiOjIwMH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDQvcm93My9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0
aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWlu
ZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2w0L3JvdzMva25vYiIsImNvbDQvcm93My9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjQwMCwieSI6
MjAwfSx7ImhlaWdodCI6NTAsImlkIjoiYmFuay1yaWdodCIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVk
Ijp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYmVsb3dCb3R0b20iLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJiYW5r
LXJpZ2h0Il0sInNoYXBlIjoicmVjdGFuZ2xlIiwid2lkdGgiOjUwLCJ4Ijo1MDAsInkiOjUwfSx7ImhlaWdodCI6NTAsImlkIjoiYmFuay1sZWZ0IiwibGFiZWxPbmUi
OnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJiZWxv
d0JvdHRvbSIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImJhbmstbGVmdCJdLCJzaGFwZSI6InJlY3RhbmdsZSIsIndpZHRoIjo1MCwieCI6MCwi
eSI6NTB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJhNzhiMjc3ZS1jZmJmLTRiMmItOWNjNi0xYTU1MGFlYjg3ZmQiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24i
OiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImJlbG93Qm90dG9tIiwic2l6ZUNvbnN0cmFp
bmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY2gtbGVmdCJdLCJzaGFwZSI6InJlY3RhbmdsZSIsIndpZHRoIjo1MCwieCI6MCwieSI6MjUwfSx7ImhlaWdodCI6NTAsImlk
IjoiZTMxMmQyYTItZWNmMS00MTg5LTk1YWYtNDE3NGM0M2E3NTBjIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3Ry
YWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJiZWxvd0JvdHRvbSIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpb
ImNoLXJpZ2h0Il0sInNoYXBlIjoicmVjdGFuZ2xlIiwid2lkdGgiOjUwLCJ4Ijo1MDAsInkiOjI1MH0seyJoZWlnaHQiOjUwLCJpZCI6ImN1cnNvci1sZWZ0IiwibGFi
ZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24i
OiJiZWxvd0JvdHRvbSIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImN1cnNvci1sZWZ0Il0sInNoYXBlIjoicmVjdGFuZ2xlIiwid2lkdGgiOjUw
LCJ4IjowLCJ5IjoxNTB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjdXJzb3ItcmlnaHQiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNp
emVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImJlbG93Qm90dG9tIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFw
cGluZ3MiOlsiY3Vyc29yLXJpZ2h0Il0sInNoYXBlIjoicmVjdGFuZ2xlIiwid2lkdGgiOjUwLCJ4Ijo1MDAsInkiOjE1MH1dLCJncmlkRGl2aXNpb25Db3VudCI6Miwi
Z3JpZFNpemUiOjUwfX0sIm1haW5QcmVzZXRBdXRvTG9hZE1vZGUiOiJmb2N1c2VkLWZ4IiwiaW5zdGFuY2VQcmVzZXRMaW5rQ29uZmlnIjp7ImxpbmtzIjpbeyJmeCI6
eyJuYW1lIjoiVlNUaTogUmVhU3ludGggKENvY2tvcykifSwicHJlc2V0SWQiOiJyZWFzeW50aCJ9XX19
AFByb2dyYW0gMQAQAAAA
>
PRESETNAME "Program 1"
FLOATPOS 145 31 752 675
FXID {AF3F9A1B-1535-6C4E-AFF7-A87A333F2EF2}
WAK 0 0
>
>
<TRACK {5FF7F1BC-73CF-AE41-8DC6-FFED6C46AD34}
NAME ReaSynth
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 130 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {5FF7F1BC-73CF-AE41-8DC6-FFED6C46AD34}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 380 342 813 422
SHOW 0
LASTSEL 1
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaSynth (Cockos)" reasynth.vst.dylib 0 "" 1919251321<5653547265737972656173796E746800> ""
eXNlcu9e7f4AAAAAAgAAAAEAAAAAAAAAAgAAAAAAAABEAAAAAAAAAAAAEAA=
776t3g3wrd6Y9dw+w2qkPawcWj5Ei2w+3SSGPur5dD/s+eM9pptEPgaBFT/3dKo/SOH6PnNoET8AAAAAIzq+PAAAAAA=
AAAQAAAA
>
FLOATPOS 881 323 372 469
FXID {314C4C58-4C0E-D442-9B7F-4D4351001B02}
WAK 0 0
BYPASS 0 0 0
<VST "VST: ReaDelay (Cockos)" readelay.vst.dylib 0 "" 1919247468<5653547265646C72656164656C617900> ""
bGRlcu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAATAAAAAEAAAAAABAA
AAAAAAAAAAABAAAALAAAAAIAAAAAAAAAAACAPwAAgD8AAAAAAACAPwAAAAAAAIA8nNEHMwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAPw==
AAAQAAAA
>
FLOATPOS 822 28 574 394
FXID {30D2E5F4-E52D-B24F-AA62-6851192D0F3F}
WAK 0 0
>
>
<EXTENSIONS
>
>
@@ -0,0 +1,404 @@
<REAPER_PROJECT 0.1 "6.19+dev0104/win64" 1616532749
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 1
ENVATTACH 1
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 0
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
ZXZhdxgAAA==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 0
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 -1 0 0 0 0 -1 -1 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 0.39236500518455 -0.464 -1 -1 1
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {9C2ED87E-0164-4FCF-9A80-77A7144EA1F0}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {0F596A87-DC4C-4A82-8232-2D4D95E43C85}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {A728B0AF-352F-48FE-A017-7DA392DEEEDC}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.38627471020592 0.1 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
FREEMODE 0
SEL 0
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {A728B0AF-352F-48FE-A017-7DA392DEEEDC}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 852 374 1859 1531
SHOW 1
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" realearn.dll 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAsBIAAAEAAAAAABAA
eyJ2ZXJzaW9uIjoiMi44LjAtcHJlNSIsImlkIjoieWtoSlVLNlAiLCJjb250cm9sRGV2aWNlSWQiOiIxMCIsImZlZWRiYWNrRGV2aWNlSWQiOiIxMSIsImRlZmF1bHRH
cm91cCI6e30sImRlZmF1bHRDb250cm9sbGVyR3JvdXAiOnt9LCJtYXBwaW5ncyI6W3siaWQiOiI4OTJjMzlhOC0zODk5LTQ4YWYtODNmMy1kYTBiM2M3YzJmNzMiLCJu
YW1lIjoiVm9sdW1lIiwic291cmNlIjp7ImNhdGVnb3J5IjoidmlydHVhbCIsImlzUmVnaXN0ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOmZhbHNlLCJvc2NBcmdJbmRleCI6
MH0sIm1vZGUiOnt9LCJ0YXJnZXQiOnsidHlwZSI6MiwiZnhBbmNob3IiOiJpZCIsInVzZVByb2plY3QiOnRydWUsIm1vdmVWaWV3Ijp0cnVlLCJzZWVrUGxheSI6dHJ1
ZX0sImFjdGl2YXRpb25UeXBlIjoibW9kaWZpZXJzIiwibW9kaWZpZXJDb25kaXRpb24xIjp7InBhcmFtSW5kZXgiOjAsImlzT24iOmZhbHNlfX0seyJpZCI6ImU2ZmVj
MzY1LTU5YzQtNGJmNi04ODdiLWU2NzBlYTVlMWU5ZSIsIm5hbWUiOiJNYXN0ZXIgdm9sdW1lIiwic291cmNlIjp7ImNhdGVnb3J5IjoidmlydHVhbCIsImlzUmVnaXN0
ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOmZhbHNlLCJvc2NBcmdJbmRleCI6MH0sIm1vZGUiOnt9LCJ0YXJnZXQiOnsidHlwZSI6MiwidHJhY2tHVUlEIjoibWFzdGVyIiwi
ZnhBbmNob3IiOiJpZCIsInVzZVByb2plY3QiOnRydWUsIm1vdmVWaWV3Ijp0cnVlLCJzZWVrUGxheSI6dHJ1ZX0sImFjdGl2YXRpb25UeXBlIjoibW9kaWZpZXJzIiwi
bW9kaWZpZXJDb25kaXRpb24xIjp7InBhcmFtSW5kZXgiOjAsImlzT24iOnRydWV9fSx7ImlkIjoiZmE2NDI0ODYtY2Y2MS00NTdkLWI3MTgtYjhhZTVmYjgyZmJmIiwi
bmFtZSI6IlBhbiIsInNvdXJjZSI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAs
ImNvbnRyb2xFbGVtZW50SW5kZXgiOjF9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7InR5cGUiOjQsImZ4QW5jaG9yIjoiaWQiLCJ1c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmll
dyI6dHJ1ZSwic2Vla1BsYXkiOnRydWV9LCJhY3RpdmF0aW9uVHlwZSI6Im1vZGlmaWVycyIsIm1vZGlmaWVyQ29uZGl0aW9uMSI6eyJwYXJhbUluZGV4IjowLCJpc09u
IjpmYWxzZX19LHsiaWQiOiI4OGJkYjEwZi05NWQ5LTRlN2EtODU1ZC1hNjllZTlmYjg1NjgiLCJuYW1lIjoiTWFzdGVyIHBhbiIsInNvdXJjZSI6eyJjYXRlZ29yeSI6
InZpcnR1YWwiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAsImNvbnRyb2xFbGVtZW50SW5kZXgiOjF9LCJtb2RlIjp7
fSwidGFyZ2V0Ijp7InR5cGUiOjQsInRyYWNrR1VJRCI6Im1hc3RlciIsImZ4QW5jaG9yIjoiaWQiLCJ1c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmlldyI6dHJ1ZSwic2Vl
a1BsYXkiOnRydWV9LCJhY3RpdmF0aW9uVHlwZSI6Im1vZGlmaWVycyIsIm1vZGlmaWVyQ29uZGl0aW9uMSI6eyJwYXJhbUluZGV4IjowLCJpc09uIjp0cnVlfX0seyJp
ZCI6IjAyZWVlM2NlLWMxNWUtNDUyNi05OGY3LTQ2MDlmNzkzNzJjMiIsIm5hbWUiOiJUb2dnbGUgbWFpbiBwYXJhbSIsInNvdXJjZSI6eyJjYXRlZ29yeSI6InZpcnR1
YWwiLCJjaGFubmVsIjoxLCJudW1iZXIiOjQsImNoYXJhY3RlciI6MSwiaXNSZWdpc3RlcmVkIjpmYWxzZSwiaXMxNEJpdCI6ZmFsc2UsIm9zY0FyZ0luZGV4IjowLCJj
b250cm9sRWxlbWVudFR5cGUiOiJidXR0b24ifSwibW9kZSI6eyJ0eXBlIjoyfSwidGFyZ2V0Ijp7ImZ4QW5jaG9yIjoidGhpcyIsInVzZVByb2plY3QiOnRydWUsIm1v
dmVWaWV3Ijp0cnVlLCJzZWVrUGxheSI6dHJ1ZX19LHsiaWQiOiJlY2U1OWU3Ni0xNTU1LTRlNmUtYjkxMy01ZjQ0MzdjZjgyYTkiLCJuYW1lIjoiNiIsInNvdXJjZSI6
eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJjaGFubmVsIjoxLCJudW1iZXIiOjEsImNoYXJhY3RlciI6MSwiaXNSZWdpc3RlcmVkIjpmYWxzZSwiaXMxNEJpdCI6ZmFsc2Us
Im9zY0FyZ0luZGV4IjowLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoxfSwibW9kZSI6eyJ0eXBlIjoxfSwidGFyZ2V0
Ijp7InR5cGUiOjIsImZ4QW5jaG9yIjoiaWQiLCJ1c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmlldyI6dHJ1ZSwic2Vla1BsYXkiOnRydWV9fV0sImNvbnRyb2xsZXJNYXBw
aW5ncyI6W3siaWQiOiIzMDBjMDdhOC1jYjUwLTQ2OGItOTI0OS0wZTU5ODU5ZDI0NmEiLCJuYW1lIjoiRW5jb2RlciAxIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51
bWJlciI6MCwiY2hhcmFjdGVyIjozLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjB9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7
ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJ1c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmlldyI6dHJ1ZSwic2Vla1BsYXkiOnRydWV9LCJhY3RpdmF0
aW9uVHlwZSI6ImVlbCIsIm1vZGlmaWVyQ29uZGl0aW9uMSI6eyJwYXJhbUluZGV4IjowLCJpc09uIjpmYWxzZX0sImVlbENvbmRpdGlvbiI6InkgPSBwMSA9PSAwIn0s
eyJpZCI6IjA5NDI5M2IwLTZmM2UtNDhiOC04NTNhLWNjMjRjZTU0YzE4NiIsIm5hbWUiOiJFbmNvZGVyIDEgc2hpZnRlZCIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJu
dW1iZXIiOjAsImNoYXJhY3RlciI6MywiaXNSZWdpc3RlcmVkIjpmYWxzZSwiaXMxNEJpdCI6ZmFsc2UsIm9zY0FyZ0luZGV4IjowfSwibW9kZSI6e30sInRhcmdldCI6
eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6MSwidXNlUHJvamVjdCI6dHJ1ZSwibW92ZVZpZXciOnRydWUs
InNlZWtQbGF5Ijp0cnVlfSwiYWN0aXZhdGlvblR5cGUiOiJtb2RpZmllcnMiLCJtb2RpZmllckNvbmRpdGlvbjEiOnsicGFyYW1JbmRleCI6MCwiaXNPbiI6dHJ1ZX0s
ImVlbENvbmRpdGlvbiI6InkgPSBwMSA+IDAifSx7ImlkIjoiNzkxNDQ2ODQtZWMwZi00Zjg2LWFhMzQtMDA3ZjFlZWRhY2E3IiwibmFtZSI6IkludGVybmFsIHNoaWZ0
Iiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MCwiY2hhcmFjdGVyIjoxLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5k
ZXgiOjB9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImZ4QW5jaG9yIjoidGhpcyIsInBhcmFtSW5kZXgiOjEwMCwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwidXNl
UHJvamVjdCI6dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlfX0seyJpZCI6IjlmM2QwZTg2LTEwYTktNGIyNS05OTU4LTcwOWNmMmQ1ZmEwZSIsIm5h
bWUiOiJOb3JtYWwgYnV0dG9uIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6NCwiY2hhcmFjdGVyIjoxLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0
IjpmYWxzZSwib3NjQXJnSW5kZXgiOjB9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVu
dFR5cGUiOiJidXR0b24iLCJ1c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmlldyI6dHJ1ZSwic2Vla1BsYXkiOnRydWV9fSx7ImlkIjoiYjY4ZjM0NGQtYTZlYi00ZDY5LWIy
ODgtNDEzZmU5ZmRlMmZmIiwibmFtZSI6IlR1cmJvIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MSwiY2hhcmFjdGVyIjoxLCJpc1JlZ2lzdGVyZWQiOmZh
bHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjB9LCJtb2RlIjp7Im1pblByZXNzTWlsbGlzIjozMDAsIm1heFByZXNzTWlsbGlzIjo1MDAwLCJmaXJlTW9k
ZSI6InR1cmJvIn0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJv
bEVsZW1lbnRJbmRleCI6MSwidXNlUHJvamVjdCI6dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlfX0seyJpZCI6IjhhNTk2MWEyLWVmYWEtNDJkYy05
YTE4LTQ1NDliYzg5Y2I2YiIsIm5hbWUiOiJEeW5hIHRyYWNrIHZvbHVtZXIiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoxLCJjaGFyYWN0ZXIiOjMsImlz
UmVnaXN0ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOmZhbHNlLCJvc2NBcmdJbmRleCI6MH0sIm1vZGUiOnt9LCJ0YXJnZXQiOnsidHlwZSI6MiwidHJhY2tFeHByZXNzaW9u
IjoicDIgKiA5IiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOjIsInVzZVByb2plY3QiOnRydWUsIm1vdmVWaWV3Ijp0cnVlLCJzZWVrUGxheSI6
dHJ1ZX19LHsiaWQiOiIwMjE1YWU3Mi0wMzk3LTQxMmItOGFlMS01ZjdiMzE4MmQ4NzQiLCJuYW1lIjoiRHluYSB0cmFjayBjaG9vc2VyIiwic291cmNlIjp7ImNoYW5u
ZWwiOjAsIm51bWJlciI6NSwiY2hhcmFjdGVyIjozLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjB9LCJtb2RlIjp7fSwi
dGFyZ2V0Ijp7ImZ4QW5jaG9yIjoidGhpcyIsInBhcmFtSW5kZXgiOjEwMSwiY29udHJvbEVsZW1lbnRJbmRleCI6MiwidXNlUHJvamVjdCI6dHJ1ZSwibW92ZVZpZXci
OnRydWUsInNlZWtQbGF5Ijp0cnVlfX1dLCJhY3RpdmVDb250cm9sbGVySWQiOiJtb2JiaSIsImFjdGl2ZU1haW5QcmVzZXRJZCI6Im1haW5vIiwicGFyYW1ldGVycyI6
eyIwIjp7Im5hbWUiOiJNYWluIGJhbmsifX0sImNvbnRyb2xsZXJQYXJhbWV0ZXJzIjp7IjIiOnsibmFtZSI6Ik1vYmJpLUZha3RvciJ9fX0=
AAAQAAAA
>
FLOATPOS 0 0 0 0
FXID {C0288EB8-381F-4AB5-9DF8-F8C3FAB1526B}
PARM_TCP 0 100 101
WAK 0 0
>
>
<TRACK {DE1E81B3-AC6C-4711-B68A-0584D7EC7A9E}
NAME 2
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
FREEMODE 0
SEL 1
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {DE1E81B3-AC6C-4711-B68A-0584D7EC7A9E}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {00D696C6-E601-446F-A26A-8DB9C448582A}
NAME 3
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1.02027317611992 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {00D696C6-E601-446F-A26A-8DB9C448582A}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {1EA2E335-578B-4D09-B20F-E8455790C635}
NAME 4
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.00157737275174 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {1EA2E335-578B-4D09-B20F-E8455790C635}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {540CF3B2-E311-450A-99B5-78E93737DE57}
NAME 5
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.06479230472236 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {540CF3B2-E311-450A-99B5-78E93737DE57}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {FB79422A-0B76-4CAE-993C-3EDB2ADC26BF}
NAME 6
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {FB79422A-0B76-4CAE-993C-3EDB2ADC26BF}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {7ACB602E-FBAE-49BA-86D5-46FCB35C0C91}
NAME 7
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.49277612740885 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {7ACB602E-FBAE-49BA-86D5-46FCB35C0C91}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {BD49E753-0BA8-4FE8-8E4C-D721F61F6B01}
NAME 8
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {BD49E753-0BA8-4FE8-8E4C-D721F61F6B01}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {B3246830-FA1D-4BE5-BBFF-6549814F5412}
NAME 9
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.02650802062351 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {B3246830-FA1D-4BE5-BBFF-6549814F5412}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {448545F4-7B05-485E-912A-B475B8A4B68B}
NAME 10
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {448545F4-7B05-485E-912A-B475B8A4B68B}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
>
@@ -0,0 +1,204 @@
<REAPER_PROJECT 0.1 "7.30/macOS-arm64" 1751812729
<NOTES 0 2
>
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 129
ENVATTACH 3
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
ENVFADESZ10 40
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 0
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 65792
PANMODE 3
PANLAWFLAGS 3
CURSOR 1.5
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "Media" ""
<RECORD_CFG
ZXZhdxgAAQ==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
ZXZhdxgAAQ==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
BEATLEN 4
FREQ 1760 880 1
SAMPLES "" "" "" ""
SPLIGNORE 0 0
SPLDEF 2 660 "" 0 ""
SPLDEF 3 440 "" 0 ""
PATTERN 0 169
PATTERNSTR ABBB
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0 0 0 0 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1.69336888157165 0 -1 -1 1
MASTER_PANMODE 3
MASTER_PANLAWFLAGS 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {600D7F3B-452A-974C-A254-43FC137533FB}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {A18E4FE5-C21B-C24C-8774-D678D9810763}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {1691C458-9635-AF4A-9A69-2E357FD7714E}
NAME Helgobox
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 3.84221125958619 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 1
REC 1 5088 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {1691C458-9635-AF4A-9A69-2E357FD7714E}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: Helgobox - ReaLearn & Playtime (Helgoboss)" helgobox.vst.dylib 0 "" 1751282284<5653546862726C68656C676F626F7872> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAACiFwAAAQAAAAAAEAA=
eyJtYWluVW5pdCI6eyJ2ZXJzaW9uIjoiMi4xOC4wIiwiaWQiOiJBMmNFQ04waiIsIm5hbWUiOiJNYWluIiwic3RheUFjdGl2ZVdoZW5Qcm9qZWN0SW5CYWNrZ3JvdW5k
IjoiT25seUlmQmFja2dyb3VuZFByb2plY3RJc1J1bm5pbmciLCJsaXZlc09uVXBwZXJGbG9vciI6ZmFsc2UsImNvbnRyb2xEZXZpY2VJZCI6IjM2IiwiZmVlZGJhY2tE
ZXZpY2VJZCI6IjM0IiwiZGVmYXVsdEdyb3VwIjp7fSwiZGVmYXVsdENvbnRyb2xsZXJHcm91cCI6e30sIm1hcHBpbmdzIjpbeyJpZCI6InFlWE13d0RLbnVJdC1CTVJP
QVhvSiIsIm5hbWUiOiJMQ0QgLSBEaXNwbGF5IHRyYWNrIHZvbHVtZSIsInNvdXJjZSI6eyJ0eXBlIjoxMSwibWlkaVNjcmlwdEtpbmQiOiJMdWEiLCJtaWRpU2NyaXB0
IjoibG9jYWwgZWM0ID0gcmVxdWlyZShcImNvbXBhcnRtZW50XCIpLmVjNFxubG9jYWwgdGV4dCA9IHkgb3IgXCJcIlxucmV0dXJuIHtcblx0YWRkcmVzcyA9IDAsXG5c
dG1lc3NhZ2VzID0ge1xuICAgICAgICBlYzQud3JpdGVfdG90YWxfZGlzcGxheShlYzQuZGVmYXVsdF9kZXZpY2VfaWQsIDAsIDIwLCB0ZXh0KSxcbiAgICAgICAgZWM0
LnNob3dfdG90YWxfZGlzcGxheShlYzQuZGVmYXVsdF9kZXZpY2VfaWQsIHRydWUpLFxuICAgIH1cbn1cblxuIiwiYnV0dG9uSW5kZXgiOjAsImJ1dHRvbkRlc2lnbiI6
eyJiYWNrZ3JvdW5kIjp7ImtpbmQiOiJDb2xvciJ9LCJmb3JlZ3JvdW5kIjp7ImtpbmQiOiJOb25lIn0sInN0YXRpY190ZXh0IjoiIn19LCJtb2RlIjp7Im1pblN0ZXBG
YWN0b3IiOjEsIm1heFN0ZXBGYWN0b3IiOjEsImVlbEZlZWRiYWNrVHJhbnNmb3JtYXRpb24iOiJ7eyB0YXJnZXQudGV4dF92YWx1ZSB9fSIsImZlZWRiYWNrVHlwZSI6
MX0sInRhcmdldCI6eyJ0eXBlIjoyLCJmeEFuY2hvciI6InRoaXMiLCJ1c2VTZWxlY3Rpb25HYW5naW5nIjpmYWxzZSwidXNlVHJhY2tHcm91cGluZyI6ZmFsc2UsInNl
ZWtCZWhhdmlvciI6IkltbWVkaWF0ZSIsImxlYXJuYWJsZSI6ZmFsc2UsIm1vdXNlQWN0aW9uIjp7ImtpbmQiOiJNb3ZlVG8iLCJheGlzIjoiWCJ9LCJ0YWtlTWFwcGlu
Z1NuYXBzaG90Ijp7ImtpbmQiOiJCeUlkIiwiaWQiOiIifX0sImFjdGl2YXRpb25UeXBlIjoibW9kaWZpZXJzIiwibW9kaWZpZXJDb25kaXRpb24xIjp7InBhcmFtSW5k
ZXgiOjAsImlzT24iOnRydWV9fSx7ImlkIjoiQXBPdzNxYjUyRHZHc3NwTV81NlRxIiwibmFtZSI6IkxDRCAtIERpc3BsYXkgdHJhY2sgbmFtZSIsInNvdXJjZSI6eyJ0
eXBlIjoxMSwibWlkaVNjcmlwdEtpbmQiOiJMdWEiLCJtaWRpU2NyaXB0IjoibG9jYWwgZWM0ID0gcmVxdWlyZShcImNvbXBhcnRtZW50XCIpLmVjNFxubG9jYWwgdGV4
dCA9IHkgb3IgXCJcIlxucmV0dXJuIHtcblx0YWRkcmVzcyA9IDAsXG5cdG1lc3NhZ2VzID0ge1xuICAgICAgICBlYzQud3JpdGVfdG90YWxfZGlzcGxheShlYzQuZGVm
YXVsdF9kZXZpY2VfaWQsIDAsIDIwLCB0ZXh0KSxcbiAgICAgICAgZWM0LnNob3dfdG90YWxfZGlzcGxheShlYzQuZGVmYXVsdF9kZXZpY2VfaWQsIHRydWUpLFxuICAg
IH1cbn1cblxuIiwiYnV0dG9uSW5kZXgiOjAsImJ1dHRvbkRlc2lnbiI6eyJiYWNrZ3JvdW5kIjp7ImtpbmQiOiJDb2xvciJ9LCJmb3JlZ3JvdW5kIjp7ImtpbmQiOiJO
b25lIn0sInN0YXRpY190ZXh0IjoiIn19LCJtb2RlIjp7Im1pblN0ZXBGYWN0b3IiOjEsIm1heFN0ZXBGYWN0b3IiOjEsImVlbEZlZWRiYWNrVHJhbnNmb3JtYXRpb24i
OiJ7eyB0YXJnZXQudHJhY2submFtZSB9fSIsImZlZWRiYWNrVHlwZSI6MX0sInRhcmdldCI6eyJ0eXBlIjo0NCwiZnhBbmNob3IiOiJ0aGlzIiwidXNlU2VsZWN0aW9u
R2FuZ2luZyI6ZmFsc2UsInVzZVRyYWNrR3JvdXBpbmciOmZhbHNlLCJzZWVrQmVoYXZpb3IiOiJJbW1lZGlhdGUiLCJsZWFybmFibGUiOmZhbHNlLCJtb3VzZUFjdGlv
biI6eyJraW5kIjoiTW92ZVRvIiwiYXhpcyI6IlgifSwidGFrZU1hcHBpbmdTbmFwc2hvdCI6eyJraW5kIjoiQnlJZCIsImlkIjoiIn19LCJhY3RpdmF0aW9uVHlwZSI6
Im1vZGlmaWVycyIsIm1vZGlmaWVyQ29uZGl0aW9uMSI6eyJwYXJhbUluZGV4IjowLCJpc09uIjpmYWxzZX19LHsiaWQiOiI0VG9jTk41cGNWNHcxaTE1NV8wRmQiLCJu
YW1lIjoiRW5jb2RlciAxLzEgLSBTZXQgdHJhY2sgdm9sdW1lIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MzIsImlzUmVnaXN0ZXJlZCI6ZmFsc2UsImlz
MTRCaXQiOmZhbHNlLCJvc2NBcmdJbmRleCI6MCwiYnV0dG9uSW5kZXgiOjAsImJ1dHRvbkRlc2lnbiI6eyJiYWNrZ3JvdW5kIjp7ImtpbmQiOiJDb2xvciJ9LCJmb3Jl
Z3JvdW5kIjp7ImtpbmQiOiJOb25lIn0sInN0YXRpY190ZXh0IjoiIn19LCJtb2RlIjp7Im1heFN0ZXBTaXplIjowLjA1LCJtaW5TdGVwRmFjdG9yIjoxLCJtYXhTdGVw
RmFjdG9yIjo1fSwidGFyZ2V0Ijp7InR5cGUiOjIsImZ4QW5jaG9yIjoiaWQiLCJ1c2VTZWxlY3Rpb25HYW5naW5nIjpmYWxzZSwidXNlVHJhY2tHcm91cGluZyI6ZmFs
c2UsInNlZWtCZWhhdmlvciI6IkltbWVkaWF0ZSIsInVzZVByb2plY3QiOnRydWUsIm1vdmVWaWV3Ijp0cnVlLCJzZWVrUGxheSI6dHJ1ZSwib3NjQXJnSW5kZXgiOjAs
Im1vdXNlQWN0aW9uIjp7ImtpbmQiOiJNb3ZlVG8iLCJheGlzIjoiWCJ9LCJ0YWtlTWFwcGluZ1NuYXBzaG90Ijp7ImtpbmQiOiJMYXN0TG9hZGVkIn19fSx7ImlkIjoi
Yk1FNEsxT2F2T1phLXZfUWF1UXRxIiwibmFtZSI6IkVuY29kZXIgMS8xIC0gU2hvcnRseSBzaG93IHZhbHVlIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6
MzIsImlzUmVnaXN0ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOmZhbHNlLCJvc2NBcmdJbmRleCI6MCwiYnV0dG9uSW5kZXgiOjAsImJ1dHRvbkRlc2lnbiI6eyJiYWNrZ3Jv
dW5kIjp7ImtpbmQiOiJDb2xvciJ9LCJmb3JlZ3JvdW5kIjp7ImtpbmQiOiJOb25lIn0sInN0YXRpY190ZXh0IjoiIn19LCJtb2RlIjp7Im1heFN0ZXBTaXplIjowLjA1
LCJtaW5TdGVwRmFjdG9yIjoxLCJtYXhTdGVwRmFjdG9yIjo1LCJlZWxDb250cm9sVHJhbnNmb3JtYXRpb24iOiIvLyBEZWJvdW5jZTogVHVybnMgdGFyZ2V0IG9uIGFz
IHNvb24gYXMgeW91IHN0YXJ0IG1vdmluZyB0aGUga25vYi9mYWRlci5UdXJucyBpdCBvZmYgc2hvcnRseSBhZnRlciB5b3Ugc3RvcCBtb3ZpbmcuIEdvb2QgZm9yIHRo
ZSBtb3VzZSB0YXJnZXQgdG8gc2ltdWxhdGUgYSBtb3VzZSBkcmFnIGJ1dCBhbHNvIGdvb2Qgd2l0aCBcIlRyYWNrOiBTZXQgYXV0b21hdGlvbiB0b3VjaCBzdGF0ZVwi
IHRhcmdldCB0byBpbXBsZW1lbnQgYXV0b21hdGljIHRvdWNoL3JlbGVhc2Ugd2hlbiB5b3UgZG9uJ3QgaGF2ZSBhIHRvdWNoLXNlbnNpdGl2ZSBmYWRlciBhdCBoYW5k
LlxuXG4vLyBQYXJhbWV0ZXJzXG5cbnRpbWVvdXRfaW5fbXMgPSA1MDA7XG5cbi8vIENvZGVcblxueSA9IHkgIT0gMSA/IChcbiAgICAxXG4pIDogKFxuICAgIHJlbF90
aW1lIDwgdGltZW91dF9pbl9tcyA/IG5vbmUgOiBzdG9wKDApXG4pOyJ9LCJ0YXJnZXQiOnsidHlwZSI6NjMsImZ4QW5jaG9yIjoiaWQiLCJ1c2VTZWxlY3Rpb25HYW5n
aW5nIjpmYWxzZSwidXNlVHJhY2tHcm91cGluZyI6ZmFsc2UsInNlZWtCZWhhdmlvciI6IkltbWVkaWF0ZSIsInVzZVByb2plY3QiOnRydWUsIm1vdmVWaWV3Ijp0cnVl
LCJzZWVrUGxheSI6dHJ1ZSwib3NjQXJnSW5kZXgiOjAsIm1vdXNlQWN0aW9uIjp7ImtpbmQiOiJNb3ZlVG8iLCJheGlzIjoiWCJ9LCJ0YWtlTWFwcGluZ1NuYXBzaG90
Ijp7ImtpbmQiOiJMYXN0TG9hZGVkIn19fV0sIm1haW5Db21tb25MdWEiOiJsb2NhbCBtb2R1bGUgPSB7fVxuXG5tb2R1bGUuZWM0ID0ge31cblxubG9jYWwgZnVuY3Rp
b24gYXBwZW5kX2xpc3QodDEsIHQyKVxuXHRsb2NhbCBuMSA9ICN0MVxuXHRmb3IgaSA9IDEsICN0MiBkb1xuXHRcdHQxW24xICsgaV0gPSB0MltpXVxuXHRlbmRcbmVu
ZFxuXG5sb2NhbCBmdW5jdGlvbiBlbmNvZGVfYXNfdHdvX2J5dGVzKGJ5dGU6IG51bWJlcilcblx0bG9jYWwgbmliYmxlX2hpID0gYml0MzIucnNoaWZ0KGJ5dGUsIDQp
XG5cdGxvY2FsIG5pYmJsZV9sbyA9IGJpdDMyLmJhbmQoYnl0ZSwgMHgwRilcblx0cmV0dXJuIHsgMHgyMCArIG5pYmJsZV9oaSwgMHgxMCArIG5pYmJsZV9sbyB9XG5l
bmRcblxubG9jYWwgZnVuY3Rpb24gdG9fdGV4dF9kYXRhKHRleHQ6IHN0cmluZywgbnVtX2NoYXJzOiBudW1iZXIpXG5cdGxvY2FsIGJ5dGVzID0ge31cblx0aWYgdGV4
dCB+PSBuaWwgdGhlblxuXHRcdGZvciBpID0gMSwgbnVtX2NoYXJzIGRvXG5cdFx0XHRsb2NhbCBjID0gc3RyaW5nLmJ5dGUodGV4dCwgaSlcblx0XHRcdC0tIEZvciBu
b3csIG9ubHkgYWNjZXB0IHRoZSBmb2xsb3dpbmcgaW5wdXQ6IFNQQUNFICgweDIwKSB0byBcIlpcIiAoMHg1QSkgYW5kIFwiYVwiICgweDYxKSB0byBcInpcIiAoMHg3
QSlcblx0XHRcdGxvY2FsIGlzX3ZhbGlkID0gYyB+PSBuaWwgYW5kICgoYyA+PSAweDIwIGFuZCBjIDw9IDB4NUEpIG9yIChjID49IDB4NjEgYW5kIGMgPCAweDdBKSlc
blx0XHRcdGlmIG5vdCBpc192YWxpZCB0aGVuXG5cdFx0XHRcdC0tIFVzZSBzcGFjZSBhcyBmYWxsYmFjayBjaGFyYWN0ZXJcblx0XHRcdFx0YyA9IDB4MjBcblx0XHRc
dGVuZFxuICAgICAgICAgICAgdGFibGUuaW5zZXJ0KGJ5dGVzLCAweDREKVxuXHRcdFx0YXBwZW5kX2xpc3QoYnl0ZXMsIGVuY29kZV9hc190d29fYnl0ZXMoYykpXG5c
dFx0ZW5kXG5cdGVuZFxuXHRyZXR1cm4gYnl0ZXNcbmVuZFxuXG5sb2NhbCBwcmVmaXggPSB7IDB4RjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NEUsIDB4MkMgfVxubG9j
YWwgc3VmZml4ID0geyAweEY3IH1cblxuLS0tIFdyaXRlcyB0ZXh0IHRvIHNpbmdsZSBkaXNwbGF5cy5cbmZ1bmN0aW9uIG1vZHVsZS5lYzQud3JpdGVfY3RybF9kaXNw
bGF5KGRldmljZV9pZDogbnVtYmVyLCBwb3M6IG51bWJlciwgbGVuOiBudW1iZXIsIHRleHQ6IHN0cmluZylcblx0bG9jYWwgbXNnID0ge31cblx0YXBwZW5kX2xpc3Qo
bXNnLCBwcmVmaXgpXG5cdGFwcGVuZF9saXN0KG1zZywgeyAweDEwICsgZGV2aWNlX2lkLCAweDRFLCAweDIyLCAweDEwLCAweDRBIH0pXG4gICAgYXBwZW5kX2xpc3Qo
bXNnLCBlbmNvZGVfYXNfdHdvX2J5dGVzKHBvcykpXG5cdGFwcGVuZF9saXN0KG1zZywgdG9fdGV4dF9kYXRhKHRleHQsIGxlbikpXG5cdGFwcGVuZF9saXN0KG1zZywg
c3VmZml4KVxuXHRyZXR1cm4gbXNnXG5lbmRcblxuLS0tIFdyaXRlcyB0ZXh0IHRvIHRoZSB0b3RhbCBkaXNwbGF5LlxuZnVuY3Rpb24gbW9kdWxlLmVjNC53cml0ZV90
b3RhbF9kaXNwbGF5KGRldmljZV9pZDogbnVtYmVyLCBwb3M6IG51bWJlciwgbGVuOiBudW1iZXIsIHRleHQ6IHN0cmluZylcblx0bG9jYWwgbXNnID0ge31cblx0YXBw
ZW5kX2xpc3QobXNnLCBwcmVmaXgpXG5cdGFwcGVuZF9saXN0KG1zZywgeyAweDEwICsgZGV2aWNlX2lkLCAweDRFLCAweDIyLCAweDEzLCAweDRBIH0pXG4gICAgYXBw
ZW5kX2xpc3QobXNnLCBlbmNvZGVfYXNfdHdvX2J5dGVzKHBvcykpXG5cdGFwcGVuZF9saXN0KG1zZywgdG9fdGV4dF9kYXRhKHRleHQsIGxlbikpXG5cdGFwcGVuZF9s
aXN0KG1zZywgc3VmZml4KVxuXHRyZXR1cm4gbXNnXG5lbmRcblxuLS0tIFNob3dzIG9yIGhpZGVzIHRoZSB0b3RhbCBkaXNwbGF5LlxuZnVuY3Rpb24gbW9kdWxlLmVj
NC5zaG93X3RvdGFsX2Rpc3BsYXkoZGV2aWNlX2lkOiBudW1iZXIsIHNob3c6IGJvb2xlYW4pXG5cdGxvY2FsIG1zZyA9IHt9XG5cdGFwcGVuZF9saXN0KG1zZywgcHJl
Zml4KVxuXHRhcHBlbmRfbGlzdChtc2csIHsgMHgxMCArIGRldmljZV9pZCwgMHg0RSwgMHgyMiwgaWYgc2hvdyB0aGVuIDB4MTQgZWxzZSAweDE1IH0pXG5cdGFwcGVu
ZF9saXN0KG1zZywgc3VmZml4KVxuXHRyZXR1cm4gbXNnXG5lbmRcblxubW9kdWxlLmVjNC5kZWZhdWx0X2RldmljZV9pZCA9IDB4MEJcblxucmV0dXJuIG1vZHVsZSIs
InBhcmFtZXRlcnMiOnsiMCI6eyJuYW1lIjoiU2hvdyB2YWx1ZSJ9fSwiaW5zdGFuY2VGeCI6eyJhZGRyZXNzIjoiRm9jdXNlZCJ9fSwiYWRkaXRpb25hbFVuaXRzIjpb
XX0=
AAAQAAAA
>
FLOAT 292 209 752 674
FXID {A811AA96-45E5-AD4B-972E-34B4024A9545}
WAK 0 0
>
>
>
@@ -0,0 +1,150 @@
<REAPER_PROJECT 0.1 "7.30/macOS-arm64" 1741539596
<NOTES 0 2
>
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 129
ENVATTACH 3
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
ENVFADESZ10 40
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 0
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 65792
PANMODE 3
PANLAWFLAGS 3
CURSOR 9
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "Media" ""
<RECORD_CFG
ZXZhdxgAAQ==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
ZXZhdxgAAQ==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
BEATLEN 4
FREQ 1760 880 1
SAMPLES "" "" "" ""
SPLIGNORE 0 0
SPLDEF 2 660 "" 0 ""
SPLDEF 3 440 "" 0 ""
PATTERN 0 169
PATTERNSTR ABBB
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0 0 0 0 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_PANMODE 3
MASTER_PANLAWFLAGS 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {78B1BA2C-B684-D14A-9303-772C807BDD7F}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {7BFEA823-7C4D-9442-BDCC-1733FA820328}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {DCE653F2-3252-3D4D-91C3-56D73D5C4FEB}
NAME "Helgobox - ReaLearn & Playtime"
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 1
REC 1 5088 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {DCE653F2-3252-3D4D-91C3-56D73D5C4FEB}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: Helgobox - ReaLearn & Playtime (Helgoboss)" helgobox.vst.dylib 0 "" 1751282284<5653546862726C68656C676F626F7872> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAACOAwAAAQAAAAAAEAA=
eyJtYWluVW5pdCI6eyJ2ZXJzaW9uIjoiMi4xOC4wLXByZS4yIiwiaWQiOiJNbWJmX01aTiIsIm5hbWUiOiJNYWluIiwic3RheUFjdGl2ZVdoZW5Qcm9qZWN0SW5CYWNr
Z3JvdW5kIjoiT25seUlmQmFja2dyb3VuZFByb2plY3RJc1J1bm5pbmciLCJsaXZlc09uVXBwZXJGbG9vciI6ZmFsc2UsImNvbnRyb2xEZXZpY2VJZCI6IjM2IiwiZmVl
ZGJhY2tEZXZpY2VJZCI6IjM0IiwiZGVmYXVsdEdyb3VwIjp7fSwiZGVmYXVsdENvbnRyb2xsZXJHcm91cCI6e30sIm1hcHBpbmdzIjpbeyJpZCI6IlFUeTQzZ1k1Vjd1
a21yTVlzZy10LSIsIm5hbWUiOiIxIiwic291cmNlIjp7InR5cGUiOjExLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwibWlkaVNjcmlwdEtpbmQi
OiJMdWEiLCJvc2NBcmdJbmRleCI6MCwiYnV0dG9uSW5kZXgiOjAsImJ1dHRvbkRlc2lnbiI6eyJiYWNrZ3JvdW5kIjp7ImtpbmQiOiJDb2xvciJ9LCJmb3JlZ3JvdW5k
Ijp7ImtpbmQiOiJOb25lIn0sInN0YXRpY190ZXh0IjoiIn19LCJtb2RlIjp7Im1heFN0ZXBTaXplIjowLjA1LCJtaW5TdGVwRmFjdG9yIjoxLCJtYXhTdGVwRmFjdG9y
Ijo1fSwidGFyZ2V0Ijp7InR5cGUiOjUzLCJmeEFuY2hvciI6ImlkIiwidXNlU2VsZWN0aW9uR2FuZ2luZyI6ZmFsc2UsInVzZVRyYWNrR3JvdXBpbmciOmZhbHNlLCJz
ZWVrQmVoYXZpb3IiOiJJbW1lZGlhdGUiLCJ1c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmlldyI6dHJ1ZSwic2Vla1BsYXkiOnRydWUsIm9zY0FyZ0luZGV4IjowLCJtb3Vz
ZUFjdGlvbiI6eyJraW5kIjoiTW92ZVRvIiwiYXhpcyI6IlgifSwidGFrZU1hcHBpbmdTbmFwc2hvdCI6eyJraW5kIjoiTGFzdExvYWRlZCJ9fX1dLCJpbnN0YW5jZUZ4
Ijp7ImFkZHJlc3MiOiJGb2N1c2VkIn19LCJhZGRpdGlvbmFsVW5pdHMiOltdfQ==
AAAQAAAA
>
FLOAT 524 230 752 674
FXID {18F0F3DC-443C-B14F-8F84-A4D4B61E92D6}
WAK 0 0
>
>
>
@@ -0,0 +1,240 @@
<REAPER_PROJECT 0.1 "6.12+dev0617/x64" 1597042320
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 1
ENVATTACH 1
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 1
ZOOM 26.28985354708216 478 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 16 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 0
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {391FA463-0AA3-4E86-A3D5-3E951E4A2A82}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {2826C6CD-B68C-4F7F-AE86-526B122B64FB}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {AD0F27CD-9E93-480A-936F-CAA16F57450A}
NAME "FaderPort Init"
PEAKCOL 16812469
BEAT -1
AUTOMODE 0
VOLPAN 1.15135342746479 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
FREEMODE 0
SEL 0
REC 1 -1 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {AD0F27CD-9E93-480A-936F-CAA16F57450A}
PERF 0
MIDIOUT 64
MAINSEND 1 0
<FXCHAIN
WNDRECT 1067 639 1764 1255
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VST: ReaControlMIDI (Cockos)" reacontrolmidi.dll 0 "" 1919118692<56535472636D64726561636F6E74726F> ""
ZG1jcu5e7f4AAAAAAAAAAMoAAAABAAAAAAAQAA==
/////wAAAAAAAAAAAAAAAAIAAAAiAAAAAQAAAJAkAAAQAAAAACAAAAAAAAAZAAAAQzpcUkVBUEVSXERhdGFcR00ucmVhYmFuawAAAAABAAAAAQAAAAEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAE1ham9yAA0AAAAxMDIwMzQwNTA2MDcAAQAAAAABAAAAAQAAAAMAAAAjAAAAAQAAAAAA
AAAAAAAAAAAAAA==
AAAQAAAA
>
FLOATPOS 0 0 0 0
FXID {5340D3D0-F98A-4D1C-BBAE-0716991F3E70}
WAK 0 0
>
<ITEM
POSITION 0
SNAPOFFS 0
LENGTH 5
LOOP 1
ALLTAKES 0
FADEIN 1 0 0 1 0 0
FADEOUT 1 0 0 1 0 0
MUTE 0 0
SEL 1
IGUID {9C40655F-954B-4B44-9E91-0813F43378EE}
IID 1
NAME "FaderPort Init"
VOLPAN 1 0 1 -1
SOFFS 0 0
PLAYRATE 1 1 0 -1 0 0.0025
CHANMODE 0
GUID {3AE882D6-AB25-49C4-A9E1-5B97C12B0EC8}
<SOURCE MIDI
HASDATA 1 960 QN
CCINTERP 32
POOLEDEVTS {7F31FE26-D75F-4013-A6EC-B53B163A4132}
E 1920 b0 00 06
E 1920 b0 20 27
e 0 91 00 64
e 960 81 00 00
E 267840 b0 7b 00
CCINTERP 32
GUID {A15555D2-6AAE-47B2-B08C-7063BA1FCE41}
IGNTEMPO 0 120 4 4
SRCCOLOR 27
VELLANE 16 148 0
CFGEDITVIEW 0 0.178125 61 12 0 -1 0 0 0 0.5
KEYSNAP 0
TRACKSEL -224
EVTFILTER 0 -1 -1 -1 -1 0 1 0 0 -1 -1 -1 -1 0 -1 0 -1 -1
CFGEDIT 1 0 0 0 0 4 1 0 1 1 1 0.25 301 75 1733 939 0 0 0 6 0 0 0 0 0 0.5 0 0 1 64
>
>
>
<TRACK {01D4C588-FBFE-487F-816B-9CC263BB783B}
NAME ReaLearn
PEAKCOL 18238411
BEAT -1
AUTOMODE 0
VOLPAN 0.78304335735222 -0.936 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
FREEMODE 0
SEL 0
REC 1 -1 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {01D4C588-FBFE-487F-816B-9CC263BB783B}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 720 416 1796 1500
SHOW 2
LASTSEL 1
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" ReaLearn.dll 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAlQcAAAEAAAAAABAA
eyJsZXRNYXRjaGVkRXZlbnRzVGhyb3VnaCI6ZmFsc2UsImxldFVubWF0Y2hlZEV2ZW50c1Rocm91Z2giOnRydWUsImFsd2F5c0F1dG9EZXRlY3RNb2RlIjp0cnVlLCJz
ZW5kRmVlZGJhY2tPbmx5SWZBcm1lZCI6dHJ1ZSwiY29udHJvbERldmljZUlkIjoiMSIsImZlZWRiYWNrRGV2aWNlSWQiOiIyIiwibWFwcGluZ3MiOlt7Im5hbWUiOiJD
b250cm9sIHRyYWNrIHZvbHVtZSB2aWEgZmFkZXIiLCJzb3VyY2UiOnsidHlwZSI6MCwiY2hhbm5lbCI6MCwibnVtYmVyIjowLCJjaGFyYWN0ZXIiOjAsImlzUmVnaXN0
ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOnRydWUsIm1lc3NhZ2UiOjB9LCJtb2RlIjp7InR5cGUiOjAsIm1pblNvdXJjZVZhbHVlIjowLjAsIm1heFNvdXJjZVZhbHVlIjox
LjAsIm1pblRhcmdldFZhbHVlIjowLjAsIm1heFRhcmdldFZhbHVlIjoxLjAsIm1pblRhcmdldEp1bXAiOjAuMCwibWF4VGFyZ2V0SnVtcCI6MS4wLCJtaW5TdGVwU2l6
ZSI6MC4wMSwibWF4U3RlcFNpemUiOjAuMDEsIm1pblByZXNzTWlsbGlzIjowLCJtYXhQcmVzc01pbGxpcyI6MCwiZWVsQ29udHJvbFRyYW5zZm9ybWF0aW9uIjoiIiwi
ZWVsRmVlZGJhY2tUcmFuc2Zvcm1hdGlvbiI6IiIsInJldmVyc2VJc0VuYWJsZWQiOmZhbHNlLCJpZ25vcmVPdXRPZlJhbmdlU291cmNlVmFsdWVzSXNFbmFibGVkIjpm
YWxzZSwicm91bmRUYXJnZXRWYWx1ZSI6ZmFsc2UsInNjYWxlTW9kZUVuYWJsZWQiOmZhbHNlLCJyb3RhdGVJc0VuYWJsZWQiOmZhbHNlfSwidGFyZ2V0Ijp7InR5cGUi
OjIsImNvbW1hbmROYW1lIjpudWxsLCJpbnZvY2F0aW9uVHlwZSI6MCwidHJhY2tHVUlEIjpudWxsLCJ0cmFja05hbWUiOm51bGwsImVuYWJsZU9ubHlJZlRyYWNrSXNT
ZWxlY3RlZCI6ZmFsc2UsImZ4SW5kZXgiOm51bGwsImlzSW5wdXRGeCI6ZmFsc2UsImVuYWJsZU9ubHlJZkZ4SGFzRm9jdXMiOmZhbHNlLCJzZW5kSW5kZXgiOm51bGws
InBhcmFtSW5kZXgiOjAsInNlbGVjdEV4Y2x1c2l2ZWx5IjpmYWxzZX0sImNvbnRyb2xJc0VuYWJsZWQiOnRydWUsImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJu
YW1lIjoiRmVlZGJhY2sgdHJhY2sgdm9sdW1lIHRvIGZhZGVyIiwic291cmNlIjp7InR5cGUiOjAsImNoYW5uZWwiOjAsIm51bWJlciI6MCwiY2hhcmFjdGVyIjowLCJp
c1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0Ijp0cnVlLCJtZXNzYWdlIjowfSwibW9kZSI6eyJ0eXBlIjowLCJtaW5Tb3VyY2VWYWx1ZSI6MC4wLCJtYXhTb3VyY2VW
YWx1ZSI6MC4wNjI1MDM4MTQ5MzAxMTA0OCwibWluVGFyZ2V0VmFsdWUiOjAuMCwibWF4VGFyZ2V0VmFsdWUiOjEuMCwibWluVGFyZ2V0SnVtcCI6MC4wLCJtYXhUYXJn
ZXRKdW1wIjoxLjAsIm1pblN0ZXBTaXplIjowLjAxLCJtYXhTdGVwU2l6ZSI6MC4wMSwibWluUHJlc3NNaWxsaXMiOjAsIm1heFByZXNzTWlsbGlzIjowLCJlZWxDb250
cm9sVHJhbnNmb3JtYXRpb24iOiIiLCJlZWxGZWVkYmFja1RyYW5zZm9ybWF0aW9uIjoiIiwicmV2ZXJzZUlzRW5hYmxlZCI6ZmFsc2UsImlnbm9yZU91dE9mUmFuZ2VT
b3VyY2VWYWx1ZXNJc0VuYWJsZWQiOmZhbHNlLCJyb3VuZFRhcmdldFZhbHVlIjpmYWxzZSwic2NhbGVNb2RlRW5hYmxlZCI6ZmFsc2UsInJvdGF0ZUlzRW5hYmxlZCI6
ZmFsc2V9LCJ0YXJnZXQiOnsidHlwZSI6MiwiY29tbWFuZE5hbWUiOm51bGwsImludm9jYXRpb25UeXBlIjowLCJ0cmFja0dVSUQiOm51bGwsInRyYWNrTmFtZSI6bnVs
bCwiZW5hYmxlT25seUlmVHJhY2tJc1NlbGVjdGVkIjpmYWxzZSwiZnhJbmRleCI6bnVsbCwiaXNJbnB1dEZ4IjpmYWxzZSwiZW5hYmxlT25seUlmRnhIYXNGb2N1cyI6
ZmFsc2UsInNlbmRJbmRleCI6bnVsbCwicGFyYW1JbmRleCI6MCwic2VsZWN0RXhjbHVzaXZlbHkiOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2UsImZlZWRi
YWNrSXNFbmFibGVkIjp0cnVlfV19
AAAQAAAA
>
FLOATPOS 0 0 0 0
FXID {7C9C41BE-731A-4191-8BD2-661E91BD89D8}
WAK 0 0
BYPASS 0 0 0
<VST "VST: ReaControlMIDI (Cockos)" reacontrolmidi.dll 0 "" 1919118692<56535472636D64726561636F6E74726F> ""
ZG1jcu5e7f4AAAAAAAAAAMoAAAABAAAAAAAQAA==
/////wAAAAAAAAAAAAAAAAkAAAAMAAAAAQAAAP8/AAAAIAAAACAAAAAAAAAZAAAAQzpcUkVBUEVSXERhdGFcR00ucmVhYmFuawAAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAE1ham9yAA0AAAAxMDIwMzQwNTA2MDcAAQAAAAAAAAAAAAAAAAoAAAANAAAAAQAAAAAA
AAAAAAAAAAAAAA==
AAAQAAAA
>
FLOAT 2228 513 1341 1163
FXID {67786436-D98E-429A-8935-061C5F7DF9AA}
WAK 0 0
>
>
>
@@ -0,0 +1,165 @@
<REAPER_PROJECT 0.1 "6.12+dev0617/x64" 1598483051
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 1
ENVATTACH 1
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 5.5
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 0
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {391FA463-0AA3-4E86-A3D5-3E951E4A2A82}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {2826C6CD-B68C-4F7F-AE86-526B122B64FB}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {BC3AC144-F1B8-437B-8EFC-066C562988E6}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.18400575897145 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
FREEMODE 0
SEL 1
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 360 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {BC3AC144-F1B8-437B-8EFC-066C562988E6}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 1570 348 1796 1500
SHOW 1
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" realearn.dll 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAlg0AAAEAAAAAABAA
eyJsZXRNYXRjaGVkRXZlbnRzVGhyb3VnaCI6ZmFsc2UsImxldFVubWF0Y2hlZEV2ZW50c1Rocm91Z2giOnRydWUsImFsd2F5c0F1dG9EZXRlY3RNb2RlIjp0cnVlLCJz
ZW5kRmVlZGJhY2tPbmx5SWZBcm1lZCI6dHJ1ZSwiY29udHJvbERldmljZUlkIjoiMTAiLCJmZWVkYmFja0RldmljZUlkIjoiMTEiLCJtYXBwaW5ncyI6W3sibmFtZSI6
Ik9uL29mZiAxIiwic291cmNlIjp7InR5cGUiOjAsImNoYW5uZWwiOjEsIm51bWJlciI6MCwiY2hhcmFjdGVyIjoxLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0
IjpmYWxzZSwibWVzc2FnZSI6MH0sIm1vZGUiOnsidHlwZSI6MiwibWluU291cmNlVmFsdWUiOjAuMCwibWF4U291cmNlVmFsdWUiOjEuMCwibWluVGFyZ2V0VmFsdWUi
OjAuMCwibWF4VGFyZ2V0VmFsdWUiOjEuMCwibWluVGFyZ2V0SnVtcCI6MC4wLCJtYXhUYXJnZXRKdW1wIjoxLjAsIm1pblN0ZXBTaXplIjowLjAxLCJtYXhTdGVwU2l6
ZSI6MC4wMSwibWluUHJlc3NNaWxsaXMiOjAsIm1heFByZXNzTWlsbGlzIjowLCJlZWxDb250cm9sVHJhbnNmb3JtYXRpb24iOiIiLCJlZWxGZWVkYmFja1RyYW5zZm9y
bWF0aW9uIjoiIiwicmV2ZXJzZUlzRW5hYmxlZCI6ZmFsc2UsImlnbm9yZU91dE9mUmFuZ2VTb3VyY2VWYWx1ZXNJc0VuYWJsZWQiOmZhbHNlLCJyb3VuZFRhcmdldFZh
bHVlIjpmYWxzZSwic2NhbGVNb2RlRW5hYmxlZCI6ZmFsc2UsInJvdGF0ZUlzRW5hYmxlZCI6ZmFsc2V9LCJ0YXJnZXQiOnsidHlwZSI6MSwiY29tbWFuZE5hbWUiOm51
bGwsImludm9jYXRpb25UeXBlIjowLCJ0cmFja0dVSUQiOm51bGwsInRyYWNrTmFtZSI6bnVsbCwiZW5hYmxlT25seUlmVHJhY2tJc1NlbGVjdGVkIjpmYWxzZSwiZnhJ
bmRleCI6MCwiaXNJbnB1dEZ4IjpmYWxzZSwiZW5hYmxlT25seUlmRnhIYXNGb2N1cyI6ZmFsc2UsInNlbmRJbmRleCI6bnVsbCwicGFyYW1JbmRleCI6MCwic2VsZWN0
RXhjbHVzaXZlbHkiOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6dHJ1ZSwiZmVlZGJhY2tJc0VuYWJsZWQiOnRydWUsInByZXZlbnRFY2hvRmVlZGJhY2siOmZhbHNl
LCJhY3RpdmF0aW9uVHlwZSI6ImFsd2F5cyIsIm1vZGlmaWVyQ29uZGl0aW9uMSI6eyJwYXJhbUluZGV4IjowLCJpc09uIjpmYWxzZX0sIm1vZGlmaWVyQ29uZGl0aW9u
MiI6eyJwYXJhbUluZGV4IjpudWxsLCJpc09uIjpmYWxzZX0sInByb2dyYW1Db25kaXRpb24iOnsicGFyYW1JbmRleCI6MCwicHJvZ3JhbUluZGV4IjowfSwiZWVsQ29u
ZGl0aW9uIjoiIn0seyJuYW1lIjoiT24vb2ZmIDIiLCJzb3VyY2UiOnsidHlwZSI6MCwiY2hhbm5lbCI6MSwibnVtYmVyIjoxLCJjaGFyYWN0ZXIiOjEsImlzUmVnaXN0
ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOmZhbHNlLCJtZXNzYWdlIjowfSwibW9kZSI6eyJ0eXBlIjoyLCJtaW5Tb3VyY2VWYWx1ZSI6MC4wLCJtYXhTb3VyY2VWYWx1ZSI6
MS4wLCJtaW5UYXJnZXRWYWx1ZSI6MC4wLCJtYXhUYXJnZXRWYWx1ZSI6MS4wLCJtaW5UYXJnZXRKdW1wIjowLjAsIm1heFRhcmdldEp1bXAiOjEuMCwibWluU3RlcFNp
emUiOjAuMDEsIm1heFN0ZXBTaXplIjowLjAxLCJtaW5QcmVzc01pbGxpcyI6MCwibWF4UHJlc3NNaWxsaXMiOjAsImVlbENvbnRyb2xUcmFuc2Zvcm1hdGlvbiI6IiIs
ImVlbEZlZWRiYWNrVHJhbnNmb3JtYXRpb24iOiIiLCJyZXZlcnNlSXNFbmFibGVkIjpmYWxzZSwiaWdub3JlT3V0T2ZSYW5nZVNvdXJjZVZhbHVlc0lzRW5hYmxlZCI6
ZmFsc2UsInJvdW5kVGFyZ2V0VmFsdWUiOmZhbHNlLCJzY2FsZU1vZGVFbmFibGVkIjpmYWxzZSwicm90YXRlSXNFbmFibGVkIjpmYWxzZX0sInRhcmdldCI6eyJ0eXBl
IjoxLCJjb21tYW5kTmFtZSI6bnVsbCwiaW52b2NhdGlvblR5cGUiOjAsInRyYWNrR1VJRCI6bnVsbCwidHJhY2tOYW1lIjpudWxsLCJlbmFibGVPbmx5SWZUcmFja0lz
U2VsZWN0ZWQiOmZhbHNlLCJmeEluZGV4IjowLCJpc0lucHV0RngiOmZhbHNlLCJlbmFibGVPbmx5SWZGeEhhc0ZvY3VzIjpmYWxzZSwic2VuZEluZGV4IjpudWxsLCJw
YXJhbUluZGV4IjoxLCJzZWxlY3RFeGNsdXNpdmVseSI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjp0cnVlLCJmZWVkYmFja0lzRW5hYmxlZCI6dHJ1ZSwicHJldmVu
dEVjaG9GZWVkYmFjayI6ZmFsc2UsImFjdGl2YXRpb25UeXBlIjoiYWx3YXlzIiwibW9kaWZpZXJDb25kaXRpb24xIjp7InBhcmFtSW5kZXgiOjAsImlzT24iOmZhbHNl
fSwibW9kaWZpZXJDb25kaXRpb24yIjp7InBhcmFtSW5kZXgiOm51bGwsImlzT24iOmZhbHNlfSwicHJvZ3JhbUNvbmRpdGlvbiI6eyJwYXJhbUluZGV4IjowLCJwcm9n
cmFtSW5kZXgiOjB9LCJlZWxDb25kaXRpb24iOiIifSx7Im5hbWUiOiJWb2x1bWUiLCJzb3VyY2UiOnsidHlwZSI6MCwiY2hhbm5lbCI6MCwibnVtYmVyIjowLCJjaGFy
YWN0ZXIiOjMsImlzUmVnaXN0ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOmZhbHNlLCJtZXNzYWdlIjowfSwibW9kZSI6eyJ0eXBlIjoxLCJtaW5Tb3VyY2VWYWx1ZSI6MC4w
LCJtYXhTb3VyY2VWYWx1ZSI6MS4wLCJtaW5UYXJnZXRWYWx1ZSI6MC4wLCJtYXhUYXJnZXRWYWx1ZSI6MS4wLCJtaW5UYXJnZXRKdW1wIjowLjAsIm1heFRhcmdldEp1
bXAiOjEuMCwibWluU3RlcFNpemUiOjAuMDEsIm1heFN0ZXBTaXplIjowLjAxLCJtaW5QcmVzc01pbGxpcyI6MCwibWF4UHJlc3NNaWxsaXMiOjAsImVlbENvbnRyb2xU
cmFuc2Zvcm1hdGlvbiI6IiIsImVlbEZlZWRiYWNrVHJhbnNmb3JtYXRpb24iOiIiLCJyZXZlcnNlSXNFbmFibGVkIjpmYWxzZSwiaWdub3JlT3V0T2ZSYW5nZVNvdXJj
ZVZhbHVlc0lzRW5hYmxlZCI6ZmFsc2UsInJvdW5kVGFyZ2V0VmFsdWUiOmZhbHNlLCJzY2FsZU1vZGVFbmFibGVkIjpmYWxzZSwicm90YXRlSXNFbmFibGVkIjpmYWxz
ZX0sInRhcmdldCI6eyJ0eXBlIjoyLCJjb21tYW5kTmFtZSI6bnVsbCwiaW52b2NhdGlvblR5cGUiOjAsInRyYWNrR1VJRCI6bnVsbCwidHJhY2tOYW1lIjpudWxsLCJl
bmFibGVPbmx5SWZUcmFja0lzU2VsZWN0ZWQiOmZhbHNlLCJmeEluZGV4IjowLCJpc0lucHV0RngiOmZhbHNlLCJlbmFibGVPbmx5SWZGeEhhc0ZvY3VzIjpmYWxzZSwi
c2VuZEluZGV4IjpudWxsLCJwYXJhbUluZGV4IjowLCJzZWxlY3RFeGNsdXNpdmVseSI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjp0cnVlLCJmZWVkYmFja0lzRW5h
YmxlZCI6dHJ1ZSwicHJldmVudEVjaG9GZWVkYmFjayI6ZmFsc2UsImFjdGl2YXRpb25UeXBlIjoicHJvZ3JhbSIsIm1vZGlmaWVyQ29uZGl0aW9uMSI6eyJwYXJhbUlu
ZGV4IjowLCJpc09uIjp0cnVlfSwibW9kaWZpZXJDb25kaXRpb24yIjp7InBhcmFtSW5kZXgiOjEsImlzT24iOnRydWV9LCJwcm9ncmFtQ29uZGl0aW9uIjp7InBhcmFt
SW5kZXgiOjUsInByb2dyYW1JbmRleCI6Mzl9LCJlZWxDb25kaXRpb24iOiJ5ID0gcDEgPiAwLjAgJiYgcDIgPT0gMC4wIn1dLCJwYXJhbWV0ZXJzIjp7IjAiOnsidmFs
dWUiOjEuMCwibmFtZSI6bnVsbH19fQ==
AAAQAAAA
>
FLOATPOS 1517 567 1373 1408
FXID {EB254126-9E57-4367-9C99-07C19A39F32C}
PARM_TCP 0 1
WAK 0 0
>
>
>
@@ -0,0 +1,714 @@
<REAPER_PROJECT 0.1 "6.40+dev1102/win64" 1637330625
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 1
ENVATTACH 1
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 0
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
ZXZhdxgAAA==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 0
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 -1 0 0 0 0 0 0 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {ECA908F0-E96E-417C-9E8B-F4592F0E978C}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {0B196264-1233-4A12-AD32-E069AACF2FAC}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {FC3FB5E8-6BB2-42E4-B60F-4560FE1E7F6F}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {FC3FB5E8-6BB2-42E4-B60F-4560FE1E7F6F}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 942 323 1859 1606
SHOW 1
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" realearn.dll 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAGKUAAAEAAAAAABAA
eyJ2ZXJzaW9uIjoiMi4xMS4wLXByZS4xNCIsImlkIjoiTlpoT0pUQ3oiLCJjb250cm9sRGV2aWNlSWQiOiI3IiwiZmVlZGJhY2tEZXZpY2VJZCI6IjgiLCJkZWZhdWx0
R3JvdXAiOnt9LCJkZWZhdWx0Q29udHJvbGxlckdyb3VwIjp7fSwiY29udHJvbGxlckdyb3VwcyI6W3siaWQiOiJmYWRlciIsIm5hbWUiOiJGYWRlciJ9LHsiaWQiOiJ2
LXBvdCIsIm5hbWUiOiJWLVBvdCJ9LHsiaWQiOiJ2LXNlbGVjdCIsIm5hbWUiOiJWLVNlbGVjdCJ9LHsiaWQiOiJmYWRlci10b3VjaCIsIm5hbWUiOiJGYWRlciBUb3Vj
aCJ9LHsiaWQiOiJzZWxlY3QiLCJuYW1lIjoiU2VsZWN0In0seyJpZCI6Im11dGUiLCJuYW1lIjoiTXV0ZSJ9LHsiaWQiOiJzb2xvIiwibmFtZSI6IlNvbG8ifSx7Imlk
IjoicmVjb3JkLXJlYWR5IiwibmFtZSI6IlJlY29yZC1yZWFkeSJ9LHsiaWQiOiJ2LXBvdC1sZWRzIiwibmFtZSI6IlYtUG90IExFRHMifSx7ImlkIjoibGNkIiwibmFt
ZSI6IkxDRCJ9LHsiaWQiOiJtZXRlciIsIm5hbWUiOiJNZXRlciJ9XSwibWFwcGluZ3MiOlt7ImlkIjoiQXJ6UVRucGlrWDV6MXRndmdZZDF4IiwibmFtZSI6IjEiLCJz
b3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoxMDR9LCJtb2RlIjp7Im1heFN0ZXBTaXplIjowLjA1LCJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFy
Z2V0Ijp7InR5cGUiOjIsInRyYWNrR1VJRCI6IkExMzkwQTMxLTBFNEYtNDM0MS1CMzAzLTg5RkYyQzlFMEVEMCIsImZ4QW5jaG9yIjoiaWQiLCJ1c2VQcm9qZWN0Ijp0
cnVlLCJtb3ZlVmlldyI6dHJ1ZSwic2Vla1BsYXkiOnRydWUsIm9zY0FyZ0luZGV4IjowfX0seyJpZCI6IlE2dFB2VEcwY1JmTlk2Vmpvc09BSSIsIm5hbWUiOiIyIiwi
c291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MTA3fSwibW9kZSI6eyJtYXhTdGVwU2l6ZSI6MC4wNSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRh
cmdldCI6eyJ0eXBlIjoyLCJ0cmFja0dVSUQiOiIwRjg2NEY2RC1CRTMwLTQxMUItODA3NS0yN0EwREVGMTE3OTciLCJmeEFuY2hvciI6ImlkIiwidXNlUHJvamVjdCI6
dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlLCJvc2NBcmdJbmRleCI6MH19LHsiaWQiOiJRWmRoTHh1SHVMalBBSzU0V0JNVU4iLCJuYW1lIjoiMyIs
InNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjM1fSwibW9kZSI6eyJtYXhTdGVwU2l6ZSI6MC4wNSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRh
cmdldCI6eyJ0eXBlIjo4LCJ0cmFja0dVSUQiOiJGQTBFQ0EwRi1FNThFLTRDQzYtQkREMS1EOUNCRUIxNjc4RTciLCJmeEFuY2hvciI6ImlkIiwidXNlUHJvamVjdCI6
dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlLCJvc2NBcmdJbmRleCI6MH19LHsiaWQiOiJDVE10NFVDYU03aTdxVUhsVGJIQ3MiLCJuYW1lIjoiNCIs
InNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjkxfSwibW9kZSI6eyJtYXhTdGVwU2l6ZSI6MC4wNSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRh
cmdldCI6eyJ0eXBlIjo3LCJ0cmFja0dVSUQiOiJEMzAwNjI1NS1BOUVELTQ3QjgtODkyQS0yNjEzNEY4NTg3NTEiLCJmeEFuY2hvciI6ImlkIiwidXNlUHJvamVjdCI6
dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlLCJvc2NBcmdJbmRleCI6MH19XSwiY29udHJvbGxlck1hcHBpbmdzIjpbeyJpZCI6Im1haW4vZmFkZXIi
LCJncm91cElkIjoiZmFkZXIiLCJzb3VyY2UiOnsidHlwZSI6MywiY2hhbm5lbCI6OH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRl
Z29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6Im1haW4vZmFkZXIiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJp
ZCI6ImpvZyIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjYwLCJjaGFyYWN0ZXIiOjIsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6eyJmZWVkYmFja0NvbG9y
IjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4Ijoiam9nIiwicG9sbEZvckZlZWRi
YWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6Im1haW4vZmFkZXIvdG91Y2giLCJncm91cElkIjoiZmFkZXItdG91Y2giLCJzb3VyY2Ui
OnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoxMTJ9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFs
IiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJtYWluL2ZhZGVyL3RvdWNoIiwicG9sbEZv
ckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6Im1hcmtlciIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1i
ZXIiOjg0fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxl
bWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoibWFya2VyIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJyZWFkIiwic291cmNl
Ijp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6NzR9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFs
IiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJyZWFkIiwicG9sbEZvckZlZWRiYWNrIjpm
YWxzZX19LHsiaWQiOiJ3cml0ZSIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjc1fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwi
dGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4
Ijoid3JpdGUiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNoLWxlZnQiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo0OH0s
Im1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBl
IjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoLWxlZnQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNoLXJpZ2h0Iiwic291cmNlIjp7
InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6NDl9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwi
ZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaC1yaWdodCIsInBvbGxGb3JGZWVkYmFjayI6
ZmFsc2V9fSx7ImlkIjoiYmFuay1sZWZ0Iiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6NDZ9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51
bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50
SW5kZXgiOiJiYW5rLWxlZnQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImJhbmstcmlnaHQiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwi
bnVtYmVyIjo0N30sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJv
bEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImJhbmstcmlnaHQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6InJld2lu
ZCIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjkxfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5
IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoicmV3aW5kIiwicG9sbEZv
ckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJmYXN0LWZ3ZCIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjkyfSwibW9kZSI6eyJmZWVkYmFj
a0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250
cm9sRWxlbWVudEluZGV4IjoiZmFzdC1md2QiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6InBsYXkiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6
MCwibnVtYmVyIjo5NH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29u
dHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6InBsYXkiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6InN0b3AiLCJz
b3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo5M30sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZp
cnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6InN0b3AiLCJwb2xsRm9yRmVlZGJh
Y2siOmZhbHNlfX0seyJpZCI6InJlY29yZCIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjk1fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpu
dWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVu
dEluZGV4IjoicmVjb3JkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjeWNsZSIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIi
Ojg2fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVu
dFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY3ljbGUiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6Inpvb20iLCJzb3VyY2UiOnsi
dHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoxMDB9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwi
ZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJ6b29tIiwicG9sbEZvckZlZWRiYWNrIjpmYWxz
ZX19LHsiaWQiOiJzY3J1YiIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjEwMX0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRh
cmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6
InNjcnViIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjdXJzb3ItbGVmdCIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjk4
fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5
cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY3Vyc29yLWxlZnQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImN1cnNvci1yaWdodCIs
InNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjk5fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5Ijoi
dmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY3Vyc29yLXJpZ2h0IiwicG9s
bEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjdXJzb3ItdXAiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo5Nn0sIm1vZGUiOnsiZmVl
ZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwi
Y29udHJvbEVsZW1lbnRJbmRleCI6ImN1cnNvci11cCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY3Vyc29yLWRvd24iLCJzb3VyY2UiOnsidHlwZSI6
MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo5N30sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hv
ciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImN1cnNvci1kb3duIiwicG9sbEZvckZlZWRiYWNrIjpmYWxz
ZX19LHsiaWQiOiJudWRnZSIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjg1fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFy
Z2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4Ijoi
bnVkZ2UiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImRyb3AiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo4N30sIm1vZGUi
OnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0
dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImRyb3AiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6InJlcGxhY2UiLCJzb3VyY2UiOnsidHlwZSI6MSwi
Y2hhbm5lbCI6MCwibnVtYmVyIjo4OH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6
ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6InJlcGxhY2UiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJp
ZCI6ImNsaWNrIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6ODl9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsi
Y2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjbGljayIs
InBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoic29sbyIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjkwfSwibW9kZSI6eyJmZWVk
YmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJj
b250cm9sRWxlbWVudEluZGV4Ijoic29sbyIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiZjEiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwi
bnVtYmVyIjo1NH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJv
bEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImYxIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJmMiIsInNvdXJjZSI6
eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjU1fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIs
ImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiZjIiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNl
fX0seyJpZCI6ImYzIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6NTZ9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQi
OnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJmMyIs
InBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiZjQiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo1N30sIm1vZGUiOnsiZmVlZGJh
Y2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29u
dHJvbEVsZW1lbnRJbmRleCI6ImY0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJmNSIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1i
ZXIiOjU4fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxl
bWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiZjUiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImY2Iiwic291cmNlIjp7InR5
cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6NTl9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhB
bmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJmNiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7
ImlkIjoic21wdGUtYmVhdHMiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo1M30sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRh
cmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6
InNtcHRlLWJlYXRzIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJsY2QvYXNzaWdubWVudCIsImdyb3VwSWQiOiJsY2QiLCJzb3VyY2UiOnsidHlwZSI6
MTIsImRpc3BsYXlUeXBlIjoibWFja2llLXNldmVuIn0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJm
eEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImxjZC9hc3NpZ25tZW50IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNvbnRyb2xJc0VuYWJsZWQi
OmZhbHNlfSx7ImlkIjoibGNkL3RpbWVjb2RlIiwiZ3JvdXBJZCI6ImxjZCIsInNvdXJjZSI6eyJ0eXBlIjoxMiwiZGlzcGxheVR5cGUiOiJtYWNraWUtc2V2ZW4iLCJk
aXNwbGF5SWQiOjJ9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRy
b2xFbGVtZW50SW5kZXgiOiJsY2QvdGltZWNvZGUiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDEvdi1z
ZWxlY3QiLCJncm91cElkIjoidi1zZWxlY3QiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjozMn0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6
bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1l
bnRJbmRleCI6ImNoMS92LXNlbGVjdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDEvZmFkZXIvdG91
Y2giLCJncm91cElkIjoiZmFkZXItdG91Y2giLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoxMDR9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3Ii
Om51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVt
ZW50SW5kZXgiOiJjaDEvZmFkZXIvdG91Y2giLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2gxL3NlbGVj
dCIsImdyb3VwSWQiOiJzZWxlY3QiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoyNH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0s
InRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRl
eCI6ImNoMS9zZWxlY3QiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNoMS9mYWRlciIsImdyb3VwSWQiOiJmYWRlciIsInNvdXJjZSI6eyJ0eXBlIjoz
LCJjaGFubmVsIjowfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250
cm9sRWxlbWVudEluZGV4IjoiY2gxL2ZhZGVyIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjaDEvdi1wb3QvY29udHJvbCIsImdyb3VwSWQiOiJ2LXBv
dCIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjE2LCJjaGFyYWN0ZXIiOjQsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6eyJtYXhTdGVwU2l6ZSI6MS4wLCJm
ZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gxL3Yt
cG90IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoMS92LXBvdC93cmFwIiwiZ3JvdXBJZCI6InYtcG90
LWxlZHMiLCJzb3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzAgWzAwMTAgZGNiYV0ifSwibW9kZSI6eyJtYXhTb3VyY2VWYWx1ZSI6MC43NSwi
ZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoMS92
LXBvdC93cmFwIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNvbnRyb2xJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2gxL3YtcG90L2Jvb3N0LWN1dCIsImdyb3Vw
SWQiOiJ2LXBvdC1sZWRzIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkIwIDMwIFswMDAxIGRjYmFdIn0sIm1vZGUiOnsibWluU291cmNlVmFs
dWUiOjAuMDUsIm1heFNvdXJjZVZhbHVlIjowLjc1LCJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoi
aWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gxL3YtcG90L2Jvb3N0LWN1dCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxz
ZX0seyJpZCI6ImNoMS92LXBvdC9zaW5nbGUiLCJncm91cElkIjoidi1wb3QtbGVkcyIsInNvdXJjZSI6eyJ0eXBlIjoxMCwicmF3TWlkaVBhdHRlcm4iOiJCMCAzMCBb
MDAwMCBkY2JhXSJ9LCJtb2RlIjp7Im1heFNvdXJjZVZhbHVlIjowLjc1LCJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIs
ImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gxL3YtcG90L3NpbmdsZSIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFi
bGVkIjpmYWxzZX0seyJpZCI6ImNoMS92LXBvdC9zcHJlYWQiLCJncm91cElkIjoidi1wb3QtbGVkcyIsInNvdXJjZSI6eyJ0eXBlIjoxMCwicmF3TWlkaVBhdHRlcm4i
OiJCMCAzMCBbMDAxMSBkY2JhXSJ9LCJtb2RlIjp7Im1heFNvdXJjZVZhbHVlIjowLjQsImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2
aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDEvdi1wb3Qvc3ByZWFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNvbnRy
b2xJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2gxL211dGUiLCJncm91cElkIjoibXV0ZSIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjE2
fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5
cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gxL211dGUiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNoMS9zb2xvIiwiZ3JvdXBJ
ZCI6InNvbG8iLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo4fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNh
dGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gxL3NvbG8i
LCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNoMS9yZWNvcmQtcmVhZHkiLCJncm91cElkIjoicmVjb3JkLXJlYWR5Iiwic291cmNlIjp7InR5cGUiOjEs
ImNoYW5uZWwiOjAsIm51bWJlciI6MH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6
ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoMS9yZWNvcmQtcmVhZHkiLCJwb2xsRm9yRmVlZGJhY2siOmZh
bHNlfX0seyJpZCI6ImNoMS9sY2QvbGluZTEiLCJncm91cElkIjoibGNkIiwic291cmNlIjp7InR5cGUiOjEyLCJkaXNwbGF5SWQiOjAsImxpbmUiOjB9LCJtb2RlIjp7
ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDEv
bGNkL2xpbmUxIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNvbnRyb2xJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2gxL2xjZC9saW5lMiIsImdyb3VwSWQiOiJs
Y2QiLCJzb3VyY2UiOnsidHlwZSI6MTIsImRpc3BsYXlJZCI6MCwibGluZSI6MX0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29y
eSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoMS9sY2QvbGluZTIiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29u
dHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDEvbWV0ZXIvcGVhayIsImdyb3VwSWQiOiJtZXRlciIsInNvdXJjZSI6eyJ0eXBlIjoxMCwicmF3TWlkaVBhdHRl
cm4iOiJEMCBbMDAwMCBkY2JhXSJ9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJp
ZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDEvbWV0ZXIvcGVhayIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJp
ZCI6ImNoMi92LXNlbGVjdCIsImdyb3VwSWQiOiJ2LXNlbGVjdCIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjMzfSwibW9kZSI6eyJmZWVk
YmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJj
b250cm9sRWxlbWVudEluZGV4IjoiY2gyL3Ytc2VsZWN0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNo
Mi9mYWRlci90b3VjaCIsImdyb3VwSWQiOiJmYWRlci10b3VjaCIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjEwNX0sIm1vZGUiOnsiZmVl
ZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwi
Y29udHJvbEVsZW1lbnRJbmRleCI6ImNoMi9mYWRlci90b3VjaCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQi
OiJjaDIvc2VsZWN0IiwiZ3JvdXBJZCI6InNlbGVjdCIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjI1fSwibW9kZSI6eyJmZWVkYmFja0Nv
bG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9s
RWxlbWVudEluZGV4IjoiY2gyL3NlbGVjdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2gyL2ZhZGVyIiwiZ3JvdXBJZCI6ImZhZGVyIiwic291cmNl
Ijp7InR5cGUiOjMsImNoYW5uZWwiOjF9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3Ii
OiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDIvZmFkZXIiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNoMi92LXBvdC9jb250cm9sIiwiZ3Jv
dXBJZCI6InYtcG90Iiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MTcsImNoYXJhY3RlciI6NCwiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7Im1heFN0ZXBT
aXplIjoxLjAsImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5k
ZXgiOiJjaDIvdi1wb3QiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2gyL3YtcG90L3dyYXAiLCJncm91
cElkIjoidi1wb3QtbGVkcyIsInNvdXJjZSI6eyJ0eXBlIjoxMCwicmF3TWlkaVBhdHRlcm4iOiJCMCAzMSBbMDAxMCBkY2JhXSJ9LCJtb2RlIjp7Im1heFNvdXJjZVZh
bHVlIjowLjc1LCJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudElu
ZGV4IjoiY2gyL3YtcG90L3dyYXAiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDIvdi1wb3QvYm9vc3Qt
Y3V0IiwiZ3JvdXBJZCI6InYtcG90LWxlZHMiLCJzb3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzEgWzAwMDEgZGNiYV0ifSwibW9kZSI6eyJt
aW5Tb3VyY2VWYWx1ZSI6MC4wNSwibWF4U291cmNlVmFsdWUiOjAuNzUsImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwi
ZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDIvdi1wb3QvYm9vc3QtY3V0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNvbnRyb2xJc0Vu
YWJsZWQiOmZhbHNlfSx7ImlkIjoiY2gyL3YtcG90L3NpbmdsZSIsImdyb3VwSWQiOiJ2LXBvdC1sZWRzIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVy
biI6IkIwIDMxIFswMDAwIGRjYmFdIn0sIm1vZGUiOnsibWF4U291cmNlVmFsdWUiOjAuNzUsImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnki
OiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDIvdi1wb3Qvc2luZ2xlIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNv
bnRyb2xJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2gyL3YtcG90L3NwcmVhZCIsImdyb3VwSWQiOiJ2LXBvdC1sZWRzIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdN
aWRpUGF0dGVybiI6IkIwIDMxIFswMDExIGRjYmFdIn0sIm1vZGUiOnsibWF4U291cmNlVmFsdWUiOjAuNCwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJj
YXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoMi92LXBvdC9zcHJlYWQiLCJwb2xsRm9yRmVlZGJhY2siOmZh
bHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDIvbXV0ZSIsImdyb3VwSWQiOiJtdXRlIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAs
Im51bWJlciI6MTd9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRy
b2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDIvbXV0ZSIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2gyL3Nv
bG8iLCJncm91cElkIjoic29sbyIsInNvdXJjZSI6eyJ0eXBlIjoxLCJjaGFubmVsIjowLCJudW1iZXIiOjl9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0
YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgi
OiJjaDIvc29sbyIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2gyL3JlY29yZC1yZWFkeSIsImdyb3VwSWQiOiJyZWNvcmQtcmVhZHkiLCJzb3VyY2Ui
OnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoxfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIs
ImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gyL3JlY29yZC1yZWFkeSIsInBvbGxGb3JG
ZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2gyL2xjZC9saW5lMSIsImdyb3VwSWQiOiJsY2QiLCJzb3VyY2UiOnsidHlwZSI6MTIsImRpc3BsYXlJZCI6MSwibGluZSI6
MH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJ
bmRleCI6ImNoMi9sY2QvbGluZTEiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDIvbGNkL2xpbmUyIiwi
Z3JvdXBJZCI6ImxjZCIsInNvdXJjZSI6eyJ0eXBlIjoxMiwiZGlzcGxheUlkIjoxLCJsaW5lIjoxfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0
Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gyL2xjZC9saW5lMiIsInBvbGxGb3JGZWVkYmFjayI6
ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoMi9tZXRlci9wZWFrIiwiZ3JvdXBJZCI6Im1ldGVyIiwic291cmNlIjp7InR5cGUiOjEwLCJy
YXdNaWRpUGF0dGVybiI6IkQwIFswMDAxIGRjYmFdIn0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJm
eEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoMi9tZXRlci9wZWFrIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNvbnRyb2xJc0VuYWJsZWQi
OmZhbHNlfSx7ImlkIjoiY2gzL3Ytc2VsZWN0IiwiZ3JvdXBJZCI6InYtc2VsZWN0Iiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MzR9LCJt
b2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6
ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDMvdi1zZWxlY3QiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNl
fSx7ImlkIjoiY2gzL2ZhZGVyL3RvdWNoIiwiZ3JvdXBJZCI6ImZhZGVyLXRvdWNoIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MTA2fSwi
bW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUi
OiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gzL2ZhZGVyL3RvdWNoIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpm
YWxzZX0seyJpZCI6ImNoMy9zZWxlY3QiLCJncm91cElkIjoic2VsZWN0Iiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MjZ9LCJtb2RlIjp7
ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRv
biIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDMvc2VsZWN0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjaDMvZmFkZXIiLCJncm91cElkIjoiZmFk
ZXIiLCJzb3VyY2UiOnsidHlwZSI6MywiY2hhbm5lbCI6Mn0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwi
LCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoMy9mYWRlciIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2gzL3YtcG90L2Nv
bnRyb2wiLCJncm91cElkIjoidi1wb3QiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoxOCwiY2hhcmFjdGVyIjo0LCJpczE0Qml0IjpmYWxzZX0sIm1vZGUi
OnsibWF4U3RlcFNpemUiOjEuMCwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJv
bEVsZW1lbnRJbmRleCI6ImNoMy92LXBvdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDMvdi1wb3Qv
d3JhcCIsImdyb3VwSWQiOiJ2LXBvdC1sZWRzIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkIwIDMyIFswMDEwIGRjYmFdIn0sIm1vZGUiOnsi
bWF4U291cmNlVmFsdWUiOjAuNzUsImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRy
b2xFbGVtZW50SW5kZXgiOiJjaDMvdi1wb3Qvd3JhcCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoMy92
LXBvdC9ib29zdC1jdXQiLCJncm91cElkIjoidi1wb3QtbGVkcyIsInNvdXJjZSI6eyJ0eXBlIjoxMCwicmF3TWlkaVBhdHRlcm4iOiJCMCAzMiBbMDAwMSBkY2JhXSJ9
LCJtb2RlIjp7Im1pblNvdXJjZVZhbHVlIjowLjA1LCJtYXhTb3VyY2VWYWx1ZSI6MC43NSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6
InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoMy92LXBvdC9ib29zdC1jdXQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwi
Y29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDMvdi1wb3Qvc2luZ2xlIiwiZ3JvdXBJZCI6InYtcG90LWxlZHMiLCJzb3VyY2UiOnsidHlwZSI6MTAsInJh
d01pZGlQYXR0ZXJuIjoiQjAgMzIgWzAwMDAgZGNiYV0ifSwibW9kZSI6eyJtYXhTb3VyY2VWYWx1ZSI6MC43NSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6
eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoMy92LXBvdC9zaW5nbGUiLCJwb2xsRm9yRmVlZGJhY2si
OmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDMvdi1wb3Qvc3ByZWFkIiwiZ3JvdXBJZCI6InYtcG90LWxlZHMiLCJzb3VyY2UiOnsidHlw
ZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzIgWzAwMTEgZGNiYV0ifSwibW9kZSI6eyJtYXhTb3VyY2VWYWx1ZSI6MC40LCJmZWVkYmFja0NvbG9yIjpudWxsfSwi
dGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gzL3YtcG90L3NwcmVhZCIsInBvbGxGb3JG
ZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoMy9tdXRlIiwiZ3JvdXBJZCI6Im11dGUiLCJzb3VyY2UiOnsidHlwZSI6MSwi
Y2hhbm5lbCI6MCwibnVtYmVyIjoxOH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6
ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoMy9tdXRlIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsi
aWQiOiJjaDMvc29sbyIsImdyb3VwSWQiOiJzb2xvIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MTB9LCJtb2RlIjp7ImZlZWRiYWNrQ29s
b3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xF
bGVtZW50SW5kZXgiOiJjaDMvc29sbyIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2gzL3JlY29yZC1yZWFkeSIsImdyb3VwSWQiOiJyZWNvcmQtcmVh
ZHkiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoyfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5
IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gzL3JlY29yZC1yZWFk
eSIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2gzL2xjZC9saW5lMSIsImdyb3VwSWQiOiJsY2QiLCJzb3VyY2UiOnsidHlwZSI6MTIsImRpc3BsYXlJ
ZCI6MiwibGluZSI6MH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29u
dHJvbEVsZW1lbnRJbmRleCI6ImNoMy9sY2QvbGluZTEiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDMv
bGNkL2xpbmUyIiwiZ3JvdXBJZCI6ImxjZCIsInNvdXJjZSI6eyJ0eXBlIjoxMiwiZGlzcGxheUlkIjoyLCJsaW5lIjoxfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpu
dWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gzL2xjZC9saW5lMiIsInBvbGxG
b3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoMy9tZXRlci9wZWFrIiwiZ3JvdXBJZCI6Im1ldGVyIiwic291cmNlIjp7
InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkQwIFswMDEwIGRjYmFdIn0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6
InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoMy9tZXRlci9wZWFrIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNvbnRy
b2xJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2g0L3Ytc2VsZWN0IiwiZ3JvdXBJZCI6InYtc2VsZWN0Iiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51
bWJlciI6MzV9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xF
bGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDQvdi1zZWxlY3QiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJc0Vu
YWJsZWQiOmZhbHNlfSx7ImlkIjoiY2g0L2ZhZGVyL3RvdWNoIiwiZ3JvdXBJZCI6ImZhZGVyLXRvdWNoIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51
bWJlciI6MTA3fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9s
RWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g0L2ZhZGVyL3RvdWNoIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNr
SXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNC9zZWxlY3QiLCJncm91cElkIjoic2VsZWN0Iiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6
Mjd9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50
VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDQvc2VsZWN0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjaDQvZmFkZXIiLCJn
cm91cElkIjoiZmFkZXIiLCJzb3VyY2UiOnsidHlwZSI6MywiY2hhbm5lbCI6M30sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29y
eSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNC9mYWRlciIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoi
Y2g0L3YtcG90L2NvbnRyb2wiLCJncm91cElkIjoidi1wb3QiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoxOSwiY2hhcmFjdGVyIjo0LCJpczE0Qml0Ijpm
YWxzZX0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjEuMCwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6
ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNC92LXBvdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQi
OiJjaDQvdi1wb3Qvd3JhcCIsImdyb3VwSWQiOiJ2LXBvdC1sZWRzIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkIwIDMzIFswMDEwIGRjYmFd
In0sIm1vZGUiOnsibWF4U291cmNlVmFsdWUiOjAuNzUsImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3Ii
OiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDQvdi1wb3Qvd3JhcCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0s
eyJpZCI6ImNoNC92LXBvdC9ib29zdC1jdXQiLCJncm91cElkIjoidi1wb3QtbGVkcyIsInNvdXJjZSI6eyJ0eXBlIjoxMCwicmF3TWlkaVBhdHRlcm4iOiJCMCAzMyBb
MDAwMSBkY2JhXSJ9LCJtb2RlIjp7Im1pblNvdXJjZVZhbHVlIjowLjA1LCJtYXhTb3VyY2VWYWx1ZSI6MC43NSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6
eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNC92LXBvdC9ib29zdC1jdXQiLCJwb2xsRm9yRmVlZGJh
Y2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDQvdi1wb3Qvc2luZ2xlIiwiZ3JvdXBJZCI6InYtcG90LWxlZHMiLCJzb3VyY2UiOnsi
dHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzMgWzAwMDAgZGNiYV0ifSwibW9kZSI6eyJtYXhTb3VyY2VWYWx1ZSI6MC43NSwiZmVlZGJhY2tDb2xvciI6bnVs
bH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNC92LXBvdC9zaW5nbGUiLCJwb2xs
Rm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDQvdi1wb3Qvc3ByZWFkIiwiZ3JvdXBJZCI6InYtcG90LWxlZHMiLCJz
b3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzMgWzAwMTEgZGNiYV0ifSwibW9kZSI6eyJtYXhTb3VyY2VWYWx1ZSI6MC40LCJmZWVkYmFja0Nv
bG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g0L3YtcG90L3NwcmVh
ZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNC9tdXRlIiwiZ3JvdXBJZCI6Im11dGUiLCJzb3VyY2Ui
OnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoxOX0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwi
LCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNC9tdXRlIiwicG9sbEZvckZlZWRiYWNr
IjpmYWxzZX19LHsiaWQiOiJjaDQvc29sbyIsImdyb3VwSWQiOiJzb2xvIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MTF9LCJtb2RlIjp7
ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRv
biIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDQvc29sbyIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g0L3JlY29yZC1yZWFkeSIsImdyb3VwSWQi
OiJyZWNvcmQtcmVhZHkiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjozfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0
Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g0
L3JlY29yZC1yZWFkeSIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g0L2xjZC9saW5lMSIsImdyb3VwSWQiOiJsY2QiLCJzb3VyY2UiOnsidHlwZSI6
MTIsImRpc3BsYXlJZCI6MywibGluZSI6MH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hv
ciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNC9sY2QvbGluZTEiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9
LHsiaWQiOiJjaDQvbGNkL2xpbmUyIiwiZ3JvdXBJZCI6ImxjZCIsInNvdXJjZSI6eyJ0eXBlIjoxMiwiZGlzcGxheUlkIjozLCJsaW5lIjoxfSwibW9kZSI6eyJmZWVk
YmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g0L2xjZC9s
aW5lMiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNC9tZXRlci9wZWFrIiwiZ3JvdXBJZCI6Im1ldGVy
Iiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkQwIFswMDExIGRjYmFdIn0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6
eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNC9tZXRlci9wZWFrIiwicG9sbEZvckZlZWRiYWNrIjpm
YWxzZX0sImNvbnRyb2xJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2g1L3Ytc2VsZWN0IiwiZ3JvdXBJZCI6InYtc2VsZWN0Iiwic291cmNlIjp7InR5cGUiOjEsImNo
YW5uZWwiOjAsIm51bWJlciI6MzZ9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJp
ZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDUvdi1zZWxlY3QiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwi
ZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2g1L2ZhZGVyL3RvdWNoIiwiZ3JvdXBJZCI6ImZhZGVyLXRvdWNoIiwic291cmNlIjp7InR5cGUiOjEsImNo
YW5uZWwiOjAsIm51bWJlciI6MTA4fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoi
aWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g1L2ZhZGVyL3RvdWNoIiwicG9sbEZvckZlZWRiYWNrIjpmYWxz
ZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNS9zZWxlY3QiLCJncm91cElkIjoic2VsZWN0Iiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwi
OjAsIm51bWJlciI6Mjh9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNv
bnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDUvc2VsZWN0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJj
aDUvZmFkZXIiLCJncm91cElkIjoiZmFkZXIiLCJzb3VyY2UiOnsidHlwZSI6MywiY2hhbm5lbCI6NH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdl
dCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNS9mYWRlciIsInBvbGxGb3JGZWVkYmFjayI6ZmFs
c2V9fSx7ImlkIjoiY2g1L3YtcG90L2NvbnRyb2wiLCJncm91cElkIjoidi1wb3QiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoyMCwiY2hhcmFjdGVyIjo0
LCJpczE0Qml0IjpmYWxzZX0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjEuMCwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwi
LCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNS92LXBvdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxlZCI6
ZmFsc2V9LHsiaWQiOiJjaDUvdi1wb3Qvd3JhcCIsImdyb3VwSWQiOiJ2LXBvdC1sZWRzIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkIwIDM0
IFswMDEwIGRjYmFdIn0sIm1vZGUiOnsibWF4U291cmNlVmFsdWUiOjAuNzUsImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFs
IiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDUvdi1wb3Qvd3JhcCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFi
bGVkIjpmYWxzZX0seyJpZCI6ImNoNS92LXBvdC9ib29zdC1jdXQiLCJncm91cElkIjoidi1wb3QtbGVkcyIsInNvdXJjZSI6eyJ0eXBlIjoxMCwicmF3TWlkaVBhdHRl
cm4iOiJCMCAzNCBbMDAwMSBkY2JhXSJ9LCJtb2RlIjp7Im1pblNvdXJjZVZhbHVlIjowLjA1LCJtYXhTb3VyY2VWYWx1ZSI6MC43NSwiZmVlZGJhY2tDb2xvciI6bnVs
bH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNS92LXBvdC9ib29zdC1jdXQiLCJw
b2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDUvdi1wb3Qvc2luZ2xlIiwiZ3JvdXBJZCI6InYtcG90LWxlZHMi
LCJzb3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzQgWzAwMDAgZGNiYV0ifSwibW9kZSI6eyJtYXhTb3VyY2VWYWx1ZSI6MC43NSwiZmVlZGJh
Y2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNS92LXBvdC9z
aW5nbGUiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDUvdi1wb3Qvc3ByZWFkIiwiZ3JvdXBJZCI6InYt
cG90LWxlZHMiLCJzb3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzQgWzAwMTEgZGNiYV0ifSwibW9kZSI6eyJtYXhTb3VyY2VWYWx1ZSI6MC40
LCJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g1
L3YtcG90L3NwcmVhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNS9tdXRlIiwiZ3JvdXBJZCI6Im11
dGUiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoyMH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29y
eSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNS9tdXRlIiwicG9s
bEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjaDUvc29sbyIsImdyb3VwSWQiOiJzb2xvIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6
MTJ9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50
VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDUvc29sbyIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g1L3JlY29yZC1yZWFk
eSIsImdyb3VwSWQiOiJyZWNvcmQtcmVhZHkiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo0fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpu
dWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVu
dEluZGV4IjoiY2g1L3JlY29yZC1yZWFkeSIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g1L2xjZC9saW5lMSIsImdyb3VwSWQiOiJsY2QiLCJzb3Vy
Y2UiOnsidHlwZSI6MTIsImRpc3BsYXlJZCI6NCwibGluZSI6MH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1
YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNS9sY2QvbGluZTEiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5h
YmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDUvbGNkL2xpbmUyIiwiZ3JvdXBJZCI6ImxjZCIsInNvdXJjZSI6eyJ0eXBlIjoxMiwiZGlzcGxheUlkIjo0LCJsaW5lIjoxfSwi
bW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4
IjoiY2g1L2xjZC9saW5lMiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNS9tZXRlci9wZWFrIiwiZ3Jv
dXBJZCI6Im1ldGVyIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkQwIFswMTAwIGRjYmFdIn0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVs
bH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNS9tZXRlci9wZWFrIiwicG9sbEZv
ckZlZWRiYWNrIjpmYWxzZX0sImNvbnRyb2xJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2g2L3Ytc2VsZWN0IiwiZ3JvdXBJZCI6InYtc2VsZWN0Iiwic291cmNlIjp7
InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6Mzd9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwi
ZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDYvdi1zZWxlY3QiLCJwb2xsRm9yRmVlZGJh
Y2siOmZhbHNlfSwiZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2g2L2ZhZGVyL3RvdWNoIiwiZ3JvdXBJZCI6ImZhZGVyLXRvdWNoIiwic291cmNlIjp7
InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MTA5fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIs
ImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g2L2ZhZGVyL3RvdWNoIiwicG9sbEZvckZl
ZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNi9zZWxlY3QiLCJncm91cElkIjoic2VsZWN0Iiwic291cmNlIjp7InR5cGUi
OjEsImNoYW5uZWwiOjAsIm51bWJlciI6Mjl9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNo
b3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDYvc2VsZWN0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxz
ZX19LHsiaWQiOiJjaDYvZmFkZXIiLCJncm91cElkIjoiZmFkZXIiLCJzb3VyY2UiOnsidHlwZSI6MywiY2hhbm5lbCI6NX0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6
bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNi9mYWRlciIsInBvbGxGb3JG
ZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g2L3YtcG90L2NvbnRyb2wiLCJncm91cElkIjoidi1wb3QiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoyMSwi
Y2hhcmFjdGVyIjo0LCJpczE0Qml0IjpmYWxzZX0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjEuMCwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29y
eSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNi92LXBvdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFj
a0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDYvdi1wb3Qvd3JhcCIsImdyb3VwSWQiOiJ2LXBvdC1sZWRzIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0
dGVybiI6IkIwIDM1IFswMDEwIGRjYmFdIn0sIm1vZGUiOnsibWF4U291cmNlVmFsdWUiOjAuNzUsImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdv
cnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDYvdi1wb3Qvd3JhcCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJj
b250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNi92LXBvdC9ib29zdC1jdXQiLCJncm91cElkIjoidi1wb3QtbGVkcyIsInNvdXJjZSI6eyJ0eXBlIjoxMCwi
cmF3TWlkaVBhdHRlcm4iOiJCMCAzNSBbMDAwMSBkY2JhXSJ9LCJtb2RlIjp7Im1pblNvdXJjZVZhbHVlIjowLjA1LCJtYXhTb3VyY2VWYWx1ZSI6MC43NSwiZmVlZGJh
Y2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNi92LXBvdC9i
b29zdC1jdXQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDYvdi1wb3Qvc2luZ2xlIiwiZ3JvdXBJZCI6
InYtcG90LWxlZHMiLCJzb3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzUgWzAwMDAgZGNiYV0ifSwibW9kZSI6eyJtYXhTb3VyY2VWYWx1ZSI6
MC43NSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6
ImNoNi92LXBvdC9zaW5nbGUiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDYvdi1wb3Qvc3ByZWFkIiwi
Z3JvdXBJZCI6InYtcG90LWxlZHMiLCJzb3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzUgWzAwMTEgZGNiYV0ifSwibW9kZSI6eyJtYXhTb3Vy
Y2VWYWx1ZSI6MC40LCJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVu
dEluZGV4IjoiY2g2L3YtcG90L3NwcmVhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNi9tdXRlIiwi
Z3JvdXBJZCI6Im11dGUiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoyMX0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdl
dCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNo
Ni9tdXRlIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjaDYvc29sbyIsImdyb3VwSWQiOiJzb2xvIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwi
OjAsIm51bWJlciI6MTN9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNv
bnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDYvc29sbyIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g2
L3JlY29yZC1yZWFkeSIsImdyb3VwSWQiOiJyZWNvcmQtcmVhZHkiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo1fSwibW9kZSI6eyJmZWVk
YmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJj
b250cm9sRWxlbWVudEluZGV4IjoiY2g2L3JlY29yZC1yZWFkeSIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g2L2xjZC9saW5lMSIsImdyb3VwSWQi
OiJsY2QiLCJzb3VyY2UiOnsidHlwZSI6MTIsImRpc3BsYXlJZCI6NSwibGluZSI6MH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRl
Z29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNi9sY2QvbGluZTEiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwi
Y29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDYvbGNkL2xpbmUyIiwiZ3JvdXBJZCI6ImxjZCIsInNvdXJjZSI6eyJ0eXBlIjoxMiwiZGlzcGxheUlkIjo1
LCJsaW5lIjoxfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9s
RWxlbWVudEluZGV4IjoiY2g2L2xjZC9saW5lMiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNi9tZXRl
ci9wZWFrIiwiZ3JvdXBJZCI6Im1ldGVyIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkQwIFswMTAxIGRjYmFdIn0sIm1vZGUiOnsiZmVlZGJh
Y2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNi9tZXRlci9w
ZWFrIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNvbnRyb2xJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2g3L3Ytc2VsZWN0IiwiZ3JvdXBJZCI6InYtc2VsZWN0
Iiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6Mzh9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnki
OiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDcvdi1zZWxlY3QiLCJw
b2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2g3L2ZhZGVyL3RvdWNoIiwiZ3JvdXBJZCI6ImZhZGVyLXRvdWNo
Iiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MTEwfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5
IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g3L2ZhZGVyL3RvdWNo
IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNy9zZWxlY3QiLCJncm91cElkIjoic2VsZWN0Iiwic291
cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MzB9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0
dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDcvc2VsZWN0IiwicG9sbEZvckZl
ZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjaDcvZmFkZXIiLCJncm91cElkIjoiZmFkZXIiLCJzb3VyY2UiOnsidHlwZSI6MywiY2hhbm5lbCI6Nn0sIm1vZGUiOnsiZmVl
ZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNy9mYWRl
ciIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g3L3YtcG90L2NvbnRyb2wiLCJncm91cElkIjoidi1wb3QiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwi
bnVtYmVyIjoyMiwiY2hhcmFjdGVyIjo0LCJpczE0Qml0IjpmYWxzZX0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjEuMCwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdl
dCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNy92LXBvdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFs
c2V9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDcvdi1wb3Qvd3JhcCIsImdyb3VwSWQiOiJ2LXBvdC1sZWRzIiwic291cmNlIjp7InR5cGUiOjEw
LCJyYXdNaWRpUGF0dGVybiI6IkIwIDM2IFswMDEwIGRjYmFdIn0sIm1vZGUiOnsibWF4U291cmNlVmFsdWUiOjAuNzUsImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJn
ZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDcvdi1wb3Qvd3JhcCIsInBvbGxGb3JGZWVkYmFj
ayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoNy92LXBvdC9ib29zdC1jdXQiLCJncm91cElkIjoidi1wb3QtbGVkcyIsInNvdXJjZSI6
eyJ0eXBlIjoxMCwicmF3TWlkaVBhdHRlcm4iOiJCMCAzNiBbMDAwMSBkY2JhXSJ9LCJtb2RlIjp7Im1pblNvdXJjZVZhbHVlIjowLjA1LCJtYXhTb3VyY2VWYWx1ZSI6
MC43NSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6
ImNoNy92LXBvdC9ib29zdC1jdXQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDcvdi1wb3Qvc2luZ2xl
IiwiZ3JvdXBJZCI6InYtcG90LWxlZHMiLCJzb3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzYgWzAwMDAgZGNiYV0ifSwibW9kZSI6eyJtYXhT
b3VyY2VWYWx1ZSI6MC43NSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVs
ZW1lbnRJbmRleCI6ImNoNy92LXBvdC9zaW5nbGUiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDcvdi1w
b3Qvc3ByZWFkIiwiZ3JvdXBJZCI6InYtcG90LWxlZHMiLCJzb3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzYgWzAwMTEgZGNiYV0ifSwibW9k
ZSI6eyJtYXhTb3VyY2VWYWx1ZSI6MC40LCJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJj
b250cm9sRWxlbWVudEluZGV4IjoiY2g3L3YtcG90L3NwcmVhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6
ImNoNy9tdXRlIiwiZ3JvdXBJZCI6Im11dGUiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoyMn0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6
bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1l
bnRJbmRleCI6ImNoNy9tdXRlIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjaDcvc29sbyIsImdyb3VwSWQiOiJzb2xvIiwic291cmNlIjp7InR5cGUi
OjEsImNoYW5uZWwiOjAsIm51bWJlciI6MTR9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNo
b3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDcvc29sbyIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9
fSx7ImlkIjoiY2g3L3JlY29yZC1yZWFkeSIsImdyb3VwSWQiOiJyZWNvcmQtcmVhZHkiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjo2fSwi
bW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUi
OiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g3L3JlY29yZC1yZWFkeSIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g3L2xjZC9saW5l
MSIsImdyb3VwSWQiOiJsY2QiLCJzb3VyY2UiOnsidHlwZSI6MTIsImRpc3BsYXlJZCI6NiwibGluZSI6MH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRh
cmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoNy9sY2QvbGluZTEiLCJwb2xsRm9yRmVlZGJh
Y2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDcvbGNkL2xpbmUyIiwiZ3JvdXBJZCI6ImxjZCIsInNvdXJjZSI6eyJ0eXBlIjoxMiwi
ZGlzcGxheUlkIjo2LCJsaW5lIjoxfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoi
aWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g3L2xjZC9saW5lMiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJp
ZCI6ImNoNy9tZXRlci9wZWFrIiwiZ3JvdXBJZCI6Im1ldGVyIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkQwIFswMTEwIGRjYmFdIn0sIm1v
ZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6
ImNoNy9tZXRlci9wZWFrIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNvbnRyb2xJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2g4L3Ytc2VsZWN0IiwiZ3JvdXBJ
ZCI6InYtc2VsZWN0Iiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6Mzl9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQi
OnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDgv
di1zZWxlY3QiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2g4L2ZhZGVyL3RvdWNoIiwiZ3JvdXBJZCI6
ImZhZGVyLXRvdWNoIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MTExfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0
Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g4
L2ZhZGVyL3RvdWNoIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoOC9zZWxlY3QiLCJncm91cElkIjoi
c2VsZWN0Iiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MzF9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0
ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDgvc2VsZWN0
IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjaDgvZmFkZXIiLCJncm91cElkIjoiZmFkZXIiLCJzb3VyY2UiOnsidHlwZSI6MywiY2hhbm5lbCI6N30s
Im1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRl
eCI6ImNoOC9mYWRlciIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g4L3YtcG90L2NvbnRyb2wiLCJncm91cElkIjoidi1wb3QiLCJzb3VyY2UiOnsi
Y2hhbm5lbCI6MCwibnVtYmVyIjoyMywiY2hhcmFjdGVyIjo0LCJpczE0Qml0IjpmYWxzZX0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjEuMCwiZmVlZGJhY2tDb2xvciI6
bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoOC92LXBvdCIsInBvbGxGb3JG
ZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDgvdi1wb3Qvd3JhcCIsImdyb3VwSWQiOiJ2LXBvdC1sZWRzIiwic291cmNl
Ijp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkIwIDM3IFswMDEwIGRjYmFdIn0sIm1vZGUiOnsibWF4U291cmNlVmFsdWUiOjAuNzUsImZlZWRiYWNrQ29sb3Ii
Om51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDgvdi1wb3Qvd3JhcCIsInBv
bGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNoOC92LXBvdC9ib29zdC1jdXQiLCJncm91cElkIjoidi1wb3QtbGVk
cyIsInNvdXJjZSI6eyJ0eXBlIjoxMCwicmF3TWlkaVBhdHRlcm4iOiJCMCAzNyBbMDAwMSBkY2JhXSJ9LCJtb2RlIjp7Im1pblNvdXJjZVZhbHVlIjowLjA1LCJtYXhT
b3VyY2VWYWx1ZSI6MC43NSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVs
ZW1lbnRJbmRleCI6ImNoOC92LXBvdC9ib29zdC1jdXQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDgv
di1wb3Qvc2luZ2xlIiwiZ3JvdXBJZCI6InYtcG90LWxlZHMiLCJzb3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzcgWzAwMDAgZGNiYV0ifSwi
bW9kZSI6eyJtYXhTb3VyY2VWYWx1ZSI6MC43NSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6Imlk
IiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoOC92LXBvdC9zaW5nbGUiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsi
aWQiOiJjaDgvdi1wb3Qvc3ByZWFkIiwiZ3JvdXBJZCI6InYtcG90LWxlZHMiLCJzb3VyY2UiOnsidHlwZSI6MTAsInJhd01pZGlQYXR0ZXJuIjoiQjAgMzcgWzAwMTEg
ZGNiYV0ifSwibW9kZSI6eyJtYXhTb3VyY2VWYWx1ZSI6MC40LCJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5j
aG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g4L3YtcG90L3NwcmVhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVkIjpm
YWxzZX0seyJpZCI6ImNoOC9tdXRlIiwiZ3JvdXBJZCI6Im11dGUiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwibnVtYmVyIjoyM30sIm1vZGUiOnsiZmVl
ZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwi
Y29udHJvbEVsZW1lbnRJbmRleCI6ImNoOC9tdXRlIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjaDgvc29sbyIsImdyb3VwSWQiOiJzb2xvIiwic291
cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6MTV9LCJtb2RlIjp7ImZlZWRiYWNrQ29sb3IiOm51bGx9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0
dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaDgvc29sbyIsInBvbGxGb3JGZWVk
YmFjayI6ZmFsc2V9fSx7ImlkIjoiY2g4L3JlY29yZC1yZWFkeSIsImdyb3VwSWQiOiJyZWNvcmQtcmVhZHkiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6MCwi
bnVtYmVyIjo3fSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9s
RWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g4L3JlY29yZC1yZWFkeSIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoi
Y2g4L2xjZC9saW5lMSIsImdyb3VwSWQiOiJsY2QiLCJzb3VyY2UiOnsidHlwZSI6MTIsImRpc3BsYXlJZCI6NywibGluZSI6MH0sIm1vZGUiOnsiZmVlZGJhY2tDb2xv
ciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoOC9sY2QvbGluZTEiLCJw
b2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaDgvbGNkL2xpbmUyIiwiZ3JvdXBJZCI6ImxjZCIsInNvdXJjZSI6
eyJ0eXBlIjoxMiwiZGlzcGxheUlkIjo3LCJsaW5lIjoxfSwibW9kZSI6eyJmZWVkYmFja0NvbG9yIjpudWxsfSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIs
ImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2g4L2xjZC9saW5lMiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJjb250cm9sSXNFbmFibGVk
IjpmYWxzZX0seyJpZCI6ImNoOC9tZXRlci9wZWFrIiwiZ3JvdXBJZCI6Im1ldGVyIiwic291cmNlIjp7InR5cGUiOjEwLCJyYXdNaWRpUGF0dGVybiI6IkQwIFswMTEx
IGRjYmFdIn0sIm1vZGUiOnsiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVs
ZW1lbnRJbmRleCI6ImNoOC9tZXRlci9wZWFrIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImNvbnRyb2xJc0VuYWJsZWQiOmZhbHNlfV0sImFjdGl2ZUNvbnRyb2xs
ZXJJZCI6Imljb24tcGxhdGZvcm0tbSJ9
AFByb2dyYW0gMQAQAAAA
>
PRESETNAME "Program 1"
FLOATPOS 0 0 0 0
FXID {52C036CB-388C-419E-9828-AA06A57DAEFC}
WAK 0 0
>
>
<TRACK {A1390A31-0E4F-4341-B303-89FF2C9E0ED0}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.20663638006368 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 1
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {A1390A31-0E4F-4341-B303-89FF2C9E0ED0}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {0F864F6D-BE30-411B-8075-27A0DEF11797}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.30302350576016 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {0F864F6D-BE30-411B-8075-27A0DEF11797}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {FA0ECA0F-E58E-4CC6-BDD1-D9CBEB1678E7}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {FA0ECA0F-E58E-4CC6-BDD1-D9CBEB1678E7}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {70B35EF3-93A2-4279-BB59-E45F16A1C7AF}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {70B35EF3-93A2-4279-BB59-E45F16A1C7AF}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {D3006255-A9ED-47B8-892A-26134F858751}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {D3006255-A9ED-47B8-892A-26134F858751}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {11975B2D-BA94-4088-B833-55DB23210C8B}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {11975B2D-BA94-4088-B833-55DB23210C8B}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
>
@@ -0,0 +1,720 @@
<REAPER_PROJECT 0.1 "7.30/macOS-arm64" 1741690029
<NOTES 0 2
>
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 129
ENVATTACH 3
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
ENVFADESZ10 40
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 0
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 65792
PANMODE 3
PANLAWFLAGS 3
CURSOR 0.5
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "Media" ""
<RECORD_CFG
ZXZhdxgAAQ==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
ZXZhdxgAAQ==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
BEATLEN 4
FREQ 1760 880 1
SAMPLES "" "" "" ""
SPLIGNORE 0 0
SPLDEF 2 660 "" 0 ""
SPLDEF 3 440 "" 0 ""
PATTERN 0 169
PATTERNSTR ABBB
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0 0 0 0 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_PANMODE 3
MASTER_PANLAWFLAGS 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {B8301F20-2672-F644-AD0F-673CB2C436A6}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {3AFF9516-C49C-894E-95D1-BAE7BC8D2850}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {F89E6C5E-6785-D544-935B-2A9185227744}
NAME "Helgobox - ReaLearn & Playtime"
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 1
REC 1 5088 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {F89E6C5E-6785-D544-935B-2A9185227744}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 654 34 1266 804
SHOW 2
LASTSEL 1
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: Helgobox - ReaLearn & Playtime (Helgoboss)" helgobox.vst.dylib 0 "" 1751282284<5653546862726C68656C676F626F7872> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAADOAwAAAQAAAAAAEAA=
eyJtYWluVW5pdCI6eyJ2ZXJzaW9uIjoiMi4xOC4wLXByZS4yIiwiaWQiOiJsZHF4TG9uMiIsIm5hbWUiOiJNYWluIiwic3RheUFjdGl2ZVdoZW5Qcm9qZWN0SW5CYWNr
Z3JvdW5kIjoiT25seUlmQmFja2dyb3VuZFByb2plY3RJc1J1bm5pbmciLCJsaXZlc09uVXBwZXJGbG9vciI6ZmFsc2UsImNvbnRyb2xEZXZpY2VJZCI6IjE5IiwibWF0
Y2hFdmVuSW5hY3RpdmVNYXBwaW5ncyI6dHJ1ZSwiZGVmYXVsdEdyb3VwIjp7fSwiZGVmYXVsdENvbnRyb2xsZXJHcm91cCI6e30sIm1hcHBpbmdzIjpbeyJpZCI6Ild4
SjZzQmxwdzk3VmFRTjdQTHpGaiIsIm5hbWUiOiIxIiwic291cmNlIjp7InR5cGUiOjEsImNoYW5uZWwiOjAsIm51bWJlciI6NTAsImlzUmVnaXN0ZXJlZCI6ZmFsc2Us
ImlzMTRCaXQiOmZhbHNlLCJvc2NBcmdJbmRleCI6MCwia2V5c3Ryb2tlIjp7Im1vZGlmaWVycyI6MSwia2V5Ijo2OH0sImJ1dHRvbkluZGV4IjowLCJidXR0b25EZXNp
Z24iOnsiYmFja2dyb3VuZCI6eyJraW5kIjoiQ29sb3IifSwiZm9yZWdyb3VuZCI6eyJraW5kIjoiTm9uZSJ9LCJzdGF0aWNfdGV4dCI6IiJ9fSwibW9kZSI6eyJtYXhT
dGVwU2l6ZSI6MC4wNSwibWluU3RlcEZhY3RvciI6MSwibWF4U3RlcEZhY3RvciI6NX0sInRhcmdldCI6eyJ0eXBlIjo1MywiZnhBbmNob3IiOiJpZCIsInVzZVNlbGVj
dGlvbkdhbmdpbmciOmZhbHNlLCJ1c2VUcmFja0dyb3VwaW5nIjpmYWxzZSwic2Vla0JlaGF2aW9yIjoiSW1tZWRpYXRlIiwidXNlUHJvamVjdCI6dHJ1ZSwibW92ZVZp
ZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlLCJvc2NBcmdJbmRleCI6MCwibW91c2VBY3Rpb24iOnsia2luZCI6Ik1vdmVUbyIsImF4aXMiOiJYIn0sInRha2VNYXBwaW5n
U25hcHNob3QiOnsia2luZCI6Ikxhc3RMb2FkZWQifX0sImlzRW5hYmxlZCI6ZmFsc2V9XSwiaW5zdGFuY2VGeCI6eyJhZGRyZXNzIjoiRm9jdXNlZCJ9fSwiYWRkaXRp
b25hbFVuaXRzIjpbXX0=
AAAQAAAA
>
FLOAT 256 96 752 674
FXID {EF666678-DDCC-7449-A810-BF702E410C0F}
WAK 0 0
BYPASS 0 0 0
<VST "VST3i: Zebra2 (u-he)" Zebra2.vst3 0 "" 942782582{D39D5B69D6AF42FA12345678534D4432} ""
drgxOO5e7f4AAAAAAgAAAAEAAAAAAAAAAgAAAAAAAAB50QAAAQAAAAAAEAA=
tGgAAAEAAAAjcGdtPWluaXRpYWxpemUuaDJwCiNBTT1aZWJyYTIKI1ZlcnM9MjA1MDAKI0VuZGlhbj1saXR0bGUKI25tPTM0CiNtcz1ub25lCiNtcz1Nb2RXaGwKI21z
PVBpdGNoVwojbXM9Q3RybEEKI21zPUN0cmxCCiNtcz1MZm9HMQojbXM9TGZvRzIKI21zPUdhdGUKI21zPUtleUZvbAojbXM9S2V5Rm9sMgojbXM9VmVsb2NpdHkKI21z
PUFUb3VjaAojbXM9QXJwTW9kCiNtcz1BcnBNZDIKI21zPUVudjEKI21zPUVudjIKI21zPUVudjMKI21zPUVudjQKI21zPU1TRUcxCiNtcz1NU0VHMgojbXM9TVNFRzMK
I21zPU1TRUc0CiNtcz1MZm8xCiNtcz1MZm8yCiNtcz1MZm8zCiNtcz1MZm80CiNtcz1NTWFwMQojbXM9TU1hcDIKI21zPU1NYXAzCiNtcz1NTWFwNAojbXM9TU1peDEK
I21zPU1NaXgyCiNtcz1NTWl4MwojbXM9TU1peDQKI252PTUKI212PUdhdGUKI212PUVudjEKI212PUVudjIKI212PUVudjMKI212PUVudjQKI2NtPW1haW4KQ2NPcD04
NC4wMAojTEZPRz0xCiNMRk9HMj0xCiNjbT1QQ29yZQpYXzE9MC4wMApZXzE9MC4wMApYXzI9MC4wMApZXzI9MC4wMApYXzM9MC4wMApZXzM9MC4wMApYXzQ9MC4wMApZ
XzQ9MC4wMApNVDExPU9TQzE6VHVuZQpNTDExPTAuMjAKTVIxMT0tMC4yMApNVDEyPU9TQzE6RHR1bgpNTDEyPS05LjAwCk1SMTI9LTExLjAwCk1UMTM9T1NDMjpEdHVu
Ck1MMTM9Ny4wMApNUjEzPTguMDAKTVQxND1ub25lOmFzc2lnbmVkCk1MMTQ9NTAuMDAKTVIxND0tNTAuMDAKTVQxNT1ub25lOmFzc2lnbmVkCk1MMTU9NDguMDAKTVIx
NT0tNDguMDAKTVQxNj1ub25lOmFzc2lnbmVkCk1MMTY9NTAuMDAKTVIxNj0tNTAuMDAKTVQxNz1ub25lOmFzc2lnbmVkCk1MMTc9NTAuMDAKTVIxNz0tNTAuMDAKTVQx
OD1ub25lOmFzc2lnbmVkCk1MMTg9NTAuMDAKTVIxOD0tNTAuMDAKTVQyMT1FTlYzOlN1cwpNTDIxPTYyLjAwCk1SMjE9LTM1LjAwCk1UMjI9bm9uZTphc3NpZ25lZApN
TDIyPTUwLjAwCk1SMjI9LTUwLjAwCk1UMjM9bm9uZTphc3NpZ25lZApNTDIzPTUwLjAwCk1SMjM9LTUwLjAwCk1UMjQ9bm9uZTphc3NpZ25lZApNTDI0PTUwLjAwCk1S
MjQ9LTUwLjAwCk1UMjU9bm9uZTphc3NpZ25lZApNTDI1PTUwLjAwCk1SMjU9LTUwLjAwCk1UMjY9bm9uZTphc3NpZ25lZApNTDI2PTUwLjAwCk1SMjY9LTUwLjAwCk1U
Mjc9bm9uZTphc3NpZ25lZApNTDI3PTUwLjAwCk1SMjc9LTUwLjAwCk1UMjg9bm9uZTphc3NpZ25lZApNTDI4PTUwLjAwCk1SMjg9LTUwLjAwCk1UMzE9VkNGMTpGTTEK
TUwzMT00OC4wMApNUjMxPS03Mi4wMApNVDMyPW5vbmU6YXNzaWduZWQKTUwzMj01MC4wMApNUjMyPS01MC4wMApNVDMzPW5vbmU6YXNzaWduZWQKTUwzMz01MC4wMApN
UjMzPS01MC4wMApNVDM0PW5vbmU6YXNzaWduZWQKTUwzND01MC4wMApNUjM0PS01MC4wMApNVDM1PW5vbmU6YXNzaWduZWQKTUwzNT00OC4wMApNUjM1PS00OC4wMApN
VDM2PW5vbmU6YXNzaWduZWQKTUwzNj01MC4wMApNUjM2PS01MC4wMApNVDM3PW5vbmU6YXNzaWduZWQKTUwzNz00OC4wMApNUjM3PS00OC4wMApNVDM4PW5vbmU6YXNz
aWduZWQKTUwzOD01MC4wMApNUjM4PS01MC4wMApNVDQxPVZDRjE6UmVzCk1MNDE9MzkuMDAKTVI0MT0yOC4wMApNVDQyPVZDQTE6Vm9sMgpNTDQyPTAuMDAKTVI0Mj0z
NS4wMApNVDQzPVZDQTE6Vm9sMQpNTDQzPTAuMDAKTVI0Mz0tMTcuMDAKTVQ0ND1ub25lOmFzc2lnbmVkCk1MNDQ9NDguMDAKTVI0ND0tNDguMDAKTVQ0NT1ub25lOmFz
c2lnbmVkCk1MNDU9NTAuMDAKTVI0NT0tNTAuMDAKTVQ0Nj1ub25lOmFzc2lnbmVkCk1MNDY9NDguMDAKTVI0Nj0tNDguMDAKTVQ0Nz1ub25lOmFzc2lnbmVkCk1MNDc9
NTAuMDAKTVI0Nz0tNTAuMDAKTVQ0OD1ub25lOmFzc2lnbmVkCk1MNDg9NTAuMDAKTVI0OD0tNTAuMDAKTVQ1MT1PU0M0OlZvbApNTDUxPTEwNC4wMApNUjUxPTEwMC4w
MApNVDUyPU9TQzQ6RHR1bgpNTDUyPTAuMDAKTVI1Mj0tMjQuMDAKTVQ1Mz1PU0M0OlNGWDEKTUw1Mz0wLjAwCk1SNTM9NDkuMDAKTVQ1ND1ub25lOmFzc2lnbmVkCk1M
NTQ9NTAuMDAKTVI1ND0tNTAuMDAKTVQ1NT1ub25lOmFzc2lnbmVkCk1MNTU9NTAuMDAKTVI1NT0tNTAuMDAKTVQ1Nj1ub25lOmFzc2lnbmVkCk1MNTY9NTAuMDAKTVI1
Nj0tNTAuMDAKTVQ1Nz1ub25lOmFzc2lnbmVkCk1MNTc9NTAuMDAKTVI1Nz0tNTAuMDAKTVQ1OD1ub25lOmFzc2lnbmVkCk1MNTg9NTAuMDAKTVI1OD0tNTAuMDAKTVQ2
MT1Ob2lzZTE6Vm9sCk1MNjE9MTAwLjAwCk1SNjE9MjAwLjAwCk1UNjI9T1NDMTpWb2wKTUw2Mj0wLjAwCk1SNjI9LTEwMC4wMApNVDYzPU9TQzI6Vm9sCk1MNjM9MC4w
MApNUjYzPS0xMDAuMDAKTVQ2ND1ub25lOmFzc2lnbmVkCk1MNjQ9NTAuMDAKTVI2ND0tNTAuMDAKTVQ2NT1ub25lOmFzc2lnbmVkCk1MNjU9NTAuMDAKTVI2NT0tNTAu
MDAKTVQ2Nj1ub25lOmFzc2lnbmVkCk1MNjY9NTAuMDAKTVI2Nj0tNTAuMDAKTVQ2Nz1ub25lOmFzc2lnbmVkCk1MNjc9NTAuMDAKTVI2Nz0tNTAuMDAKTVQ2OD1ub25l
OmFzc2lnbmVkCk1MNjg9NTAuMDAKTVI2OD0tNTAuMDAKTVQ3MT1FTlYyOkF0awpNTDcxPTMzLjAwCk1SNzE9LTEzLjAwCk1UNzI9RU5WMjpEZWMKTUw3Mj0xNS4wMApN
UjcyPS0yNC4wMApNVDczPUVOVjE6U3VzCk1MNzM9MS4wMApNUjczPS0zOS4wMApNVDc0PUVOVjE6RGVjCk1MNzQ9MC4wMApNUjc0PS01MC4wMApNVDc1PUVOVjE6UmVs
Ck1MNzU9MjcuMDAKTVI3NT0tMTAuMDAKTVQ3Nj1ub25lOmFzc2lnbmVkCk1MNzY9NTAuMDAKTVI3Nj0tNTAuMDAKTVQ3Nz1ub25lOmFzc2lnbmVkCk1MNzc9NTAuMDAK
TVI3Nz0tNTAuMDAKTVQ3OD1ub25lOmFzc2lnbmVkCk1MNzg9NTAuMDAKTVI3OD0tNTAuMDAKTVQ4MT1EZWxheTE6TWl4Ck1MODE9MC4wMApNUjgxPS01OC4wMApNVDgy
PU51UmV2MTpNaXgKTUw4Mj04Mi4wMApNUjgyPTc1LjAwCk1UODM9Wk1hczpNYXN0Ck1MODM9MjkuMDAKTVI4Mz0yMy4wMApNVDg0PU51UmV2MTpTaXplCk1MODQ9MC4w
MApNUjg0PS0xMTcuNDEKTVQ4NT1OdVJldjE6RGVjYXkKTUw4NT0xLjAwCk1SODU9LTE3LjAwCk1UODY9TnVSZXYxOlRvbmUKTUw4Nj0wLjAwCk1SODY9MzIuMDAKTVQ4
Nz1ub25lOmFzc2lnbmVkCk1MODc9NTAuMDAKTVI4Nz0tNTAuMDAKTVQ4OD1ub25lOmFzc2lnbmVkCk1MODg9NTAuMDAKTVI4OD0tNTAuMDAKTU1UMT1ub25lOmFzc2ln
bmVkCk1NUzE9MApNTUQxPTAuMDAKTU1WUzE9MApNTVZEMT0wLjAwCk1NVDI9bm9uZTphc3NpZ25lZApNTVMyPTAKTU1EMj0wLjAwCk1NVlMyPTAKTU1WRDI9MC4wMApN
TVQzPW5vbmU6YXNzaWduZWQKTU1TMz0wCk1NRDM9MC4wMApNTVZTMz0wCk1NVkQzPTAuMDAKTU1UND1ub25lOmFzc2lnbmVkCk1NUzQ9MApNTUQ0PTAuMDAKTU1WUzQ9
MApNTVZEND0wLjAwCk1NVDU9bm9uZTphc3NpZ25lZApNTVM1PTAKTU1ENT0wLjAwCk1NVlM1PTAKTU1WRDU9MC4wMApNTVQ2PW5vbmU6YXNzaWduZWQKTU1TNj0wCk1N
RDY9MC4wMApNTVZTNj0wCk1NVkQ2PTAuMDAKTU1UNz1ub25lOmFzc2lnbmVkCk1NUzc9MApNTUQ3PTAuMDAKTU1WUzc9MApNTVZENz0wLjAwCk1NVDg9bm9uZTphc3Np
Z25lZApNTVM4PTAKTU1EOD0wLjAwCk1NVlM4PTAKTU1WRDg9MC4wMApNTVQ5PW5vbmU6YXNzaWduZWQKTU1TOT0wCk1NRDk9MC4wMApNTVZTOT0wCk1NVkQ5PTAuMDAK
TU1UMTA9bm9uZTphc3NpZ25lZApNTVMxMD0wCk1NRDEwPTAuMDAKTU1WUzEwPTAKTU1WRDEwPTAuMDAKTU1UMTE9bm9uZTphc3NpZ25lZApNTVMxMT0wCk1NRDExPTAu
MDAKTU1WUzExPTAKTU1WRDExPTAuMDAKTU1UMTI9bm9uZTphc3NpZ25lZApNTVMxMj0wCk1NRDEyPTAuMDAKTU1WUzEyPTAKTU1WRDEyPTAuMDAKU0Jhc2U9MgpTd2lu
Zz0wLjAwClNUcmlnPTEKUFByb2o9MQpQRm9sZD0wClBGaWxlPTEKR0ZpbGU9MgpHU2NhbGU9MApDaExheT0wClN1cnJPPTAKUmV2PTE2NzY1CkxFRD0wLjAwClBBR0U9
MApQYWdlc09uPTAKQ29yZU49MwpTbGljZT00ClVJX29wPTMKTWlkaUE9NQpNaWRpUD02CkRGb2xkPTcKQ3RybEE9MgpDdHJsQj0xMQpHU2NTZXQ9MApDaE9DPTIKTEZF
PTAKQ2VuPTAKTW9ub0luPTAKI2NtPUxGT0cKU3luYz0tMgpUcmlnPTAKV2F2ZT0xClBoc2U9MC4wMApSYXRlPTgwLjAwCkFtcD0xMDAuMDAKU2xldz0xCk5zdHA9MTYK
U3Rwcz04ClVXdj0wCiNjbT1MRk9HMgpTeW5jPS0yClRyaWc9MApXYXZlPTEKUGhzZT0wLjAwClJhdGU9MTAwLjAwCkFtcD0xMDAuMDAKU2xldz0xCk5zdHA9MTYKU3Rw
cz05ClVXdj0wCiNjbT1WQ0MKI0xGTzE9MQojTEZPMj0xCiNMRk8zPTEKI0xGTzQ9MQpWb2ljZXM9MQpWb2ljaW5nPTAKTW9kZT0wClBvcnRhPTAuMDAKUEI9MgpQQkQ9
MgpBclNjPTIKQXJPcmQ9MApBckxwPTAKQXJPY3Q9MApBckxMPTE2CkFyVHI9MApEcmZ0PTEKTVR1blM9MApNVHVuTj0xMApNVHVuVD0xMQpUcnNwPS0xMgpGVHVuPTAu
MDAKUG9ydFJnPTEwMC4wMApQb3J0YU09MApQb3J0YTI9MTYuMDAKQWd0ZTE9MgpBdHJwMT0wCkF2b2MxPTEKQW11bDE9MQpBbW9kMT0wCkFNRHB0MT0wLjAwCkFNRHBC
MT0wLjAwCkFndGUyPTIKQXRycDI9MApBdm9jMj0xCkFtdWwyPTEKQW1vZDI9MApBTURwdDI9MC4wMApBTURwQjI9MC4wMApBZ3RlMz0yCkF0cnAzPTAKQXZvYzM9MQpB
bXVsMz0xCkFtb2QzPTAKQU1EcHQzPTAuMDAKQU1EcEIzPTAuMDAKQWd0ZTQ9MgpBdHJwND0wCkF2b2M0PTEKQW11bDQ9MQpBbW9kND0wCkFNRHB0ND0wLjAwCkFNRHBC
ND0wLjAwCkFndGU1PTIKQXRycDU9MApBdm9jNT0xCkFtdWw1PTEKQW1vZDU9MApBTURwdDU9MC4wMApBTURwQjU9MC4wMApBZ3RlNj0yCkF0cnA2PTAKQXZvYzY9MQpB
bXVsNj0xCkFtb2Q2PTAKQU1EcHQ2PTAuMDAKQU1EcEI2PTAuMDAKQWd0ZTc9MgpBdHJwNz0wCkF2b2M3PTEKQW11bDc9MQpBbW9kNz0wCkFNRHB0Nz0wLjAwCkFNRHBC
Nz0wLjAwCkFndGU4PTIKQXRycDg9MApBdm9jOD0xCkFtdWw4PTEKQW1vZDg9MApBTURwdDg9MC4wMApBTURwQjg9MC4wMApBZ3RlOT0yCkF0cnA5PTAKQXZvYzk9MQpB
bXVsOT0xCkFtb2Q5PTAKQU1EcHQ5PTAuMDAKQU1EcEI5PTAuMDAKQWd0ZTEwPTIKQXRycDEwPTAKQXZvYzEwPTEKQW11bDEwPTEKQW1vZDEwPTAKQU1EcHQxMD0wLjAw
CkFNRHBCMTA9MC4wMApBZ3RlMTE9MgpBdHJwMTE9MApBdm9jMTE9MQpBbXVsMTE9MQpBbW9kMTE9MApBTURwdDExPTAuMDAKQU1EcEIxMT0wLjAwCkFndGUxMj0yCkF0
cnAxMj0wCkF2b2MxMj0xCkFtdWwxMj0xCkFtb2QxMj0wCkFNRHB0MTI9MC4wMApBTURwQjEyPTAuMDAKQWd0ZTEzPTIKQXRycDEzPTAKQXZvYzEzPTEKQW11bDEzPTEK
QW1vZDEzPTAKQU1EcHQxMz0wLjAwCkFNRHBCMTM9MC4wMApBZ3RlMTQ9MgpBdHJwMTQ9MApBdm9jMTQ9MQpBbXVsMTQ9MQpBbW9kMTQ9MApBTURwdDE0PTAuMDAKQU1E
cEIxND0wLjAwCkFndGUxNT0yCkF0cnAxNT0wCkF2b2MxNT0xCkFtdWwxNT0xCkFtb2QxNT0wCkFNRHB0MTU9MC4wMApBTURwQjE1PTAuMDAKQWd0ZTE2PTIKQXRycDE2
PTAKQXZvYzE2PTEKQW11bDE2PTEKQW1vZDE2PTAKQU1EcHQxNj0wLjAwCkFNRHBCMTY9MC4wMAojY209RU5WMQpNb2RlPTAKaU1vZGU9MApzTW9kZT0wCmluaXQ9MC4w
MApBdGs9MC4wMApEZWM9MTAwLjAwClN1cz00MC4wMApTdXNUPTAuMDAKU3VzMj0wLjAwClJlbD0zMC4wMApWZWw9MC4wMApWMkk9MC4wMApWMkE9MC4wMApWMkQ9MC4w
MApWMlM9MC4wMApWMkZSPTAuMDAKVjJTMj0wLjAwClYyUj0wLjAwCksyST0wLjAwCksyQT0wLjAwCksyRD0wLjAwCksyUz0wLjAwCksyRlI9MC4wMApLMlMyPTAuMDAK
SzJSPTAuMDAKU2xvcGU9LTYwLjAwClRCYXNlPTAKI2NtPUVOVjIKTW9kZT0wCmlNb2RlPTAKc01vZGU9MAppbml0PTAuMDAKQXRrPTIwLjAwCkRlYz02MC4wMApTdXM9
MC4wMApTdXNUPTAuMDAKU3VzMj0wLjAwClJlbD01MC4wMApWZWw9OTAuMDAKVjJJPTAuMDAKVjJBPS0yNC4wMApWMkQ9MC4wMApWMlM9MC4wMApWMkZSPTAuMDAKVjJT
Mj0wLjAwClYyUj0wLjAwCksyST0wLjAwCksyQT0wLjAwCksyRD0wLjAwCksyUz0wLjAwCksyRlI9MC4wMApLMlMyPTAuMDAKSzJSPTAuMDAKU2xvcGU9LTYwLjAwClRC
YXNlPTAKI2NtPUVOVjMKTW9kZT0wCmlNb2RlPTAKc01vZGU9MAppbml0PTAuMDAKQXRrPTAuMDAKRGVjPTAuMDAKU3VzPTQ5LjUwClN1c1Q9MC4wMApTdXMyPTAuMDAK
UmVsPTEwMC4wMApWZWw9MC4wMApWMkk9MC4wMApWMkE9MC4wMApWMkQ9MC4wMApWMlM9MC4wMApWMkZSPTAuMDAKVjJTMj0wLjAwClYyUj0wLjAwCksyST0wLjAwCksy
QT0wLjAwCksyRD0wLjAwCksyUz0wLjAwCksyRlI9MC4wMApLMlMyPTAuMDAKSzJSPTAuMDAKU2xvcGU9LTYwLjAwClRCYXNlPTAKI2NtPUVOVjQKTW9kZT0wCmlNb2Rl
PTAKc01vZGU9MAppbml0PTAuMDAKQXRrPTAuMDAKRGVjPTUwLjAwClN1cz0xMDAuMDAKU3VzVD0wLjAwClN1czI9MC4wMApSZWw9MTAuMDAKVmVsPTAuMDAKVjJJPTAu
MDAKVjJBPTAuMDAKVjJEPTAuMDAKVjJTPTAuMDAKVjJGUj0wLjAwClYyUzI9MC4wMApWMlI9MC4wMApLMkk9MC4wMApLMkE9MC4wMApLMkQ9MC4wMApLMlM9MC4wMApL
MkZSPTAuMDAKSzJTMj0wLjAwCksyUj0wLjAwClNsb3BlPS02MC4wMApUQmFzZT0wCiNjbT1NU0VHMQpUbVVuPTEKRW52PTEyClZlbD0wLjAwCkF0az0wLjAwCkxwdD0w
LjAwClJlbD0wLjAwClRyaWc9MAojY209TVNFRzIKVG1Vbj0xCkVudj0xMwpWZWw9MC4wMApBdGs9MC4wMApMcHQ9MC4wMApSZWw9MC4wMApUcmlnPTAKI2NtPU1TRUcz
ClRtVW49MQpFbnY9MTQKVmVsPTAuMDAKQXRrPTAuMDAKTHB0PTAuMDAKUmVsPTAuMDAKVHJpZz0wCiNjbT1NU0VHNApUbVVuPTEKRW52PTE1ClZlbD0wLjAwCkF0az0w
LjAwCkxwdD0wLjAwClJlbD0wLjAwClRyaWc9MAojY209TEZPMQpTeW5jPS0zClRyaWc9MQpXYXZlPTAKUGhzZT0wLjAwClJhdGU9ODAuMDAKQW1wPTEwMC4wMApTbGV3
PTEKTnN0cD0xNgpTdHBzPTE2ClVXdj0wCkRseT0wLjAwCkRNUzE9MQpETUQxPTEwMC4wMApGTVMxPTAKRk1EMT0wLjAwCiNjbT1MRk8yClN5bmM9LTIKVHJpZz0xCldh
dmU9MQpQaHNlPTAuMDAKUmF0ZT0xMDAuMDAKQW1wPTEwMC4wMApTbGV3PTEKTnN0cD0xNgpTdHBzPTE3ClVXdj0wCkRseT0wLjAwCkRNUzE9MApETUQxPTAuMDAKRk1T
MT0wCkZNRDE9MC4wMAojY209TEZPMwpTeW5jPS0yClRyaWc9MQpXYXZlPTEKUGhzZT0wLjAwClJhdGU9MTAwLjAwCkFtcD0xMDAuMDAKU2xldz0xCk5zdHA9MTYKU3Rw
cz0xOApVV3Y9MApEbHk9MC4wMApETVMxPTAKRE1EMT0wLjAwCkZNUzE9MApGTUQxPTAuMDAKI2NtPUxGTzQKU3luYz0tMgpUcmlnPTEKV2F2ZT0xClBoc2U9MC4wMApS
YXRlPTEwMC4wMApBbXA9MTAwLjAwClNsZXc9MQpOc3RwPTE2ClN0cHM9MTkKVVd2PTAKRGx5PTAuMDAKRE1TMT0wCkRNRDE9MC4wMApGTVMxPTAKRk1EMT0wLjAwCiNj
bT1NTWFwMQpNb2RlPTIKTVNyYz0xNgpTdHBzPTIwCk51bT0zCiNjbT1NTWFwMgpNb2RlPTAKTVNyYz0wClN0cHM9MjEKTnVtPTE3CiNjbT1NTWFwMwpNb2RlPTMKTVNy
Yz0wClN0cHM9MjIKTnVtPTE3CiNjbT1NTWFwNApNb2RlPTMKTVNyYz0wClN0cHM9MjMKTnVtPTE3CiNjbT1NTWl4MQpUeXBlPTAKTW9kMT0wCk1vZDI9MApNb2QzPTAK
Q3N0PTUwLjAwCiNjbT1NTWl4MgpUeXBlPTAKTW9kMT0wCk1vZDI9MApNb2QzPTAKQ3N0PTUwLjAwCiNjbT1NTWl4MwpUeXBlPTAKTW9kMT0wCk1vZDI9MApNb2QzPTAK
Q3N0PTUwLjAwCiNjbT1NTWl4NApUeXBlPTAKTW9kMT0wCk1vZDI9MApNb2QzPTAKQ3N0PTUwLjAwCiNjbT1HcmlkCkdyaWQ9MjQKR0J5cD0wCkdTdG9yZT0yNQojY209
T1NDMQpXYXZlPTAKVHVuZT0wLjAwCktleVNjbD0xMDAuMDAKVE1TcmM9MApUTURwdD0wLjAwClBoc2U9NTAuMDAKUGhzTVNyYz0wClBoc01EcHQ9MC4wMApXTnVtPTUu
MDAKV1BTcmM9MApXUERwdD0wLjAwClZ0b0Q9NjUuMDAKQ3VydmU9MjYKUHJlYz01LjAwCkZYMVRwPTAKU0ZYMT0wLjAwCkZYMVNjPTAKRlgxRHQ9MC4wMApGWDJUcD0w
ClNGWDI9MC4wMApGWDJTYz0wCkZYMkR0PTAuMDAKUG9seT0xCkR0dW49LTguMDAKS1ZzYz0yNwpWb2w9MTAwLjAwClZvbFNjPTAKVm9sRHQ9MC4wMApQYW49MC4wMApQ
YW5TYz0wClBhbkR0PTAuMDAKU3luYz0wLjAwClNuY1NjPTAKU25jRHQ9MC4wMApTbmNPbj0wClBvbFc9NTAuMDAKUHdtT249MApXYVRiPTI4ClJlUGhzPTAKTm9ybT0x
NS4wMApSZW5kPTAKRm10emU9MApXVE5hbWU9MjkKI2NtPU9TQzIKV2F2ZT0wClR1bmU9MC4wMApLZXlTY2w9MTAwLjAwClRNU3JjPTI2ClRNRHB0PTEyLjAwClBoc2U9
NTAuMDAKUGhzTVNyYz01ClBoc01EcHQ9MjIuMDAKV051bT01LjAwCldQU3JjPTAKV1BEcHQ9MC4wMApWdG9EPTU1LjAwCkN1cnZlPTMwClByZWM9NS4wMApGWDFUcD0w
ClNGWDE9MC4wMApGWDFTYz0wCkZYMUR0PTAuMDAKRlgyVHA9MApTRlgyPTAuMDAKRlgyU2M9MApGWDJEdD0wLjAwClBvbHk9MQpEdHVuPTQuMDAKS1ZzYz0zMQpWb2w9
MTAwLjAwClZvbFNjPTAKVm9sRHQ9MC4wMApQYW49MC4wMApQYW5TYz0wClBhbkR0PTAuMDAKU3luYz0wLjAwClNuY1NjPTAKU25jRHQ9MC4wMApTbmNPbj0wClBvbFc9
MTAwLjAwClB3bU9uPTEKV2FUYj0zMgpSZVBocz0wCk5vcm09MTUuMDAKUmVuZD0wCkZtdHplPTAKV1ROYW1lPTMzCiNjbT1PU0MzCldhdmU9MApUdW5lPTAuMDAKS2V5
U2NsPTEwMC4wMApUTVNyYz0wClRNRHB0PTAuMDAKUGhzZT01MC4wMApQaHNNU3JjPTAKUGhzTURwdD0wLjAwCldOdW09NS4wMApXUFNyYz0wCldQRHB0PTAuMDAKVnRv
RD0wLjAwCkN1cnZlPTM0ClByZWM9NS4wMApGWDFUcD0wClNGWDE9MC4wMApGWDFTYz0wCkZYMUR0PTAuMDAKRlgyVHA9MApTRlgyPTAuMDAKRlgyU2M9MApGWDJEdD0w
LjAwClBvbHk9MApEdHVuPTAuMDAKS1ZzYz0zNQpWb2w9MTAwLjAwClZvbFNjPTAKVm9sRHQ9MC4wMApQYW49MC4wMApQYW5TYz0wClBhbkR0PTAuMDAKU3luYz0wLjAw
ClNuY1NjPTAKU25jRHQ9MC4wMApTbmNPbj0wClBvbFc9NTAuMDAKUHdtT249MApXYVRiPTM2ClJlUGhzPTAKTm9ybT0xNS4wMApSZW5kPTAKRm10emU9MApXVE5hbWU9
MzcKI2NtPU9TQzQKV2F2ZT0zClR1bmU9MC4wMApLZXlTY2w9MTAwLjAwClRNU3JjPTAKVE1EcHQ9MC4wMApQaHNlPTAuMDAKUGhzTVNyYz0wClBoc01EcHQ9MC4wMApX
TnVtPTEuMDAKV1BTcmM9MApXUERwdD0xNS4wMApWdG9EPTY1LjAwCkN1cnZlPTM4ClByZWM9Ny4wMApGWDFUcD0xNgpTRlgxPTAuMDAKRlgxU2M9MApGWDFEdD0wLjAw
CkZYMlRwPTAKU0ZYMj0wLjAwCkZYMlNjPTAKRlgyRHQ9MC4wMApQb2x5PTIKRHR1bj0yLjAwCktWc2M9MzkKVm9sPTAuMDAKVm9sU2M9MApWb2xEdD0wLjAwClBhbj0w
LjAwClBhblNjPTAKUGFuRHQ9MC4wMApTeW5jPTAuMDAKU25jU2M9MApTbmNEdD0wLjAwClNuY09uPTAKUG9sVz0xMDAuMDAKUHdtT249MApXYVRiPTQwClJlUGhzPTAK
Tm9ybT0yMC4wMApSZW5kPTAKRm10emU9MApXVE5hbWU9NDEKI2NtPU5vaXNlMQpUeXBlPTAKRjE9NTAuMDAKRjFTcmM9MTUKRjFEcHQ9MTAwLjAwCkYyPTAuMDAKRjJT
cmM9MApGMkRwdD0wLjAwCktWc2M9NDIKVm9sPTAuMDAKVm9sU2M9MApWb2xEdD0wLjAwClBhbj0wLjAwClBhblNjPTAKUGFuRHQ9MC4wMApQb2x5PTAKUG9sVz0xMDAu
MDAKI2NtPU5vaXNlMgpUeXBlPTAKRjE9MTAwLjAwCkYxU3JjPTAKRjFEcHQ9MC4wMApGMj0wLjAwCkYyU3JjPTAKRjJEcHQ9MC4wMApLVnNjPTQzClZvbD0xMDAuMDAK
Vm9sU2M9MApWb2xEdD0wLjAwClBhbj0wLjAwClBhblNjPTAKUGFuRHQ9MC4wMApQb2x5PTAKUG9sVz0xMDAuMDAKI2NtPVZDRjEKVHlwPTAKQ3V0PTM3LjAwClJlcz01
LjAwCkRydj0wLjAwCkdhaW49MC4wMApGTTE9MTAwLjAwCkZTMT0xNQpGTTI9NjAuMDAKRlMyPTExCktleVNjbD00Mi4wMAojY209VkNGMgpUeXA9MTcKQ3V0PTc4LjAw
ClJlcz0zNS4wMApEcnY9MjAuMDAKR2Fpbj0wLjAwCkZNMT0zOC4wMApGUzE9NQpGTTI9MC4wMApGUzI9MApLZXlTY2w9MC4wMAojY209VkNGMwpUeXA9MTgKQ3V0PTE1
MC4wMApSZXM9MC4wMApEcnY9MC4wMApHYWluPTAuMDAKRk0xPTAuMDAKRlMxPTAKRk0yPTAuMDAKRlMyPTAKS2V5U2NsPTAuMDAKI2NtPVZDRjQKVHlwPTE4CkN1dD0x
NTAuMDAKUmVzPTAuMDAKRHJ2PTAuMDAKR2Fpbj0wLjAwCkZNMT0wLjAwCkZTMT0wCkZNMj0wLjAwCkZTMj0wCktleVNjbD0wLjAwCiNjbT1GTU8xCldhdmU9MApUdW5l
PTAuMDAKS2V5U2NsPTEwMC4wMApUTVNyYz0wClRNRHB0PTAuMDAKRk09MC4wMApGTVNyYz0wCkZNRHB0PTAuMDAKVnRvRD0wLjAwCkR0dW49MC4wMApLVnNjPTQ0ClZv
bD0xMDAuMDAKVm9sU2M9MApWb2xEdD0wLjAwClBhbj0wLjAwClBhblNjPTAKUGFuRHQ9MC4wMApQb2x5PTAKUG9sVz0xMDAuMDAKR2V0cj0wCiNjbT1GTU8yCldhdmU9
MApUdW5lPTAuMDAKS2V5U2NsPTEwMC4wMApUTVNyYz0wClRNRHB0PTAuMDAKRk09MC4wMApGTVNyYz0wCkZNRHB0PTAuMDAKVnRvRD0wLjAwCkR0dW49MC4wMApLVnNj
PTQ1ClZvbD0xMDAuMDAKVm9sU2M9MApWb2xEdD0wLjAwClBhbj0wLjAwClBhblNjPTAKUGFuRHQ9MC4wMApQb2x5PTAKUG9sVz0xMDAuMDAKR2V0cj0wCiNjbT1GTU8z
CldhdmU9MApUdW5lPTAuMDAKS2V5U2NsPTEwMC4wMApUTVNyYz0wClRNRHB0PTAuMDAKRk09MC4wMApGTVNyYz0wCkZNRHB0PTAuMDAKVnRvRD0wLjAwCkR0dW49MC4w
MApLVnNjPTQ2ClZvbD0xMDAuMDAKVm9sU2M9MApWb2xEdD0wLjAwClBhbj0wLjAwClBhblNjPTAKUGFuRHQ9MC4wMApQb2x5PTAKUG9sVz0xMDAuMDAKR2V0cj0wCiNj
bT1GTU80CldhdmU9MApUdW5lPTAuMDAKS2V5U2NsPTEwMC4wMApUTVNyYz0wClRNRHB0PTAuMDAKRk09MC4wMApGTVNyYz0wCkZNRHB0PTAuMDAKVnRvRD0wLjAwCkR0
dW49MC4wMApLVnNjPTQ3ClZvbD0xMDAuMDAKVm9sU2M9MApWb2xEdD0wLjAwClBhbj0wLjAwClBhblNjPTAKUGFuRHQ9MC4wMApQb2x5PTAKUG9sVz0xMDAuMDAKR2V0
cj0wCiNjbT1Db21iMQpNb2RlPTAKVHVuZT0wLjAwCktleVNjbD0xMDAuMDAKVE1TcmM9MApUTURwdD0wLjAwCkRldG49MC4wMApWdG9EPTAuMDAKRkI9MC4wMApGQlNy
Yz0wCkZCRHB0PTAuMDAKRGFtcD0wLjAwCkRtcFNyYz0wCkRtcERwdD0wLjAwCkV4Yz0wLjAwCkluaj0xMDAuMDAKSW5qU3JjPTAKSW5qRHB0PTAuMDAKVG5lPTUwLjAw
ClRuZVNyYz0wClRuZURwdD0wLjAwClNlYz0wLjAwClNlY1NyYz0wClNlY0RwdD0wLjAwCkRpc3Q9MC4wMApEcnk9MC4wMApWb2w9MjAwLjAwClZvbFNjPTAKVm9sRHQ9
MC4wMApQYW49MC4wMApQYW5TYz0wClBhbkR0PTAuMDAKUG9seT0wClBvbFc9MTAwLjAwCkZpbGw9MAojY209Q29tYjIKTW9kZT0wClR1bmU9MC4wMApLZXlTY2w9MTAw
LjAwClRNU3JjPTAKVE1EcHQ9MC4wMApEZXRuPTAuMDAKVnRvRD0wLjAwCkZCPTAuMDAKRkJTcmM9MApGQkRwdD0wLjAwCkRhbXA9MC4wMApEbXBTcmM9MApEbXBEcHQ9
MC4wMApFeGM9MC4wMApJbmo9MTAwLjAwCklualNyYz0wCkluakRwdD0wLjAwClRuZT01MC4wMApUbmVTcmM9MApUbmVEcHQ9MC4wMApTZWM9MC4wMApTZWNTcmM9MApT
ZWNEcHQ9MC4wMApEaXN0PTAuMDAKRHJ5PTAuMDAKVm9sPTIwMC4wMApWb2xTYz0wClZvbER0PTAuMDAKUGFuPTAuMDAKUGFuU2M9MApQYW5EdD0wLjAwClBvbHk9MApQ
b2xXPTEwMC4wMApGaWxsPTAKI2NtPVNoYXBlMQpUeXBlPTMKRGVwdGg9MC4wMApETVNyYz0wCkRNRHB0PTAuMDAKRWRnZT0xMDAuMDAKRU1TcmM9MApFTURwdD0wLjAw
CklucHV0PTAuMDAKT3V0cHV0PTAuMDAKSGlPdXQ9MC4wMAojY209U2hhcGUyClR5cGU9MwpEZXB0aD0wLjAwCkRNU3JjPTAKRE1EcHQ9MC4wMApFZGdlPTEwMC4wMApF
TVNyYz0wCkVNRHB0PTAuMDAKSW5wdXQ9MC4wMApPdXRwdXQ9MC4wMApIaU91dD0wLjAwCiNjbT1NaXgxClBhbj0wLjAwCk1peD01MC4wMApQbk1kPTAKUG5NRD0wLjAw
ClBuTVM9MAojY209TWl4MgpQYW49MC4wMApNaXg9NTAuMDAKUG5NZD0wClBuTUQ9MC4wMApQbk1TPTAKI2NtPU1peDMKUGFuPTAuMDAKTWl4PTUwLjAwClBuTWQ9MApQ
bk1EPTAuMDAKUG5NUz0wCiNjbT1NaXg0ClBhbj0wLjAwCk1peD01MC4wMApQbk1kPTAKUG5NRD0wLjAwClBuTVM9MAojY209WE1GMQpUeXA9MApDdXQ9MTUwLjAwClJl
cz0wLjAwCkZNMT0wLjAwCkZTMT0wCkZNMj0wLjAwCkZTMj0wCktleVNjbD0wLjAwCkZPZmY9MC4wMApGT01vZD0wLjAwCkZPU3JjPTAKWEZNPTAuMDAKWEZNRD0wLjAw
ClhGTVM9MApCaWFzPTAuMDAKT0xvYWQ9MC4wMApDbGljaz0wLjAwCkRydj0xClJvdXQ9MApUeXAyPS0xCiNjbT1YTUYyClR5cD0wCkN1dD0xNTAuMDAKUmVzPTAuMDAK
Rk0xPTAuMDAKRlMxPTAKRk0yPTAuMDAKRlMyPTAKS2V5U2NsPTAuMDAKRk9mZj0wLjAwCkZPTW9kPTAuMDAKRk9TcmM9MApYRk09MC4wMApYRk1EPTAuMDAKWEZNUz0w
CkJpYXM9MC4wMApPTG9hZD0wLjAwCkNsaWNrPTAuMDAKRHJ2PTEKUm91dD0wClR5cDI9LTEKI2NtPVNCMQpSYW5nZT0wCkZyZXE9MC4wMApGTVNyYz0wCkZNRHB0PTAu
MDAKT2Zmcz0wLjAwCk9NU3JjPTAKT01EcHQ9MC4wMApNaXg9NTAuMDAKTU1TcmM9MApNTURwdD0wLjAwCiNjbT1TQjIKUmFuZ2U9MApGcmVxPTAuMDAKRk1TcmM9MApG
TURwdD0wLjAwCk9mZnM9MC4wMApPTVNyYz0wCk9NRHB0PTAuMDAKTWl4PTUwLjAwCk1NU3JjPTAKTU1EcHQ9MC4wMAojY209RGlzdDEKVHlwZT0wCklucHV0PTAuMDAK
T3V0cHV0PTAuMDAKUHJlVGlsdD0wLjAwClBzdFRpbHQ9MC4wMApDbnRGcmVxPTEwMC4wMApMb3c9MC4wMApIaWdoPTAuMDAKUG9zdEZsdD0wCiNjbT1EaXN0MgpUeXBl
PTAKSW5wdXQ9MC4wMApPdXRwdXQ9MC4wMApQcmVUaWx0PTAuMDAKUHN0VGlsdD0wLjAwCkNudEZyZXE9MTAwLjAwCkxvdz0wLjAwCkhpZ2g9MC4wMApQb3N0Rmx0PTAK
I2NtPUZvbGQxClJpcHBsZXM9NApGb2xkcz0xMC4wMApGTW9kPTAuMDAKRlNyYz0wCkJpYXM9MC4wMApCTW9kPTAuMDAKQlNyYz0wCkZSYXRpbz01MC4wMApGU2xvcGU9
MTAuMDAKQ0FuZ2w9NTAuMDAKTGl2ZT0wCiNjbT1Gb2xkMgpSaXBwbGVzPTQKRm9sZHM9MTAuMDAKRk1vZD0wLjAwCkZTcmM9MApCaWFzPTAuMDAKQk1vZD0wLjAwCkJT
cmM9MApGUmF0aW89NTAuMDAKRlNsb3BlPTEwLjAwCkNBbmdsPTUwLjAwCkxpdmU9MAojY209VkNBMQpQYW4xPTAuMDAKUGFuTVMxPTAKUGFuTUQxPTAuMDAKVm9sMT01
MC4wMApWQ0ExPTEKTW9kU3JjMT0wCk1vZERwdDE9MC4wMApQYW4yPTAuMDAKUGFuTVMyPTAKUGFuTUQyPTAuMDAKVm9sMj0wLjAwClZDQTI9MQpNb2RTcmMyPTAKTW9k
RHB0Mj0wLjAwClBhbjM9MC4wMApQYW5NUzM9MApQYW5NRDM9MC4wMApWb2wzPTI1LjAwClZDQTM9MQpNb2RTcmMzPTAKTW9kRHB0Mz0wLjAwClBhbjQ9MC4wMApQYW5N
UzQ9MApQYW5NRDQ9MC4wMApWb2w0PTAuMDAKVkNBND0xCk1vZFNyYzQ9MApNb2REcHQ0PTAuMDAKTVQxPTAKTVQyPTAKTVQzPTAKTVQ0PTAKUEIxPTAKUEIyPTAKUEIz
PTAKUEI0PTAKQnVzMT0wCkJ1czI9MApCdXMzPTAKQnVzND0wClNlbmQxPTAuMDAKU25TcmMxPTAKU25EcHQxPTAuMDAKU2VuZDI9MC4wMApTblNyYzI9MApTbkRwdDI9
MC4wMApBdHRTPTEKI2NtPUdyaWRGWApHcmlkPTQ4CkdCeXA9MApHU3RvcmU9NDkKI2NtPU1vZEZYMQpNb2RlPTAKQ2VudD0xNy41MApTcGVkPTUwLjAwClBoT2ZmPTUw
LjAwCkRwdGg9OTIuNTAKRmVlQj0wLjAwCk1peD0yNS4wMApMQ3V0PTAuMDAKSEN1dD0xMDAuMDAKUXVhZD02MC4wMApRcGhzPTI1LjAwCkxlcT0wLjAwCkhlcT0wLjAw
ClExPTAuMDAKUTI9MC4wMApFUW9uPTAKI2NtPU1vZEZYMgpNb2RlPTIKQ2VudD00MC4wMApTcGVkPTUuMDAKUGhPZmY9NTAuMDAKRHB0aD00MC4wMApGZWVCPTUwLjAw
Ck1peD01MC4wMApMQ3V0PTAuMDAKSEN1dD0xMDAuMDAKUXVhZD0wLjAwClFwaHM9MjUuMDAKTGVxPTAuMDAKSGVxPTAuMDAKUTE9MC4wMApRMj0wLjAwCkVRb249MQoj
Y209RGVsYXkxCk1vZGU9MgpNaXg9MzMuMDAKRkI9MC4wMApDQj02NS4wMApMUD03MC4wMApIUD01MC4wMApEcnY9MC4wMApTeW5jMT00ClN5bmMyPTkKU3luYzM9NApT
eW5jND00ClQwPTEwMC4wMApUMT0xMDAuMDAKVDI9MTAwLjAwClQzPTEwMC4wMApQYW4xPS0xMDAuMDAKUGFuMj0xMDAuMDAKUGFuMz0tMTAwLjAwClBhbjQ9MTAwLjAw
CiNjbT1EZWxheTIKTW9kZT0wCk1peD01MC4wMApGQj00MC4wMApDQj0wLjAwCkxQPTcwLjAwCkhQPTMwLjAwCkRydj0wLjAwClN5bmMxPS0xClN5bmMyPS0xClN5bmMz
PS0xClN5bmM0PS0xClQwPTQ1LjAwClQxPTMwLjAwClQyPTEwMC4wMApUMz0xMDAuMDAKUGFuMT0tMTAwLjAwClBhbjI9MTAwLjAwClBhbjM9LTEwMC4wMApQYW40PTEw
MC4wMAojY209U2hhcGUzClR5cGU9MwpEZXB0aD0wLjAwCkRNU3JjPTAKRE1EcHQ9MC4wMApFZGdlPTEwMC4wMApFTVNyYz0wCkVNRHB0PTAuMDAKSW5wdXQ9MC4wMApP
dXRwdXQ9MC4wMApIaU91dD0wLjAwCiNjbT1TaGFwZTQKVHlwZT0zCkRlcHRoPTAuMDAKRE1TcmM9MApETURwdD0wLjAwCkVkZ2U9MTAwLjAwCkVNU3JjPTAKRU1EcHQ9
MC4wMApJbnB1dD0wLjAwCk91dHB1dD0wLjAwCkhpT3V0PTAuMDAKI2NtPU1peDUKUGFuPTAuMDAKTWl4PTUwLjAwClBuTWQ9MApQbk1EPTAuMDAKUG5NUz0wCiNjbT1N
aXg2ClBhbj0wLjAwCk1peD01MC4wMApQbk1kPTAKUG5NRD0wLjAwClBuTVM9MAojY209UmV2MQpNb2RlPTAKRHJ5PTEwMC4wMApXZXQ9NTAuMDAKRkI9NzAuNTAKRGFt
cD0yMy4wMApTaXplPTc1LjAwClNwZD01MC4wMApEcHQ9NTUuMDAKREZCPTcwLjAwCkRTaXplPTczLjAwCkVNaXg9MTAwLjAwCkRNb2Q9NTUuMDAKRFNwZD01NS4wMApQ
cmU9MjAuMDAKI2NtPUNvbXAxClR5cGU9MQpSYXQ9NDAuMDAKVGhyZXM9MC4wMApBdHQ9MjAuMDAKUmVsPTI1LjAwCklucHV0PTAuMDAKT3V0cHV0PTAuMDAKI2NtPUNv
bXAyClR5cGU9MQpSYXQ9NDAuMDAKVGhyZXM9MC4wMApBdHQ9MjAuMDAKUmVsPTI1LjAwCklucHV0PTAuMDAKT3V0cHV0PTAuMDAKI2NtPUVRMQpmYzE9MjAuMDAKcmVz
MT0yNS4wMApnYWluMT0wLjAwCmZjMj00MC4wMApyZXMyPTI1LjAwCmdhaW4yPTAuMDAKZmMzPTYwLjAwCnJlczM9MjUuMDAKZ2FpbjM9MC4wMApmYzQ9ODAuMDAKcmVz
ND0yNS4wMApnYWluND0wLjAwCiNjbT1FUTIKZmMxPTIwLjAwCnJlczE9MjUuMDAKZ2FpbjE9MC4wMApmYzI9NDAuMDAKcmVzMj0yNS4wMApnYWluMj0wLjAwCmZjMz02
MC4wMApyZXMzPTI1LjAwCmdhaW4zPTAuMDAKZmM0PTgwLjAwCnJlczQ9MjUuMDAKZ2FpbjQ9MC4wMAojY209VkNGNQpUeXA9MTgKQ3V0PTE1MC4wMApSZXM9MC4wMApE
cnY9MC4wMApHYWluPTAuMDAKRk0xPTAuMDAKRlMxPTAKRk0yPTAuMDAKRlMyPTAKS2V5U2NsPTAuMDAKI2NtPVZDRjYKVHlwPTE4CkN1dD0xNTAuMDAKUmVzPTAuMDAK
RHJ2PTAuMDAKR2Fpbj0wLjAwCkZNMT0wLjAwCkZTMT0wCkZNMj0wLjAwCkZTMj0wCktleVNjbD0wLjAwCiNjbT1TQjMKUmFuZ2U9MApGcmVxPTAuMDAKRk1TcmM9MApG
TURwdD0wLjAwCk9mZnM9MC4wMApPTVNyYz0wCk9NRHB0PTAuMDAKTWl4PTUwLjAwCk1NU3JjPTAKTU1EcHQ9MC4wMAojY209WE1GMwpUeXA9MApDdXQ9MTUwLjAwClJl
cz0wLjAwCkZNMT0wLjAwCkZTMT0wCkZNMj0wLjAwCkZTMj0wCktleVNjbD0wLjAwCkZPZmY9MC4wMApGT01vZD0wLjAwCkZPU3JjPTAKWEZNPTAuMDAKWEZNRD0wLjAw
ClhGTVM9MApCaWFzPTAuMDAKT0xvYWQ9MC4wMApDbGljaz0wLjAwCkRydj0xClJvdXQ9MApUeXAyPS0xCiNjbT1EaXN0MwpUeXBlPTAKSW5wdXQ9MC4wMApPdXRwdXQ9
MC4wMApQcmVUaWx0PTAuMDAKUHN0VGlsdD0wLjAwCkNudEZyZXE9MTAwLjAwCkxvdz0wLjAwCkhpZ2g9MC4wMApQb3N0Rmx0PTAKI2NtPURpc3Q0ClR5cGU9MApJbnB1
dD0wLjAwCk91dHB1dD0wLjAwClByZVRpbHQ9MC4wMApQc3RUaWx0PTAuMDAKQ250RnJlcT0xMDAuMDAKTG93PTAuMDAKSGlnaD0wLjAwClBvc3RGbHQ9MAojY209TnVS
ZXYxClByZT0wLjAwCkRhbXA9ODEuNTAKRGVjYXk9NzMuNTAKU2l6ZT0xMzIuMDAKVG9uZT0tMzYuMDAKV2lkdGg9NjkuNTAKTWl4PTAuMDAKI2NtPVpNYXMKUmV0MT0w
LjAwClJldDI9MC4wMApNYXN0PTcwLjAwClhZMUw9NTAKWFkyTD01MQpYWTNMPTUyClhZNEw9NTMKWFkxVD01NApYWTJUPTU1ClhZM1Q9NTYKWFk0VD01NwpPU0MxPTU4
Ck9TQzI9NTkKT1NDMz02MApPU0M0PTYxCk1TRUcxPTYyCk1TRUcyPTYzCk1TRUczPTY0Ck1TRUc0PTY1Ck1TRUc1PTY2Ck1TRUc2PTY3Ck1TRUc3PTY4Ck1TRUc4PTY5
ClJldjE9NzAKUG4zPTE5ClBuND0wClBuNT0wClBuNj0wClBuNz0wClBuOD0wClBuOT0wClBuMTA9MApQbjExPTAKUmFjazA9NzEKUmFjazE9NzIKI2NtPUxheU1lbQpM
YXlNZW0xPTAKTGF5TWVtMj0wCkxheU1lbTM9MApMYXlNZW00PTAKTGF5TWVtNT0wCgoKCgovLyBTZWN0aW9uIGZvciB1Z2x5IGNvbXByZXNzZWQgYmluYXJ5IERhdGEK
Ly8gRE9OJ1QgVE9VQ0ggVEhJUwoKJCQkJDg1NTY0Cj9hYWFhaWFkcDpqa2pqampsbzphYWFhaWFscDpnZGdjZW5lYjpwbnBwaHBkcDpwbXBwaHBkcDpra2tra2tsbzoK
a21ra2trZG86YWFhYWFhZWE6Y2FhYWFhYWE6YWE6ZHA6bHA6ZG86ZWI6ZWM6bG86Z2Y6ZWE6Z2I6aHA6Z3A6YwphOmhrOmRuOmhlOmxuOnBwOmRjOmFrOmJhOmZkOmRh
OmdqOmlhOm5kIXRBYWJBMTBlbUxnZEpnbWNwZGVNZmFYCkpnb0xYZ2VoZEEyMzh0SUExMFhnb1hQWEpnbVhOSGNvZ2lTaGFBZmFMaGRYUFhMZ29jb2dpU2hhQTM2dElB
NzQKdElBMTBqZWxjaWRnbWZhbWVtY2RrT1poY3BobGllam5mb21ka2tkZW9tamJnbGhuYmhqZ2NrZmdlbWxhZFpBVwphZ2ZwcG9jamJlaGpmY2hoZ2RwZGtucGVlaWFl
Y2NmY25vZmlvcG9hZ2lhcGtwaG5raE1saWdra29iaXBqbWV0CmFlQTEwcGFaYmVBdEFhYkE5ZWlMaGhKaGNnZU1WZ2RKaGMxQTI0M3RZQTEzOHRBYWJBMjY1dFlBNnFB
MTI3dFkKQTZxQTEyN3RJQTEwZ2VIZ2dKaGZnbVBNaGRnZEpnbUhBMjJxeUExSTFBMVlJQTFrYUlBMW1hSUExb2FJdEFhYwpBNXFBM3F5QTFJMUExWUlBMWthSUExbWFJ
QTFvYUlBMkVBMVVFQTFNRUExV0VBMUlFQTFmYUVBMWdhRUExaGFFCkExWUVBMWlpRUExamFFQTFqaUVBMWthRUExa2lFQTFsYUVBMWxpRUExbWFFQTFtaUVBMW5hRUEx
bmlFQTFvYUUKQTFvaUVBMXBhRUExcGlFQTJGQTFhZUZBMWFpRkExYW1GQTFVRkExYmVGQTFiaUZBMWJtRkExTUZBMWNlRkExYwppRkExY21GQTFXRkExZGVGQTFkaUZB
MWRtRkExSUZBMWVlRkExZWlGQTFlbUZBMWZhRkExZmVGQTFmaUZBMWZtCkZBMWdhRkExZ2VGQTFnaUZBMWdtRkExaGFGQTFQRkExaGlGQTFobUZBMVlGQTFpY0ZBMWll
RkExaWdGQTFpaUYKQTFpa0ZBMWltRkExaW9GQTFqYUZBMWpjRkExamVGQTFqZ0ZBMWppRkExamtGQTFqbUZBMWpvRkExa2FGQTFrYwpGQTFrZUZBMWtnRkExa2lGQTFr
a0ZBMWttRkExa29GQTFsYUZBMWxjRkExbGVGQTFsZ0ZBMWxpRkExbGtGQTFsCm1GQTFHRkExbWFGQTFtY0ZBMW1lRkExbWdGQTFtaUZBMW1rRkExbW1GQTFtb0ZBMW5h
RkExbmNGQTFuZUZBMW4KZ0ZBMW5pRkExbmtGQTFubUZBMW5vRkExb2FGQTFvY0ZBMW9lRkExb2dGQTFvaUZBMW9rRkExb21GQTFvb0ZBMQpwYUZBMXBjRkExcGVGQTFw
Z0ZBMXBpRkExcGtGQTFwbUZBMXBvRnRXYWNBNXFBM2FiQTJhYkEyYWJBM2FlQTI1CnJxQTdybmdqbGZvREE3ckExSTFBN3JBMVlJQTdyQTFrYUlBN3JBMW1hSUE3ckEx
b2FJQTdyQTJFQTdyQTFVRUEKN3JBMU1FQTdyQTFXRUE3ckExSUVBN3JBMWZhRUE3ckExZ2FFQTdyQTFoYUVBN3JBMVlFQTdyQTFpaUVBN3JBMQpqYUVBN3JBMWppRUE3
ckExa2FFQTdyQTFraUVBN3JBMWxhRUE3ckExbGlFQTdyQTFtYUVBN3JBMW1pRUE3ckExCm5hRUE3ckExbmlFQTdyQTFvYUVBN3JBMW9pRUE3ckExcGFFQTdyQTFwaUVB
N3JBMTV0V2FjQTVxQTNhYkEyYWIKQTJhYkEzYWVBMjVycUE3cnlBN3JBMUkxQTdyQTFZSUE3ckExa2FJQTdyQTFtYUlBN3JBMW9hSUE3ckEyRUE3cgpBMVVFQTdyQTFN
RUE3ckExV0VBN3JBMUlFQTdyQTFmYUVBN3JBMWdhRUE3ckExaGFFQTdyQTFZRUE3ckExaWlFCkE3ckExamFFQTdyQTFqaUVBN3JBMWthRUE3ckExa2lFQTdyQTFsYUVB
N3JBMWxpRUE3ckExbWFFQTdyQTFtaUUKQTdyQTFuYUVBN3JBMW5pRUE3ckExb2FFQTdyQTFvaUVBN3JBMXBhRUE3ckExcGlFQTdyQTE1dFdhY0E1cUEzYQpiQTJhYkEy
YWJBM2FlQTI1cnFBN3J5QTdyQTFJMUE3ckExWUlBN3JBMWthSUE3ckExbWFJQTdyQTFvYUlBN3JBCjJFQTdyQTFVRUE3ckExTUVBN3JBMVdFQTdyQTFJRUE3ckExZmFF
QTdyQTFnYUVBN3JBMWhhRUE3ckExWUVBN3IKZGpRaWJFQTdyQTFqYUVBN3JBMWppRUE3ckExa2FFQTdyQTFraUVBN3JBMWxhRUE3ckExbGlFQTdyQTFtYUVBNwpyQTFt
aUVBN3JBMW5hRUE3ckExbmlFQTdyQTFvYUVBN3JBMW9pRUE3ckExcGFFQTdyQTFwaUVBN3JBMTV0V2FjCkE1cUEzYWJBMmFiQTJhYkEzYWVBMjVycUE3cnlBN3JBMUkx
QTdyQTFZSUE3ckExbWFJQTdyQTFNRUE3ckExVUUKQTdyQTJFQTdyQTFvYUlBN3JBMWthSUE3ckExV0VBN3JBMUlFQTdyQTFmYUVBN3JBMWdhRUE3ckExaGFFQTdyQQox
WUVBN3JBMWlpRUE3ckExamFFQTdyQTFqaUVBN3JBMWthRUE3ckExa2lFQTdyQTFsYUVBN3JBMWxpRUE3ckExCm1hRUE3ckExbWlFQTdyQTFuYUVBN3JBMW5pRUE3ckEx
b2FFQTdyQTFvaUVBN3JBMXBhRUE3ckExcGlFQTdyQTEKNXRZQTZxQTEyN3RZQTZxQTEyN3RZQTZxQTEyN3RZQTZxQTEyN3RBYWNBNXFzZmdmZm5mR0EzZmdmZmJmQnF3
eApxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4CnFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hx
c3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4cXRBYWNBNXEKQTUxMXRBYWNBNXFZamFsZ0RwYWNwYWZHV2NsTkRoYW9lZWdDa2lvYUxDQW1oZ2xkbWhhZGlmYUdmYWZu
bm5ETQpaa2RHV2RoZ2FHcG1naU5CbWFqYmVqQnBha2RqZkdsZWlqZWVDbmlqbW1wR2NpaGpna0NvYWhpYmVDbWlkZ2xhCkRmaWZmbWtEVWJlaGZDZGlJZWpCaWVuaGJs
Q21la2RibEJpaWxiZ2hCbWFkZ2VoR2xhb2Rka0dubWFnZGJCWWcKY2NuRG5hZWtwaURraW1ka2VHYmlvbWphR2xpY3BiaUJZZ2FiakJkbVphbUNhbWllZ2RCbGFqYWZi
Q1dubGtsRApubXBuYmpCbGlwbmlvR2ppQmFtQ0FrbWdlZG1iaWZja2VHSWptYmZRWW5nZ2hDbGkxY2hDYmlvY29mRGZhZmhVCkRqaW1lZGRCQWRkbWJPY2VibWJuQlln
Y2twbG1BYWZoZ1FoaWNuZWZCZG1MU0JwbWxsZWhDZWlrbWJtQmhhZmkKZ2VDa2lYbm9EZGlna2xrRGthZGdiZ0NmaW9oZ29DZmFqaWRlR21tbmJiY0NVa2RsaEdtYW1i
ZGhCaWVvcGJwQgpnaWtwbGtHcGFhY0RDQW1rVWxtZ2VwYmNsQ2hhbGNnZEduaWdsaGJDVWdhZW5DbWFjZWdtUWFpY2RvaEdZa2dpCmlEb2FkYmNmR1dqaGhvRG9tbG1E
Q2tpaWRib0NBYWZvYk9tYWJiZWlRZmlqYUdEWWplbmJRWW5sY25PYWVrYWQKaENsbWlrYmxDSXBpbmlPWWNibW5RY2lIam1EamFpb09HWWVpZWdEYmlubmZlQ2ttSGhs
QmJpampsZEdtaWljZgpjQ0FmbW5uR2xtT2hhQ1Bia2JsQ2thY2ZsZkRXaGdtbkRrZWlpaGNDa2VHZmFCYmlnaWFwQ1dhZWNsQlBjZWRrCkJpaWZhbGVHQWFkYmNDSWxn
aWZPbmFwZkJHa2liY25lRG5hbGhta0dBbGJuYlFrZWlqZW5CZ21ubWVwQmthbWoKa29HYWlhbGZvQ2VlY2hhbUNpZWZoYm1CbWlKSEJtYWdkMUdmaWFwaWJHZGlpamtl
REFoYW5uZGxjaWttYW5CSQpYZGxRbWFvZWFoUXBpZWxlcEJ0QWFjQTVxSWtqRUJwaW1qbmtHZGVBZWVDaGFiYmFjQ2ZpamFib0JibWtvZmhCCm9hZWlsZVFsYWptbW1H
b2Fhb21qRFdubGVwR3BpZWxqbURZZ2dsY0dwYXBibWxHZW1uZmNoQmNpY25qbURjaWIKZ0xDTWhpU0JnZU5na0JBYmZkbWxtWWlpam5RZGljYmRpQnBpYm9RRGRtaGhn
ZUNpaWJtZGJCZmFibEhCbWFqbwplZVFqYTFibUdrYWpsZm9CZ2lvb2RrQm5lYmNlb0NwZWhvYWZCbGlpY2hkQkFuYXBobG1wYWxhYWpHYW1mamZsCkJmYWxjY3BCZ2lK
MUNubWJlY2tCY2Vib2ZhQklubGtmT21hbW9lcERwZVFnaEJoaWNnb21EWWFlSkJNaWJjY0QKYmlsYWpqRGZpcGtvaUduYUltY0dnYWtoYW9CZWllZ2xjRGJlbWdLQ2xh
bWNhZEJoaXBvZmxCbWFnZGdrT01haQpwYU9saWFpaGlDamFmaWVrQmNta21iZ0NibW9jY2VCZ2FjZU9CbGFibWtlR2JlbWhhZ0NrYWpqcGlPTXBrYmJHClllZm9mRHBp
ZmNsZEdnaWJmamhHVWNpY2JCbGFjbG1uRGdlamNobENnZXBpSUJuaUFjaUNwYWphZWRCZW1lZGgKZ0NwYW1uZGpEQW1va2JRaWltZWFiQldWZmpEYmVmaWFkQkllZmxp
UUFwZGlnUW9lYWZla0JjbWhmRUJNZXBuZgpHZWljamRtQ1VpZWZtR2xtaWZmYkNwaWVuZmZDQWdpR2RsbWFvZ1NRZm1tYmFlQllqZU9EbmFjaG5uRGtpaWdvCmxHV0Ro
b0dkaUlmZkJBbWRGQmhpZW5vb0dQam5mY0NXZ2NiZkNiaWVlQUJmbWpvZGVCbGljaXBqR2JpYW5iakMKWWpnbWlRaW1nbURDaWlqZ2lvR0FnYWVtQm1pbWhOQm9paW1Z
R2ttbmpjY0NtYXBpbWpPSWdra2FHaGFRYWxHagplZGdmaENuYW1qZ29DbWFMamFPTUZrZFFhaWNqbGxEbWFuamlvUVlJbGxPa21saWNnQ2dlZW9hZ0NZZmhmY0RnCmFv
bGVwR25pZmFwbURXSGdlR29hbGxjaUR0YW1hZEE1cWVlZWpmY2VoYWVBMmFtQTJlcFZlZGRiQUpoakhhbmIKYkExZmllbmVnZGJBSmhqSFRoYkExZXBWZWRkZUFNZGJk
aWFuYmVBMVZnaUpoYUhTQTFUYmJBMWVwVmVkU0EzYQpuYmJBMWVuWGhpZGJBM1RoY0ExZmllbmVnU0EzVGhiQTFlZ2VuZXBkZUEzYW9iYkExZW9MWGhkSGRiQTFhbmJi
CkExZW9MWGhkSFNBMWFvYmNBMVZGZGJBNFRiY0ExZmdlZGVnZGRBSmhqSGFjYmJBMWZnZWRlZ2RiQTNhYmJiQTEKZWdlbmVwZGRBM2FvYmJBMVZnaUpoYUhkYkFIVGJj
QTFlblhoaWRlQTNUaGNBMWZjWGdvZ2hkYkEyVFBBMWVnZQpuZXBTQU1TZGJhb2JiQTFlZVhoZFBTQWhqSFRiY0ExZW5YaGlTQU1TZGVUaGlBMWVuWGhpZGRBM1RoYkEx
ZWRMCmduZ2NkYkEyVGJjQTFlZExnbmdjU0EyVGJjQTFmY1hnb2doU0EyVGhpQTFmZ2VkZWdkZUEzYWNiYkExZmdlZGUKZ1NBM2FiMUExZWdlbmVwZGJBM2FvYmJBMVZG
U0FoY01TZGhUYmlBMWVnTGdtZ2VkYkEyVGJlQTFlZ0xnbWdlUwpBMlRiaUEyTVNkaUEyM2VtSmhqSEEyOEpoakhoY01kZFdBM2VwVmVkZGRBM2FvYmJBMTRNZGRkYkEx
OWVlWGhkClBkYkEyVGJiQTI5ekEyNDN0QVVBNXFBNDA5NXRhZXpBMnlBM3BqVlJEcTJBMTExbGdtb2lkRFIxS0JxMUExMTEKZWtWbmVPcG9SS0JxMUExMTFub2NoY2NP
YWNrbVVCSXBoVUJxQTExOEJwbmZmQUJxQTExNXBvVlJEcGlSMURxQQoxMTVwbGtocG9EcGhWUkRxQTExNXBhZW5vZERvbHBqb2REcUExMTVnZ29wbGtEZ2FqbGxsRHFB
MTE1Ymlmb2lpCkRiZFRpakRxQTExNWpmampjbERpbHBiY21EcUExMTVUZWlhZ0RBa2FhaERxQTExNWhiamhsZE9mbGVobGdPcUEKMTE1aW9iZGZqT2dkaGRmb09xQTEx
NW1hbmVva2RtZ2FqZXBmZG1xQTEwOHlRZ2NkbGxhYWNjbWRtamVXZXBkbQpxQTEwN3VzcGlSS0JxMUExMDd1c3ZxMUExMDd1c3EyQTEwN3VzbGViZ2xjbGxlZ2lubWVk
bHFBMTA3dXNBM1NiCmVmZ2RtcUExMDd1c2duTlpHTXBlb2JEcUExMDd1c3BuUktDdnFBMTA3dXNwblJLQ3ZxQTEwN3VzcG5SS0N2cUEKMTA3dXNwbVJLQ3ZxQTEwN3Vz
cG1SS0N2cUExMDd1c3BtUktDdnFBMTA3dXNwbVJLQ3ZxQTEwN3VzcG1SS0N2cQpBMTA3dXNwbVJLQ3ZxQTEwN3VwbVJLQ3N2cUExMTFlbW9icGtHc0ExMTluYW1tam1H
aWVvbGZiR0ExMTllbW9iCnBrUUExWUdiYmtvZWhHQTExNWVtb2JOUUEyR0ExNjUxbmVrZFdCb2FOamVEQTExOWthaGFiZkJqaWpqZGpEQTEKMTluaU5wZURtbm1tYW1E
QTExOW5pTlBEb2FOYmVPQTE2NTVhZkEydFVBNnlmaWVtZG1jZUszZ2FlaVdiaUszdApBekEyeUE4MTkxdHpBN2ZrU01maEpoZ0hQSmdjZ21ITWVmaGloYUxoY1BBMTJ0
YWV6QTJ5QTNwalZSRHEyQTExCjFsZ21vaWREUjFLQnExQTExMWVrVm5lT3BvUktCcTFBMTExbm9jaGNjT2Fja21VQklwaFVCcUExMThCcG5mZkEKQnFBMTE1cG9WUkRw
aVIxRHFBMTE1cGxraHBvRHBoVlJEcUExMTVwYWVub2REb2xwam9kRHFBMTE1Z2dvcGxrRApnYWpsbGxEcUExMTViaWZvaWlEYmRUaWpEcUExMTVqZmpqY2xEaWxwYmNt
RHFBMTE1VGVpYWdEQWthYWhEcUExCjE1aGJqaGxkT2ZsZWhsZ09xQTExNWlvYmRmak9nZGhkZm9PcUExMTVtYW5lb2tkbWdhamVwZmRtcUExMDh5UWcKY2RsbGFhY2Nt
ZG1qZVdlcGRtcUExMDd1c3BpUktCcTFBMTA3dXN2cTFBMTA3dXNxMkExMDd1c2xlYmdsY2xsZQpnaW5tZWRscUExMDd1c0EzU2JlZmdkbXFBMTA3dXNnbk5aR01wZW9i
RHFBMTA3dXNwblJLQ3ZxQTEwN3VzcG5SCktDdnFBMTA3dXNwblJLQ3ZxQTEwN3VzcG1SS0N2cUExMDd1c3BtUktDdnFBMTA3dXNwbVJLQ3ZxQTEwN3VzcG0KUktDdnFB
MTA3dXNwbVJLQ3ZxQTEwN3VzcG1SS0N2cUExMDd1cG1SS0NzdnFBMTExZW1vYnBrR3NBMTE5bmFtbQpqbUdpZW9sZmJHQTExOWVtb2Jwa1FBMVlHYmJrb2VoR0ExMTVl
bW9iTlFBMkdBMTY1MW5la2RXQm9hTmplREExCjE5a2FoYWJmQmppampkakRBMTE5bmlOcGVEbW5tbWFtREExMTluaU5QRG9hTmJlT0ExNjU1YWZBMnRVQTZ5ZmkKZW1k
bWNlSzNnYWVpV2JpSzN0QXpBMnlBODE5MXR6QTdma1NNZmhKaGdIUEpnY2dtSE1lZmhpaGFMaGNQQTRobApVQTV0YWV6QTJ5QTNwalZSRHEyQTExMWxnbW9pZERSMUtC
cTFBMTExZWtWbmVPcG9SS0JxMUExMTFub2NoY2NPCmFja21VQklwaFVCcUExMThCcG5mZkFCcUExMTVwb1ZSRHBpUjFEcUExMTVwbGtocG9EcGhWUkRxQTExNXBhZW4K
b2REb2xwam9kRHFBMTE1Z2dvcGxrRGdhamxsbERxQTExNWJpZm9paURiZFRpakRxQTExNWpmampjbERpbHBiYwptRHFBMTE1VGVpYWdEQWthYWhEcUExMTVoYmpobGRP
ZmxlaGxnT3FBMTE1aW9iZGZqT2dkaGRmb09xQTExNW1hCm5lb2tkbWdhamVwZmRtcUExMDh5UWdjZGxsYWFjY21kbWplV2VwZG1xQTEwN3VzcGlSS0JxMUExMDd1c3Zx
MUEKMTA3dXNxMkExMDd1c2xlYmdsY2xsZWdpbm1lZGxxQTEwN3VzQTNTYmVmZ2RtcUExMDd1c2duTlpHTXBlb2JEcQpBMTA3dXNwblJLQ3ZxQTEwN3VzcG5SS0N2cUEx
MDd1c3BuUktDdnFBMTA3dXNwbVJLQ3ZxQTEwN3VzcG1SS0N2CnFBMTA3dXNwbVJLQ3ZxQTEwN3VzcG1SS0N2cUExMDd1c3BtUktDdnFBMTA3dXNwbVJLQ3ZxQTEwN3Vw
bVJLQ3MKdnFBMTExZW1vYnBrR3NBMTE5bmFtbWptR2llb2xmYkdBMTE5ZW1vYnBrUUExWUdiYmtvZWhHQTExNWVtb2JOUQpBMkdBMTY1MW5la2RXQm9hTmplREExMTlr
YWhhYmZCamlqamRqREExMTluaU5wZURtbm1tYW1EQTExOW5pTlBECm9hTmJlT0ExNjU1YWZBMnRVQTZ5ZmllbWRtY2VLM2dhZWlXYmlLM3RBekEyeUE4MTkxdHpBN2Zr
U01maEpoZ0gKUEpnY2dtSE1lZmhpaGFMaGNQQTRraWJtQTV0YWV6QTJ5QTNqbGtjY2dEQTJCcUExMjJCcUExMjJCcUExMjJCcQpBMTIyQnFBMTIyQnFBMTIyQnFBMTIy
QnFBMTIyQnFBMTIyQnFBMTIyQnFBMTIyQnFBMTIyQnFBMTIyQnFBMTIyCkJxQTEyMkJxQTExNWFmYmdsY2RtQTNxQTExNXNBM3FBMTE1c0EzcUExMTVzQTNxQTExNXNB
M3FBMTE1c0EzcUEKMTE1c0EzcUExMTVzQTNxQTExNXNBM3FBMTE1c0EzcUExMTVzQTNxQTExNXNBM3FBMTE1c0EzcUExMTVzQTNxQQoxMTVzQTNxQTExNXNBM3FBNDIw
N2FlQTJ0VUE2eWZpZW1kbWNlSzNnYWVpV2JpSzN0QXpBMnlBM3FBN3FBMTlaCmpsZm9CQTExTlpibERBM1FvamVuQkExMUxOVkJaamxub09BN29rZW5MQkE3Y2JhbGZq
QkEyN3FBMjdqbW5vUEIKQTQ3bGNqYWFmQmxjamFpZk9lZGJnbGNsbUEzNXFBMzFiZ2xjamFEQTExZWRiZ2xjT0ExNU5aYmxEZWRiZ2xjZAptQTE2M1FvamVuQ0E3b2tl
bkxDQTExbGNqYWFmR0EzTlpibENBMTltaUZiZ0NBMjNjYmFsZmpDQTIyQ0ExNUxOClZDQTExTE5aR0EyM2NiYWxmakNBMjNsY2phaWZHQTExZ2VjYmFsQ0ExOWFsZmpl
aUNBMTVqbW5vUENBMjducHAKZWtnR0ExOWFsZmptaUdBMzFlZGJnU0dBMTU5TE5WQkE3YmdsY1VCQTExZW9MTkJBMTVmam1pRkJBMzVhbGZqZQppQkEzNWFsZmplaUJB
MzVMTlZCQTMxa2hkaE9CQTI3cGZrZ2RoQkEyNzVva2VuTENBMTFaamxmb0NBMTVpZ2NtCmdlQ0ExNWptbm9QQ0EzOWptbm9QQ0EyN2ptbm9wZUdBMjNOWmpsR0E1MU5a
YmxDQTE1ZmptaUZDQTI1OEJBMTEKYmdsY2phREE3TE5WQkEyM1pqbGZvQkExNVpqbGZvQkEzOVpqbGZvQkExMWRpUVhCQTM1ZmptaUZCQTExZ2VjYgphbEJBMzFqbW5v
UEJBMjc5bGNqYWlmR0ExMWRpUVhDQTExTlpibENBMzVqYmlmY21DQTM1YmdsY1VDQTNiZ2xjClVDQTdiZ2xjVUNBMTVva2VuTENBMzBDQTExZ2VjYmFsQ0ExMWJnbGNq
YUdBNDdwZmtnZGhDQTIzOWtoZGhRREEKM2VkYmdTT0xOVkJBMTlva2VuTEJBMzlOWmJsQkEyM21pRmJnQkEyM2VvTE5CQTIzTlpibEJBMTlOWmJsQkE3bgpwcGVjZ0JB
MTltaUZiZ0JBMjgzWmpsZm9HZGlRb2pHQTIzZWRiZ1NDQTE5c0ExMW5wcGVjZ0NBMTFzQTM1Z2VjCmJhbENBM3NBN2dlY2JhbENBMzlqYmlmY21DQTMxNWptbm9QREEy
N29rZW5MQkExOVpqbG5vREEzYmdsY1VCQTEKNWNiYWxmakJBMTlaamxub0RBMTlkaVFYQkExOWptbm9wZURBMTlva2VuTEJBMTltaUZiZ0JBMTlkaVFYQkEyOAozUW9q
ZW5DQTdsY2phaWZHam1ub1BHQTNqbW5vUENsY2phYWZHQTExYWxmamVpQ0ExNWtoZGhPQ0EyM1FvamVuCkNBMTliZ2xjVUNBMTVhbGZqZWlDQTE1TE5aR0ExOVFvamVu
Q0ExOWxjamFpZkdBMTFnZWNiYWxDQTE5YWxmamUKaUNBMTVqbW5vUENBMjducHBla2dHQTE5YWxmam1pR0EzMWVkYmdTR0ExNTFjbmdlY2JCQTNMTlZCQTdqbW5vUApC
TE5aREEzTlpqbERBMTlmam1pRkJBN3FBMjNhbGZqZWlCQTdnZWNiYWxCQTIzYWxmamVpQkEzNUxOVkJBMzFrCmhkaE9CQTI3cGZrZ2RoQkEyNjdtaUZiZ0NBMjNqbW5v
cGVHQTNkaVFYQ0EyM05aYmxDQTE5WmpsZm9DQTE1Z2UKY2JhbENBM3NBN2xjamFhZkNBN3NBN2dlY2JhbENBMzU1am1ub1BETE5WQkE3YmdsY1VCQTNkaVFYQkEzZW9M
TgpCQTE1ZmptaUZCQTI3cUE0M2FsZmplaUJBN2JnbGNVQkEzZGlRb2pEQTExcUE3bWlGYmdCQTNMTlpEQTE1a2hkCmhPQkExOW9rZW5MQkEyNzVlZGJnbGNHQTNva2Vu
TENBMTFaamxmb0NBMTVpZ2NtZ2VDQTdwZmtnZGhDQTNqbW4Kb1BDQTExc0EyM2ptbm9QQ0EyN2ptbm9wZUdBMjNOWmpsR0E1MU5aYmxDQTE1ZmptaUZDQTI1OEJBMTVa
amxmbwpCQTdxQTIzcUExMVpqbGZvQkEzOVpqbGZvQkExMWRpUVhCQTI3am1ub1BCQTE0QkExNWVvTE5CQTdaamxmb0JBCjdnZWNiYWxCQTdqYmlmY21CQTI3MWptbm9Q
Q0E3ZW9MTkNBN2ptbm9QQ0E3c0E3ZW9MTkNaamxub1FBM3NBMTEKc0ExMXNBN3NBN2VvTE5DQTE1c0Ezc0ExNXNBMTFzQTM1cGZrZ2RoQ0E0N3NBMjdiZ2xjVUNBMTk5
dHpBN2ZrUwpNZmhKaGdIUEpnY2dtSE1lZmhpaGFMaGNQQTRtbGJmQTV0VUE2eWZjZmJlZkFLNGhvSUJLM3RVQTZ5ZmNmYmVmCkFLNGhvSUJLM3RVQTZ5Z25iZjJLNkFL
M3RVQTZ5Z25iZjJLNkFLM3RVQTZ5Z25iZjJLNkFLM3RVQTZ5Z25iZjIKSzZBSzN0YW1hZEE1cWVlZWpmY2VoYWRBMmFnQTJlZUhnbUpoamRiQTFhamJiQTFlZExnbmhh
U0EyVGJjQTFlbgpMZ2VlZ2ZpZGJBU1RiYkExZWVYaGRQZGRBU0FUYmVBMWVvaGZmY0hoZ2RiQTFhamJiVUFWZ2lKaGFIZGVBMVRiCmJBMVZnaUpoYUhkZEExVGJiQTFl
ZVhoZFBkZUEyVGJpQTFlblhoaWRmQUpoakhUaGJBMWVuWGhpZGdBM1RoY0EKMWVlSGdtSmhqU0ExVGJiQTFmY0hoZ2RiQTNUYmJVQWZjWGdvZ2hkZEEyVGhiQTFlbkxn
ZWVnZmlTQTFUYmJBMQplZExnbmhhZGJBMlRiYkExM2ZnZWRlZ2RmQTNhY2JiQTFlZmZiU0E0VGJjQTFlZmZiZGJBZW1KaGpIVGJiQTJKCmhqSGhjTWRpQTRmZ2VkZWdk
Z0EzYWNiYkExVkZkZEE0VGJjQTFmaWVuZWdkZEEzVGhjQTE3ZW1KaGpIQTI4SmgKakhoY01kYjFBMjhNZGJTQTIzZW1KaGpIQTI4SmhqSGhjTWRiZGVBMjhNZGJkZkEy
M2VtSmhqSEEyOEpoakhoYwpNZGJkaEEyOE1kYmRpQTIzZW1KaGpIQTI4SmhqSGhjTVNXQTI4TVNkYkEyM2VtSmhqSEEyOEpoakhoY01TZGRBCjI4TVNkZUExOXRBVUE1
cUE0MDk1dHpBN2VwaGRnZFhnbTFKUExoY2hkQTIwdHpBN2VnWGdtUEhoY0EyNXR6QTcKZW5YaGlQaGZoY0hBMjR0ekE3ZWZoaVBoY0poZEEyNXRBYWJBOWZpT2VnWGdv
SE1mZWhmZ29IVGZqT2VqZ29QSApoY2hnSmdtQTIzM3RBYWJBOWZpT2VkaGZQTGdnMVRmak9mY0hoZExnb0pnb2dkSEEyMzV0QWFiQTlmaU9GSGdtCjFUZmpPZW9MWGhk
SEEyNDF0QWFiQTlmaU9lZmdvaGdIZ21MaGFIVGZqT1ZoYUpnZEhoZEEyMzZ0ekE3ZWdYZ28KY25WSmhoY25mYWdtaGRjblZoYmhmQTdsYWhpY2xiaGFiQTJqbXR6QTdl
Z1hnb2NuVkpoaGNuZmFnbWhkY25WaApiaGZBN2xhaGljbGJoYWJBMmptdHpBN2VnWGdvY25WSmhoY25mYWdtaGRjblZoYmhmQTdsYWhpY2xiaGFiQTJqCm10ekE3Rkhn
bTFoZE1lZ2dtWGhhMUhoY0ExN2FidHpBN2dlSGdnSmhmZ21QQTE2ZWZnb2hnU0EzdHpBN2dlSGcKZ0poZmdtUEExNmVmZ29oZ2RkQTN0ekE3Z2VIZ2dKaGZnbVBBMTZl
ZmdvaGdkZUEzdHpBN2dlSGdnSmhmZ21QQQoxNmVuVmVmZWhkYkEydHpBOEhnZ0poZmdtUEFkZHBpZ2FDbGdoY2dhQ2hvb25mcENpamdpZnBDbmpvZGZvQ2duCmZwZm9D
dHpBOEhnZ0poZmdtUEFsbGlmV0JpZ2hkV0JmYUpXQmJpZXBXQm5vZG1XQmtjY2tXQnR6QThIZ2dKaGYKZ21QQWVvaGJpZ0JDaWxpZ0JkZmtnaWdCbGJtYWlnQlNubGln
QmxqcGZpZ0J0ekE4SGdnSmhmZ21QQVdwbGVpUQpoZGJvZW1Ra3BFZXBRb2NnZWZjUWFvaWlmZlFkYmtsZmlRdHpBN2dlSGdnSmhmZ21QQTE2ZW5WZWZlaFNBMnRBCmFi
QThGQTI1NXRBYWJBOEZBMjU1PTg4MzEyMAoAALVoAAAAAAAAI3BnbT1pbml0aWFsaXplLmgycAojQU09WmVicmEyCiNWZXJzPTIwNTAwCiNFbmRpYW49bGl0dGxlCiNu
bT0zNAojbXM9bm9uZQojbXM9TW9kV2hsCiNtcz1QaXRjaFcKI21zPUN0cmxBCiNtcz1DdHJsQgojbXM9TGZvRzEKI21zPUxmb0cyCiNtcz1HYXRlCiNtcz1LZXlGb2wK
I21zPUtleUZvbDIKI21zPVZlbG9jaXR5CiNtcz1BVG91Y2gKI21zPUFycE1vZAojbXM9QXJwTWQyCiNtcz1FbnYxCiNtcz1FbnYyCiNtcz1FbnYzCiNtcz1FbnY0CiNt
cz1NU0VHMQojbXM9TVNFRzIKI21zPU1TRUczCiNtcz1NU0VHNAojbXM9TGZvMQojbXM9TGZvMgojbXM9TGZvMwojbXM9TGZvNAojbXM9TU1hcDEKI21zPU1NYXAyCiNt
cz1NTWFwMwojbXM9TU1hcDQKI21zPU1NaXgxCiNtcz1NTWl4MgojbXM9TU1peDMKI21zPU1NaXg0CiNudj01CiNtdj1HYXRlCiNtdj1FbnYxCiNtdj1FbnYyCiNtdj1F
bnYzCiNtdj1FbnY0CiNjbT1tYWluCkNjT3A9ODQuMDAKI0xGT0c9MQojTEZPRzI9MQojY209UENvcmUKWF8xPTAuMDAKWV8xPTAuMDAKWF8yPTAuMDAKWV8yPTAuMDAK
WF8zPTAuMDAKWV8zPTAuMDAKWF80PTAuMDAKWV80PTAuMDAKTVQxMT1PU0MxOlR1bmUKTUwxMT0wLjIwCk1SMTE9LTAuMjAKTVQxMj1PU0MxOkR0dW4KTUwxMj0tOS4w
MApNUjEyPS0xMS4wMApNVDEzPU9TQzI6RHR1bgpNTDEzPTcuMDAKTVIxMz04LjAwCk1UMTQ9bm9uZTphc3NpZ25lZApNTDE0PTUwLjAwCk1SMTQ9LTUwLjAwCk1UMTU9
bm9uZTphc3NpZ25lZApNTDE1PTQ4LjAwCk1SMTU9LTQ4LjAwCk1UMTY9bm9uZTphc3NpZ25lZApNTDE2PTUwLjAwCk1SMTY9LTUwLjAwCk1UMTc9bm9uZTphc3NpZ25l
ZApNTDE3PTUwLjAwCk1SMTc9LTUwLjAwCk1UMTg9bm9uZTphc3NpZ25lZApNTDE4PTUwLjAwCk1SMTg9LTUwLjAwCk1UMjE9RU5WMzpTdXMKTUwyMT02Mi4wMApNUjIx
PS0zNS4wMApNVDIyPW5vbmU6YXNzaWduZWQKTUwyMj01MC4wMApNUjIyPS01MC4wMApNVDIzPW5vbmU6YXNzaWduZWQKTUwyMz01MC4wMApNUjIzPS01MC4wMApNVDI0
PW5vbmU6YXNzaWduZWQKTUwyND01MC4wMApNUjI0PS01MC4wMApNVDI1PW5vbmU6YXNzaWduZWQKTUwyNT01MC4wMApNUjI1PS01MC4wMApNVDI2PW5vbmU6YXNzaWdu
ZWQKTUwyNj01MC4wMApNUjI2PS01MC4wMApNVDI3PW5vbmU6YXNzaWduZWQKTUwyNz01MC4wMApNUjI3PS01MC4wMApNVDI4PW5vbmU6YXNzaWduZWQKTUwyOD01MC4w
MApNUjI4PS01MC4wMApNVDMxPVZDRjE6Rk0xCk1MMzE9NDguMDAKTVIzMT0tNzIuMDAKTVQzMj1ub25lOmFzc2lnbmVkCk1MMzI9NTAuMDAKTVIzMj0tNTAuMDAKTVQz
Mz1ub25lOmFzc2lnbmVkCk1MMzM9NTAuMDAKTVIzMz0tNTAuMDAKTVQzND1ub25lOmFzc2lnbmVkCk1MMzQ9NTAuMDAKTVIzND0tNTAuMDAKTVQzNT1ub25lOmFzc2ln
bmVkCk1MMzU9NDguMDAKTVIzNT0tNDguMDAKTVQzNj1ub25lOmFzc2lnbmVkCk1MMzY9NTAuMDAKTVIzNj0tNTAuMDAKTVQzNz1ub25lOmFzc2lnbmVkCk1MMzc9NDgu
MDAKTVIzNz0tNDguMDAKTVQzOD1ub25lOmFzc2lnbmVkCk1MMzg9NTAuMDAKTVIzOD0tNTAuMDAKTVQ0MT1WQ0YxOlJlcwpNTDQxPTM5LjAwCk1SNDE9MjguMDAKTVQ0
Mj1WQ0ExOlZvbDIKTUw0Mj0wLjAwCk1SNDI9MzUuMDAKTVQ0Mz1WQ0ExOlZvbDEKTUw0Mz0wLjAwCk1SNDM9LTE3LjAwCk1UNDQ9bm9uZTphc3NpZ25lZApNTDQ0PTQ4
LjAwCk1SNDQ9LTQ4LjAwCk1UNDU9bm9uZTphc3NpZ25lZApNTDQ1PTUwLjAwCk1SNDU9LTUwLjAwCk1UNDY9bm9uZTphc3NpZ25lZApNTDQ2PTQ4LjAwCk1SNDY9LTQ4
LjAwCk1UNDc9bm9uZTphc3NpZ25lZApNTDQ3PTUwLjAwCk1SNDc9LTUwLjAwCk1UNDg9bm9uZTphc3NpZ25lZApNTDQ4PTUwLjAwCk1SNDg9LTUwLjAwCk1UNTE9T1ND
NDpWb2wKTUw1MT0xMDQuMDAKTVI1MT0xMDAuMDAKTVQ1Mj1PU0M0OkR0dW4KTUw1Mj0wLjAwCk1SNTI9LTI0LjAwCk1UNTM9T1NDNDpTRlgxCk1MNTM9MC4wMApNUjUz
PTQ5LjAwCk1UNTQ9bm9uZTphc3NpZ25lZApNTDU0PTUwLjAwCk1SNTQ9LTUwLjAwCk1UNTU9bm9uZTphc3NpZ25lZApNTDU1PTUwLjAwCk1SNTU9LTUwLjAwCk1UNTY9
bm9uZTphc3NpZ25lZApNTDU2PTUwLjAwCk1SNTY9LTUwLjAwCk1UNTc9bm9uZTphc3NpZ25lZApNTDU3PTUwLjAwCk1SNTc9LTUwLjAwCk1UNTg9bm9uZTphc3NpZ25l
ZApNTDU4PTUwLjAwCk1SNTg9LTUwLjAwCk1UNjE9Tm9pc2UxOlZvbApNTDYxPTEwMC4wMApNUjYxPTIwMC4wMApNVDYyPU9TQzE6Vm9sCk1MNjI9MC4wMApNUjYyPS0x
MDAuMDAKTVQ2Mz1PU0MyOlZvbApNTDYzPTAuMDAKTVI2Mz0tMTAwLjAwCk1UNjQ9bm9uZTphc3NpZ25lZApNTDY0PTUwLjAwCk1SNjQ9LTUwLjAwCk1UNjU9bm9uZTph
c3NpZ25lZApNTDY1PTUwLjAwCk1SNjU9LTUwLjAwCk1UNjY9bm9uZTphc3NpZ25lZApNTDY2PTUwLjAwCk1SNjY9LTUwLjAwCk1UNjc9bm9uZTphc3NpZ25lZApNTDY3
PTUwLjAwCk1SNjc9LTUwLjAwCk1UNjg9bm9uZTphc3NpZ25lZApNTDY4PTUwLjAwCk1SNjg9LTUwLjAwCk1UNzE9RU5WMjpBdGsKTUw3MT0zMy4wMApNUjcxPS0xMy4w
MApNVDcyPUVOVjI6RGVjCk1MNzI9MTUuMDAKTVI3Mj0tMjQuMDAKTVQ3Mz1FTlYxOlN1cwpNTDczPTEuMDAKTVI3Mz0tMzkuMDAKTVQ3ND1FTlYxOkRlYwpNTDc0PTAu
MDAKTVI3ND0tNTAuMDAKTVQ3NT1FTlYxOlJlbApNTDc1PTI3LjAwCk1SNzU9LTEwLjAwCk1UNzY9bm9uZTphc3NpZ25lZApNTDc2PTUwLjAwCk1SNzY9LTUwLjAwCk1U
Nzc9bm9uZTphc3NpZ25lZApNTDc3PTUwLjAwCk1SNzc9LTUwLjAwCk1UNzg9bm9uZTphc3NpZ25lZApNTDc4PTUwLjAwCk1SNzg9LTUwLjAwCk1UODE9RGVsYXkxOk1p
eApNTDgxPTAuMDAKTVI4MT0tNTguMDAKTVQ4Mj1OdVJldjE6TWl4Ck1MODI9ODIuMDAKTVI4Mj03NS4wMApNVDgzPVpNYXM6TWFzdApNTDgzPTI5LjAwCk1SODM9MjMu
MDAKTVQ4ND1OdVJldjE6U2l6ZQpNTDg0PTAuMDAKTVI4ND0tMTE3LjQxCk1UODU9TnVSZXYxOkRlY2F5Ck1MODU9MS4wMApNUjg1PS0xNy4wMApNVDg2PU51UmV2MTpU
b25lCk1MODY9MC4wMApNUjg2PTMyLjAwCk1UODc9bm9uZTphc3NpZ25lZApNTDg3PTUwLjAwCk1SODc9LTUwLjAwCk1UODg9bm9uZTphc3NpZ25lZApNTDg4PTUwLjAw
Ck1SODg9LTUwLjAwCk1NVDE9bm9uZTphc3NpZ25lZApNTVMxPTAKTU1EMT0wLjAwCk1NVlMxPTAKTU1WRDE9MC4wMApNTVQyPW5vbmU6YXNzaWduZWQKTU1TMj0wCk1N
RDI9MC4wMApNTVZTMj0wCk1NVkQyPTAuMDAKTU1UMz1ub25lOmFzc2lnbmVkCk1NUzM9MApNTUQzPTAuMDAKTU1WUzM9MApNTVZEMz0wLjAwCk1NVDQ9bm9uZTphc3Np
Z25lZApNTVM0PTAKTU1END0wLjAwCk1NVlM0PTAKTU1WRDQ9MC4wMApNTVQ1PW5vbmU6YXNzaWduZWQKTU1TNT0wCk1NRDU9MC4wMApNTVZTNT0wCk1NVkQ1PTAuMDAK
TU1UNj1ub25lOmFzc2lnbmVkCk1NUzY9MApNTUQ2PTAuMDAKTU1WUzY9MApNTVZENj0wLjAwCk1NVDc9bm9uZTphc3NpZ25lZApNTVM3PTAKTU1ENz0wLjAwCk1NVlM3
PTAKTU1WRDc9MC4wMApNTVQ4PW5vbmU6YXNzaWduZWQKTU1TOD0wCk1NRDg9MC4wMApNTVZTOD0wCk1NVkQ4PTAuMDAKTU1UOT1ub25lOmFzc2lnbmVkCk1NUzk9MApN
TUQ5PTAuMDAKTU1WUzk9MApNTVZEOT0wLjAwCk1NVDEwPW5vbmU6YXNzaWduZWQKTU1TMTA9MApNTUQxMD0wLjAwCk1NVlMxMD0wCk1NVkQxMD0wLjAwCk1NVDExPW5v
bmU6YXNzaWduZWQKTU1TMTE9MApNTUQxMT0wLjAwCk1NVlMxMT0wCk1NVkQxMT0wLjAwCk1NVDEyPW5vbmU6YXNzaWduZWQKTU1TMTI9MApNTUQxMj0wLjAwCk1NVlMx
Mj0wCk1NVkQxMj0wLjAwClNCYXNlPTIKU3dpbmc9MC4wMApTVHJpZz0xClBQcm9qPTEKUEZvbGQ9MApQRmlsZT0xCkdGaWxlPTIKR1NjYWxlPTAKQ2hMYXk9MApTdXJy
Tz0wClJldj0xNjc2NQpMRUQ9MC4wMApQQUdFPTAKUGFnZXNPbj0wCkNvcmVOPTMKU2xpY2U9NApVSV9vcD0zCk1pZGlBPTUKTWlkaVA9NgpERm9sZD03CkN0cmxBPTIK
Q3RybEI9MTEKR1NjU2V0PTAKQ2hPQz0yCkxGRT0wCkNlbj0wCk1vbm9Jbj0wCiNjbT1MRk9HClN5bmM9LTIKVHJpZz0wCldhdmU9MQpQaHNlPTAuMDAKUmF0ZT04MC4w
MApBbXA9MTAwLjAwClNsZXc9MQpOc3RwPTE2ClN0cHM9OApVV3Y9MAojY209TEZPRzIKU3luYz0tMgpUcmlnPTAKV2F2ZT0xClBoc2U9MC4wMApSYXRlPTEwMC4wMApB
bXA9MTAwLjAwClNsZXc9MQpOc3RwPTE2ClN0cHM9OQpVV3Y9MAojY209VkNDCiNMRk8xPTEKI0xGTzI9MQojTEZPMz0xCiNMRk80PTEKVm9pY2VzPTEKVm9pY2luZz0w
Ck1vZGU9MApQb3J0YT0wLjAwClBCPTIKUEJEPTIKQXJTYz0yCkFyT3JkPTAKQXJMcD0wCkFyT2N0PTAKQXJMTD0xNgpBclRyPTAKRHJmdD0xCk1UdW5TPTAKTVR1bk49
MTAKTVR1blQ9MTEKVHJzcD0tMTIKRlR1bj0wLjAwClBvcnRSZz0xMDAuMDAKUG9ydGFNPTAKUG9ydGEyPTE2LjAwCkFndGUxPTIKQXRycDE9MApBdm9jMT0xCkFtdWwx
PTEKQW1vZDE9MApBTURwdDE9MC4wMApBTURwQjE9MC4wMApBZ3RlMj0yCkF0cnAyPTAKQXZvYzI9MQpBbXVsMj0xCkFtb2QyPTAKQU1EcHQyPTAuMDAKQU1EcEIyPTAu
MDAKQWd0ZTM9MgpBdHJwMz0wCkF2b2MzPTEKQW11bDM9MQpBbW9kMz0wCkFNRHB0Mz0wLjAwCkFNRHBCMz0wLjAwCkFndGU0PTIKQXRycDQ9MApBdm9jND0xCkFtdWw0
PTEKQW1vZDQ9MApBTURwdDQ9MC4wMApBTURwQjQ9MC4wMApBZ3RlNT0yCkF0cnA1PTAKQXZvYzU9MQpBbXVsNT0xCkFtb2Q1PTAKQU1EcHQ1PTAuMDAKQU1EcEI1PTAu
MDAKQWd0ZTY9MgpBdHJwNj0wCkF2b2M2PTEKQW11bDY9MQpBbW9kNj0wCkFNRHB0Nj0wLjAwCkFNRHBCNj0wLjAwCkFndGU3PTIKQXRycDc9MApBdm9jNz0xCkFtdWw3
PTEKQW1vZDc9MApBTURwdDc9MC4wMApBTURwQjc9MC4wMApBZ3RlOD0yCkF0cnA4PTAKQXZvYzg9MQpBbXVsOD0xCkFtb2Q4PTAKQU1EcHQ4PTAuMDAKQU1EcEI4PTAu
MDAKQWd0ZTk9MgpBdHJwOT0wCkF2b2M5PTEKQW11bDk9MQpBbW9kOT0wCkFNRHB0OT0wLjAwCkFNRHBCOT0wLjAwCkFndGUxMD0yCkF0cnAxMD0wCkF2b2MxMD0xCkFt
dWwxMD0xCkFtb2QxMD0wCkFNRHB0MTA9MC4wMApBTURwQjEwPTAuMDAKQWd0ZTExPTIKQXRycDExPTAKQXZvYzExPTEKQW11bDExPTEKQW1vZDExPTAKQU1EcHQxMT0w
LjAwCkFNRHBCMTE9MC4wMApBZ3RlMTI9MgpBdHJwMTI9MApBdm9jMTI9MQpBbXVsMTI9MQpBbW9kMTI9MApBTURwdDEyPTAuMDAKQU1EcEIxMj0wLjAwCkFndGUxMz0y
CkF0cnAxMz0wCkF2b2MxMz0xCkFtdWwxMz0xCkFtb2QxMz0wCkFNRHB0MTM9MC4wMApBTURwQjEzPTAuMDAKQWd0ZTE0PTIKQXRycDE0PTAKQXZvYzE0PTEKQW11bDE0
PTEKQW1vZDE0PTAKQU1EcHQxND0wLjAwCkFNRHBCMTQ9MC4wMApBZ3RlMTU9MgpBdHJwMTU9MApBdm9jMTU9MQpBbXVsMTU9MQpBbW9kMTU9MApBTURwdDE1PTAuMDAK
QU1EcEIxNT0wLjAwCkFndGUxNj0yCkF0cnAxNj0wCkF2b2MxNj0xCkFtdWwxNj0xCkFtb2QxNj0wCkFNRHB0MTY9MC4wMApBTURwQjE2PTAuMDAKI2NtPUVOVjEKTW9k
ZT0wCmlNb2RlPTAKc01vZGU9MAppbml0PTAuMDAKQXRrPTAuMDAKRGVjPTEwMC4wMApTdXM9NDAuMDAKU3VzVD0wLjAwClN1czI9MC4wMApSZWw9MzAuMDAKVmVsPTAu
MDAKVjJJPTAuMDAKVjJBPTAuMDAKVjJEPTAuMDAKVjJTPTAuMDAKVjJGUj0wLjAwClYyUzI9MC4wMApWMlI9MC4wMApLMkk9MC4wMApLMkE9MC4wMApLMkQ9MC4wMApL
MlM9MC4wMApLMkZSPTAuMDAKSzJTMj0wLjAwCksyUj0wLjAwClNsb3BlPS02MC4wMApUQmFzZT0wCiNjbT1FTlYyCk1vZGU9MAppTW9kZT0wCnNNb2RlPTAKaW5pdD0w
LjAwCkF0az0yMC4wMApEZWM9NjAuMDAKU3VzPTAuMDAKU3VzVD0wLjAwClN1czI9MC4wMApSZWw9NTAuMDAKVmVsPTkwLjAwClYyST0wLjAwClYyQT0tMjQuMDAKVjJE
PTAuMDAKVjJTPTAuMDAKVjJGUj0wLjAwClYyUzI9MC4wMApWMlI9MC4wMApLMkk9MC4wMApLMkE9MC4wMApLMkQ9MC4wMApLMlM9MC4wMApLMkZSPTAuMDAKSzJTMj0w
LjAwCksyUj0wLjAwClNsb3BlPS02MC4wMApUQmFzZT0wCiNjbT1FTlYzCk1vZGU9MAppTW9kZT0wCnNNb2RlPTAKaW5pdD0wLjAwCkF0az0wLjAwCkRlYz0wLjAwClN1
cz00OS41MApTdXNUPTAuMDAKU3VzMj0wLjAwClJlbD0xMDAuMDAKVmVsPTAuMDAKVjJJPTAuMDAKVjJBPTAuMDAKVjJEPTAuMDAKVjJTPTAuMDAKVjJGUj0wLjAwClYy
UzI9MC4wMApWMlI9MC4wMApLMkk9MC4wMApLMkE9MC4wMApLMkQ9MC4wMApLMlM9MC4wMApLMkZSPTAuMDAKSzJTMj0wLjAwCksyUj0wLjAwClNsb3BlPS02MC4wMApU
QmFzZT0wCiNjbT1FTlY0Ck1vZGU9MAppTW9kZT0wCnNNb2RlPTAKaW5pdD0wLjAwCkF0az0wLjAwCkRlYz01MC4wMApTdXM9MTAwLjAwClN1c1Q9MC4wMApTdXMyPTAu
MDAKUmVsPTEwLjAwClZlbD0wLjAwClYyST0wLjAwClYyQT0wLjAwClYyRD0wLjAwClYyUz0wLjAwClYyRlI9MC4wMApWMlMyPTAuMDAKVjJSPTAuMDAKSzJJPTAuMDAK
SzJBPTAuMDAKSzJEPTAuMDAKSzJTPTAuMDAKSzJGUj0wLjAwCksyUzI9MC4wMApLMlI9MC4wMApTbG9wZT0tNjAuMDAKVEJhc2U9MAojY209TVNFRzEKVG1Vbj0xCkVu
dj0xMgpWZWw9MC4wMApBdGs9MC4wMApMcHQ9MC4wMApSZWw9MC4wMApUcmlnPTAKI2NtPU1TRUcyClRtVW49MQpFbnY9MTMKVmVsPTAuMDAKQXRrPTAuMDAKTHB0PTAu
MDAKUmVsPTAuMDAKVHJpZz0wCiNjbT1NU0VHMwpUbVVuPTEKRW52PTE0ClZlbD0wLjAwCkF0az0wLjAwCkxwdD0wLjAwClJlbD0wLjAwClRyaWc9MAojY209TVNFRzQK
VG1Vbj0xCkVudj0xNQpWZWw9MC4wMApBdGs9MC4wMApMcHQ9MC4wMApSZWw9MC4wMApUcmlnPTAKI2NtPUxGTzEKU3luYz0tMwpUcmlnPTEKV2F2ZT0wClBoc2U9MC4w
MApSYXRlPTgwLjAwCkFtcD0xMDAuMDAKU2xldz0xCk5zdHA9MTYKU3Rwcz0xNgpVV3Y9MApEbHk9MC4wMApETVMxPTEKRE1EMT0xMDAuMDAKRk1TMT0wCkZNRDE9MC4w
MAojY209TEZPMgpTeW5jPS0yClRyaWc9MQpXYXZlPTEKUGhzZT0wLjAwClJhdGU9MTAwLjAwCkFtcD0xMDAuMDAKU2xldz0xCk5zdHA9MTYKU3Rwcz0xNwpVV3Y9MApE
bHk9MC4wMApETVMxPTAKRE1EMT0wLjAwCkZNUzE9MApGTUQxPTAuMDAKI2NtPUxGTzMKU3luYz0tMgpUcmlnPTEKV2F2ZT0xClBoc2U9MC4wMApSYXRlPTEwMC4wMApB
bXA9MTAwLjAwClNsZXc9MQpOc3RwPTE2ClN0cHM9MTgKVVd2PTAKRGx5PTAuMDAKRE1TMT0wCkRNRDE9MC4wMApGTVMxPTAKRk1EMT0wLjAwCiNjbT1MRk80ClN5bmM9
LTIKVHJpZz0xCldhdmU9MQpQaHNlPTAuMDAKUmF0ZT0xMDAuMDAKQW1wPTEwMC4wMApTbGV3PTEKTnN0cD0xNgpTdHBzPTE5ClVXdj0wCkRseT0wLjAwCkRNUzE9MApE
TUQxPTAuMDAKRk1TMT0wCkZNRDE9MC4wMAojY209TU1hcDEKTW9kZT0yCk1TcmM9MTYKU3Rwcz0yMApOdW09MwojY209TU1hcDIKTW9kZT0wCk1TcmM9MApTdHBzPTIx
Ck51bT0xNwojY209TU1hcDMKTW9kZT0zCk1TcmM9MApTdHBzPTIyCk51bT0xNwojY209TU1hcDQKTW9kZT0zCk1TcmM9MApTdHBzPTIzCk51bT0xNwojY209TU1peDEK
VHlwZT0wCk1vZDE9MApNb2QyPTAKTW9kMz0wCkNzdD01MC4wMAojY209TU1peDIKVHlwZT0wCk1vZDE9MApNb2QyPTAKTW9kMz0wCkNzdD01MC4wMAojY209TU1peDMK
VHlwZT0wCk1vZDE9MApNb2QyPTAKTW9kMz0wCkNzdD01MC4wMAojY209TU1peDQKVHlwZT0wCk1vZDE9MApNb2QyPTAKTW9kMz0wCkNzdD01MC4wMAojY209R3JpZApH
cmlkPTI0CkdCeXA9MApHU3RvcmU9MjUKI2NtPU9TQzEKV2F2ZT0wClR1bmU9MC4wMApLZXlTY2w9MTAwLjAwClRNU3JjPTAKVE1EcHQ9MC4wMApQaHNlPTUwLjAwClBo
c01TcmM9MApQaHNNRHB0PTAuMDAKV051bT01LjAwCldQU3JjPTAKV1BEcHQ9MC4wMApWdG9EPTY1LjAwCkN1cnZlPTI2ClByZWM9NS4wMApGWDFUcD0wClNGWDE9MC4w
MApGWDFTYz0wCkZYMUR0PTAuMDAKRlgyVHA9MApTRlgyPTAuMDAKRlgyU2M9MApGWDJEdD0wLjAwClBvbHk9MQpEdHVuPS04LjAwCktWc2M9MjcKVm9sPTEwMC4wMApW
b2xTYz0wClZvbER0PTAuMDAKUGFuPTAuMDAKUGFuU2M9MApQYW5EdD0wLjAwClN5bmM9MC4wMApTbmNTYz0wClNuY0R0PTAuMDAKU25jT249MApQb2xXPTUwLjAwClB3
bU9uPTAKV2FUYj0yOApSZVBocz0wCk5vcm09MTUuMDAKUmVuZD0wCkZtdHplPTAKV1ROYW1lPTI5CiNjbT1PU0MyCldhdmU9MApUdW5lPTAuMDAKS2V5U2NsPTEwMC4w
MApUTVNyYz0yNgpUTURwdD0xMi4wMApQaHNlPTUwLjAwClBoc01TcmM9NQpQaHNNRHB0PTIyLjAwCldOdW09NS4wMApXUFNyYz0wCldQRHB0PTAuMDAKVnRvRD01NS4w
MApDdXJ2ZT0zMApQcmVjPTUuMDAKRlgxVHA9MApTRlgxPTAuMDAKRlgxU2M9MApGWDFEdD0wLjAwCkZYMlRwPTAKU0ZYMj0wLjAwCkZYMlNjPTAKRlgyRHQ9MC4wMApQ
b2x5PTEKRHR1bj00LjAwCktWc2M9MzEKVm9sPTEwMC4wMApWb2xTYz0wClZvbER0PTAuMDAKUGFuPTAuMDAKUGFuU2M9MApQYW5EdD0wLjAwClN5bmM9MC4wMApTbmNT
Yz0wClNuY0R0PTAuMDAKU25jT249MApQb2xXPTEwMC4wMApQd21Pbj0xCldhVGI9MzIKUmVQaHM9MApOb3JtPTE1LjAwClJlbmQ9MApGbXR6ZT0wCldUTmFtZT0zMwoj
Y209T1NDMwpXYXZlPTAKVHVuZT0wLjAwCktleVNjbD0xMDAuMDAKVE1TcmM9MApUTURwdD0wLjAwClBoc2U9NTAuMDAKUGhzTVNyYz0wClBoc01EcHQ9MC4wMApXTnVt
PTUuMDAKV1BTcmM9MApXUERwdD0wLjAwClZ0b0Q9MC4wMApDdXJ2ZT0zNApQcmVjPTUuMDAKRlgxVHA9MApTRlgxPTAuMDAKRlgxU2M9MApGWDFEdD0wLjAwCkZYMlRw
PTAKU0ZYMj0wLjAwCkZYMlNjPTAKRlgyRHQ9MC4wMApQb2x5PTAKRHR1bj0wLjAwCktWc2M9MzUKVm9sPTEwMC4wMApWb2xTYz0wClZvbER0PTAuMDAKUGFuPTAuMDAK
UGFuU2M9MApQYW5EdD0wLjAwClN5bmM9MC4wMApTbmNTYz0wClNuY0R0PTAuMDAKU25jT249MApQb2xXPTUwLjAwClB3bU9uPTAKV2FUYj0zNgpSZVBocz0wCk5vcm09
MTUuMDAKUmVuZD0wCkZtdHplPTAKV1ROYW1lPTM3CiNjbT1PU0M0CldhdmU9MwpUdW5lPTAuMDAKS2V5U2NsPTEwMC4wMApUTVNyYz0wClRNRHB0PTAuMDAKUGhzZT0w
LjAwClBoc01TcmM9MApQaHNNRHB0PTAuMDAKV051bT0xLjAwCldQU3JjPTAKV1BEcHQ9MTUuMDAKVnRvRD02NS4wMApDdXJ2ZT0zOApQcmVjPTcuMDAKRlgxVHA9MTYK
U0ZYMT0wLjAwCkZYMVNjPTAKRlgxRHQ9MC4wMApGWDJUcD0wClNGWDI9MC4wMApGWDJTYz0wCkZYMkR0PTAuMDAKUG9seT0yCkR0dW49Mi4wMApLVnNjPTM5ClZvbD0w
LjAwClZvbFNjPTAKVm9sRHQ9MC4wMApQYW49MC4wMApQYW5TYz0wClBhbkR0PTAuMDAKU3luYz0wLjAwClNuY1NjPTAKU25jRHQ9MC4wMApTbmNPbj0wClBvbFc9MTAw
LjAwClB3bU9uPTAKV2FUYj00MApSZVBocz0wCk5vcm09MjAuMDAKUmVuZD0wCkZtdHplPTAKV1ROYW1lPTQxCiNjbT1Ob2lzZTEKVHlwZT0wCkYxPTUwLjAwCkYxU3Jj
PTE1CkYxRHB0PTEwMC4wMApGMj0wLjAwCkYyU3JjPTAKRjJEcHQ9MC4wMApLVnNjPTQyClZvbD0wLjAwClZvbFNjPTAKVm9sRHQ9MC4wMApQYW49MC4wMApQYW5TYz0w
ClBhbkR0PTAuMDAKUG9seT0wClBvbFc9MTAwLjAwCiNjbT1Ob2lzZTIKVHlwZT0wCkYxPTEwMC4wMApGMVNyYz0wCkYxRHB0PTAuMDAKRjI9MC4wMApGMlNyYz0wCkYy
RHB0PTAuMDAKS1ZzYz00MwpWb2w9MTAwLjAwClZvbFNjPTAKVm9sRHQ9MC4wMApQYW49MC4wMApQYW5TYz0wClBhbkR0PTAuMDAKUG9seT0wClBvbFc9MTAwLjAwCiNj
bT1WQ0YxClR5cD0wCkN1dD0zNy4wMApSZXM9NS4wMApEcnY9MC4wMApHYWluPTAuMDAKRk0xPTEwMC4wMApGUzE9MTUKRk0yPTYwLjAwCkZTMj0xMQpLZXlTY2w9NDIu
MDAKI2NtPVZDRjIKVHlwPTE3CkN1dD03OC4wMApSZXM9MzUuMDAKRHJ2PTIwLjAwCkdhaW49MC4wMApGTTE9MzguMDAKRlMxPTUKRk0yPTAuMDAKRlMyPTAKS2V5U2Ns
PTAuMDAKI2NtPVZDRjMKVHlwPTE4CkN1dD0xNTAuMDAKUmVzPTAuMDAKRHJ2PTAuMDAKR2Fpbj0wLjAwCkZNMT0wLjAwCkZTMT0wCkZNMj0wLjAwCkZTMj0wCktleVNj
bD0wLjAwCiNjbT1WQ0Y0ClR5cD0xOApDdXQ9MTUwLjAwClJlcz0wLjAwCkRydj0wLjAwCkdhaW49MC4wMApGTTE9MC4wMApGUzE9MApGTTI9MC4wMApGUzI9MApLZXlT
Y2w9MC4wMAojY209Rk1PMQpXYXZlPTAKVHVuZT0wLjAwCktleVNjbD0xMDAuMDAKVE1TcmM9MApUTURwdD0wLjAwCkZNPTAuMDAKRk1TcmM9MApGTURwdD0wLjAwClZ0
b0Q9MC4wMApEdHVuPTAuMDAKS1ZzYz00NApWb2w9MTAwLjAwClZvbFNjPTAKVm9sRHQ9MC4wMApQYW49MC4wMApQYW5TYz0wClBhbkR0PTAuMDAKUG9seT0wClBvbFc9
MTAwLjAwCkdldHI9MAojY209Rk1PMgpXYXZlPTAKVHVuZT0wLjAwCktleVNjbD0xMDAuMDAKVE1TcmM9MApUTURwdD0wLjAwCkZNPTAuMDAKRk1TcmM9MApGTURwdD0w
LjAwClZ0b0Q9MC4wMApEdHVuPTAuMDAKS1ZzYz00NQpWb2w9MTAwLjAwClZvbFNjPTAKVm9sRHQ9MC4wMApQYW49MC4wMApQYW5TYz0wClBhbkR0PTAuMDAKUG9seT0w
ClBvbFc9MTAwLjAwCkdldHI9MAojY209Rk1PMwpXYXZlPTAKVHVuZT0wLjAwCktleVNjbD0xMDAuMDAKVE1TcmM9MApUTURwdD0wLjAwCkZNPTAuMDAKRk1TcmM9MApG
TURwdD0wLjAwClZ0b0Q9MC4wMApEdHVuPTAuMDAKS1ZzYz00NgpWb2w9MTAwLjAwClZvbFNjPTAKVm9sRHQ9MC4wMApQYW49MC4wMApQYW5TYz0wClBhbkR0PTAuMDAK
UG9seT0wClBvbFc9MTAwLjAwCkdldHI9MAojY209Rk1PNApXYXZlPTAKVHVuZT0wLjAwCktleVNjbD0xMDAuMDAKVE1TcmM9MApUTURwdD0wLjAwCkZNPTAuMDAKRk1T
cmM9MApGTURwdD0wLjAwClZ0b0Q9MC4wMApEdHVuPTAuMDAKS1ZzYz00NwpWb2w9MTAwLjAwClZvbFNjPTAKVm9sRHQ9MC4wMApQYW49MC4wMApQYW5TYz0wClBhbkR0
PTAuMDAKUG9seT0wClBvbFc9MTAwLjAwCkdldHI9MAojY209Q29tYjEKTW9kZT0wClR1bmU9MC4wMApLZXlTY2w9MTAwLjAwClRNU3JjPTAKVE1EcHQ9MC4wMApEZXRu
PTAuMDAKVnRvRD0wLjAwCkZCPTAuMDAKRkJTcmM9MApGQkRwdD0wLjAwCkRhbXA9MC4wMApEbXBTcmM9MApEbXBEcHQ9MC4wMApFeGM9MC4wMApJbmo9MTAwLjAwCklu
alNyYz0wCkluakRwdD0wLjAwClRuZT01MC4wMApUbmVTcmM9MApUbmVEcHQ9MC4wMApTZWM9MC4wMApTZWNTcmM9MApTZWNEcHQ9MC4wMApEaXN0PTAuMDAKRHJ5PTAu
MDAKVm9sPTIwMC4wMApWb2xTYz0wClZvbER0PTAuMDAKUGFuPTAuMDAKUGFuU2M9MApQYW5EdD0wLjAwClBvbHk9MApQb2xXPTEwMC4wMApGaWxsPTAKI2NtPUNvbWIy
Ck1vZGU9MApUdW5lPTAuMDAKS2V5U2NsPTEwMC4wMApUTVNyYz0wClRNRHB0PTAuMDAKRGV0bj0wLjAwClZ0b0Q9MC4wMApGQj0wLjAwCkZCU3JjPTAKRkJEcHQ9MC4w
MApEYW1wPTAuMDAKRG1wU3JjPTAKRG1wRHB0PTAuMDAKRXhjPTAuMDAKSW5qPTEwMC4wMApJbmpTcmM9MApJbmpEcHQ9MC4wMApUbmU9NTAuMDAKVG5lU3JjPTAKVG5l
RHB0PTAuMDAKU2VjPTAuMDAKU2VjU3JjPTAKU2VjRHB0PTAuMDAKRGlzdD0wLjAwCkRyeT0wLjAwClZvbD0yMDAuMDAKVm9sU2M9MApWb2xEdD0wLjAwClBhbj0wLjAw
ClBhblNjPTAKUGFuRHQ9MC4wMApQb2x5PTAKUG9sVz0xMDAuMDAKRmlsbD0wCiNjbT1TaGFwZTEKVHlwZT0zCkRlcHRoPTAuMDAKRE1TcmM9MApETURwdD0wLjAwCkVk
Z2U9MTAwLjAwCkVNU3JjPTAKRU1EcHQ9MC4wMApJbnB1dD0wLjAwCk91dHB1dD0wLjAwCkhpT3V0PTAuMDAKI2NtPVNoYXBlMgpUeXBlPTMKRGVwdGg9MC4wMApETVNy
Yz0wCkRNRHB0PTAuMDAKRWRnZT0xMDAuMDAKRU1TcmM9MApFTURwdD0wLjAwCklucHV0PTAuMDAKT3V0cHV0PTAuMDAKSGlPdXQ9MC4wMAojY209TWl4MQpQYW49MC4w
MApNaXg9NTAuMDAKUG5NZD0wClBuTUQ9MC4wMApQbk1TPTAKI2NtPU1peDIKUGFuPTAuMDAKTWl4PTUwLjAwClBuTWQ9MApQbk1EPTAuMDAKUG5NUz0wCiNjbT1NaXgz
ClBhbj0wLjAwCk1peD01MC4wMApQbk1kPTAKUG5NRD0wLjAwClBuTVM9MAojY209TWl4NApQYW49MC4wMApNaXg9NTAuMDAKUG5NZD0wClBuTUQ9MC4wMApQbk1TPTAK
I2NtPVhNRjEKVHlwPTAKQ3V0PTE1MC4wMApSZXM9MC4wMApGTTE9MC4wMApGUzE9MApGTTI9MC4wMApGUzI9MApLZXlTY2w9MC4wMApGT2ZmPTAuMDAKRk9Nb2Q9MC4w
MApGT1NyYz0wClhGTT0wLjAwClhGTUQ9MC4wMApYRk1TPTAKQmlhcz0wLjAwCk9Mb2FkPTAuMDAKQ2xpY2s9MC4wMApEcnY9MQpSb3V0PTAKVHlwMj0tMQojY209WE1G
MgpUeXA9MApDdXQ9MTUwLjAwClJlcz0wLjAwCkZNMT0wLjAwCkZTMT0wCkZNMj0wLjAwCkZTMj0wCktleVNjbD0wLjAwCkZPZmY9MC4wMApGT01vZD0wLjAwCkZPU3Jj
PTAKWEZNPTAuMDAKWEZNRD0wLjAwClhGTVM9MApCaWFzPTAuMDAKT0xvYWQ9MC4wMApDbGljaz0wLjAwCkRydj0xClJvdXQ9MApUeXAyPS0xCiNjbT1TQjEKUmFuZ2U9
MApGcmVxPTAuMDAKRk1TcmM9MApGTURwdD0wLjAwCk9mZnM9MC4wMApPTVNyYz0wCk9NRHB0PTAuMDAKTWl4PTUwLjAwCk1NU3JjPTAKTU1EcHQ9MC4wMAojY209U0Iy
ClJhbmdlPTAKRnJlcT0wLjAwCkZNU3JjPTAKRk1EcHQ9MC4wMApPZmZzPTAuMDAKT01TcmM9MApPTURwdD0wLjAwCk1peD01MC4wMApNTVNyYz0wCk1NRHB0PTAuMDAK
I2NtPURpc3QxClR5cGU9MApJbnB1dD0wLjAwCk91dHB1dD0wLjAwClByZVRpbHQ9MC4wMApQc3RUaWx0PTAuMDAKQ250RnJlcT0xMDAuMDAKTG93PTAuMDAKSGlnaD0w
LjAwClBvc3RGbHQ9MAojY209RGlzdDIKVHlwZT0wCklucHV0PTAuMDAKT3V0cHV0PTAuMDAKUHJlVGlsdD0wLjAwClBzdFRpbHQ9MC4wMApDbnRGcmVxPTEwMC4wMApM
b3c9MC4wMApIaWdoPTAuMDAKUG9zdEZsdD0wCiNjbT1Gb2xkMQpSaXBwbGVzPTQKRm9sZHM9MTAuMDAKRk1vZD0wLjAwCkZTcmM9MApCaWFzPTAuMDAKQk1vZD0wLjAw
CkJTcmM9MApGUmF0aW89NTAuMDAKRlNsb3BlPTEwLjAwCkNBbmdsPTUwLjAwCkxpdmU9MAojY209Rm9sZDIKUmlwcGxlcz00CkZvbGRzPTEwLjAwCkZNb2Q9MC4wMApG
U3JjPTAKQmlhcz0wLjAwCkJNb2Q9MC4wMApCU3JjPTAKRlJhdGlvPTUwLjAwCkZTbG9wZT0xMC4wMApDQW5nbD01MC4wMApMaXZlPTAKI2NtPVZDQTEKUGFuMT0wLjAw
ClBhbk1TMT0wClBhbk1EMT0wLjAwClZvbDE9NTAuMDAKVkNBMT0xCk1vZFNyYzE9MApNb2REcHQxPTAuMDAKUGFuMj0wLjAwClBhbk1TMj0wClBhbk1EMj0wLjAwClZv
bDI9MC4wMApWQ0EyPTEKTW9kU3JjMj0wCk1vZERwdDI9MC4wMApQYW4zPTAuMDAKUGFuTVMzPTAKUGFuTUQzPTAuMDAKVm9sMz0yNS4wMApWQ0EzPTEKTW9kU3JjMz0w
Ck1vZERwdDM9MC4wMApQYW40PTAuMDAKUGFuTVM0PTAKUGFuTUQ0PTAuMDAKVm9sND0wLjAwClZDQTQ9MQpNb2RTcmM0PTAKTW9kRHB0ND0wLjAwCk1UMT0wCk1UMj0w
Ck1UMz0wCk1UND0wClBCMT0wClBCMj0wClBCMz0wClBCND0wCkJ1czE9MApCdXMyPTAKQnVzMz0wCkJ1czQ9MApTZW5kMT0wLjAwClNuU3JjMT0wClNuRHB0MT0wLjAw
ClNlbmQyPTAuMDAKU25TcmMyPTAKU25EcHQyPTAuMDAKQXR0Uz0xCiNjbT1HcmlkRlgKR3JpZD00OApHQnlwPTAKR1N0b3JlPTQ5CiNjbT1Nb2RGWDEKTW9kZT0wCkNl
bnQ9MTcuNTAKU3BlZD01MC4wMApQaE9mZj01MC4wMApEcHRoPTkyLjUwCkZlZUI9MC4wMApNaXg9MjUuMDAKTEN1dD0wLjAwCkhDdXQ9MTAwLjAwClF1YWQ9NjAuMDAK
UXBocz0yNS4wMApMZXE9MC4wMApIZXE9MC4wMApRMT0wLjAwClEyPTAuMDAKRVFvbj0wCiNjbT1Nb2RGWDIKTW9kZT0yCkNlbnQ9NDAuMDAKU3BlZD01LjAwClBoT2Zm
PTUwLjAwCkRwdGg9NDAuMDAKRmVlQj01MC4wMApNaXg9NTAuMDAKTEN1dD0wLjAwCkhDdXQ9MTAwLjAwClF1YWQ9MC4wMApRcGhzPTI1LjAwCkxlcT0wLjAwCkhlcT0w
LjAwClExPTAuMDAKUTI9MC4wMApFUW9uPTEKI2NtPURlbGF5MQpNb2RlPTIKTWl4PTMzLjAwCkZCPTAuMDAKQ0I9NjUuMDAKTFA9NzAuMDAKSFA9NTAuMDAKRHJ2PTAu
MDAKU3luYzE9NApTeW5jMj05ClN5bmMzPTQKU3luYzQ9NApUMD0xMDAuMDAKVDE9MTAwLjAwClQyPTEwMC4wMApUMz0xMDAuMDAKUGFuMT0tMTAwLjAwClBhbjI9MTAw
LjAwClBhbjM9LTEwMC4wMApQYW40PTEwMC4wMAojY209RGVsYXkyCk1vZGU9MApNaXg9NTAuMDAKRkI9NDAuMDAKQ0I9MC4wMApMUD03MC4wMApIUD0zMC4wMApEcnY9
MC4wMApTeW5jMT0tMQpTeW5jMj0tMQpTeW5jMz0tMQpTeW5jND0tMQpUMD00NS4wMApUMT0zMC4wMApUMj0xMDAuMDAKVDM9MTAwLjAwClBhbjE9LTEwMC4wMApQYW4y
PTEwMC4wMApQYW4zPS0xMDAuMDAKUGFuND0xMDAuMDAKI2NtPVNoYXBlMwpUeXBlPTMKRGVwdGg9MC4wMApETVNyYz0wCkRNRHB0PTAuMDAKRWRnZT0xMDAuMDAKRU1T
cmM9MApFTURwdD0wLjAwCklucHV0PTAuMDAKT3V0cHV0PTAuMDAKSGlPdXQ9MC4wMAojY209U2hhcGU0ClR5cGU9MwpEZXB0aD0wLjAwCkRNU3JjPTAKRE1EcHQ9MC4w
MApFZGdlPTEwMC4wMApFTVNyYz0wCkVNRHB0PTAuMDAKSW5wdXQ9MC4wMApPdXRwdXQ9MC4wMApIaU91dD0wLjAwCiNjbT1NaXg1ClBhbj0wLjAwCk1peD01MC4wMApQ
bk1kPTAKUG5NRD0wLjAwClBuTVM9MAojY209TWl4NgpQYW49MC4wMApNaXg9NTAuMDAKUG5NZD0wClBuTUQ9MC4wMApQbk1TPTAKI2NtPVJldjEKTW9kZT0wCkRyeT0x
MDAuMDAKV2V0PTUwLjAwCkZCPTcwLjUwCkRhbXA9MjMuMDAKU2l6ZT03NS4wMApTcGQ9NTAuMDAKRHB0PTU1LjAwCkRGQj03MC4wMApEU2l6ZT03My4wMApFTWl4PTEw
MC4wMApETW9kPTU1LjAwCkRTcGQ9NTUuMDAKUHJlPTIwLjAwCiNjbT1Db21wMQpUeXBlPTEKUmF0PTQwLjAwClRocmVzPTAuMDAKQXR0PTIwLjAwClJlbD0yNS4wMApJ
bnB1dD0wLjAwCk91dHB1dD0wLjAwCiNjbT1Db21wMgpUeXBlPTEKUmF0PTQwLjAwClRocmVzPTAuMDAKQXR0PTIwLjAwClJlbD0yNS4wMApJbnB1dD0wLjAwCk91dHB1
dD0wLjAwCiNjbT1FUTEKZmMxPTIwLjAwCnJlczE9MjUuMDAKZ2FpbjE9MC4wMApmYzI9NDAuMDAKcmVzMj0yNS4wMApnYWluMj0wLjAwCmZjMz02MC4wMApyZXMzPTI1
LjAwCmdhaW4zPTAuMDAKZmM0PTgwLjAwCnJlczQ9MjUuMDAKZ2FpbjQ9MC4wMAojY209RVEyCmZjMT0yMC4wMApyZXMxPTI1LjAwCmdhaW4xPTAuMDAKZmMyPTQwLjAw
CnJlczI9MjUuMDAKZ2FpbjI9MC4wMApmYzM9NjAuMDAKcmVzMz0yNS4wMApnYWluMz0wLjAwCmZjND04MC4wMApyZXM0PTI1LjAwCmdhaW40PTAuMDAKI2NtPVZDRjUK
VHlwPTE4CkN1dD0xNTAuMDAKUmVzPTAuMDAKRHJ2PTAuMDAKR2Fpbj0wLjAwCkZNMT0wLjAwCkZTMT0wCkZNMj0wLjAwCkZTMj0wCktleVNjbD0wLjAwCiNjbT1WQ0Y2
ClR5cD0xOApDdXQ9MTUwLjAwClJlcz0wLjAwCkRydj0wLjAwCkdhaW49MC4wMApGTTE9MC4wMApGUzE9MApGTTI9MC4wMApGUzI9MApLZXlTY2w9MC4wMAojY209U0Iz
ClJhbmdlPTAKRnJlcT0wLjAwCkZNU3JjPTAKRk1EcHQ9MC4wMApPZmZzPTAuMDAKT01TcmM9MApPTURwdD0wLjAwCk1peD01MC4wMApNTVNyYz0wCk1NRHB0PTAuMDAK
I2NtPVhNRjMKVHlwPTAKQ3V0PTE1MC4wMApSZXM9MC4wMApGTTE9MC4wMApGUzE9MApGTTI9MC4wMApGUzI9MApLZXlTY2w9MC4wMApGT2ZmPTAuMDAKRk9Nb2Q9MC4w
MApGT1NyYz0wClhGTT0wLjAwClhGTUQ9MC4wMApYRk1TPTAKQmlhcz0wLjAwCk9Mb2FkPTAuMDAKQ2xpY2s9MC4wMApEcnY9MQpSb3V0PTAKVHlwMj0tMQojY209RGlz
dDMKVHlwZT0wCklucHV0PTAuMDAKT3V0cHV0PTAuMDAKUHJlVGlsdD0wLjAwClBzdFRpbHQ9MC4wMApDbnRGcmVxPTEwMC4wMApMb3c9MC4wMApIaWdoPTAuMDAKUG9z
dEZsdD0wCiNjbT1EaXN0NApUeXBlPTAKSW5wdXQ9MC4wMApPdXRwdXQ9MC4wMApQcmVUaWx0PTAuMDAKUHN0VGlsdD0wLjAwCkNudEZyZXE9MTAwLjAwCkxvdz0wLjAw
CkhpZ2g9MC4wMApQb3N0Rmx0PTAKI2NtPU51UmV2MQpQcmU9MC4wMApEYW1wPTgxLjUwCkRlY2F5PTczLjUwClNpemU9MTMyLjAwClRvbmU9LTM2LjAwCldpZHRoPTY5
LjUwCk1peD0wLjAwCiNjbT1aTWFzClJldDE9MC4wMApSZXQyPTAuMDAKTWFzdD03MC4wMApYWTFMPTUwClhZMkw9NTEKWFkzTD01MgpYWTRMPTUzClhZMVQ9NTQKWFky
VD01NQpYWTNUPTU2ClhZNFQ9NTcKT1NDMT01OApPU0MyPTU5Ck9TQzM9NjAKT1NDND02MQpNU0VHMT02MgpNU0VHMj02MwpNU0VHMz02NApNU0VHND02NQpNU0VHNT02
NgpNU0VHNj02NwpNU0VHNz02OApNU0VHOD02OQpSZXYxPTcwClBuMz0xOQpQbjQ9MApQbjU9MApQbjY9MApQbjc9MApQbjg9MApQbjk9MApQbjEwPTAKUG4xMT0wClJh
Y2swPTcxClJhY2sxPTcyCiNjbT1MYXlNZW0KTGF5TWVtMT0wCkxheU1lbTI9MApMYXlNZW0zPTAKTGF5TWVtND0wCkxheU1lbTU9MAoKCgoKLy8gU2VjdGlvbiBmb3Ig
dWdseSBjb21wcmVzc2VkIGJpbmFyeSBEYXRhCi8vIERPTidUIFRPVUNIIFRISVMKCiQkJCQ4NTU2NAo/YWFhYWlhZHA6amtqampqbG86YWFhYWlhbHA6Z2RnY2VuZWI6
cG5wcGhwZHA6cG1wcGhwZHA6a2tra2trbG86Cmtta2tra2RvOmFhYWFhYWVhOmNhYWFhYWFhOmFhOmRwOmxwOmRvOmViOmVjOmxvOmdmOmVhOmdiOmhwOmdwOmMKYTpo
azpkbjpoZTpsbjpwcDpkYzphazpiYTpmZDpkYTpnajppYTpuZCF0QWFiQTEwZW1MZ2RKZ21jcGRlTWZhWApKZ29MWGdlaGRBMjM4dElBMTBYZ29YUFhKZ21YTkhjb2dp
U2hhQWZhTGhkWFBYTGdvY29naVNoYUEzNnRJQTc0CnRJQTEwamVsY2lkZ21mYW1lbWNka09aaGNwaGxpZWpuZm9tZGtrZGVvbWpiZ2xobmJoamdja2ZnZW1sYWRaQVcK
YWdmcHBvY2piZWhqZmNoaGdkcGRrbnBlZWlhZWNjZmNub2Zpb3BvYWdpYXBrcGhua2hNbGlna2tvYmlwam1ldAphZUExMGFpbmViZUF0QWFiQTllaUxoaEpoY2dlTVZn
ZEpoYzFBMjQzdFlBMTM4dEFhYkEyNjV0WUE2cUExMjd0CllBNnFBMTI3dElBMTBnZUhnZ0poZmdtUE1oZGdkSmdtSEEyMnF5QTFJMUExWUlBMWthSUExbWFJQTFvYUl0
QWEKY0E1cUEzcXlBMUkxQTFZSUExa2FJQTFtYUlBMW9hSUEyRUExVUVBMU1FQTFXRUExSUVBMWZhRUExZ2FFQTFoYQpFQTFZRUExaWlFQTFqYUVBMWppRUExa2FFQTFr
aUVBMWxhRUExbGlFQTFtYUVBMW1pRUExbmFFQTFuaUVBMW9hCkVBMW9pRUExcGFFQTFwaUVBMkZBMWFlRkExYWlGQTFhbUZBMVVGQTFiZUZBMWJpRkExYm1GQTFNRkEx
Y2VGQTEKY2lGQTFjbUZBMVdGQTFkZUZBMWRpRkExZG1GQTFJRkExZWVGQTFlaUZBMWVtRkExZmFGQTFmZUZBMWZpRkExZgptRkExZ2FGQTFnZUZBMWdpRkExZ21GQTFo
YUZBMVBGQTFoaUZBMWhtRkExWUZBMWljRkExaWVGQTFpZ0ZBMWlpCkZBMWlrRkExaW1GQTFpb0ZBMWphRkExamNGQTFqZUZBMWpnRkExamlGQTFqa0ZBMWptRkExam9G
QTFrYUZBMWsKY0ZBMWtlRkExa2dGQTFraUZBMWtrRkExa21GQTFrb0ZBMWxhRkExbGNGQTFsZUZBMWxnRkExbGlGQTFsa0ZBMQpsbUZBMUdGQTFtYUZBMW1jRkExbWVG
QTFtZ0ZBMW1pRkExbWtGQTFtbUZBMW1vRkExbmFGQTFuY0ZBMW5lRkExCm5nRkExbmlGQTFua0ZBMW5tRkExbm9GQTFvYUZBMW9jRkExb2VGQTFvZ0ZBMW9pRkExb2tG
QTFvbUZBMW9vRkEKMXBhRkExcGNGQTFwZUZBMXBnRkExcGlGQTFwa0ZBMXBtRkExcG9GdFdhY0E1cUEzYWJBMmFiQTJhYkEzYWVBMgo1cnFBN3JuZ2psZm9EQTdyQTFJ
MUE3ckExWUlBN3JBMWthSUE3ckExbWFJQTdyQTFvYUlBN3JBMkVBN3JBMVVFCkE3ckExTUVBN3JBMVdFQTdyQTFJRUE3ckExZmFFQTdyQTFnYUVBN3JBMWhhRUE3ckEx
WUVBN3JBMWlpRUE3ckEKMWphRUE3ckExamlFQTdyQTFrYUVBN3JBMWtpRUE3ckExbGFFQTdyQTFsaUVBN3JBMW1hRUE3ckExbWlFQTdyQQoxbmFFQTdyQTFuaUVBN3JB
MW9hRUE3ckExb2lFQTdyQTFwYUVBN3JBMXBpRUE3ckExNXRXYWNBNXFBM2FiQTJhCmJBMmFiQTNhZUEyNXJxQTdyeUE3ckExSTFBN3JBMVlJQTdyQTFrYUlBN3JBMW1h
SUE3ckExb2FJQTdyQTJFQTcKckExVUVBN3JBMU1FQTdyQTFXRUE3ckExSUVBN3JBMWZhRUE3ckExZ2FFQTdyQTFoYUVBN3JBMVlFQTdyQTFpaQpFQTdyQTFqYUVBN3JB
MWppRUE3ckExa2FFQTdyQTFraUVBN3JBMWxhRUE3ckExbGlFQTdyQTFtYUVBN3JBMW1pCkVBN3JBMW5hRUE3ckExbmlFQTdyQTFvYUVBN3JBMW9pRUE3ckExcGFFQTdy
QTFwaUVBN3JBMTV0V2FjQTVxQTMKYWJBMmFiQTJhYkEzYWVBMjVycUE3cnlBN3JBMUkxQTdyQTFZSUE3ckExa2FJQTdyQTFtYUlBN3JBMW9hSUE3cgpBMkVBN3JBMVVF
QTdyQTFNRUE3ckExV0VBN3JBMUlFQTdyQTFmYUVBN3JBMWdhRUE3ckExaGFFQTdyQTFZRUE3CnJkalFpYkVBN3JBMWphRUE3ckExamlFQTdyQTFrYUVBN3JBMWtpRUE3
ckExbGFFQTdyQTFsaUVBN3JBMW1hRUEKN3JBMW1pRUE3ckExbmFFQTdyQTFuaUVBN3JBMW9hRUE3ckExb2lFQTdyQTFwYUVBN3JBMXBpRUE3ckExNXRXYQpjQTVxQTNh
YkEyYWJBMmFiQTNhZUEyNXJxQTdyeUE3ckExSTFBN3JBMVlJQTdyQTFtYUlBN3JBMU1FQTdyQTFVCkVBN3JBMkVBN3JBMW9hSUE3ckExa2FJQTdyQTFXRUE3ckExSUVB
N3JBMWZhRUE3ckExZ2FFQTdyQTFoYUVBN3IKQTFZRUE3ckExaWlFQTdyQTFqYUVBN3JBMWppRUE3ckExa2FFQTdyQTFraUVBN3JBMWxhRUE3ckExbGlFQTdyQQoxbWFF
QTdyQTFtaUVBN3JBMW5hRUE3ckExbmlFQTdyQTFvYUVBN3JBMW9pRUE3ckExcGFFQTdyQTFwaUVBN3JBCjE1dFlBNnFBMTI3dFlBNnFBMTI3dFlBNnFBMTI3dFlBNnFB
MTI3dEFhY0E1cXNmZ2ZmbmZHQTNmZ2ZmYmZCcXcKeHFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzdwp4
cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxc3d4cXN3eHFzd3hxdEFhY0E1CnFBNTExdEFhY0E1cVlqYWxnRHBhY3BhZkdXY2xORGhh
b2VlZ0NraW9hTENBbWhnbGRtaGFkaWZhR2ZhZm5ubkQKTVprZEdXZGhnYUdwbWdpTkJtYWpiZWpCcGFrZGpmR2xlaWplZUNuaWptbXBHY2loamdrQ29haGliZUNtaWRn
bAphRGZpZmZta0RVYmVoZkNkaUllakJpZW5oYmxDbWVrZGJsQmlpbGJnaEJtYWRnZWhHbGFvZGRrR25tYWdkYkJZCmdjY25EbmFla3BpRGtpbWRrZUdiaW9tamFHbGlj
cGJpQllnYWJqQmRtWmFtQ2FtaWVnZEJsYWphZmJDV25sa2wKRG5tcG5iakJsaXBuaW9HamlCYW1DQWttZ2VkbWJpZmNrZUdJam1iZlFZbmdnaENsaTFjaENiaW9jb2ZE
ZmFmaApVRGppbWVkZEJBZGRtYk9jZWJtYm5CWWdja3BsbUFhZmhnUWhpY25lZkJkbUxTQnBtbGxlaENlaWttYm1CaGFmCmlnZUNraVhub0RkaWdrbGtEa2FkZ2JnQ2Zp
b2hnb0NmYWppZGVHbW1uYmJjQ1VrZGxoR21hbWJkaEJpZW9wYnAKQmdpa3Bsa0dwYWFjRENBbWtVbG1nZXBiY2xDaGFsY2dkR25pZ2xoYkNVZ2FlbkNtYWNlZ21RYWlj
ZG9oR1lrZwppaURvYWRiY2ZHV2poaG9Eb21sbURDa2lpZGJvQ0FhZm9iT21hYmJlaVFmaWphR0RZamVuYlFZbmxjbk9hZWthCmRoQ2xtaWtibENJcGluaU9ZY2JtblFj
aUhqbURqYWlvT0dZZWllZ0RiaW5uZmVDa21IaGxCYmlqamxkR21paWMKZmNDQWZtbm5HbG1PaGFDUGJrYmxDa2FjZmxmRFdoZ21uRGtlaWloY0NrZUdmYUJiaWdpYXBD
V2FlY2xCUGNlZAprQmlpZmFsZUdBYWRiY0NJbGdpZk9uYXBmQkdraWJjbmVEbmFsaG1rR0FsYm5iUWtlaWplbkJnbW5tZXBCa2FtCmprb0dhaWFsZm9DZWVjaGFtQ2ll
ZmhibUJtaUpIQm1hZ2QxR2ZpYXBpYkdkaWlqa2VEQWhhbm5kbGNpa21hbkIKSVhkbFFtYW9lYWhRcGllbGVwQnRBYWNBNXFJa2pFQnBpbWpua0dkZUFlZUNoYWJiYWND
ZmlqYWJvQmJta29maApCb2FlaWxlUWxham1tbUdvYWFvbWpEV25sZXBHcGllbGptRFlnZ2xjR3BhcGJtbEdlbW5mY2hCY2ljbmptRGNpCmJnTENNaGlTQmdlTmdrQkFi
ZmRtbG1ZaWlqblFkaWNiZGlCcGlib1FEZG1oaGdlQ2lpYm1kYkJmYWJsSEJtYWoKb2VlUWphMWJtR2thamxmb0JnaW9vZGtCbmViY2VvQ3BlaG9hZkJsaWljaGRCQW5h
cGhsbXBhbGFhakdhbWZqZgpsQmZhbGNjcEJnaUoxQ25tYmVja0JjZWJvZmFCSW5sa2ZPbWFtb2VwRHBlUWdoQmhpY2dvbURZYWVKQk1pYmNjCkRiaWxhampEZmlwa29p
R25hSW1jR2dha2hhb0JlaWVnbGNEYmVtZ0tDbGFtY2FkQmhpcG9mbEJtYWdkZ2tPTWEKaXBhT2xpYWloaUNqYWZpZWtCY21rbWJnQ2Jtb2NjZUJnYWNlT0JsYWJta2VH
YmVtaGFnQ2thampwaU9NcGtiYgpHWWVmb2ZEcGlmY2xkR2dpYmZqaEdVY2ljYkJsYWNsbW5EZ2VqY2hsQ2dlcGlJQm5pQWNpQ3BhamFlZEJlbWVkCmhnQ3BhbW5kakRB
bW9rYlFpaW1lYWJCV1ZmakRiZWZpYWRCSWVmbGlRQXBkaWdRb2VhZmVrQmNtaGZFQk1lcG4KZkdlaWNqZG1DVWllZm1HbG1pZmZiQ3BpZW5mZkNBZ2lHZGxtYW9nU1Fm
bW1iYWVCWWplT0RuYWNobm5Ea2lpZwpvbEdXRGhvR2RpSWZmQkFtZEZCaGllbm9vR1BqbmZjQ1dnY2JmQ2JpZWVBQmZtam9kZUJsaWNpcGpHYmlhbmJqCkNZamdtaVFp
bWdtRENpaWpnaW9HQWdhZW1CbWltaE5Cb2lpbVlHa21uamNjQ21hcGltak9JZ2trYUdoYVFhbEcKamVkZ2ZoQ25hbWpnb0NtYUxqYU9NRmtkUWFpY2psbERtYW5qaW9R
WUlsbE9rbWxpY2dDZ2Vlb2FnQ1lmaGZjRApnYW9sZXBHbmlmYXBtRFdIZ2VHb2FsbGNpRHRhbWFkQTVxZWVlamZjZWhhZUEyYW1BMmVwVmVkZGJBSmhqSGFuCmJiQTFm
aWVuZWdkYkFKaGpIVGhiQTFlcFZlZGRlQU1kYmRpYW5iZUExVmdpSmhhSFNBMVRiYkExZXBWZWRTQTMKYW5iYkExZW5YaGlkYkEzVGhjQTFmaWVuZWdTQTNUaGJBMWVn
ZW5lcGRlQTNhb2JiQTFlb0xYaGRIZGJBMWFuYgpiQTFlb0xYaGRIU0ExYW9iY0ExVkZkYkE0VGJjQTFmZ2VkZWdkZEFKaGpIYWNiYkExZmdlZGVnZGJBM2FiYmJBCjFl
Z2VuZXBkZEEzYW9iYkExVmdpSmhhSGRiQUhUYmNBMWVuWGhpZGVBM1RoY0ExZmNYZ29naGRiQTJUUEExZWcKZW5lcFNBTVNkYmFvYmJBMWVlWGhkUFNBaGpIVGJjQTFl
blhoaVNBTVNkZVRoaUExZW5YaGlkZEEzVGhiQTFlZApMZ25nY2RiQTJUYmNBMWVkTGduZ2NTQTJUYmNBMWZjWGdvZ2hTQTJUaGlBMWZnZWRlZ2RlQTNhY2JiQTFmZ2Vk
CmVnU0EzYWIxQTFlZ2VuZXBkYkEzYW9iYkExVkZTQWhjTVNkaFRiaUExZWdMZ21nZWRiQTJUYmVBMWVnTGdtZ2UKU0EyVGJpQTJNU2RpQTIzZW1KaGpIQTI4SmhqSGhj
TWRkV0EzZXBWZWRkZEEzYW9iYkExNE1kZGRiQTE5ZWVYaApkUGRiQTJUYmJBMjl6QTI0M3RBVUE1cUE0MDk1dGFlekEyeUEzcGpWUkRxMkExMTFsZ21vaWREUjFLQnEx
QTExCjFla1ZuZU9wb1JLQnExQTExMW5vY2hjY09hY2ttVUJJcGhVQnFBMTE4QnBuZmZBQnFBMTE1cG9WUkRwaVIxRHEKQTExNXBsa2hwb0RwaFZSRHFBMTE1cGFlbm9k
RG9scGpvZERxQTExNWdnb3Bsa0RnYWpsbGxEcUExMTViaWZvaQppRGJkVGlqRHFBMTE1amZqamNsRGlscGJjbURxQTExNVRlaWFnREFrYWFoRHFBMTE1aGJqaGxkT2Zs
ZWhsZ09xCkExMTVpb2JkZmpPZ2RoZGZvT3FBMTE1bWFuZW9rZG1nYWplcGZkbXFBMTA4eVFnY2RsbGFhY2NtZG1qZVdlcGQKbXFBMTA3dXNwaVJLQnExQTEwN3VzdnEx
QTEwN3VzcTJBMTA3dXNsZWJnbGNsbGVnaW5tZWRscUExMDd1c0EzUwpiZWZnZG1xQTEwN3VzZ25OWkdNcGVvYkRxQTEwN3VzcG5SS0N2cUExMDd1c3BuUktDdnFBMTA3
dXNwblJLQ3ZxCkExMDd1c3BtUktDdnFBMTA3dXNwbVJLQ3ZxQTEwN3VzcG1SS0N2cUExMDd1c3BtUktDdnFBMTA3dXNwbVJLQ3YKcUExMDd1c3BtUktDdnFBMTA3dXBt
UktDc3ZxQTExMWVtb2Jwa0dzQTExOW5hbW1qbUdpZW9sZmJHQTExOWVtbwpicGtRQTFZR2Jia29laEdBMTE1ZW1vYk5RQTJHQTE2NTFuZWtkV0JvYU5qZURBMTE5a2Fo
YWJmQmppampkakRBCjExOW5pTnBlRG1ubW1hbURBMTE5bmlOUERvYU5iZU9BMTY1NWFmQTJ0VUE2eWZpZW1kbWNlSzNnYWVpV2JpSzMKdEF6QTJ5QTgxOTF0ekE3ZmtT
TWZoSmhnSFBKZ2NnbUhNZWZoaWhhTGhjUEExMnRhZXpBMnlBM3BqVlJEcTJBMQoxMWxnbW9pZERSMUtCcTFBMTExZWtWbmVPcG9SS0JxMUExMTFub2NoY2NPYWNrbVVC
SXBoVUJxQTExOEJwbmZmCkFCcUExMTVwb1ZSRHBpUjFEcUExMTVwbGtocG9EcGhWUkRxQTExNXBhZW5vZERvbHBqb2REcUExMTVnZ29wbGsKRGdhamxsbERxQTExNWJp
Zm9paURiZFRpakRxQTExNWpmampjbERpbHBiY21EcUExMTVUZWlhZ0RBa2FhaERxQQoxMTVoYmpobGRPZmxlaGxnT3FBMTE1aW9iZGZqT2dkaGRmb09xQTExNW1hbmVv
a2RtZ2FqZXBmZG1xQTEwOHlRCmdjZGxsYWFjY21kbWplV2VwZG1xQTEwN3VzcGlSS0JxMUExMDd1c3ZxMUExMDd1c3EyQTEwN3VzbGViZ2xjbGwKZWdpbm1lZGxxQTEw
N3VzQTNTYmVmZ2RtcUExMDd1c2duTlpHTXBlb2JEcUExMDd1c3BuUktDdnFBMTA3dXNwbgpSS0N2cUExMDd1c3BuUktDdnFBMTA3dXNwbVJLQ3ZxQTEwN3VzcG1SS0N2
cUExMDd1c3BtUktDdnFBMTA3dXNwCm1SS0N2cUExMDd1c3BtUktDdnFBMTA3dXNwbVJLQ3ZxQTEwN3VwbVJLQ3N2cUExMTFlbW9icGtHc0ExMTluYW0KbWptR2llb2xm
YkdBMTE5ZW1vYnBrUUExWUdiYmtvZWhHQTExNWVtb2JOUUEyR0ExNjUxbmVrZFdCb2FOamVEQQoxMTlrYWhhYmZCamlqamRqREExMTluaU5wZURtbm1tYW1EQTExOW5p
TlBEb2FOYmVPQTE2NTVhZkEydFVBNnlmCmllbWRtY2VLM2dhZWlXYmlLM3RBekEyeUE4MTkxdHpBN2ZrU01maEpoZ0hQSmdjZ21ITWVmaGloYUxoY1BBNGgKbFVBNXRh
ZXpBMnlBM3BqVlJEcTJBMTExbGdtb2lkRFIxS0JxMUExMTFla1ZuZU9wb1JLQnExQTExMW5vY2hjYwpPYWNrbVVCSXBoVUJxQTExOEJwbmZmQUJxQTExNXBvVlJEcGlS
MURxQTExNXBsa2hwb0RwaFZSRHFBMTE1cGFlCm5vZERvbHBqb2REcUExMTVnZ29wbGtEZ2FqbGxsRHFBMTE1Ymlmb2lpRGJkVGlqRHFBMTE1amZqamNsRGlscGIKY21E
cUExMTVUZWlhZ0RBa2FhaERxQTExNWhiamhsZE9mbGVobGdPcUExMTVpb2JkZmpPZ2RoZGZvT3FBMTE1bQphbmVva2RtZ2FqZXBmZG1xQTEwOHlRZ2NkbGxhYWNjbWRt
amVXZXBkbXFBMTA3dXNwaVJLQnExQTEwN3VzdnExCkExMDd1c3EyQTEwN3VzbGViZ2xjbGxlZ2lubWVkbHFBMTA3dXNBM1NiZWZnZG1xQTEwN3VzZ25OWkdNcGVvYkQK
cUExMDd1c3BuUktDdnFBMTA3dXNwblJLQ3ZxQTEwN3VzcG5SS0N2cUExMDd1c3BtUktDdnFBMTA3dXNwbVJLQwp2cUExMDd1c3BtUktDdnFBMTA3dXNwbVJLQ3ZxQTEw
N3VzcG1SS0N2cUExMDd1c3BtUktDdnFBMTA3dXBtUktDCnN2cUExMTFlbW9icGtHc0ExMTluYW1tam1HaWVvbGZiR0ExMTllbW9icGtRQTFZR2Jia29laEdBMTE1ZW1v
Yk4KUUEyR0ExNjUxbmVrZFdCb2FOamVEQTExOWthaGFiZkJqaWpqZGpEQTExOW5pTnBlRG1ubW1hbURBMTE5bmlOUApEb2FOYmVPQTE2NTVhZkEydFVBNnlmaWVtZG1j
ZUszZ2FlaVdiaUszdEF6QTJ5QTgxOTF0ekE3ZmtTTWZoSmhnCkhQSmdjZ21ITWVmaGloYUxoY1BBNGtpYm1BNXRhZXpBMnlBM2psa2NjZ0RBMkJxQTEyMkJxQTEyMkJx
QTEyMkIKcUExMjJCcUExMjJCcUExMjJCcUExMjJCcUExMjJCcUExMjJCcUExMjJCcUExMjJCcUExMjJCcUExMjJCcUExMgoyQnFBMTIyQnFBMTE1YWZiZ2xjZG1BM3FB
MTE1c0EzcUExMTVzQTNxQTExNXNBM3FBMTE1c0EzcUExMTVzQTNxCkExMTVzQTNxQTExNXNBM3FBMTE1c0EzcUExMTVzQTNxQTExNXNBM3FBMTE1c0EzcUExMTVzQTNx
QTExNXNBM3EKQTExNXNBM3FBMTE1c0EzcUE0MjA3YWVBMnRVQTZ5ZmllbWRtY2VLM2dhZWlXYmlLM3RBekEyeUEzcUE3cUExOQpaamxmb0JBMTFOWmJsREEzUW9qZW5C
QTExTE5WQlpqbG5vT0E3b2tlbkxCQTdjYmFsZmpCQTI3cUEyN2ptbm9QCkJBNDdsY2phYWZCbGNqYWlmT2VkYmdsY2xtQTM1cUEzMWJnbGNqYURBMTFlZGJnbGNPQTE1
TlpibERlZGJnbGMKZG1BMTYzUW9qZW5DQTdva2VuTENBMTFsY2phYWZHQTNOWmJsQ0ExOW1pRmJnQ0EyM2NiYWxmakNBMjJDQTE1TApOVkNBMTFMTlpHQTIzY2JhbGZq
Q0EyM2xjamFpZkdBMTFnZWNiYWxDQTE5YWxmamVpQ0ExNWptbm9QQ0EyN25wCnBla2dHQTE5YWxmam1pR0EzMWVkYmdTR0ExNTlMTlZCQTdiZ2xjVUJBMTFlb0xOQkEx
NWZqbWlGQkEzNWFsZmoKZWlCQTM1YWxmamVpQkEzNUxOVkJBMzFraGRoT0JBMjdwZmtnZGhCQTI3NW9rZW5MQ0ExMVpqbGZvQ0ExNWlnYwptZ2VDQTE1am1ub1BDQTM5
am1ub1BDQTI3am1ub3BlR0EyM05aamxHQTUxTlpibENBMTVmam1pRkNBMjU4QkExCjFiZ2xjamFEQTdMTlZCQTIzWmpsZm9CQTE1WmpsZm9CQTM5WmpsZm9CQTExZGlR
WEJBMzVmam1pRkJBMTFnZWMKYmFsQkEzMWptbm9QQkEyNzlsY2phaWZHQTExZGlRWENBMTFOWmJsQ0EzNWpiaWZjbUNBMzViZ2xjVUNBM2JnbApjVUNBN2JnbGNVQ0Ex
NW9rZW5MQ0EzMENBMTFnZWNiYWxDQTExYmdsY2phR0E0N3Bma2dkaENBMjM5a2hkaFFECkEzZWRiZ1NPTE5WQkExOW9rZW5MQkEzOU5aYmxCQTIzbWlGYmdCQTIzZW9M
TkJBMjNOWmJsQkExOU5aYmxCQTcKbnBwZWNnQkExOW1pRmJnQkEyODNaamxmb0dkaVFvakdBMjNlZGJnU0NBMTlzQTExbnBwZWNnQ0ExMXNBMzVnZQpjYmFsQ0Ezc0E3
Z2VjYmFsQ0EzOWpiaWZjbUNBMzE1am1ub1BEQTI3b2tlbkxCQTE5Wmpsbm9EQTNiZ2xjVUJBCjE1Y2JhbGZqQkExOVpqbG5vREExOWRpUVhCQTE5am1ub3BlREExOW9r
ZW5MQkExOW1pRmJnQkExOWRpUVhCQTIKODNRb2plbkNBN2xjamFpZkdqbW5vUEdBM2ptbm9QQ2xjamFhZkdBMTFhbGZqZWlDQTE1a2hkaE9DQTIzUW9qZQpuQ0ExOWJn
bGNVQ0ExNWFsZmplaUNBMTVMTlpHQTE5UW9qZW5DQTE5bGNqYWlmR0ExMWdlY2JhbENBMTlhbGZqCmVpQ0ExNWptbm9QQ0EyN25wcGVrZ0dBMTlhbGZqbWlHQTMxZWRi
Z1NHQTE1MWNuZ2VjYkJBM0xOVkJBN2ptbm8KUEJMTlpEQTNOWmpsREExOWZqbWlGQkE3cUEyM2FsZmplaUJBN2dlY2JhbEJBMjNhbGZqZWlCQTM1TE5WQkEzMQpraGRo
T0JBMjdwZmtnZGhCQTI2N21pRmJnQ0EyM2ptbm9wZUdBM2RpUVhDQTIzTlpibENBMTlaamxmb0NBMTVnCmVjYmFsQ0Ezc0E3bGNqYWFmQ0E3c0E3Z2VjYmFsQ0EzNTVq
bW5vUERMTlZCQTdiZ2xjVUJBM2RpUVhCQTNlb0wKTkJBMTVmam1pRkJBMjdxQTQzYWxmamVpQkE3YmdsY1VCQTNkaVFvakRBMTFxQTdtaUZiZ0JBM0xOWkRBMTVraApk
aE9CQTE5b2tlbkxCQTI3NWVkYmdsY0dBM29rZW5MQ0ExMVpqbGZvQ0ExNWlnY21nZUNBN3Bma2dkaENBM2ptCm5vUENBMTFzQTIzam1ub1BDQTI3am1ub3BlR0EyM05a
amxHQTUxTlpibENBMTVmam1pRkNBMjU4QkExNVpqbGYKb0JBN3FBMjNxQTExWmpsZm9CQTM5WmpsZm9CQTExZGlRWEJBMjdqbW5vUEJBMTRCQTE1ZW9MTkJBN1pqbGZv
QgpBN2dlY2JhbEJBN2piaWZjbUJBMjcxam1ub1BDQTdlb0xOQ0E3am1ub1BDQTdzQTdlb0xOQ1pqbG5vUUEzc0ExCjFzQTExc0E3c0E3ZW9MTkNBMTVzQTNzQTE1c0Ex
MXNBMzVwZmtnZGhDQTQ3c0EyN2JnbGNVQ0ExOTl0ekE3ZmsKU01maEpoZ0hQSmdjZ21ITWVmaGloYUxoY1BBNG1sYmZBNXRVQTZ5ZmNmYmVmQUs0aG9JQkszdFVBNnlm
Y2ZiZQpmQUs0aG9JQkszdFVBNnlnbmJmMks2QUszdFVBNnlnbmJmMks2QUszdFVBNnlnbmJmMks2QUszdFVBNnlnbmJmCjJLNkFLM3RhbWFkQTVxZWVlamZjZWhhZEEy
YWdBMmVlSGdtSmhqZGJBMWFqYmJBMWVkTGduaGFTQTJUYmNBMWUKbkxnZWVnZmlkYkFTVGJiQTFlZVhoZFBkZEFTQVRiZUExZW9oZmZjSGhnZGJBMWFqYmJVQVZnaUpo
YUhkZUExVApiYkExVmdpSmhhSGRkQTFUYmJBMWVlWGhkUGRlQTJUYmlBMWVuWGhpZGZBSmhqSFRoYkExZW5YaGlkZ0EzVGhjCkExZWVIZ21KaGpTQTFUYmJBMWZjSGhn
ZGJBM1RiYlVBZmNYZ29naGRkQTJUaGJBMWVuTGdlZWdmaVNBMVRiYkEKMWVkTGduaGFkYkEyVGJiQTEzZmdlZGVnZGZBM2FjYmJBMWVmZmJTQTRUYmNBMWVmZmJkYkFl
bUpoakhUYmJBMgpKaGpIaGNNZGlBNGZnZWRlZ2RnQTNhY2JiQTFWRmRkQTRUYmNBMWZpZW5lZ2RkQTNUaGNBMTdlbUpoakhBMjhKCmhqSGhjTWRiMUEyOE1kYlNBMjNl
bUpoakhBMjhKaGpIaGNNZGJkZUEyOE1kYmRmQTIzZW1KaGpIQTI4SmhqSGgKY01kYmRoQTI4TWRiZGlBMjNlbUpoakhBMjhKaGpIaGNNU1dBMjhNU2RiQTIzZW1KaGpI
QTI4SmhqSGhjTVNkZApBMjhNU2RlQTE5dEFVQTVxQTQwOTV0ekE3ZXBoZGdkWGdtMUpQTGhjaGRBMjB0ekE3ZWdYZ21QSGhjQTI1dHpBCjdlblhoaVBoZmhjSEEyNHR6
QTdlZmhpUGhjSmhkQTI1dEFhYkE5ZmlPZWdYZ29ITWZlaGZnb0hUZmpPZWpnb1AKSGhjaGdKZ21BMjMzdEFhYkE5ZmlPZWRoZlBMZ2cxVGZqT2ZjSGhkTGdvSmdvZ2RI
QTIzNXRBYWJBOWZpT0ZIZwptMVRmak9lb0xYaGRIQTI0MXRBYWJBOWZpT2VmZ29oZ0hnbUxoYUhUZmpPVmhhSmdkSGhkQTIzNnR6QTdlZ1hnCm9jblZKaGhjbmZhZ21o
ZGNuVmhiaGZBN2xhaGljbGJoYWJBMmptdHpBN2VnWGdvY25WSmhoY25mYWdtaGRjblYKaGJoZkE3bGFoaWNsYmhhYkEyam10ekE3ZWdYZ29jblZKaGhjbmZhZ21oZGNu
VmhiaGZBN2xhaGljbGJoYWJBMgpqbXR6QTdGSGdtMWhkTWVnZ21YaGExSGhjQTE3YWJ0ekE3Z2VIZ2dKaGZnbVBBMTZlZmdvaGdTQTN0ekE3Z2VICmdnSmhmZ21QQTE2
ZWZnb2hnZGRBM3R6QTdnZUhnZ0poZmdtUEExNmVmZ29oZ2RlQTN0ekE3Z2VIZ2dKaGZnbVAKQTE2ZW5WZWZlaGRiQTJ0ekE4SGdnSmhmZ21QQWRkcGlnYUNsZ2hjZ2FD
aG9vbmZwQ2lqZ2lmcENuam9kZm9DZwpuZnBmb0N0ekE4SGdnSmhmZ21QQWxsaWZXQmlnaGRXQmZhSldCYmllcFdCbm9kbVdCa2Nja1dCdHpBOEhnZ0poCmZnbVBBZW9o
YmlnQkNpbGlnQmRma2dpZ0JsYm1haWdCU25saWdCbGpwZmlnQnR6QThIZ2dKaGZnbVBBV3BsZWkKUWhkYm9lbVFrcEVlcFFvY2dlZmNRYW9paWZmUWRia2xmaVF0ekE3
Z2VIZ2dKaGZnbVBBMTZlblZlZmVoU0EydApBYWJBOEZBMjU1dEFhYkE4RkEyNTU9ODgzMjM0CgAA
AFByb2dyYW0gMAAQAAAA
>
PRESETNAME "Program 0"
FLOATPOS 581 13 1035 776
FXID {199859E4-99A0-7B4E-AD9B-EB90894ECA8A}
WAK 0 0
>
>
>
@@ -0,0 +1,186 @@
<REAPER_PROJECT 0.1 "6.12+dev0617/x64" 1598089527
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 1
ENVATTACH 1
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 3
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 0
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {391FA463-0AA3-4E86-A3D5-3E951E4A2A82}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {2826C6CD-B68C-4F7F-AE86-526B122B64FB}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {E7F55C9D-9504-4BFB-803B-053AF7D22F34}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.15840093474325 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
FREEMODE 0
SEL 0
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {E7F55C9D-9504-4BFB-803B-053AF7D22F34}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 1425 438 1796 1500
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" realearn.dll 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAARAQAAAEAAAAAABAA
eyJsZXRNYXRjaGVkRXZlbnRzVGhyb3VnaCI6ZmFsc2UsImxldFVubWF0Y2hlZEV2ZW50c1Rocm91Z2giOnRydWUsImFsd2F5c0F1dG9EZXRlY3RNb2RlIjp0cnVlLCJz
ZW5kRmVlZGJhY2tPbmx5SWZBcm1lZCI6dHJ1ZSwiY29udHJvbERldmljZUlkIjoiMTAiLCJmZWVkYmFja0RldmljZUlkIjoiMTEiLCJtYXBwaW5ncyI6W3sibmFtZSI6
IjEiLCJzb3VyY2UiOnsidHlwZSI6MCwiY2hhbm5lbCI6MCwibnVtYmVyIjowLCJjaGFyYWN0ZXIiOjMsImlzUmVnaXN0ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOmZhbHNl
LCJtZXNzYWdlIjowfSwibW9kZSI6eyJ0eXBlIjoxLCJtaW5Tb3VyY2VWYWx1ZSI6MC4wLCJtYXhTb3VyY2VWYWx1ZSI6MS4wLCJtaW5UYXJnZXRWYWx1ZSI6MC4wLCJt
YXhUYXJnZXRWYWx1ZSI6MS4wLCJtaW5UYXJnZXRKdW1wIjowLjAsIm1heFRhcmdldEp1bXAiOjEuMCwibWluU3RlcFNpemUiOjAuMDQsIm1heFN0ZXBTaXplIjowLjA0
LCJtaW5QcmVzc01pbGxpcyI6MCwibWF4UHJlc3NNaWxsaXMiOjAsImVlbENvbnRyb2xUcmFuc2Zvcm1hdGlvbiI6IiIsImVlbEZlZWRiYWNrVHJhbnNmb3JtYXRpb24i
OiIiLCJyZXZlcnNlSXNFbmFibGVkIjpmYWxzZSwiaWdub3JlT3V0T2ZSYW5nZVNvdXJjZVZhbHVlc0lzRW5hYmxlZCI6ZmFsc2UsInJvdW5kVGFyZ2V0VmFsdWUiOmZh
bHNlLCJzY2FsZU1vZGVFbmFibGVkIjpmYWxzZSwicm90YXRlSXNFbmFibGVkIjpmYWxzZX0sInRhcmdldCI6eyJ0eXBlIjoxLCJjb21tYW5kTmFtZSI6bnVsbCwiaW52
b2NhdGlvblR5cGUiOjAsInRyYWNrR1VJRCI6IjE0NzREQ0RGLTMzOUEtNEE4My04OTg5LUY3NTJENzY0MDZGNCIsInRyYWNrTmFtZSI6Ik1VdGlsaXR5IiwiZW5hYmxl
T25seUlmVHJhY2tJc1NlbGVjdGVkIjpmYWxzZSwiZnhJbmRleCI6MCwiaXNJbnB1dEZ4IjpmYWxzZSwiZW5hYmxlT25seUlmRnhIYXNGb2N1cyI6ZmFsc2UsInNlbmRJ
bmRleCI6bnVsbCwicGFyYW1JbmRleCI6MCwic2VsZWN0RXhjbHVzaXZlbHkiOmZhbHNlfSwiY29udHJvbElzRW5hYmxlZCI6dHJ1ZSwiZmVlZGJhY2tJc0VuYWJsZWQi
OnRydWUsInByZXZlbnRFY2hvRmVlZGJhY2siOmZhbHNlfV19
AAAQAAAA
>
FLOAT 292 549 1373 1408
FXID {C40511EC-FCC8-45C5-8554-D2EFC48513EF}
WAK 0 0
>
>
<TRACK {1474DCDF-339A-4A83-8989-F752D76406F4}
NAME MUtility
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 196 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {1474DCDF-339A-4A83-8989-F752D76406F4}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 1759 605 1662 975
SHOW 1
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VST3: MUtility (MeldaProduction)" MUtility.vst3 0 "" 1423054497{4D656C646170726F4D7574694D757469} ""
oRbSVO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAJAIAAAEAAAAAABAA
CgEAAAEAAAB42nWRQU+DQBCF7/0Vm+lVhVZJabLQRMSTxEa0nilM243THbK7NNRfbwLWRMTjvu/tvpl9ctUeSZzQWMU6gtmNDwJ1yZXS+wgat7sOYRVPZPbmFCl3tuic
0nsrphHMQEwTrtAkTFTUFqtee0juicuPvzpScU51sSWsBijVJySu8R/a1gZtP2H76zzuzwp3GCcvWT4ONkzNESPwQSSsnWEiNPbb28lppRybXH1iBIsgvLpbhCCyon16
fO7W7cntHESGDo39CcgdGuQuZk3NXulXZtoWg9/ZXCpYzpZBMIdY9s/MY/muKnfIYplzY0oUa4M7RQ5NV5EPXiy9i8W7XJpIb1CZjSdfIV+kOgoBAAAAAAAAeNp1kUFP
g0AQhe/9FZvpVYVWSWmy0ETEk8RGtJ4pTNuN0x2yuzTUX28C1kTE477v7b6ZfXLVHkmc0FjFOoLZjQ8CdcmV0vsIGre7DmEVT2T25hQpd7bonNJ7K6YRzEBME67QJExU
1BarXntI7onLj786UnFOdbElrAYo1SckrvEf2tYGbT9h++s87s8KdxgnL1k+DjZMzREj8EEkrJ1hIjT229vJaaUcm1x9YgSLILy6W4QgsqJ9enzu1u3J7RxEhg6N/QnI
HRrkLmZNzV7pV2baFoPf2VwqWM6WQTCHWPbPzGP5rip3yGKZc2NKFGuDO0UOTVeRD14svYvFu1yaSG9QmY0nXyFfpDo=
AFByZXNldHM6IDAAEAAAAA==
>
PRESETNAME "Presets: 0"
FLOATPOS 1941 887 1239 883
FXID {44191815-2B41-4C1B-A015-BB243BABB414}
PARM_TCP 0:0
WAK 0 0
>
>
>
@@ -0,0 +1,156 @@
<REAPER_PROJECT 0.1 "7.30/macOS-arm64" 1751808110
<NOTES 0 2
>
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 129
ENVATTACH 3
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
ENVFADESZ10 40
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 0
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 65792
PANMODE 3
PANLAWFLAGS 3
CURSOR 2
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 1
LOOPGRAN 0 4
RECORD_PATH "Media" ""
<RECORD_CFG
ZXZhdxgAAQ==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
ZXZhdxgAAQ==
>
LOCK 16385
<METRONOME 6 2
VOL 0.25 0.125
BEATLEN 4
FREQ 1760 880 1
SAMPLES "" "" "" ""
SPLIGNORE 0 0
SPLDEF 2 660 "" 0 ""
SPLDEF 3 440 "" 0 ""
PATTERN 0 169
PATTERNSTR ABBB
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0 0 0 0 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 0.37042850573781 0 -1 -1 1
MASTER_PANMODE 3
MASTER_PANLAWFLAGS 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {600D7F3B-452A-974C-A254-43FC137533FB}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {A18E4FE5-C21B-C24C-8774-D678D9810763}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {0AEC9237-249D-1D4B-A596-6C9B2E85FBB4}
NAME "Helgobox - ReaLearn & Playtime"
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 0.24501240099149 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 0
REC 1 5088 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {0AEC9237-249D-1D4B-A596-6C9B2E85FBB4}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: Helgobox - ReaLearn & Playtime (Helgoboss)" helgobox.vst.dylib 0 "" 1751282284<5653546862726C68656C676F626F7872> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAAD4BQAAAQAAAAAAEAA=
eyJtYWluVW5pdCI6eyJ2ZXJzaW9uIjoiMi4xOC4wIiwiaWQiOiJoN3NPUU9vaSIsIm5hbWUiOiJNYWluIiwic3RheUFjdGl2ZVdoZW5Qcm9qZWN0SW5CYWNrZ3JvdW5k
IjoiT25seUlmQmFja2dyb3VuZFByb2plY3RJc1J1bm5pbmciLCJsaXZlc09uVXBwZXJGbG9vciI6ZmFsc2UsImNvbnRyb2xEZXZpY2VJZCI6IjAiLCJkZWZhdWx0R3Jv
dXAiOnt9LCJkZWZhdWx0Q29udHJvbGxlckdyb3VwIjp7fSwibWFwcGluZ3MiOlt7ImlkIjoiV0YxelRUa1lLNnF4bG9USWlZaFZMIiwibmFtZSI6IjEiLCJzb3VyY2Ui
OnsiY2hhbm5lbCI6MCwibnVtYmVyIjo0OCwiaXNSZWdpc3RlcmVkIjpmYWxzZSwiaXMxNEJpdCI6ZmFsc2UsIm9zY0FyZ0luZGV4IjowLCJidXR0b25JbmRleCI6MCwi
YnV0dG9uRGVzaWduIjp7ImJhY2tncm91bmQiOnsia2luZCI6IkNvbG9yIn0sImZvcmVncm91bmQiOnsia2luZCI6Ik5vbmUifSwic3RhdGljX3RleHQiOiIifX0sIm1v
ZGUiOnsibWF4U3RlcFNpemUiOjAuMDUsIm1pblN0ZXBGYWN0b3IiOjEsIm1heFN0ZXBGYWN0b3IiOjUsInRha2VvdmVyTW9kZSI6InBpY2t1cC10b2xlcmFudCJ9LCJ0
YXJnZXQiOnsidHlwZSI6MiwidHJhY2tHVUlEIjoibWFzdGVyIiwiZnhBbmNob3IiOiJpZCIsInVzZVNlbGVjdGlvbkdhbmdpbmciOmZhbHNlLCJ1c2VUcmFja0dyb3Vw
aW5nIjpmYWxzZSwic2Vla0JlaGF2aW9yIjoiSW1tZWRpYXRlIiwidXNlUHJvamVjdCI6dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlLCJvc2NBcmdJ
bmRleCI6MCwibW91c2VBY3Rpb24iOnsia2luZCI6Ik1vdmVUbyIsImF4aXMiOiJYIn0sInRha2VNYXBwaW5nU25hcHNob3QiOnsia2luZCI6Ikxhc3RMb2FkZWQifX19
LHsiaWQiOiI0ZWJZZGF5dVJxTWpOMk9NR2doQVgiLCJuYW1lIjoiMSIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjQ4LCJpc1JlZ2lzdGVyZWQiOmZhbHNl
LCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAsImJ1dHRvbkluZGV4IjowLCJidXR0b25EZXNpZ24iOnsiYmFja2dyb3VuZCI6eyJraW5kIjoiQ29sb3IifSwi
Zm9yZWdyb3VuZCI6eyJraW5kIjoiTm9uZSJ9LCJzdGF0aWNfdGV4dCI6IiJ9fSwibW9kZSI6eyJtYXhTdGVwU2l6ZSI6MC4wNSwibWluU3RlcEZhY3RvciI6MSwibWF4
U3RlcEZhY3RvciI6NSwidGFrZW92ZXJNb2RlIjoicGlja3VwLXRvbGVyYW50In0sInRhcmdldCI6eyJ0eXBlIjoyLCJmeEFuY2hvciI6ImlkIiwidXNlU2VsZWN0aW9u
R2FuZ2luZyI6ZmFsc2UsInVzZVRyYWNrR3JvdXBpbmciOmZhbHNlLCJzZWVrQmVoYXZpb3IiOiJJbW1lZGlhdGUiLCJ1c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmlldyI6
dHJ1ZSwic2Vla1BsYXkiOnRydWUsIm9zY0FyZ0luZGV4IjowLCJtb3VzZUFjdGlvbiI6eyJraW5kIjoiTW92ZVRvIiwiYXhpcyI6IlgifSwidGFrZU1hcHBpbmdTbmFw
c2hvdCI6eyJraW5kIjoiTGFzdExvYWRlZCJ9fX1dLCJpbnN0YW5jZUZ4Ijp7ImFkZHJlc3MiOiJGb2N1c2VkIn19LCJhZGRpdGlvbmFsVW5pdHMiOltdfQ==
AAAQAAAA
>
FLOAT 679 135 752 674
FXID {4E167F62-6EEA-9148-AAD6-D14AB915DEE1}
WAK 0 0
>
>
>
@@ -0,0 +1,471 @@
<REAPER_PROJECT 0.1 "6.56+dev0425/macOS-arm64" 1655764294
<NOTES 0 2
>
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 129
ENVATTACH 3
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 1
ZOOM 100 7 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
ZXZhdxgAAA==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
ZXZhdxgAAA==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 -1 -1 -1 0 0 0 -1 -1 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 0.36279289742106 0 -1 -1 1
MASTER_PANMODE 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {26491C2D-58E4-9B4A-A624-19CB5BFAD9C3}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {87D6942E-58A5-4C44-BF59-5A67484EDB41}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {BD51F5E8-2D72-574A-B9F7-949B3E6E376E}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.20663783495991 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 1
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 137 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {BD51F5E8-2D72-574A-B9F7-949B3E6E376E}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 423 113 991 703
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" realearn.vst.dylib 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAACdUgAAAQAAAAAAEAA=
eyJ2ZXJzaW9uIjoiMi4xMy4wLXByZS45IiwiaWQiOiJsclJXZENVQiIsImNvbnRyb2xEZXZpY2VJZCI6IjQiLCJmZWVkYmFja0RldmljZUlkIjoiNCIsImRlZmF1bHRH
cm91cCI6e30sImdyb3VwcyI6W3siaWQiOiJwYXMydk1UT1pkS3luZzMtMGZVZDUiLCJuYW1lIjoiQWRqdXN0In0seyJpZCI6IjBic1drWTZ4NzZncDRLLUpmQ01BSSIs
Im5hbWUiOiJQaW4ifV0sImRlZmF1bHRDb250cm9sbGVyR3JvdXAiOnt9LCJtYXBwaW5ncyI6W3siaWQiOiJiVTlXR19vUmc5dk81TV9QMGVhY0ciLCJuYW1lIjoiUGlu
IHNlbGVjdGVkIHRyYWNrIGFzIGluc3RhbmNlIHRyYWNrIiwiZ3JvdXBJZCI6IjBic1drWTZ4NzZncDRLLUpmQ01BSSIsInNvdXJjZSI6eyJjYXRlZ29yeSI6InZpcnR1
YWwiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xF
bGVtZW50SW5kZXgiOiJjb2wxL3JvdzEvcGFkIn0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjAuMDV9LCJ0YXJnZXQiOnsidHlwZSI6NDQsInRyYWNrR1VJRCI6InNlbGVj
dGVkIiwiZnhBbmNob3IiOiJpZCIsInRyYWNrVG9vbEFjdGlvbiI6IlBpbkFzSW5zdGFuY2VUcmFjayIsInVzZVByb2plY3QiOnRydWUsIm1vdmVWaWV3Ijp0cnVlLCJz
ZWVrUGxheSI6dHJ1ZSwib3NjQXJnSW5kZXgiOjB9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJJRXNDUUNsOU1WaGZfMC1ZWU9nVXMiLCJuYW1lIjoi
U2V0IHNlbGVjdGVkIHRyYWNrIGFzIGluc3RhbmNlIHRyYWNrIiwiZ3JvdXBJZCI6IjBic1drWTZ4NzZncDRLLUpmQ01BSSIsInNvdXJjZSI6eyJjYXRlZ29yeSI6InZp
cnR1YWwiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRy
b2xFbGVtZW50SW5kZXgiOiJjb2wxL3JvdzIvcGFkIn0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjAuMDV9LCJ0YXJnZXQiOnsidHlwZSI6NDQsInRyYWNrR1VJRCI6InNl
bGVjdGVkIiwiZnhBbmNob3IiOiJpZCIsInRyYWNrVG9vbEFjdGlvbiI6IlNldEFzSW5zdGFuY2VUcmFjayIsInVzZVByb2plY3QiOnRydWUsIm1vdmVWaWV3Ijp0cnVl
LCJzZWVrUGxheSI6dHJ1ZSwib3NjQXJnSW5kZXgiOjB9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJ2a2xKdXZDcFVlOHl3THNLTDFpREQiLCJuYW1l
IjoiQ29udHJvbCBpbnN0YW5jZSB0cmFjayB2b2x1bWUiLCJncm91cElkIjoicGFzMnZNVE9aZEt5bmczLTBmVWQ1Iiwic291cmNlIjp7ImNhdGVnb3J5IjoidmlydHVh
bCIsImlzUmVnaXN0ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOmZhbHNlLCJvc2NBcmdJbmRleCI6MCwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDEvcm93NC9rbm9iIn0s
Im1vZGUiOnsibWF4U3RlcFNpemUiOjAuMDV9LCJ0YXJnZXQiOnsidHlwZSI6MiwidHJhY2tHVUlEIjoiaW5zdGFuY2UiLCJmeEFuY2hvciI6ImlkIiwidXNlUHJvamVj
dCI6dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlLCJvc2NBcmdJbmRleCI6MH19LHsiaWQiOiJ5dzhEejdmSDd6UENGaWk5MmUwQ08iLCJuYW1lIjoi
UGluIGZvY3VzZWQgRlggYXMgaW5zdGFuY2UgRlgiLCJncm91cElkIjoiMGJzV2tZNng3NmdwNEstSmZDTUFJIiwic291cmNlIjp7ImNhdGVnb3J5IjoidmlydHVhbCIs
ImlzUmVnaXN0ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOmZhbHNlLCJvc2NBcmdJbmRleCI6MCwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1l
bnRJbmRleCI6ImNvbDIvcm93MS9wYWQifSwibW9kZSI6eyJtYXhTdGVwU2l6ZSI6MC4wNX0sInRhcmdldCI6eyJ0eXBlIjo1NCwidHJhY2tHVUlEIjoic2VsZWN0ZWQi
LCJmeEFuY2hvciI6ImZvY3VzZWQiLCJ0cmFja1Rvb2xBY3Rpb24iOiJQaW5Bc0luc3RhbmNlVHJhY2siLCJmeFRvb2xBY3Rpb24iOiJQaW5Bc0luc3RhbmNlRngiLCJ1
c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmlldyI6dHJ1ZSwic2Vla1BsYXkiOnRydWUsIm9zY0FyZ0luZGV4IjowfSwiZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNlfSx7Imlk
IjoiQ3BtSko2MnB1UnJyUkxMbFQ5c1hFIiwibmFtZSI6IlNldCBmb2N1c2VkIEZYIGFzIGluc3RhbmNlIEZYIiwiZ3JvdXBJZCI6IjBic1drWTZ4NzZncDRLLUpmQ01B
SSIsInNvdXJjZSI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAsImNvbnRyb2xF
bGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzIvcGFkIn0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjAuMDV9LCJ0YXJnZXQi
OnsidHlwZSI6NTQsInRyYWNrR1VJRCI6InNlbGVjdGVkIiwiZnhBbmNob3IiOiJmb2N1c2VkIiwidHJhY2tUb29sQWN0aW9uIjoiUGluQXNJbnN0YW5jZVRyYWNrIiwi
ZnhUb29sQWN0aW9uIjoiU2V0QXNJbnN0YW5jZUZ4IiwidXNlUHJvamVjdCI6dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlLCJvc2NBcmdJbmRleCI6
MH0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6IlVRYTlPRzV5dmlLOWF5X1FnaEcxUiIsIm5hbWUiOiJDb250cm9sIGZpcnN0IHBhcmFtIG9mIGluc3Rh
bmNlIEZYIiwiZ3JvdXBJZCI6InBhczJ2TVRPWmRLeW5nMy0wZlVkNSIsInNvdXJjZSI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJp
czE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzQva25vYiJ9LCJtb2RlIjp7Im1heFN0ZXBTaXplIjowLjA1
fSwidGFyZ2V0Ijp7InRyYWNrR1VJRCI6IkJENTFGNUU4LTJENzItNTc0QS1COUY3LTk0OUIzRTZFMzc2RSIsImZ4QW5jaG9yIjoiZm9jdXNlZCIsInBhcmFtVHlwZSI6
ImluZGV4LW1hbnVhbCIsInVzZVByb2plY3QiOnRydWUsIm1vdmVWaWV3Ijp0cnVlLCJzZWVrUGxheSI6dHJ1ZSwib3NjQXJnSW5kZXgiOjB9fV0sImNvbnRyb2xsZXJN
YXBwaW5ncyI6W3siaWQiOiJiYW5rLWxlZnQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MywibnVtYmVyIjo4LCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7
ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiYmFuay1s
ZWZ0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImN1cnNvci1sZWZ0Iiwic291cmNlIjp7ImNoYW5uZWwi
OjMsIm51bWJlciI6OSwiY2hhcmFjdGVyIjoxfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVs
ZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImN1cnNvci1sZWZ0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFi
bGVkIjpmYWxzZX0seyJpZCI6ImNoLWxlZnQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MywibnVtYmVyIjoxMCwiY2hhcmFjdGVyIjoxfSwibW9kZSI6e30sInRhcmdldCI6
eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNoLWxl
ZnQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiYmFuay1yaWdodCIsInNvdXJjZSI6eyJjaGFubmVsIjoz
LCJudW1iZXIiOjExLCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxl
bWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiYmFuay1yaWdodCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxl
ZCI6ZmFsc2V9LHsiaWQiOiJjdXJzb3ItcmlnaHQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MywibnVtYmVyIjoxMiwiY2hhcmFjdGVyIjoxfSwibW9kZSI6e30sInRhcmdl
dCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImN1
cnNvci1yaWdodCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaC1yaWdodCIsInNvdXJjZSI6eyJjaGFu
bmVsIjozLCJudW1iZXIiOjEzLCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250
cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY2gtcmlnaHQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJc0Vu
YWJsZWQiOmZhbHNlfSx7ImlkIjoiY29sMS9yb3cxL3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjAsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVl
ZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJwYXVzZWQiOjEsImVtcHR5IjowLCJzY2hlZHVsZWRfZm9yX3JlY29y
ZF9zdGFydCI6NjQsInN0b3BwZWQiOjEsInJlY29yZGluZyI6ODYsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQi
OjY0LCJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIs
ImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wxL3JvdzEvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsi
aWQiOiJjb2wxL3JvdzEva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjAsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdv
cnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wxL3JvdzEva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7
ImlkIjoiY29sMS9yb3cyL3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjQsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxl
Ijp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsInNjaGVkdWxlZF9m
b3JfcGxheV9zdG9wIjo2NCwicGF1c2VkIjoxLCJlbXB0eSI6MCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2NCwic3RvcHBlZCI6MSwicmVjb3JkaW5nIjo4Niwi
c2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50
VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wxL3JvdzIvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wxL3JvdzIv
a25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjQsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwi
ZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wxL3JvdzIva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMS9yb3cz
L3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjgsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9t
VGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQsInBsYXlpbmci
OjQzLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RvcCI6NjQsImVtcHR5IjowLCJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwicGF1c2Vk
IjoxLCJzdG9wcGVkIjoxfX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIs
ImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wxL3JvdzMvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wxL3JvdzMva25vYiIsInNvdXJjZSI6
eyJjaGFubmVsIjowLCJudW1iZXIiOjgsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIs
ImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wxL3JvdzMva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMS9yb3c0L3BhZCIsInNvdXJjZSI6
eyJjaGFubmVsIjoxLCJudW1iZXIiOjEyLCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRl
IiwidmFsdWUiOnsiZW1wdHkiOjAsInNjaGVkdWxlZF9mb3JfcGxheV9zdG9wIjo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsInBhdXNlZCI6MSwic2No
ZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJwbGF5aW5nIjo0Mywic3RvcHBlZCI6
MX19fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVu
dEluZGV4IjoiY29sMS9yb3c0L3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMS9yb3c0L2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwi
bnVtYmVyIjoxMiwiY2hhcmFjdGVyIjozfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1l
bnRJbmRleCI6ImNvbDEvcm93NC9rbm9iIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wyL3JvdzEvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEs
Im51bWJlciI6MSwiY2hhcmFjdGVyIjoxfSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InN0
b3BwZWQiOjEsInBhdXNlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJlbXB0eSI6MCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJyZWNv
cmRpbmciOjg2LCJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjR9fX0sInRhcmdldCI6
eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDIv
cm93MS9wYWQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDIvcm93MS9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MSwiY2hh
cmFjdGVyIjozfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDIv
cm93MS9rbm9iIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wyL3JvdzIvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6NSwiY2hh
cmFjdGVyIjoxfSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InNjaGVkdWxlZF9mb3JfcmVj
b3JkX3N0b3AiOjY0LCJlbXB0eSI6MCwicmVjb3JkaW5nIjo4NiwicGxheWluZyI6NDMsInNjaGVkdWxlZF9mb3JfcGxheV9zdG9wIjo2NCwic2NoZWR1bGVkX2Zvcl9w
bGF5X3N0YXJ0Ijo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJzdG9wcGVkIjoxLCJwYXVzZWQiOjF9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZp
cnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDIvcm93Mi9wYWQiLCJwb2xs
Rm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDIvcm93Mi9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6NSwiY2hhcmFjdGVyIjozfSwibW9k
ZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDIvcm93Mi9rbm9iIiwicG9s
bEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wyL3JvdzMvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6OSwiY2hhcmFjdGVyIjoxfSwibW9k
ZSI6eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7ImVtcHR5IjowLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3Rv
cCI6NjQsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0LCJzdG9wcGVkIjoxLCJwbGF5aW5nIjo0MywicGF1c2VkIjoxLCJyZWNvcmRpbmciOjg2LCJzY2hlZHVs
ZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjR9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hv
ciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDIvcm93My9wYWQiLCJwb2xsRm9yRmVlZGJhY2siOmZh
bHNlfX0seyJpZCI6ImNvbDIvcm93My9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6OSwiY2hhcmFjdGVyIjozfSwibW9kZSI6e30sInRhcmdldCI6
eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDIvcm93My9rbm9iIiwicG9sbEZvckZlZWRiYWNrIjpm
YWxzZX19LHsiaWQiOiJjb2wyL3JvdzQvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MTMsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tW
YWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJwbGF5aW5nIjo0MywiZW1wdHkiOjAsInBhdXNlZCI6MSwic2NoZWR1bGVkX2Zv
cl9wbGF5X3N0YXJ0Ijo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwic2NoZWR1bGVkX2Zvcl9w
bGF5X3N0b3AiOjY0LCJyZWNvcmRpbmciOjg2LCJzdG9wcGVkIjoxfX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRy
b2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzQvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJj
b2wyL3JvdzQva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjEzLCJjaGFyYWN0ZXIiOjN9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5Ijoi
dmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMi9yb3c0L2tub2IiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6
ImNvbDMvcm93MS9wYWQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjoyLCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJr
aW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwidmFsdWUiOnsic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsInN0b3BwZWQiOjEsInBhdXNlZCI6MSwicmVjb3Jk
aW5nIjo4Niwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9y
X3BsYXlfc3RhcnQiOjY0LCJlbXB0eSI6MH19fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUi
OiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMy9yb3cxL3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMy9yb3cxL2tub2Ii
LCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoyLCJjaGFyYWN0ZXIiOjN9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5j
aG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMy9yb3cxL2tub2IiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDMvcm93Mi9wYWQi
LCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjo2LCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRU
b0Rpc2NyZXRlIiwidmFsdWUiOnsiZW1wdHkiOjAsInBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RvcCI6NjQsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFy
dCI6NjQsInBhdXNlZCI6MSwicmVjb3JkaW5nIjo4Niwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsInN0b3BwZWQiOjEsInNjaGVkdWxlZF9mb3JfcmVjb3Jk
X3N0YXJ0Ijo2NH19fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250
cm9sRWxlbWVudEluZGV4IjoiY29sMy9yb3cyL3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMy9yb3cyL2tub2IiLCJzb3VyY2UiOnsiY2hh
bm5lbCI6MCwibnVtYmVyIjo2LCJjaGFyYWN0ZXIiOjN9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250
cm9sRWxlbWVudEluZGV4IjoiY29sMy9yb3cyL2tub2IiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDMvcm93My9wYWQiLCJzb3VyY2UiOnsiY2hh
bm5lbCI6MSwibnVtYmVyIjoxMCwiY2hhcmFjdGVyIjoxfSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZh
bHVlIjp7InNjaGVkdWxlZF9mb3JfcGxheV9zdG9wIjo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQs
InBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsImVtcHR5IjowLCJyZWNvcmRpbmciOjg2LCJzdG9wcGVkIjoxLCJwYXVzZWQiOjF9fX0s
InRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRl
eCI6ImNvbDMvcm93My9wYWQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDMvcm93My9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJl
ciI6MTAsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5k
ZXgiOiJjb2wzL3JvdzMva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMy9yb3c0L3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1i
ZXIiOjE0LCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwidmFsdWUiOnsic2NoZWR1
bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJzdG9wcGVkIjoxLCJlbXB0eSI6MCwicGxheWluZyI6NDMsInNjaGVkdWxl
ZF9mb3JfcmVjb3JkX3N0YXJ0Ijo2NCwicGF1c2VkIjoxLCJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NH19fSwidGFyZ2V0Ijp7ImNh
dGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMy9yb3c0
L3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMy9yb3c0L2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoxNCwiY2hhcmFj
dGVyIjozfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93
NC9rbm9iIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0L3JvdzEvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MywiY2hhcmFj
dGVyIjoxfSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InBsYXlpbmciOjQzLCJzY2hlZHVs
ZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwicGF1c2VkIjoxLCJyZWNvcmRpbmciOjg2LCJlbXB0eSI6MCwic3RvcHBlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3Ai
OjY0LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjR9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1
YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDQvcm93MS9wYWQiLCJwb2xsRm9y
RmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDQvcm93MS9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MywiY2hhcmFjdGVyIjozfSwibW9kZSI6
e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDQvcm93MS9rbm9iIiwicG9sbEZv
ckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0L3JvdzIvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6NywiY2hhcmFjdGVyIjoxfSwibW9kZSI6
eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQsInN0b3Bw
ZWQiOjEsInJlY29yZGluZyI6ODYsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsImVtcHR5IjowLCJw
YXVzZWQiOjEsInBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RvcCI6NjR9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6
ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDQvcm93Mi9wYWQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNl
fX0seyJpZCI6ImNvbDQvcm93Mi9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6NywiY2hhcmFjdGVyIjozfSwibW9kZSI6e30sInRhcmdldCI6eyJj
YXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDQvcm93Mi9rbm9iIiwicG9sbEZvckZlZWRiYWNrIjpmYWxz
ZX19LHsiaWQiOiJjb2w0L3JvdzMvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MTEsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1
ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJyZWNvcmRpbmciOjg2LCJzdG9wcGVkIjoxLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3Rh
cnQiOjY0LCJlbXB0eSI6MCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJwYXVzZWQiOjEsInBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFy
dCI6NjQsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xF
bGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2w0L3JvdzMvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0
L3JvdzMva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjExLCJjaGFyYWN0ZXIiOjN9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5Ijoidmly
dHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sNC9yb3czL2tub2IiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNv
bDQvcm93NC9wYWQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjoxNSwiY2hhcmFjdGVyIjoxfSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2lu
ZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InJlY29yZGluZyI6ODYsInBsYXlpbmciOjQzLCJwYXVzZWQiOjEsImVtcHR5IjowLCJzY2hlZHVsZWRfZm9y
X3BsYXlfc3RhcnQiOjY0LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJzY2hlZHVsZWRfZm9yX3Bs
YXlfc3RvcCI6NjQsInN0b3BwZWQiOjF9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoi
YnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDQvcm93NC9wYWQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDQvcm93NC9rbm9iIiwi
c291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MTUsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNo
b3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2w0L3JvdzQva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fV0sImNvbnRyb2xsZXJDdXN0b21EYXRh
Ijp7ImNvbXBhbmlvbiI6eyJjb250cm9scyI6W3siaGVpZ2h0Ijo1MCwiaWQiOiJjb2w0L3JvdzEva25vYiIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6
ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVyIiwic2l6ZUNvbnN0cmFpbmVkIjp0
cnVlfSwibWFwcGluZ3MiOlsiY29sNC9yb3cxL2tub2IiLCJjb2w0L3JvdzEvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgiOjUwLCJ4Ijo0MDAsInkiOjB9LHsi
aGVpZ2h0Ijo1MCwiaWQiOiJjb2wxL3JvdzIva25vYiIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0
cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVyIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY29sMS9yb3cyL2tu
b2IiLCJjb2wxL3JvdzIvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgiOjUwLCJ4IjoxMDAsInkiOjEwMH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDQvcm93Mi9r
bm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwi
cG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2w0L3JvdzIva25vYiIsImNvbDQvcm93Mi9wYWQiXSwic2hhcGUi
OiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjQwMCwieSI6MTAwfSx7ImhlaWdodCI6NTAsImlkIjoiY29sMS9yb3cxL2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwi
cG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25z
dHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDEvcm93MS9rbm9iIiwiY29sMS9yb3cxL3BhZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6MTAw
LCJ5IjowfSx7ImhlaWdodCI6NTAsImlkIjoiY29sMy9yb3cxL2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25z
dHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNv
bDMvcm93MS9rbm9iIiwiY29sMy9yb3cxL3BhZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6MzAwLCJ5IjowfSx7ImhlaWdodCI6NTAsImlkIjoiY29s
Mi9yb3cxL2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFu
Z2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDIvcm93MS9rbm9iIiwiY29sMi9yb3cxL3BhZCJd
LCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6MjAwLCJ5IjowfSx7ImhlaWdodCI6NTAsImlkIjoiY29sMi9yb3cyL2tub2IiLCJsYWJlbE9uZSI6eyJhbmds
ZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNp
emVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDIvcm93Mi9rbm9iIiwiY29sMi9yb3cyL3BhZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwi
eCI6MjAwLCJ5IjoxMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2wzL3JvdzIva25vYiIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwi
c2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVyIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFwcGlu
Z3MiOlsiY29sMy9yb3cyL2tub2IiLCJjb2wzL3JvdzIvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgiOjUwLCJ4IjozMDAsInkiOjEwMH0seyJoZWlnaHQiOjUw
LCJpZCI6ImNvbDIvcm93My9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJl
bFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2wyL3JvdzMva25vYiIsImNvbDIv
cm93My9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjIwMCwieSI6MjAwfSx7ImhlaWdodCI6NTAsImlkIjoiY29sMy9yb3czL2tub2IiLCJsYWJl
bE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6
ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDMvcm93My9rbm9iIiwiY29sMy9yb3czL3BhZCJdLCJzaGFwZSI6ImNpcmNsZSIs
IndpZHRoIjo1MCwieCI6MzAwLCJ5IjoyMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2w0L3JvdzQva25vYiIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6
ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVyIiwic2l6ZUNvbnN0cmFpbmVkIjp0
cnVlfSwibWFwcGluZ3MiOlsiY29sNC9yb3c0L2tub2IiLCJjb2w0L3JvdzQvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgiOjUwLCJ4Ijo0MDAsInkiOjMwMH0s
eyJoZWlnaHQiOjUwLCJpZCI6ImNvbDEvcm93NC9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQi
OnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2wxL3JvdzQv
a25vYiIsImNvbDEvcm93NC9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjEwMCwieSI6MzAwfSx7ImhlaWdodCI6NTAsImlkIjoiY29sMi9yb3c0
L2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjow
LCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDIvcm93NC9rbm9iIiwiY29sMi9yb3c0L3BhZCJdLCJzaGFw
ZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6MjAwLCJ5IjozMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2wzL3JvdzQva25vYiIsImxhYmVsT25lIjp7ImFuZ2xlIjow
LCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVyIiwic2l6ZUNv
bnN0cmFpbmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY29sMy9yb3c0L2tub2IiLCJjb2wzL3JvdzQvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgiOjUwLCJ4Ijoz
MDAsInkiOjMwMH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDEvcm93My9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXpl
Q29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6
WyJjb2wxL3JvdzMva25vYiIsImNvbDEvcm93My9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjEwMCwieSI6MjAwfSx7ImhlaWdodCI6NTAsImlk
IjoiY29sNC9yb3czL2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdv
Ijp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDQvcm93My9rbm9iIiwiY29sNC9yb3cz
L3BhZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6NDAwLCJ5IjoyMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJiYW5rLXJpZ2h0IiwibGFiZWxPbmUiOnsi
YW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJiZWxvd0Jv
dHRvbSIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImJhbmstcmlnaHQiXSwic2hhcGUiOiJyZWN0YW5nbGUiLCJ3aWR0aCI6NTAsIngiOjUwMCwi
eSI6NTB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJiYW5rLWxlZnQiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5l
ZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImJlbG93Qm90dG9tIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiYmFu
ay1sZWZ0Il0sInNoYXBlIjoicmVjdGFuZ2xlIiwid2lkdGgiOjUwLCJ4IjowLCJ5Ijo1MH0seyJoZWlnaHQiOjUwLCJpZCI6ImE3OGIyNzdlLWNmYmYtNGIyYi05Y2M2
LTFhNTUwYWViODdmZCIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsi
YW5nbGUiOjAsInBvc2l0aW9uIjoiYmVsb3dCb3R0b20iLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjaC1sZWZ0Il0sInNoYXBlIjoicmVjdGFu
Z2xlIiwid2lkdGgiOjUwLCJ4IjowLCJ5IjoyNTB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJlMzEyZDJhMi1lY2YxLTQxODktOTVhZi00MTc0YzQzYTc1MGMiLCJsYWJlbE9u
ZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImJl
bG93Qm90dG9tIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY2gtcmlnaHQiXSwic2hhcGUiOiJyZWN0YW5nbGUiLCJ3aWR0aCI6NTAsIngiOjUw
MCwieSI6MjUwfSx7ImhlaWdodCI6NTAsImlkIjoiY3Vyc29yLWxlZnQiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25z
dHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImJlbG93Qm90dG9tIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFwcGluZ3Mi
OlsiY3Vyc29yLWxlZnQiXSwic2hhcGUiOiJyZWN0YW5nbGUiLCJ3aWR0aCI6NTAsIngiOjAsInkiOjE1MH0seyJoZWlnaHQiOjUwLCJpZCI6ImN1cnNvci1yaWdodCIs
ImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0
aW9uIjoiYmVsb3dCb3R0b20iLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjdXJzb3ItcmlnaHQiXSwic2hhcGUiOiJyZWN0YW5nbGUiLCJ3aWR0
aCI6NTAsIngiOjUwMCwieSI6MTUwfV0sImdyaWREaXZpc2lvbkNvdW50IjoyLCJncmlkU2l6ZSI6NTB9fSwicGFyYW1ldGVycyI6eyIwIjp7InZhbHVlIjowLjI4NjAw
MTJ9LCIxIjp7InZhbHVlIjowLjE5NTk5OTk0fX0sInRhZ3MiOlsibWFpbiJdLCJpbnN0YW5jZVRyYWNrIjp7ImFkZHJlc3MiOiJCeUlkIiwiaWQiOiI5QUQ4OTkwRC0z
QUMyLTNDNDItOEI3OC1FQUYxNzc1Nzc3MTIifSwiaW5zdGFuY2VGeCI6eyJhZGRyZXNzIjoiQnlJZCIsImNoYWluIjp7ImFkZHJlc3MiOiJUcmFjayIsInRyYWNrIjp7
ImFkZHJlc3MiOiJCeUlkIiwiaWQiOiJCRDUxRjVFOC0yRDcyLTU3NEEtQjlGNy05NDlCM0U2RTM3NkUifSwiY2hhaW4iOiJOb3JtYWwifSwiaWQiOiJFREJGRjZCNC00
Mzc5LTZFNDEtQUFFMC1GNTBFMDA1NTE3QUUifX0=
AFByb2dyYW0gMQAQAAAA
>
PRESETNAME "Program 1"
FLOAT 465 58 752 675
FXID {EDBFF6B4-4379-6E41-AAE0-F50E005517AE}
PARM_TCP 0:_Main_p1__Param_1 1:_Main_p2__Param_2
WAK 0 0
>
>
<TRACK {03032DEA-6332-9141-A48E-948017A4EEB6}
NAME "Amazing guitar whatever track"
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.45309238622556 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {03032DEA-6332-9141-A48E-948017A4EEB6}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {9AD8990D-3AC2-3C42-8B78-EAF177577712}
NAME ReaSynth
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1.93504135003819 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 144 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {9AD8990D-3AC2-3C42-8B78-EAF177577712}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 326 284 611 497
SHOW 0
LASTSEL 1
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaSynth (Cockos)" reasynth.vst.dylib 0 "ReaSynth 1" 1919251321<5653547265737972656173796E746800> ""
eXNlcu9e7f4AAAAAAgAAAAEAAAAAAAAAAgAAAAAAAABEAAAAAAAAAAAAEAA=
776t3g3wrd7ANh5AF7fROgAAAAAAAAAAAAAAAM5NAD/pZ4g9AAAAAAAAAD8AAIA/AACAPwAAAD8AAAAAAAAAAAAAAAA=
AFByb2dyYW0gMQAQAAAA
>
PRESETNAME "Program 1"
FLOATPOS 105 269 372 469
FXID {CEDF7363-C598-104C-8A59-BBCEBEA07986}
WAK 0 0
BYPASS 0 0 0
<VST "VSTi: ReaSynth (Cockos)" reasynth.vst.dylib 0 "ReaSynth 2" 1919251321<5653547265737972656173796E746800> ""
eXNlcu9e7f4AAAAAAgAAAAEAAAAAAAAAAgAAAAAAAABEAAAAAAAAAAAAEAA=
776t3g3wrd4CAMA/F7fROgAAAAAAAAAAAAAAAM5NAD/pZ4g9AAAAAAAAAD8AAIA/AACAPwAAAD8AAAAAAAAAAAAAAAA=
AFByb2dyYW0gMQAQAAAA
>
PRESETNAME "Program 1"
FLOATPOS 762 280 372 469
FXID {50D55363-824E-3648-8401-893D8284842E}
WAK 0 0
>
>
<TRACK {7FE09752-4786-EE42-85D0-93FD99C629F3}
NAME ReaDelay
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.1023765046481 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {7FE09752-4786-EE42-85D0-93FD99C629F3}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 326 359 813 422
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VST: ReaDelay (Cockos)" readelay.vst.dylib 0 "" 1919247468<5653547265646C72656164656C617900> ""
bGRlcu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAATAAAAAEAAAAAABAA
AAAAAAAAAAABAAAALAAAAAIAAAAAAAAAAACAPwAAgD8AAAAAAACAPwAAAAAAAIA8nNEHMwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAPw==
AFByb2dyYW0gMQAQAAAA
>
PRESETNAME "Program 1"
FLOATPOS 0 0 0 0
FXID {B52EA6B0-18BE-5241-919E-E1AE6419C4CC}
WAK 0 0
>
>
<EXTENSIONS
>
>
@@ -0,0 +1,247 @@
<REAPER_PROJECT 0.1 "7.51/macOS-arm64" 1769456555
<NOTES 0 2
>
RIPPLE 0 0
GROUPOVERRIDE 0 0 0 0
AUTOXFADE 129
ENVATTACH 3
POOLEDENVATTACH 0
TCPUIFLAGS 0
MIXERUIFLAGS 11 48
ENVFADESZ10 40
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 0
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 65792
PANMODE 3
PANLAWFLAGS 3
CURSOR 3.5
ZOOM 120 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "Media" ""
<RECORD_CFG
ZXZhdxgAAQ==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 0 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
RENDER_TRIM 0.000001 0.000001 0 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
ZXZhdxgAAQ==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
BEATLEN 4
FREQ 1760 880 1
SAMPLES "" "" "" ""
SPLIGNORE 0 0
SPLDEF 2 660 "" 0 ""
SPLDEF 3 440 "" 0 ""
PATTERN 0 169
PATTERNSTR ABBB
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4 0
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0 0 0 0 0 1
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_PANMODE 3
MASTER_PANLAWFLAGS 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {A1CEC65A-BC07-884A-B2D7-75210FF2FF85}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {2C82CA0C-5D98-094A-927F-5392D738AD9F}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {947C5E61-D2A7-0147-A392-62E49D2F77EE}
NAME "ReaLearn Leader"
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 0
REC 0 5088 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {947C5E61-D2A7-0147-A392-62E49D2F77EE}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: Helgobox - ReaLearn & Playtime (Helgoboss)" helgobox.vst.dylib 0 "" 1751282284<5653546862726C68656C676F626F7872> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAACpBgAAAQAAAAAAAAA=
eyJtYWluVW5pdCI6eyJ2ZXJzaW9uIjoiMi4xOC4yIiwiaWQiOiJ4Q0dNTjk1QiIsIm5hbWUiOiJNYWluIiwic3RheUFjdGl2ZVdoZW5Qcm9qZWN0SW5CYWNrZ3JvdW5k
IjoiT25seUlmQmFja2dyb3VuZFByb2plY3RJc1J1bm5pbmciLCJsaXZlc09uVXBwZXJGbG9vciI6ZmFsc2UsIndhbnRzS2V5Ym9hcmRJbnB1dCI6dHJ1ZSwiZGVmYXVs
dEdyb3VwIjp7fSwiZGVmYXVsdENvbnRyb2xsZXJHcm91cCI6e30sIm1hcHBpbmdzIjpbeyJpZCI6IkE0UDhYV1dCSFVkU1UwTnQtMzhVNiIsIm5hbWUiOiJUb2dnbGUg
aW5zdGFuY2UgYSIsInNvdXJjZSI6eyJjYXRlZ29yeSI6ImtleWJvYXJkIiwiaXNSZWdpc3RlcmVkIjpmYWxzZSwiaXMxNEJpdCI6ZmFsc2UsIm9zY0FyZ0luZGV4Ijow
LCJrZXlzdHJva2UiOnsibW9kaWZpZXJzIjoxLCJrZXkiOjY1fSwiYnV0dG9uSW5kZXgiOjAsImJ1dHRvbkRlc2lnbiI6eyJiYWNrZ3JvdW5kIjp7ImtpbmQiOiJDb2xv
ciJ9LCJmb3JlZ3JvdW5kIjp7ImtpbmQiOiJOb25lIn0sInN0YXRpY190ZXh0IjoiIn19LCJtb2RlIjp7InR5cGUiOjIsIm1heFN0ZXBTaXplIjowLjA1LCJtaW5TdGVw
RmFjdG9yIjoxLCJtYXhTdGVwRmFjdG9yIjoxfSwidGFyZ2V0Ijp7InR5cGUiOjM4LCJmeEFuY2hvciI6ImlkIiwidXNlU2VsZWN0aW9uR2FuZ2luZyI6ZmFsc2UsInVz
ZVRyYWNrR3JvdXBpbmciOmZhbHNlLCJzZWVrQmVoYXZpb3IiOiJJbW1lZGlhdGUiLCJ1c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmlldyI6dHJ1ZSwic2Vla1BsYXkiOnRy
dWUsIm9zY0FyZ0luZGV4IjowLCJtb3VzZUFjdGlvbiI6eyJraW5kIjoiTW92ZVRvIiwiYXhpcyI6IlgifSwiaW5zdGFuY2VUYWdLaW5kIjoiSW5zdGFuY2VUYWdzIiwi
dGFncyI6WyJhIl0sInRha2VNYXBwaW5nU25hcHNob3QiOnsia2luZCI6Ikxhc3RMb2FkZWQifX19LHsiaWQiOiJWSmpoYUdMemFEeGM2Yzd2MUs2cnQiLCJuYW1lIjoi
VG9nZ2xlIGluc3RhbmNlIGIiLCJzb3VyY2UiOnsiY2F0ZWdvcnkiOiJrZXlib2FyZCIsImlzUmVnaXN0ZXJlZCI6ZmFsc2UsImlzMTRCaXQiOmZhbHNlLCJvc2NBcmdJ
bmRleCI6MCwia2V5c3Ryb2tlIjp7Im1vZGlmaWVycyI6MSwia2V5Ijo2Nn0sImJ1dHRvbkluZGV4IjowLCJidXR0b25EZXNpZ24iOnsiYmFja2dyb3VuZCI6eyJraW5k
IjoiQ29sb3IifSwiZm9yZWdyb3VuZCI6eyJraW5kIjoiTm9uZSJ9LCJzdGF0aWNfdGV4dCI6IiJ9fSwibW9kZSI6eyJ0eXBlIjoyLCJtYXhTdGVwU2l6ZSI6MC4wNSwi
bWluU3RlcEZhY3RvciI6MSwibWF4U3RlcEZhY3RvciI6MX0sInRhcmdldCI6eyJ0eXBlIjozOCwiZnhBbmNob3IiOiJpZCIsInVzZVNlbGVjdGlvbkdhbmdpbmciOmZh
bHNlLCJ1c2VUcmFja0dyb3VwaW5nIjpmYWxzZSwic2Vla0JlaGF2aW9yIjoiSW1tZWRpYXRlIiwidXNlUHJvamVjdCI6dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQ
bGF5Ijp0cnVlLCJvc2NBcmdJbmRleCI6MCwibW91c2VBY3Rpb24iOnsia2luZCI6Ik1vdmVUbyIsImF4aXMiOiJYIn0sImluc3RhbmNlVGFnS2luZCI6Ikluc3RhbmNl
VGFncyIsInRhZ3MiOlsiYiJdLCJ0YWtlTWFwcGluZ1NuYXBzaG90Ijp7ImtpbmQiOiJMYXN0TG9hZGVkIn19fV0sImFjdGl2ZUluc3RhbmNlVGFncyI6WyJhMiIsImEx
IiwiYjEiLCJhIiwiYiJdLCJpbnN0YW5jZUZ4Ijp7ImFkZHJlc3MiOiJGb2N1c2VkIn19LCJhZGRpdGlvbmFsVW5pdHMiOltdfQ==
AAAAAAAA
>
FLOAT 1099 146 752 674
FXID {B558CF04-95B7-E84C-BEDB-3E25771880BD}
WAK 0 0
>
>
<TRACK {915319A1-0C70-0540-96AE-8E3B158574F8}
NAME "ReaLearn A"
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 0
REC 0 5088 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {915319A1-0C70-0540-96AE-8E3B158574F8}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: Helgobox - ReaLearn & Playtime (Helgoboss)" helgobox.vst.dylib 0 "" 1751282284<5653546862726C68656C676F626F7872> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAnAgAAAQAAAAAAAAA=
eyJtYWluVW5pdCI6eyJ2ZXJzaW9uIjoiMi4xOC4yIiwiaWQiOiI2ZTBhenpubCIsIm5hbWUiOiJNYWluIiwic3RheUFjdGl2ZVdoZW5Qcm9qZWN0SW5CYWNrZ3JvdW5k
IjoiT25seUlmQmFja2dyb3VuZFByb2plY3RJc1J1bm5pbmciLCJsaXZlc09uVXBwZXJGbG9vciI6ZmFsc2UsImRlZmF1bHRHcm91cCI6e30sImRlZmF1bHRDb250cm9s
bGVyR3JvdXAiOnt9LCJ0YWdzIjpbImExIiwiZ3VpdGFyIiwicmh5dGhtIiwiZHJ1bXMiLCJwaWFubyJdLCJpbnN0YW5jZUZ4Ijp7ImFkZHJlc3MiOiJGb2N1c2VkIn19
LCJ0YWdzIjpbImEiXSwiYWRkaXRpb25hbFVuaXRzIjpbeyJ2ZXJzaW9uIjoiMi4xOC4yIiwiaWQiOiI3VmJzTHZROCIsInN0YXlBY3RpdmVXaGVuUHJvamVjdEluQmFj
a2dyb3VuZCI6Ik9ubHlJZkJhY2tncm91bmRQcm9qZWN0SXNSdW5uaW5nIiwibGl2ZXNPblVwcGVyRmxvb3IiOmZhbHNlLCJkZWZhdWx0R3JvdXAiOnt9LCJkZWZhdWx0
Q29udHJvbGxlckdyb3VwIjp7fSwidGFncyI6WyJhMiJdLCJpbnN0YW5jZUZ4Ijp7ImFkZHJlc3MiOiJGb2N1c2VkIn19XX0=
AFByb2dyYW0gMQAAAAAA
>
FLOATPOS 578 121 752 674
FXID {4D97881F-E85B-3941-94BC-828D91B9E332}
WAK 0 0
>
>
<TRACK {4DC969BF-C5DB-1142-8047-215BBF666313}
NAME "ReaLearn B"
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 1
REC 0 5088 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {4DC969BF-C5DB-1142-8047-215BBF666313}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: Helgobox - ReaLearn & Playtime (Helgoboss)" helgobox.vst.dylib 0 "" 1751282284<5653546862726C68656C676F626F7872> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAgAQAAAQAAAAAAAAA=
eyJtYWluVW5pdCI6eyJ2ZXJzaW9uIjoiMi4xOC4yIiwiaWQiOiJkZDEyZjNmIiwibmFtZSI6Ik1haW4iLCJzdGF5QWN0aXZlV2hlblByb2plY3RJbkJhY2tncm91bmQi
OiJPbmx5SWZCYWNrZ3JvdW5kUHJvamVjdElzUnVubmluZyIsImxpdmVzT25VcHBlckZsb29yIjpmYWxzZSwiZGVmYXVsdEdyb3VwIjp7fSwiZGVmYXVsdENvbnRyb2xs
ZXJHcm91cCI6e30sInRhZ3MiOlsiYjEiXSwiaW5zdGFuY2VGeCI6eyJhZGRyZXNzIjoiRm9jdXNlZCJ9fSwidGFncyI6WyJiIl0sImFkZGl0aW9uYWxVbml0cyI6W119
AFByb2dyYW0gMQAAAAAA
>
FLOATPOS 888 153 752 674
FXID {8FE1C00F-91EF-F442-8D11-BD6ED457C006}
WAK 0 0
>
>
>
@@ -0,0 +1,328 @@
<REAPER_PROJECT 0.1 "7.51/macOS-arm64" 1769507215
<NOTES 0 2
>
RIPPLE 0 0
GROUPOVERRIDE 0 0 0 0
AUTOXFADE 129
ENVATTACH 3
POOLEDENVATTACH 0
TCPUIFLAGS 0
MIXERUIFLAGS 11 48
ENVFADESZ10 40
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 0
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 65792
PANMODE 3
PANLAWFLAGS 3
CURSOR 0.5
ZOOM 120 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "Media" ""
<RECORD_CFG
ZXZhdxgAAQ==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 0 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
RENDER_TRIM 0.000001 0.000001 0 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
ZXZhdxgAAQ==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
BEATLEN 4
FREQ 1760 880 1
SAMPLES "" "" "" ""
SPLIGNORE 0 0
SPLDEF 2 660 "" 0 ""
SPLDEF 3 440 "" 0 ""
PATTERN 0 169
PATTERNSTR ABBB
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4 0
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0 0 0 0 0 1
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_PANMODE 3
MASTER_PANLAWFLAGS 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {A1CEC65A-BC07-884A-B2D7-75210FF2FF85}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {2C82CA0C-5D98-094A-927F-5392D738AD9F}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {947C5E61-D2A7-0147-A392-62E49D2F77EE}
NAME "ReaLearn Leader"
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 0
REC 0 5088 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {947C5E61-D2A7-0147-A392-62E49D2F77EE}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: Helgobox - ReaLearn & Playtime (Helgoboss)" helgobox.vst.dylib 0 "" 1751282284<5653546862726C68656C676F626F7872> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAACbEQAAAQAAAAAAAAA=
eyJtYWluVW5pdCI6eyJ2ZXJzaW9uIjoiMi4xOC4yIiwiaWQiOiJ4Q0dNTjk1QiIsIm5hbWUiOiJNYWluIiwic3RheUFjdGl2ZVdoZW5Qcm9qZWN0SW5CYWNrZ3JvdW5k
IjoiT25seUlmQmFja2dyb3VuZFByb2plY3RJc1J1bm5pbmciLCJsaXZlc09uVXBwZXJGbG9vciI6ZmFsc2UsIndhbnRzS2V5Ym9hcmRJbnB1dCI6dHJ1ZSwiZGVmYXVs
dEdyb3VwIjp7fSwiZGVmYXVsdENvbnRyb2xsZXJHcm91cCI6e30sIm1hcHBpbmdzIjpbeyJpZCI6IkE0UDhYV1dCSFVkU1UwTnQtMzhVNiIsIm5hbWUiOiJUb2dnbGUg
aW5pdGlhdGluZyB1bml0IChwcmV2ZW50ZWQpIiwic291cmNlIjp7ImNhdGVnb3J5Ijoia2V5Ym9hcmQiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxz
ZSwib3NjQXJnSW5kZXgiOjAsImtleXN0cm9rZSI6eyJtb2RpZmllcnMiOjEsImtleSI6Nzd9LCJidXR0b25JbmRleCI6MCwiYnV0dG9uRGVzaWduIjp7ImJhY2tncm91
bmQiOnsia2luZCI6IkNvbG9yIn0sImZvcmVncm91bmQiOnsia2luZCI6Ik5vbmUifSwic3RhdGljX3RleHQiOiIifX0sIm1vZGUiOnsidHlwZSI6MiwibWF4U3RlcFNp
emUiOjAuMDUsIm1pblN0ZXBGYWN0b3IiOjEsIm1heFN0ZXBGYWN0b3IiOjF9LCJ0YXJnZXQiOnsidHlwZSI6NjcsImZ4QW5jaG9yIjoiaWQiLCJ1c2VTZWxlY3Rpb25H
YW5naW5nIjpmYWxzZSwidXNlVHJhY2tHcm91cGluZyI6ZmFsc2UsInNlZWtCZWhhdmlvciI6IkltbWVkaWF0ZSIsInVzZVByb2plY3QiOnRydWUsIm1vdmVWaWV3Ijp0
cnVlLCJzZWVrUGxheSI6dHJ1ZSwib3NjQXJnSW5kZXgiOjAsIm1vdXNlQWN0aW9uIjp7ImtpbmQiOiJNb3ZlVG8iLCJheGlzIjoiWCJ9LCJpbnN0YW5jZVRhZ0tpbmQi
OiJJbnN0YW5jZVRhZ3MiLCJ0YWdzIjpbIm1haW4iXSwidGFrZU1hcHBpbmdTbmFwc2hvdCI6eyJraW5kIjoiTGFzdExvYWRlZCJ9fX0seyJpZCI6Ikl6ODllLWlaZlFy
UXNuazQzemRkVyIsIm5hbWUiOiJUb2dnbGUgdW5pdCBhIiwic291cmNlIjp7ImNhdGVnb3J5Ijoia2V5Ym9hcmQiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0
IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAsImtleXN0cm9rZSI6eyJtb2RpZmllcnMiOjEsImtleSI6NjV9LCJidXR0b25JbmRleCI6MCwiYnV0dG9uRGVzaWduIjp7ImJh
Y2tncm91bmQiOnsia2luZCI6IkNvbG9yIn0sImZvcmVncm91bmQiOnsia2luZCI6Ik5vbmUifSwic3RhdGljX3RleHQiOiIifX0sIm1vZGUiOnsidHlwZSI6MiwibWF4
U3RlcFNpemUiOjAuMDUsIm1pblN0ZXBGYWN0b3IiOjEsIm1heFN0ZXBGYWN0b3IiOjF9LCJ0YXJnZXQiOnsidHlwZSI6NjcsImZ4QW5jaG9yIjoiaWQiLCJ1c2VTZWxl
Y3Rpb25HYW5naW5nIjpmYWxzZSwidXNlVHJhY2tHcm91cGluZyI6ZmFsc2UsInNlZWtCZWhhdmlvciI6IkltbWVkaWF0ZSIsInVzZVByb2plY3QiOnRydWUsIm1vdmVW
aWV3Ijp0cnVlLCJzZWVrUGxheSI6dHJ1ZSwib3NjQXJnSW5kZXgiOjAsIm1vdXNlQWN0aW9uIjp7ImtpbmQiOiJNb3ZlVG8iLCJheGlzIjoiWCJ9LCJpbnN0YW5jZVRh
Z0tpbmQiOiJJbnN0YW5jZVRhZ3MiLCJ0YWdzIjpbImEiXSwidGFrZU1hcHBpbmdTbmFwc2hvdCI6eyJraW5kIjoiTGFzdExvYWRlZCJ9fX0seyJpZCI6IlZKamhhR0x6
YUR4YzZjN3YxSzZydCIsIm5hbWUiOiJUb2dnbGUgdW5pdCBiIiwic291cmNlIjp7ImNhdGVnb3J5Ijoia2V5Ym9hcmQiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0
Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAsImtleXN0cm9rZSI6eyJtb2RpZmllcnMiOjEsImtleSI6NjZ9LCJidXR0b25JbmRleCI6MCwiYnV0dG9uRGVzaWduIjp7
ImJhY2tncm91bmQiOnsia2luZCI6IkNvbG9yIn0sImZvcmVncm91bmQiOnsia2luZCI6Ik5vbmUifSwic3RhdGljX3RleHQiOiIifX0sIm1vZGUiOnsidHlwZSI6Miwi
bWF4U3RlcFNpemUiOjAuMDUsIm1pblN0ZXBGYWN0b3IiOjEsIm1heFN0ZXBGYWN0b3IiOjF9LCJ0YXJnZXQiOnsidHlwZSI6NjcsImZ4QW5jaG9yIjoiaWQiLCJ1c2VT
ZWxlY3Rpb25HYW5naW5nIjpmYWxzZSwidXNlVHJhY2tHcm91cGluZyI6ZmFsc2UsInNlZWtCZWhhdmlvciI6IkltbWVkaWF0ZSIsInVzZVByb2plY3QiOnRydWUsIm1v
dmVWaWV3Ijp0cnVlLCJzZWVrUGxheSI6dHJ1ZSwib3NjQXJnSW5kZXgiOjAsIm1vdXNlQWN0aW9uIjp7ImtpbmQiOiJNb3ZlVG8iLCJheGlzIjoiWCJ9LCJpbnN0YW5j
ZVRhZ0tpbmQiOiJJbnN0YW5jZVRhZ3MiLCJ0YWdzIjpbImIiXSwidGFrZU1hcHBpbmdTbmFwc2hvdCI6eyJraW5kIjoiTGFzdExvYWRlZCJ9fX1dLCJ0YWdzIjpbIm1h
aW4iXSwiYWN0aXZlSW5zdGFuY2VUYWdzIjpbImEyIiwiYTEiLCJiMSIsImEiLCJiIl0sImluc3RhbmNlRngiOnsiYWRkcmVzcyI6IkZvY3VzZWQifX0sImFkZGl0aW9u
YWxVbml0cyI6W3sidmVyc2lvbiI6IjIuMTguMiIsImlkIjoiWnI0VjZnZGYiLCJuYW1lIjoiR3VpdGFyIiwic3RheUFjdGl2ZVdoZW5Qcm9qZWN0SW5CYWNrZ3JvdW5k
IjoiT25seUlmQmFja2dyb3VuZFByb2plY3RJc1J1bm5pbmciLCJsaXZlc09uVXBwZXJGbG9vciI6ZmFsc2UsIndhbnRzS2V5Ym9hcmRJbnB1dCI6dHJ1ZSwiZGVmYXVs
dEdyb3VwIjp7fSwiZGVmYXVsdENvbnRyb2xsZXJHcm91cCI6e30sIm1hcHBpbmdzIjpbeyJpZCI6Im5RUGVHTkdXaGp2eHdFdUhERU1iYSIsIm5hbWUiOiJHdWl0YXIg
dm9sdW1lIiwic291cmNlIjp7ImNhdGVnb3J5Ijoia2V5Ym9hcmQiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAsImtl
eXN0cm9rZSI6eyJtb2RpZmllcnMiOjEsImtleSI6ODZ9LCJidXR0b25JbmRleCI6MCwiYnV0dG9uRGVzaWduIjp7ImJhY2tncm91bmQiOnsia2luZCI6IkNvbG9yIn0s
ImZvcmVncm91bmQiOnsia2luZCI6Ik5vbmUifSwic3RhdGljX3RleHQiOiIifX0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjAuMDUsIm1pblN0ZXBGYWN0b3IiOjEsIm1h
eFN0ZXBGYWN0b3IiOjV9LCJ0YXJnZXQiOnsidHlwZSI6MiwidHJhY2tHVUlEIjoiMkM1QTFBQUItQjE0Ny0wQjQ5LUFGNDEtQ0QzNTg0QzZCRDAwIiwiZnhBbmNob3Ii
OiJpZCIsInVzZVNlbGVjdGlvbkdhbmdpbmciOmZhbHNlLCJ1c2VUcmFja0dyb3VwaW5nIjpmYWxzZSwic2Vla0JlaGF2aW9yIjoiSW1tZWRpYXRlIiwidXNlUHJvamVj
dCI6dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlLCJvc2NBcmdJbmRleCI6MCwibW91c2VBY3Rpb24iOnsia2luZCI6Ik1vdmVUbyIsImF4aXMiOiJY
In0sImluc3RhbmNlVGFnS2luZCI6Ikluc3RhbmNlVGFncyIsInRha2VNYXBwaW5nU25hcHNob3QiOnsia2luZCI6Ikxhc3RMb2FkZWQifX19XSwidGFncyI6WyJhIl0s
Imluc3RhbmNlRngiOnsiYWRkcmVzcyI6IkZvY3VzZWQifX0seyJ2ZXJzaW9uIjoiMi4xOC4yIiwiaWQiOiI5WW9VNTNFYiIsIm5hbWUiOiJQaWFubyIsInN0YXlBY3Rp
dmVXaGVuUHJvamVjdEluQmFja2dyb3VuZCI6Ik9ubHlJZkJhY2tncm91bmRQcm9qZWN0SXNSdW5uaW5nIiwibGl2ZXNPblVwcGVyRmxvb3IiOmZhbHNlLCJ3YW50c0tl
eWJvYXJkSW5wdXQiOnRydWUsImRlZmF1bHRHcm91cCI6e30sImRlZmF1bHRDb250cm9sbGVyR3JvdXAiOnt9LCJtYXBwaW5ncyI6W3siaWQiOiJnYjQ0NjlidnlSMklG
N1F6QzM3LVAiLCJuYW1lIjoiUGlhbm8gdm9sdW1lIiwic291cmNlIjp7ImNhdGVnb3J5Ijoia2V5Ym9hcmQiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0Ijpm
YWxzZSwib3NjQXJnSW5kZXgiOjAsImtleXN0cm9rZSI6eyJtb2RpZmllcnMiOjEsImtleSI6ODZ9LCJidXR0b25JbmRleCI6MCwiYnV0dG9uRGVzaWduIjp7ImJhY2tn
cm91bmQiOnsia2luZCI6IkNvbG9yIn0sImZvcmVncm91bmQiOnsia2luZCI6Ik5vbmUifSwic3RhdGljX3RleHQiOiIifX0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjAu
MDUsIm1pblN0ZXBGYWN0b3IiOjEsIm1heFN0ZXBGYWN0b3IiOjV9LCJ0YXJnZXQiOnsidHlwZSI6MiwidHJhY2tHVUlEIjoiOTRGNEE3NkQtNEY1MC0xMjRELTkyRjgt
MDgyODcxMERCRjEyIiwiZnhBbmNob3IiOiJpZCIsInVzZVNlbGVjdGlvbkdhbmdpbmciOmZhbHNlLCJ1c2VUcmFja0dyb3VwaW5nIjpmYWxzZSwic29sb0JlaGF2aW9y
IjoxLCJzZWVrQmVoYXZpb3IiOiJJbW1lZGlhdGUiLCJ1c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmlldyI6dHJ1ZSwic2Vla1BsYXkiOnRydWUsIm9zY0FyZ0luZGV4Ijow
LCJtb3VzZUFjdGlvbiI6eyJraW5kIjoiTW92ZVRvIiwiYXhpcyI6IlgifSwiaW5zdGFuY2VUYWdLaW5kIjoiSW5zdGFuY2VUYWdzIiwidGFrZU1hcHBpbmdTbmFwc2hv
dCI6eyJraW5kIjoiTGFzdExvYWRlZCJ9fX1dLCJ0YWdzIjpbImIiXSwiaW5zdGFuY2VGeCI6eyJhZGRyZXNzIjoiRm9jdXNlZCJ9fV0sImN1c3RvbURhdGEiOnsiYXBw
Ijp7ImZ1bGxTY3JlZW4iOmZhbHNlLCJ3aW5kb3dCb3VuZHMiOnsiaGVpZ2h0Ijo3OTIuMCwid2lkdGgiOjE0NDAuMCwieCI6MjQwLjAsInkiOjE1Ny4wfX19fQ==
AAAAAAAA
>
FLOAT 564 105 752 674
FXID {B558CF04-95B7-E84C-BEDB-3E25771880BD}
WAK 0 0
>
>
<TRACK {915319A1-0C70-0540-96AE-8E3B158574F8}
NAME "ReaLearn A"
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 0
REC 0 5088 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {915319A1-0C70-0540-96AE-8E3B158574F8}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: Helgobox - ReaLearn & Playtime (Helgoboss)" helgobox.vst.dylib 0 "" 1751282284<5653546862726C68656C676F626F7872> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAnAgAAAQAAAAAAAAA=
eyJtYWluVW5pdCI6eyJ2ZXJzaW9uIjoiMi4xOC4yIiwiaWQiOiI2ZTBhenpubCIsIm5hbWUiOiJNYWluIiwic3RheUFjdGl2ZVdoZW5Qcm9qZWN0SW5CYWNrZ3JvdW5k
IjoiT25seUlmQmFja2dyb3VuZFByb2plY3RJc1J1bm5pbmciLCJsaXZlc09uVXBwZXJGbG9vciI6ZmFsc2UsImRlZmF1bHRHcm91cCI6e30sImRlZmF1bHRDb250cm9s
bGVyR3JvdXAiOnt9LCJ0YWdzIjpbImExIiwiZ3VpdGFyIiwicmh5dGhtIiwiZHJ1bXMiLCJwaWFubyJdLCJpbnN0YW5jZUZ4Ijp7ImFkZHJlc3MiOiJGb2N1c2VkIn19
LCJ0YWdzIjpbImEiXSwiYWRkaXRpb25hbFVuaXRzIjpbeyJ2ZXJzaW9uIjoiMi4xOC4yIiwiaWQiOiI3VmJzTHZROCIsInN0YXlBY3RpdmVXaGVuUHJvamVjdEluQmFj
a2dyb3VuZCI6Ik9ubHlJZkJhY2tncm91bmRQcm9qZWN0SXNSdW5uaW5nIiwibGl2ZXNPblVwcGVyRmxvb3IiOmZhbHNlLCJkZWZhdWx0R3JvdXAiOnt9LCJkZWZhdWx0
Q29udHJvbGxlckdyb3VwIjp7fSwidGFncyI6WyJhMiJdLCJpbnN0YW5jZUZ4Ijp7ImFkZHJlc3MiOiJGb2N1c2VkIn19XX0=
AFByb2dyYW0gMQAAAAAA
>
FLOATPOS 578 121 752 674
FXID {4D97881F-E85B-3941-94BC-828D91B9E332}
WAK 0 0
>
>
<TRACK {4DC969BF-C5DB-1142-8047-215BBF666313}
NAME "ReaLearn B"
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 0
REC 0 5088 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {4DC969BF-C5DB-1142-8047-215BBF666313}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: Helgobox - ReaLearn & Playtime (Helgoboss)" helgobox.vst.dylib 0 "" 1751282284<5653546862726C68656C676F626F7872> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAgAQAAAQAAAAAAAAA=
eyJtYWluVW5pdCI6eyJ2ZXJzaW9uIjoiMi4xOC4yIiwiaWQiOiJkZDEyZjNmIiwibmFtZSI6Ik1haW4iLCJzdGF5QWN0aXZlV2hlblByb2plY3RJbkJhY2tncm91bmQi
OiJPbmx5SWZCYWNrZ3JvdW5kUHJvamVjdElzUnVubmluZyIsImxpdmVzT25VcHBlckZsb29yIjpmYWxzZSwiZGVmYXVsdEdyb3VwIjp7fSwiZGVmYXVsdENvbnRyb2xs
ZXJHcm91cCI6e30sInRhZ3MiOlsiYjEiXSwiaW5zdGFuY2VGeCI6eyJhZGRyZXNzIjoiRm9jdXNlZCJ9fSwidGFncyI6WyJiIl0sImFkZGl0aW9uYWxVbml0cyI6W119
AFByb2dyYW0gMQAAAAAA
>
FLOATPOS 888 153 752 674
FXID {8FE1C00F-91EF-F442-8D11-BD6ED457C006}
WAK 0 0
>
>
<TRACK {2C5A1AAB-B147-0B49-AF41-CD3584C6BD00}
NAME Guitar
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 0 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 0
REC 0 0 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {2C5A1AAB-B147-0B49-AF41-CD3584C6BD00}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {94F4A76D-4F50-124D-92F8-0828710DBF12}
NAME Piano
PEAKCOL 16576
BEAT -1
AUTOMODE 0
PANLAWFLAGS 3
VOLPAN 0 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0 0
FIXEDLANES 9 0 0 0 0
SEL 0
REC 0 0 1 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {94F4A76D-4F50-124D-92F8-0828710DBF12}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
>
@@ -0,0 +1,302 @@
<REAPER_PROJECT 0.1 "6.36rc1/win64" 1632785249
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 1
ENVATTACH 1
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 0
ZOOM 100 65 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
ZXZhdxgAAA==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 0
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 -1 -1 -1 0 0 0 -1 -1 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {88EE4014-ACC3-44A7-89B3-2ED0B5A9B849}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {628A8685-CE4C-4E27-AE08-0DB621217724}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {3D0ECB8D-0433-4E07-BF8F-EA55B147BDC9}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {3D0ECB8D-0433-4E07-BF8F-EA55B147BDC9}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 537 392 1859 1606
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" realearn.dll 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAA+SQAAAEAAAAAABAA
eyJ2ZXJzaW9uIjoiMi4xMS4wLXByZS4yIiwiaWQiOiI4djBsSHI0QiIsImNvbnRyb2xEZXZpY2VJZCI6IjEwIiwiZmVlZGJhY2tEZXZpY2VJZCI6IjExIiwiZGVmYXVs
dEdyb3VwIjp7fSwiZGVmYXVsdENvbnRyb2xsZXJHcm91cCI6e30sIm1hcHBpbmdzIjpbeyJpZCI6IjUwN2Y5MDRiLTdiZGMtNDM0Ny1iNWVmLWU1ODNiOTQyOTE3YSIs
Im5hbWUiOiIxIiwic291cmNlIjp7ImNhdGVnb3J5IjoidmlydHVhbCIsImNoYW5uZWwiOjAsIm51bWJlciI6MTIsImNoYXJhY3RlciI6MywiaXNSZWdpc3RlcmVkIjpm
YWxzZSwiaXMxNEJpdCI6ZmFsc2UsIm9zY0FyZ0luZGV4IjowLCJjb250cm9sRWxlbWVudEluZGV4IjoxMn0sIm1vZGUiOnsibWF4U3RlcFNpemUiOjAuMDV9LCJ0YXJn
ZXQiOnsidHlwZSI6MCwiY29tbWFuZE5hbWUiOiI0Iiwid2l0aFRyYWNrIjp0cnVlLCJ0cmFja0dVSUQiOiI3OTdERDc5Qi01NTg5LTRGODItOEZGOC1BREI2QkJEN0I5
NEIiLCJmeEFuY2hvciI6ImlkIiwidXNlUHJvamVjdCI6dHJ1ZSwibW92ZVZpZXciOnRydWUsInNlZWtQbGF5Ijp0cnVlLCJvc2NBcmdJbmRleCI6MH19XSwiY29udHJv
bGxlck1hcHBpbmdzIjpbeyJpZCI6IjBjMDI5MzYzLTcxYzctNDExNS1iOGUwLTcyNDVhYzFiNmQ0YiIsIm5hbWUiOiJFbmNvZGVyIDEvMSIsInNvdXJjZSI6eyJjaGFu
bmVsIjowLCJudW1iZXIiOjAsImNoYXJhY3RlciI6MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5j
aG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjF9fSx7ImlkIjoiZTU1NDNhZDgtOWU4MS00YmFmLWE4MmQtMmMyODE0NDVlNzA1IiwibmFtZSI6IkJ1dHRvbiAxLzEiLCJz
b3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjowLCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZp
cnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24ifX0seyJpZCI6IjI3NTIxZWYwLTVjZjgtNDVl
OS05YzkwLTRkNDkwNmNmNjMwNCIsIm5hbWUiOiJFbmNvZGVyIDEvMiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjEsImNoYXJhY3RlciI6MywiaXMxNEJp
dCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVt
ZW50SW5kZXgiOjF9fSx7ImlkIjoiZGQxYTgxZDMtZDYwNy00MzI5LTlkOTEtYTZiODg4YjBmYWFmIiwibmFtZSI6IkJ1dHRvbiAxLzIiLCJzb3VyY2UiOnsiY2hhbm5l
bCI6MSwibnVtYmVyIjoxLCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hv
ciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoxfX0seyJpZCI6IjU0YTA2NmUy
LTQ4ZTMtNDY1My05ZmJiLWVmOTA3ZGIwOWQ4NyIsIm5hbWUiOiJFbmNvZGVyIDEvMyIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjIsImNoYXJhY3RlciI6
MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNv
bnRyb2xFbGVtZW50SW5kZXgiOjJ9fSx7ImlkIjoiYjgyZDc3NTItZDIyOS00NDhmLWJkNDItYWY2MWI0NTllNDgxIiwibmFtZSI6IkJ1dHRvbiAxLzMiLCJzb3VyY2Ui
OnsiY2hhbm5lbCI6MSwibnVtYmVyIjoyLCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwi
LCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoyfX0seyJpZCI6
ImEzYzI3YzAyLWM1MmQtNDcxYy1iNzA2LTI3YjYyZTJhNWRiZSIsIm5hbWUiOiJFbmNvZGVyIDEvNCIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjMsImNo
YXJhY3RlciI6MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZp
b3IiOjEsImNvbnRyb2xFbGVtZW50SW5kZXgiOjN9fSx7ImlkIjoiMWM4NmUxMzEtYTFiOS00ZTRjLTkxZDUtMThjYTI0MDRjYzg4IiwibmFtZSI6IkJ1dHRvbiAxLzQi
LCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjozLCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6
InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4Ijoz
fX0seyJpZCI6IjgyOGQ0NjVhLTliZDMtNDQzNi05MTM0LTQ4OGE2ZmViMWZiZiIsIm5hbWUiOiJFbmNvZGVyIDIvMSIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1i
ZXIiOjQsImNoYXJhY3RlciI6MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJz
b2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50SW5kZXgiOjR9fSx7ImlkIjoiNTBmM2Q1NmQtMGY2My00MDg2LTk1OTItYjNjZTkxM2RiMzgxIiwibmFtZSI6IkJ1
dHRvbiAyLzEiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjo0LCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJj
YXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVu
dEluZGV4Ijo0fX0seyJpZCI6IjcxOTBlMmE2LWUwN2MtNDkyMi05YmI0LWQ2ZDJiMDcyZDgwMSIsIm5hbWUiOiJFbmNvZGVyIDIvMiIsInNvdXJjZSI6eyJjaGFubmVs
IjowLCJudW1iZXIiOjUsImNoYXJhY3RlciI6MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9y
IjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50SW5kZXgiOjV9fSx7ImlkIjoiMDM5Zjc5OWItNTM3Zi00Mjc3LWFiYzEtMDNjNTA2ODI3MDgzIiwi
bmFtZSI6IkJ1dHRvbiAyLzIiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjo1LCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRh
cmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250
cm9sRWxlbWVudEluZGV4Ijo1fX0seyJpZCI6IjQ1YmJiZDVkLTM0ZjctNGFiOC1iNDk2LWVlYjljZjYwMmE3OCIsIm5hbWUiOiJFbmNvZGVyIDIvMyIsInNvdXJjZSI6
eyJjaGFubmVsIjowLCJudW1iZXIiOjYsImNoYXJhY3RlciI6MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIs
ImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50SW5kZXgiOjZ9fSx7ImlkIjoiY2Q5NzM2MDMtYzliNy00YWIwLTk4MTctMjA1NTc2
NTMxZWYxIiwibmFtZSI6IkJ1dHRvbiAyLzMiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjo2LCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9k
ZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0
b24iLCJjb250cm9sRWxlbWVudEluZGV4Ijo2fX0seyJpZCI6ImQyODQ5ZWM3LWM4OTUtNDRlZS1iZmZhLTM0ZWVmNTBmOTc3YyIsIm5hbWUiOiJFbmNvZGVyIDIvNCIs
InNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjcsImNoYXJhY3RlciI6MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5Ijoi
dmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50SW5kZXgiOjd9fSx7ImlkIjoiODAxOGMyNTktNmY3Ni00MTMzLTkw
NDctNjQxMDc4MTg5NmFkIiwibmFtZSI6IkJ1dHRvbiAyLzQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjo3LCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZh
bHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5
cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4Ijo3fX0seyJpZCI6IjI1YjgzZWMyLTU0ZGEtNGMwYS04NDE1LTg4MGEzMGVmNmExZiIsIm5hbWUiOiJFbmNv
ZGVyIDMvMSIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjgsImNoYXJhY3RlciI6MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNh
dGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50SW5kZXgiOjh9fSx7ImlkIjoiMTYwMTNjNDgtMmE0
OS00NjcyLWJmM2EtOTVlYWUwNWVmM2E3IiwibmFtZSI6IkJ1dHRvbiAzLzEiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjo4LCJjaGFyYWN0ZXIiOjEsImlz
MTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9s
RWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4Ijo4fX0seyJpZCI6IjY0MGViMmE0LTczNWQtNGQ5MS1hZTViLTYzNjcxZGZhYjVkNyIsIm5h
bWUiOiJFbmNvZGVyIDMvMiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjksImNoYXJhY3RlciI6MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFy
Z2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50SW5kZXgiOjl9fSx7ImlkIjoiMmUx
ODdhMWQtZmFkMC00N2U0LThiODktZDk2Yjk0NTAwMDMyIiwibmFtZSI6IkJ1dHRvbiAzLzIiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjo5LCJjaGFyYWN0
ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjox
LCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4Ijo5fX0seyJpZCI6ImM4NjVjNTAzLTI1ZmMtNGI4MS1iYmM4LTA3MzExMDVh
MjY1NiIsIm5hbWUiOiJFbmNvZGVyIDMvMyIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjEwLCJjaGFyYWN0ZXIiOjMsImlzMTRCaXQiOmZhbHNlfSwibW9k
ZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudEluZGV4IjoxMH19
LHsiaWQiOiJmN2E5MzA1ZC05NGFiLTRmYzktOWI2NC1hOTA5ZTU1OTM1NGIiLCJuYW1lIjoiQnV0dG9uIDMvMyIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIi
OjEwLCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29s
b0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoxMH19LHsiaWQiOiI3YTVmMTY4MC1mNWVkLTQ2M2It
OTc5ZC1iMzA5MTZlM2JiM2EiLCJuYW1lIjoiRW5jb2RlciAzLzQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoxMSwiY2hhcmFjdGVyIjozLCJpczE0Qml0
IjpmYWxzZX0sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsInNvbG9CZWhhdmlvciI6MSwiY29udHJvbEVsZW1l
bnRJbmRleCI6MTF9fSx7ImlkIjoiNmI4YWQxMzEtYmVkOS00YmE3LWE2MDQtNDM1Y2YwNDM2YzkxIiwibmFtZSI6IkJ1dHRvbiAzLzQiLCJzb3VyY2UiOnsiY2hhbm5l
bCI6MSwibnVtYmVyIjoxMSwiY2hhcmFjdGVyIjoxLCJpczE0Qml0IjpmYWxzZX0sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNo
b3IiOiJpZCIsInNvbG9CZWhhdmlvciI6MSwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6MTF9fSx7ImlkIjoiM2I1ZmMx
ZTgtNDJkYi00NTgxLTk0N2UtNWRmYTNkM2MwYmY0IiwibmFtZSI6IkVuY29kZXIgNC8xIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MTIsImNoYXJhY3Rl
ciI6MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEs
ImNvbnRyb2xFbGVtZW50SW5kZXgiOjEyfX0seyJpZCI6IjFjMDkxNTgwLTk4NmYtNDJmZS04OTQyLTc1OWQ4MWRmMThiMiIsIm5hbWUiOiJCdXR0b24gNC8xIiwic291
cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MTIsImNoYXJhY3RlciI6MSwiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5Ijoidmly
dHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOjEyfX0s
eyJpZCI6ImEzODQzNWMwLTNhYzQtNDE3NC1iMWIxLTc4MWVmZjc5ODhjNCIsIm5hbWUiOiJFbmNvZGVyIDQvMiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIi
OjEzLCJjaGFyYWN0ZXIiOjMsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29s
b0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudEluZGV4IjoxM319LHsiaWQiOiI5MTQ1YjhhNy0wMjFlLTQ2ZTktYmMyNC01ODhiNWI3MGUzY2QiLCJuYW1lIjoiQnV0
dG9uIDQvMiIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjEzLCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJj
YXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVu
dEluZGV4IjoxM319LHsiaWQiOiI5NDA2MDM4ZS0zYzQ0LTQzMmQtOGVjYy0zZjQxNTQwYWUwYzgiLCJuYW1lIjoiRW5jb2RlciA0LzMiLCJzb3VyY2UiOnsiY2hhbm5l
bCI6MCwibnVtYmVyIjoxNCwiY2hhcmFjdGVyIjozLCJpczE0Qml0IjpmYWxzZX0sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNo
b3IiOiJpZCIsInNvbG9CZWhhdmlvciI6MSwiY29udHJvbEVsZW1lbnRJbmRleCI6MTR9fSx7ImlkIjoiMjMyZDk4OWEtZTBkNy00N2Y5LTk1ODctNjY4YWMxMjU4NGEz
IiwibmFtZSI6IkJ1dHRvbiA0LzMiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjoxNCwiY2hhcmFjdGVyIjoxLCJpczE0Qml0IjpmYWxzZX0sIm1vZGUiOnt9
LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsInNvbG9CZWhhdmlvciI6MSwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwi
Y29udHJvbEVsZW1lbnRJbmRleCI6MTR9fSx7ImlkIjoiNTVhYTIzYjAtYjgyMC00ZWJlLTliMTItOWZlNDA4NDJlZjI3IiwibmFtZSI6IkVuY29kZXIgNC80Iiwic291
cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MTUsImNoYXJhY3RlciI6MywiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5Ijoidmly
dHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50SW5kZXgiOjE1fX0seyJpZCI6IjY3NzJhOWUzLTI4OGItNGY0Yi1hMGFl
LTNiY2U4MzAwOWQ0ZCIsIm5hbWUiOiJCdXR0b24gNC80Iiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MTUsImNoYXJhY3RlciI6MSwiaXMxNEJpdCI6ZmFs
c2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50VHlw
ZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOjE1fX0seyJpZCI6IjI3YmYyMTUyLWU3ZjQtNDVlNS05Yjk4LWRjYWU4OTY1YjkxZiIsIm5hbWUiOiJMZWZ0
IDEiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MywibnVtYmVyIjo4LCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29y
eSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwic29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4
IjoxNn19LHsiaWQiOiJlZTlkZjU5MC02MWNiLTQ3NDYtYTMxMy03NzM1NmU1OGIzNWUiLCJuYW1lIjoiUmlnaHQgMSIsInNvdXJjZSI6eyJjaGFubmVsIjozLCJudW1i
ZXIiOjExLCJjaGFyYWN0ZXIiOjEsImlzMTRCaXQiOmZhbHNlfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwi
c29sb0JlaGF2aW9yIjoxLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoxN319LHsiaWQiOiJhYjA1NDg4MC0xYzQzLTRm
NGEtYjQxOC1jM2VhNGQzMWI1MTAiLCJuYW1lIjoiTGVmdCAzIiwic291cmNlIjp7ImNoYW5uZWwiOjMsIm51bWJlciI6MTAsImNoYXJhY3RlciI6MSwiaXMxNEJpdCI6
ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50
VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOjE4fX0seyJpZCI6ImE1N2EyNzg3LTM5MTktNDZmYi04ZmRkLTE3ZmI4M2Y0YmFmMSIsIm5hbWUiOiJS
aWdodCAzIiwic291cmNlIjp7ImNoYW5uZWwiOjMsIm51bWJlciI6MTMsImNoYXJhY3RlciI6MSwiaXMxNEJpdCI6ZmFsc2V9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNh
dGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJzb2xvQmVoYXZpb3IiOjEsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50
SW5kZXgiOjE5fX1dLCJhY3RpdmVDb250cm9sbGVySWQiOiJtaWRpLWZpZ2h0ZXItdHdpc3RlciJ9
AAAQAAAA
>
FLOAT 1709 307 1436 1514
FXID {510CB0FB-1503-4C41-8F27-A127DC6D7581}
WAK 0 0
>
>
<TRACK {E94F806D-8E61-4EE8-B214-A2B9F01047D0}
NAME A1
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1.97167159106145 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {E94F806D-8E61-4EE8-B214-A2B9F01047D0}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {6F9AEDD0-803E-47D7-803D-77BE45B4067D}
NAME A2
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1.87754161172832 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {6F9AEDD0-803E-47D7-803D-77BE45B4067D}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {797DD79B-5589-4F82-8FF8-ADB6BBD7B94B}
NAME B1
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.03993956924993 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 1
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {797DD79B-5589-4F82-8FF8-ADB6BBD7B94B}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
>
@@ -0,0 +1,283 @@
<REAPER_PROJECT 0.1 "6.28/win64" 1623599859
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 1
ENVATTACH 1
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 0
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
ZXZhdxgAAA==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 0
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 -1 -1 -1 0 0 0 -1 -1 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {5456DA26-68E6-4474-95F1-DC7E6DEB248B}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {E617137D-F1AA-4204-89D9-3EB99E345230}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {DB4A8CA5-F9B5-47C3-AE26-559D53FAC382}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {DB4A8CA5-F9B5-47C3-AE26-559D53FAC382}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 1251 400 1859 1606
SHOW 1
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" realearn.dll 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAA1AEAAAEAAAAAABAA
eyJ2ZXJzaW9uIjoiMi4xMC4wLXByZS4zIiwiaWQiOiJsbV9Gb3czOCIsInNlbmRGZWVkYmFja09ubHlJZkFybWVkIjp0cnVlLCJkZWZhdWx0R3JvdXAiOnt9LCJkZWZh
dWx0Q29udHJvbGxlckdyb3VwIjp7fSwibWFwcGluZ3MiOlt7ImlkIjoiYmI5NTdhYmQtNzQ5OC00MWY2LWJiZDgtZGE3MmY0YjBiNzE3IiwibmFtZSI6IjEiLCJzb3Vy
Y2UiOnsidHlwZSI6MiwiY2hhbm5lbCI6MCwibnVtYmVyIjo0OCwiaXNSZWdpc3RlcmVkIjpmYWxzZSwiaXMxNEJpdCI6ZmFsc2UsIm9zY0FyZ0luZGV4IjowfSwibW9k
ZSI6eyJtYXhTdGVwU2l6ZSI6MC4wNX0sInRhcmdldCI6eyJ0eXBlIjoxNCwidHJhY2tHVUlEIjoiQTE1NTYzNkYtNEUyRi00MkM1LTk4RjgtQUJFNUFERTIxMzNBIiwi
ZnhBbmNob3IiOiJpZCIsInVzZVByb2plY3QiOnRydWUsIm1vdmVWaWV3Ijp0cnVlLCJzZWVrUGxheSI6dHJ1ZSwib3NjQXJnSW5kZXgiOjB9fV19
AAAQAAAA
>
FLOATPOS 0 0 0 0
FXID {EA1B77AB-D097-4E83-A7AB-1470AA65CB28}
WAK 0 0
>
>
<TRACK {A155636F-4E2F-42C5-98F8-ABE5ADE2133A}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 0.00000003162278 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {A155636F-4E2F-42C5-98F8-ABE5ADE2133A}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {4C1879BF-CB2F-47EC-888C-574E94EB4E8A}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {4C1879BF-CB2F-47EC-888C-574E94EB4E8A}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {30534F16-4F0B-4147-9D74-79D7A9278318}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {30534F16-4F0B-4147-9D74-79D7A9278318}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {425DE593-9606-49C4-984D-774DE40E9EFE}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {425DE593-9606-49C4-984D-774DE40E9EFE}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {4C46917D-5816-4CB1-9628-5A24C5CD2D3C}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 1
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {4C46917D-5816-4CB1-9628-5A24C5CD2D3C}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {7F5863C9-0357-44C5-BF49-8AFBDC5A442F}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {7F5863C9-0357-44C5-BF49-8AFBDC5A442F}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
>
@@ -0,0 +1,260 @@
<REAPER_PROJECT 0.1 "6.28/win64" 1621804879
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 1
ENVATTACH 1
POOLEDENVATTACH 2
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 0
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 0
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 -1 -1 -1 0 0 0 -1 -1 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {5DF21923-1396-4334-B16A-84A680334AD3}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {97CB2449-0833-46A5-9896-BBA4006795E3}
ACT 1 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {F04BCEF1-1279-4787-ABB5-6EBD3216E942}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {F04BCEF1-1279-4787-ABB5-6EBD3216E942}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 920 256 1859 1606
SHOW 1
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" ReaLearn-x64.dll 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAAwIAAAEAAAAAABAA
eyJ2ZXJzaW9uIjoiMi4xMC4wLXByZS4yIiwiaWQiOiJfRndiTGp3ZiIsInNlbmRGZWVkYmFja09ubHlJZkFybWVkIjp0cnVlLCJkZWZhdWx0R3JvdXAiOnt9LCJkZWZh
dWx0Q29udHJvbGxlckdyb3VwIjp7fSwibWFwcGluZ3MiOlt7ImlkIjoiNDI3MDUwZWEtNGQyMS00NzMxLTg4YTQtNTZkM2I2NWM0OTEyIiwibmFtZSI6IjEiLCJzb3Vy
Y2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoxNSwiY2hhcmFjdGVyIjozLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjB9
LCJtb2RlIjp7Im1pblRhcmdldFZhbHVlIjowLjMzMzMzMzMzMzMzMzMzMzMsIm1heFRhcmdldFZhbHVlIjowLjY2NjY2NjY2NjY2NjY2NjYsIm1pblN0ZXBTaXplIjot
MC4xMiwibWF4U3RlcFNpemUiOi0wLjEyfSwidGFyZ2V0Ijp7InR5cGUiOjE0LCJmeEFuY2hvciI6ImlkIiwidXNlUHJvamVjdCI6dHJ1ZSwibW92ZVZpZXciOnRydWUs
InNlZWtQbGF5Ijp0cnVlLCJvc2NBcmdJbmRleCI6MH19XX0=
AAAQAAAA
>
FLOATPOS 0 0 0 0
FXID {8047CE23-89C3-475C-BE23-736C8864DF3F}
WAK 0 0
>
>
<TRACK {50DB6998-2964-4C06-AB27-13A2D8C01B76}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {50DB6998-2964-4C06-AB27-13A2D8C01B76}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {8E860D70-88B0-466E-9059-6480956DDA04}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {8E860D70-88B0-466E-9059-6480956DDA04}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {F1B3DD99-D715-4FD8-9C41-E03F83390925}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {F1B3DD99-D715-4FD8-9C41-E03F83390925}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {EBC67A11-7415-419F-BA06-ED024264B31A}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {EBC67A11-7415-419F-BA06-ED024264B31A}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<TRACK {5E5373FC-C7A6-47B6-8EEC-6B0316F18D8C}
NAME ""
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
FREEMODE 0
SEL 0
REC 0 0 0 0 0 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {5E5373FC-C7A6-47B6-8EEC-6B0316F18D8C}
PERF 0
MIDIOUT -1
MAINSEND 1 0
>
<EXTENSIONS
>
>
@@ -0,0 +1,380 @@
<REAPER_PROJECT 0.1 "6.56+dev0425/macOS-arm64" 1655747592
<NOTES 0 2
>
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 129
ENVATTACH 3
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 8
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
ZXZhdxgAAA==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 1
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
ZXZhdxgAAA==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.506024 0.5 0 -1 0 0 0 0 -1 -1 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_PANMODE 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {404EF9FF-A53F-3849-A42A-BBC88F3A6E5A}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {CE017E21-34CB-C840-9C97-52DEF1073C2D}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {66CD7EF1-D599-5640-92A6-E42A17C0D6AE}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 1
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 127 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {66CD7EF1-D599-5640-92A6-E42A17C0D6AE}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 156 63 991 703
SHOW 0
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" realearn.vst.dylib 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAABcRgAAAQAAAAAAEAA=
eyJ2ZXJzaW9uIjoiMi4xMy4wLXByZS44IiwiaWQiOiJSeERyZHhpWCIsImNvbnRyb2xEZXZpY2VJZCI6IjQiLCJmZWVkYmFja0RldmljZUlkIjoiNCIsImRlZmF1bHRH
cm91cCI6e30sImRlZmF1bHRDb250cm9sbGVyR3JvdXAiOnt9LCJjb250cm9sbGVyTWFwcGluZ3MiOlt7ImlkIjoiYmFuay1sZWZ0Iiwic291cmNlIjp7ImNoYW5uZWwi
OjMsIm51bWJlciI6OCwiY2hhcmFjdGVyIjoxfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVs
ZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImJhbmstbGVmdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxl
ZCI6ZmFsc2V9LHsiaWQiOiJjdXJzb3ItbGVmdCIsInNvdXJjZSI6eyJjaGFubmVsIjozLCJudW1iZXIiOjksImNoYXJhY3RlciI6MX0sIm1vZGUiOnt9LCJ0YXJnZXQi
OnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjdXJz
b3ItbGVmdCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9LCJmZWVkYmFja0lzRW5hYmxlZCI6ZmFsc2V9LHsiaWQiOiJjaC1sZWZ0Iiwic291cmNlIjp7ImNoYW5uZWwi
OjMsIm51bWJlciI6MTAsImNoYXJhY3RlciI6MX0sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xF
bGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjaC1sZWZ0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVk
IjpmYWxzZX0seyJpZCI6ImJhbmstcmlnaHQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MywibnVtYmVyIjoxMSwiY2hhcmFjdGVyIjoxfSwibW9kZSI6e30sInRhcmdldCI6
eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImJhbmst
cmlnaHQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJc0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY3Vyc29yLXJpZ2h0Iiwic291cmNlIjp7ImNoYW5u
ZWwiOjMsIm51bWJlciI6MTIsImNoYXJhY3RlciI6MX0sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRy
b2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjdXJzb3ItcmlnaHQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfSwiZmVlZGJhY2tJ
c0VuYWJsZWQiOmZhbHNlfSx7ImlkIjoiY2gtcmlnaHQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MywibnVtYmVyIjoxMywiY2hhcmFjdGVyIjoxfSwibW9kZSI6e30sInRh
cmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6
ImNoLXJpZ2h0IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX0sImZlZWRiYWNrSXNFbmFibGVkIjpmYWxzZX0seyJpZCI6ImNvbDEvcm93MS9wYWQiLCJzb3VyY2UiOnsi
Y2hhbm5lbCI6MSwibnVtYmVyIjowLCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwi
dmFsdWUiOnsic3RvcHBlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2NCwicGF1c2VkIjoxLCJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9yZWNvcmRf
c3RvcCI6NjQsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0YXJ0Ijo2NCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJlbXB0eSI6MCwicmVjb3JkaW5nIjo4Nn19
fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudElu
ZGV4IjoiY29sMS9yb3cxL3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMS9yb3cxL2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVt
YmVyIjowLCJjaGFyYWN0ZXIiOjN9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudElu
ZGV4IjoiY29sMS9yb3cxL2tub2IiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDEvcm93Mi9wYWQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVt
YmVyIjo0LCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwidmFsdWUiOnsicmVjb3Jk
aW5nIjo4NiwiZW1wdHkiOjAsInBhdXNlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3Rv
cCI6NjQsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0YXJ0Ijo2NCwic3RvcHBlZCI6MX19fSwidGFyZ2V0Ijp7ImNh
dGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMS9yb3cy
L3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMS9yb3cyL2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjo0LCJjaGFyYWN0
ZXIiOjN9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMS9yb3cy
L2tub2IiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDEvcm93My9wYWQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjo4LCJjaGFyYWN0
ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwidmFsdWUiOnsic2NoZWR1bGVkX2Zvcl9yZWNvcmRf
c3RhcnQiOjY0LCJlbXB0eSI6MCwicmVjb3JkaW5nIjo4Niwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJw
YXVzZWQiOjEsInBsYXlpbmciOjQzLCJzdG9wcGVkIjoxLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NH19fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVh
bCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMS9yb3czL3BhZCIsInBvbGxGb3JG
ZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMS9yb3czL2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjo4LCJjaGFyYWN0ZXIiOjN9LCJtb2RlIjp7
fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMS9yb3czL2tub2IiLCJwb2xsRm9y
RmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDEvcm93NC9wYWQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjoxMiwiY2hhcmFjdGVyIjoxfSwibW9kZSI6
eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0LCJwYXVz
ZWQiOjEsImVtcHR5IjowLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJyZWNvcmRp
bmciOjg2LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInN0b3BwZWQiOjF9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6
ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDEvcm93NC9wYWQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNl
fX0seyJpZCI6ImNvbDEvcm93NC9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MTIsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsi
Y2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wxL3JvdzQva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFs
c2V9fSx7ImlkIjoiY29sMi9yb3cxL3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjEsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1
ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwiZW1w
dHkiOjAsInN0b3BwZWQiOjEsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQsInBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInBh
dXNlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xF
bGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzEvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wy
L3JvdzEva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjEsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0
dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzEva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29s
Mi9yb3cyL3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjUsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQi
OiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJw
bGF5aW5nIjo0MywicmVjb3JkaW5nIjo4Niwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJwYXVzZWQiOjEs
ImVtcHR5IjowLCJzdG9wcGVkIjoxfX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1
dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzIvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wyL3JvdzIva25vYiIsInNv
dXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjUsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3Ii
OiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wyL3JvdzIva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMi9yb3czL3BhZCIsInNv
dXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjksImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlz
Y3JldGUiLCJ2YWx1ZSI6eyJzdG9wcGVkIjoxLCJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsImVtcHR5IjowLCJzY2hlZHVsZWRf
Zm9yX3JlY29yZF9zdG9wIjo2NCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJwbGF5aW5nIjo0MywicGF1c2VkIjoxLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3Rh
cnQiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xF
bGVtZW50SW5kZXgiOiJjb2wyL3JvdzMvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wyL3JvdzMva25vYiIsInNvdXJjZSI6eyJjaGFubmVs
IjowLCJudW1iZXIiOjksImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xF
bGVtZW50SW5kZXgiOiJjb2wyL3JvdzMva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMi9yb3c0L3BhZCIsInNvdXJjZSI6eyJjaGFubmVs
IjoxLCJudW1iZXIiOjEzLCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwidmFsdWUi
OnsicGxheWluZyI6NDMsImVtcHR5IjowLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQsInJlY29yZGlu
ZyI6ODYsInBhdXNlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJzdG9wcGVkIjoxLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NH19fSwidGFy
Z2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4Ijoi
Y29sMi9yb3c0L3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sMi9yb3c0L2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjox
MywiY2hhcmFjdGVyIjozfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6
ImNvbDIvcm93NC9rbm9iIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wzL3JvdzEvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6
MiwiY2hhcmFjdGVyIjoxfSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InNjaGVkdWxlZF9m
b3JfcGxheV9zdGFydCI6NjQsImVtcHR5IjowLCJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdG9wIjo2NCwicGxheWluZyI6NDMsInN0b3BwZWQi
OjEsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0YXJ0Ijo2NCwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3AiOjY0LCJwYXVzZWQiOjF9fX0sInRhcmdldCI6eyJjYXRlZ29y
eSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93MS9wYWQi
LCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDMvcm93MS9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MiwiY2hhcmFjdGVyIjoz
fSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93MS9rbm9i
IiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2wzL3JvdzIvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6NiwiY2hhcmFjdGVyIjox
fSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFibGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7InNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0YXJ0
Ijo2NCwic3RvcHBlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2NCwicGxheWluZyI6NDMsImVtcHR5IjowLCJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRf
Zm9yX3BsYXlfc3RvcCI6NjQsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0LCJwYXVzZWQiOjF9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJm
eEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93Mi9wYWQiLCJwb2xsRm9yRmVlZGJh
Y2siOmZhbHNlfX0seyJpZCI6ImNvbDMvcm93Mi9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6NiwiY2hhcmFjdGVyIjozfSwibW9kZSI6e30sInRh
cmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93Mi9rbm9iIiwicG9sbEZvckZlZWRi
YWNrIjpmYWxzZX19LHsiaWQiOiJjb2wzL3JvdzMvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MTAsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVl
ZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJzdG9wcGVkIjoxLCJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9w
bGF5X3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsImVtcHR5IjowLCJyZWNvcmRpbmciOjg2LCJwYXVzZWQiOjEsInNjaGVkdWxlZF9mb3Jf
cmVjb3JkX3N0b3AiOjY0LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIs
ImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wzL3JvdzMvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsi
aWQiOiJjb2wzL3JvdzMva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjEwLCJjaGFyYWN0ZXIiOjN9LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVn
b3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sMy9yb3czL2tub2IiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0s
eyJpZCI6ImNvbDMvcm93NC9wYWQiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MSwibnVtYmVyIjoxNCwiY2hhcmFjdGVyIjoxfSwibW9kZSI6eyJmZWVkYmFja1ZhbHVlVGFi
bGUiOnsia2luZCI6IkZyb21UZXh0VG9EaXNjcmV0ZSIsInZhbHVlIjp7ImVtcHR5IjowLCJyZWNvcmRpbmciOjg2LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RvcCI6NjQs
InBhdXNlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0YXJ0Ijo2NCwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RhcnQiOjY0LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9z
dG9wIjo2NCwic3RvcHBlZCI6MSwicGxheWluZyI6NDN9fX0sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1l
bnRUeXBlIjoiYnV0dG9uIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNvbDMvcm93NC9wYWQiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX0seyJpZCI6ImNvbDMvcm93
NC9rbm9iIiwic291cmNlIjp7ImNoYW5uZWwiOjAsIm51bWJlciI6MTQsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFs
IiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2wzL3JvdzQva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sNC9y
b3cxL3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjMsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJG
cm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJlbXB0eSI6MCwic3RvcHBlZCI6MSwicGxheWluZyI6NDMsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0LCJz
Y2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQsInBhdXNlZCI6MSwic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3Ai
OjY0LCJyZWNvcmRpbmciOjg2fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRv
biIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2w0L3JvdzEvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0L3JvdzEva25vYiIsInNvdXJj
ZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjMsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJp
ZCIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2w0L3JvdzEva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sNC9yb3cyL3BhZCIsInNvdXJj
ZSI6eyJjaGFubmVsIjoxLCJudW1iZXIiOjcsImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3Jl
dGUiLCJ2YWx1ZSI6eyJzdG9wcGVkIjoxLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInBhdXNlZCI6
MSwicmVjb3JkaW5nIjo4Niwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsImVtcHR5IjowLCJwbGF5aW5nIjo0Mywic2NoZWR1bGVkX2Zvcl9wbGF5X3N0b3Ai
OjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVt
ZW50SW5kZXgiOiJjb2w0L3JvdzIvcGFkIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0L3JvdzIva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjow
LCJudW1iZXIiOjcsImNoYXJhY3RlciI6M30sIm1vZGUiOnt9LCJ0YXJnZXQiOnsiY2F0ZWdvcnkiOiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVt
ZW50SW5kZXgiOiJjb2w0L3JvdzIva25vYiIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sNC9yb3czL3BhZCIsInNvdXJjZSI6eyJjaGFubmVsIjox
LCJudW1iZXIiOjExLCJjaGFyYWN0ZXIiOjF9LCJtb2RlIjp7ImZlZWRiYWNrVmFsdWVUYWJsZSI6eyJraW5kIjoiRnJvbVRleHRUb0Rpc2NyZXRlIiwidmFsdWUiOnsi
cmVjb3JkaW5nIjo4Niwic2NoZWR1bGVkX2Zvcl9yZWNvcmRfc3RvcCI6NjQsInBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RhcnQiOjY0LCJzY2hlZHVs
ZWRfZm9yX3BsYXlfc3RvcCI6NjQsInBhdXNlZCI6MSwiZW1wdHkiOjAsInN0b3BwZWQiOjEsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0YXJ0Ijo2NH19fSwidGFyZ2V0
Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudFR5cGUiOiJidXR0b24iLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29s
NC9yb3czL3BhZCIsInBvbGxGb3JGZWVkYmFjayI6ZmFsc2V9fSx7ImlkIjoiY29sNC9yb3czL2tub2IiLCJzb3VyY2UiOnsiY2hhbm5lbCI6MCwibnVtYmVyIjoxMSwi
Y2hhcmFjdGVyIjozfSwibW9kZSI6e30sInRhcmdldCI6eyJjYXRlZ29yeSI6InZpcnR1YWwiLCJmeEFuY2hvciI6ImlkIiwiY29udHJvbEVsZW1lbnRJbmRleCI6ImNv
bDQvcm93My9rbm9iIiwicG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0L3JvdzQvcGFkIiwic291cmNlIjp7ImNoYW5uZWwiOjEsIm51bWJlciI6MTUs
ImNoYXJhY3RlciI6MX0sIm1vZGUiOnsiZmVlZGJhY2tWYWx1ZVRhYmxlIjp7ImtpbmQiOiJGcm9tVGV4dFRvRGlzY3JldGUiLCJ2YWx1ZSI6eyJyZWNvcmRpbmciOjg2
LCJzY2hlZHVsZWRfZm9yX3BsYXlfc3RvcCI6NjQsInN0b3BwZWQiOjEsInBsYXlpbmciOjQzLCJzY2hlZHVsZWRfZm9yX3JlY29yZF9zdGFydCI6NjQsInBhdXNlZCI6
MSwiZW1wdHkiOjAsInNjaGVkdWxlZF9mb3JfcGxheV9zdGFydCI6NjQsInNjaGVkdWxlZF9mb3JfcmVjb3JkX3N0b3AiOjY0fX19LCJ0YXJnZXQiOnsiY2F0ZWdvcnki
OiJ2aXJ0dWFsIiwiZnhBbmNob3IiOiJpZCIsImNvbnRyb2xFbGVtZW50VHlwZSI6ImJ1dHRvbiIsImNvbnRyb2xFbGVtZW50SW5kZXgiOiJjb2w0L3JvdzQvcGFkIiwi
cG9sbEZvckZlZWRiYWNrIjpmYWxzZX19LHsiaWQiOiJjb2w0L3JvdzQva25vYiIsInNvdXJjZSI6eyJjaGFubmVsIjowLCJudW1iZXIiOjE1LCJjaGFyYWN0ZXIiOjN9
LCJtb2RlIjp7fSwidGFyZ2V0Ijp7ImNhdGVnb3J5IjoidmlydHVhbCIsImZ4QW5jaG9yIjoiaWQiLCJjb250cm9sRWxlbWVudEluZGV4IjoiY29sNC9yb3c0L2tub2Ii
LCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlfX1dLCJjb250cm9sbGVyQ3VzdG9tRGF0YSI6eyJjb21wYW5pb24iOnsiY29udHJvbHMiOlt7ImhlaWdodCI6NTAsImlkIjoi
Y29sNC9yb3cxL2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7
ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDQvcm93MS9rbm9iIiwiY29sNC9yb3cxL3Bh
ZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6NDAwLCJ5IjowfSx7ImhlaWdodCI6NTAsImlkIjoiY29sMS9yb3cyL2tub2IiLCJsYWJlbE9uZSI6eyJh
bmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIs
InNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDEvcm93Mi9rbm9iIiwiY29sMS9yb3cyL3BhZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1
MCwieCI6MTAwLCJ5IjoxMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2w0L3JvdzIva25vYiIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9w
Iiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVyIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFw
cGluZ3MiOlsiY29sNC9yb3cyL2tub2IiLCJjb2w0L3JvdzIvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgiOjUwLCJ4Ijo0MDAsInkiOjEwMH0seyJoZWlnaHQi
OjUwLCJpZCI6ImNvbDEvcm93MS9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJs
YWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2wxL3JvdzEva25vYiIsImNv
bDEvcm93MS9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjEwMCwieSI6MH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDMvcm93MS9rbm9iIiwibGFi
ZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24i
OiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2wzL3JvdzEva25vYiIsImNvbDMvcm93MS9wYWQiXSwic2hhcGUiOiJjaXJjbGUi
LCJ3aWR0aCI6NTAsIngiOjMwMCwieSI6MH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDIvcm93MS9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoi
YWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRy
dWV9LCJtYXBwaW5ncyI6WyJjb2wyL3JvdzEva25vYiIsImNvbDIvcm93MS9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjIwMCwieSI6MH0seyJo
ZWlnaHQiOjUwLCJpZCI6ImNvbDIvcm93Mi9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRy
dWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2wyL3JvdzIva25v
YiIsImNvbDIvcm93Mi9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjIwMCwieSI6MTAwfSx7ImhlaWdodCI6NTAsImlkIjoiY29sMy9yb3cyL2tu
b2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJw
b3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDMvcm93Mi9rbm9iIiwiY29sMy9yb3cyL3BhZCJdLCJzaGFwZSI6
ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6MzAwLCJ5IjoxMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2wyL3JvdzMva25vYiIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJw
b3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVyIiwic2l6ZUNvbnN0
cmFpbmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY29sMi9yb3czL2tub2IiLCJjb2wyL3JvdzMvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgiOjUwLCJ4IjoyMDAs
InkiOjIwMH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDMvcm93My9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29u
c3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJj
b2wzL3JvdzMva25vYiIsImNvbDMvcm93My9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjMwMCwieSI6MjAwfSx7ImhlaWdodCI6NTAsImlkIjoi
Y29sNC9yb3c0L2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7
ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDQvcm93NC9rbm9iIiwiY29sNC9yb3c0L3Bh
ZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6NDAwLCJ5IjozMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2wxL3JvdzQva25vYiIsImxhYmVsT25lIjp7
ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiY2VudGVy
Iiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY29sMS9yb3c0L2tub2IiLCJjb2wxL3JvdzQvcGFkIl0sInNoYXBlIjoiY2lyY2xlIiwid2lkdGgi
OjUwLCJ4IjoxMDAsInkiOjMwMH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDIvcm93NC9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVU
b3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJt
YXBwaW5ncyI6WyJjb2wyL3JvdzQva25vYiIsImNvbDIvcm93NC9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjIwMCwieSI6MzAwfSx7ImhlaWdo
dCI6NTAsImlkIjoiY29sMy9yb3c0L2tub2IiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0s
ImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImNlbnRlciIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImNvbDMvcm93NC9rbm9iIiwi
Y29sMy9yb3c0L3BhZCJdLCJzaGFwZSI6ImNpcmNsZSIsIndpZHRoIjo1MCwieCI6MzAwLCJ5IjozMDB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjb2wxL3JvdzMva25vYiIs
ImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0
aW9uIjoiY2VudGVyIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY29sMS9yb3czL2tub2IiLCJjb2wxL3JvdzMvcGFkIl0sInNoYXBlIjoiY2ly
Y2xlIiwid2lkdGgiOjUwLCJ4IjoxMDAsInkiOjIwMH0seyJoZWlnaHQiOjUwLCJpZCI6ImNvbDQvcm93My9rbm9iIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0
aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJjZW50ZXIiLCJzaXplQ29uc3RyYWlu
ZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJjb2w0L3JvdzMva25vYiIsImNvbDQvcm93My9wYWQiXSwic2hhcGUiOiJjaXJjbGUiLCJ3aWR0aCI6NTAsIngiOjQwMCwieSI6
MjAwfSx7ImhlaWdodCI6NTAsImlkIjoiYmFuay1yaWdodCIsImxhYmVsT25lIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImFib3ZlVG9wIiwic2l6ZUNvbnN0cmFpbmVk
Ijp0cnVlfSwibGFiZWxUd28iOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYmVsb3dCb3R0b20iLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJtYXBwaW5ncyI6WyJiYW5r
LXJpZ2h0Il0sInNoYXBlIjoicmVjdGFuZ2xlIiwid2lkdGgiOjUwLCJ4Ijo1MDAsInkiOjUwfSx7ImhlaWdodCI6NTAsImlkIjoiYmFuay1sZWZ0IiwibGFiZWxPbmUi
OnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJiZWxv
d0JvdHRvbSIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImJhbmstbGVmdCJdLCJzaGFwZSI6InJlY3RhbmdsZSIsIndpZHRoIjo1MCwieCI6MCwi
eSI6NTB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJhNzhiMjc3ZS1jZmJmLTRiMmItOWNjNi0xYTU1MGFlYjg3ZmQiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24i
OiJhYm92ZVRvcCIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImJlbG93Qm90dG9tIiwic2l6ZUNvbnN0cmFp
bmVkIjp0cnVlfSwibWFwcGluZ3MiOlsiY2gtbGVmdCJdLCJzaGFwZSI6InJlY3RhbmdsZSIsIndpZHRoIjo1MCwieCI6MCwieSI6MjUwfSx7ImhlaWdodCI6NTAsImlk
IjoiZTMxMmQyYTItZWNmMS00MTg5LTk1YWYtNDE3NGM0M2E3NTBjIiwibGFiZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3Ry
YWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJiZWxvd0JvdHRvbSIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpb
ImNoLXJpZ2h0Il0sInNoYXBlIjoicmVjdGFuZ2xlIiwid2lkdGgiOjUwLCJ4Ijo1MDAsInkiOjI1MH0seyJoZWlnaHQiOjUwLCJpZCI6ImN1cnNvci1sZWZ0IiwibGFi
ZWxPbmUiOnsiYW5nbGUiOjAsInBvc2l0aW9uIjoiYWJvdmVUb3AiLCJzaXplQ29uc3RyYWluZWQiOnRydWV9LCJsYWJlbFR3byI6eyJhbmdsZSI6MCwicG9zaXRpb24i
OiJiZWxvd0JvdHRvbSIsInNpemVDb25zdHJhaW5lZCI6dHJ1ZX0sIm1hcHBpbmdzIjpbImN1cnNvci1sZWZ0Il0sInNoYXBlIjoicmVjdGFuZ2xlIiwid2lkdGgiOjUw
LCJ4IjowLCJ5IjoxNTB9LHsiaGVpZ2h0Ijo1MCwiaWQiOiJjdXJzb3ItcmlnaHQiLCJsYWJlbE9uZSI6eyJhbmdsZSI6MCwicG9zaXRpb24iOiJhYm92ZVRvcCIsInNp
emVDb25zdHJhaW5lZCI6dHJ1ZX0sImxhYmVsVHdvIjp7ImFuZ2xlIjowLCJwb3NpdGlvbiI6ImJlbG93Qm90dG9tIiwic2l6ZUNvbnN0cmFpbmVkIjp0cnVlfSwibWFw
cGluZ3MiOlsiY3Vyc29yLXJpZ2h0Il0sInNoYXBlIjoicmVjdGFuZ2xlIiwid2lkdGgiOjUwLCJ4Ijo1MDAsInkiOjE1MH1dLCJncmlkRGl2aXNpb25Db3VudCI6Miwi
Z3JpZFNpemUiOjUwfX0sIm1haW5QcmVzZXRBdXRvTG9hZE1vZGUiOiJmb2N1c2VkLWZ4IiwiaW5zdGFuY2VQcmVzZXRMaW5rQ29uZmlnIjp7ImxpbmtzIjpbeyJmeCI6
eyJuYW1lIjoiVlNUaTogUmVhU3ludGggKENvY2tvcykifSwicHJlc2V0SWQiOiJyZWFzeW50aCJ9XX19
AFByb2dyYW0gMQAQAAAA
>
PRESETNAME "Program 1"
FLOAT 524 123 752 675
FXID {AF3F9A1B-1535-6C4E-AFF7-A87A333F2EF2}
WAK 0 0
>
>
<TRACK {5FF7F1BC-73CF-AE41-8DC6-FFED6C46AD34}
NAME ReaSynth
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 0
REC 1 5088 1 0 0 0 0
VU 2
TRACKHEIGHT 130 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {5FF7F1BC-73CF-AE41-8DC6-FFED6C46AD34}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 380 267 611 497
SHOW 0
LASTSEL 2
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaSynth (Cockos)" reasynth.vst.dylib 0 "" 1919251321<5653547265737972656173796E746800> ""
eXNlcu9e7f4AAAAAAgAAAAEAAAAAAAAAAgAAAAAAAABEAAAAAAAAAAAAEAA=
776t3g3wrd6Y9dw+w2qkPawcWj5Ei2w+3SSGPur5dD/s+eM9pptEPgaBFT/3dKo/SOH6PnNoET8AAAAAIzq+PAAAAAA=
AAAQAAAA
>
FLOATPOS 176 204 372 469
FXID {314C4C58-4C0E-D442-9B7F-4D4351001B02}
WAK 0 0
BYPASS 0 0 0
<VST "VST: ReaDelay (Cockos)" readelay.vst.dylib 0 "" 1919247468<5653547265646C72656164656C617900> ""
bGRlcu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAATAAAAAEAAAAAABAA
AAAAAAAAAAABAAAALAAAAAIAAAAAAAAAAACAPwAAgD8AAAAAAACAPwAAAAAAAIA8nNEHMwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAPw==
AAAQAAAA
>
FLOATPOS 822 28 574 394
FXID {30D2E5F4-E52D-B24F-AA62-6851192D0F3F}
WAK 0 0
BYPASS 0 0 0
<VST "VSTi: ReaSynth (Cockos)" reasynth.vst.dylib 0 "" 1919251321<5653547265737972656173796E746800> ""
eXNlcu9e7f4AAAAAAgAAAAEAAAAAAAAAAgAAAAAAAABEAAAAAAAAAAAAEAA=
776t3g3wrd4AAAAAT8k/P6wcWj5Ei2w+3SSGPgAAAAAAAAAApptEPgaBFT/3dKo/SOH6PgAAAAAAAAAAIzq+PAAAAAA=
AAAQAAAA
>
FLOATPOS 680 293 372 469
FXID {EF642121-0072-8441-B8B5-F4489EF419AE}
WAK 0 0
>
>
<EXTENSIONS
>
>
@@ -0,0 +1,138 @@
<REAPER_PROJECT 0.1 "6.52+dev0323/win64" 1649169809
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 1
ENVATTACH 1
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3
CURSOR 3.5
ZOOM 100 0 0
VZOOMEX 6 0
USE_REC_CFG 0
RECMODE 1
SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
LOOP 0
LOOPGRAN 0 4
RECORD_PATH "" ""
<RECORD_CFG
ZXZhdxgAAA==
>
<APPLYFX_CFG
>
RENDER_FILE ""
RENDER_PATTERN ""
RENDER_FMT 0 2 0
RENDER_1X 0
RENDER_RANGE 1 0 0 18 1000
RENDER_RESAMPLE 3 0 1
RENDER_ADDTOPROJ 0
RENDER_STEMS 0
RENDER_DITHER 0
TIMELOCKMODE 1
TEMPOENVLOCKMODE 1
ITEMMIX 0
DEFPITCHMODE 589824 0
TAKELANE 1
SAMPLERATE 44100 0 0
<RENDER_CFG
ZXZhdxgAAA==
>
LOCK 1
<METRONOME 6 2
VOL 0.25 0.125
FREQ 800 1600 1
BEATLEN 4
SAMPLES "" ""
PATTERN 2863311530 2863311529
MULT 1
>
GLOBAL_AUTO -1
TEMPO 120 4 4
PLAYRATE 1 0 0.25 4
SELECTION 0 0
SELECTION2 0 0
MASTERAUTOMODE 0
MASTERTRACKHEIGHT 0 0
MASTERPEAKCOL 16576
MASTERMUTESOLO 0
MASTERTRACKVIEW 0 0.6667 0.5 0.5 -1 -1 -1 0 0 0 -1 -1 0
MASTERHWOUT 0 0 1 0 0 0 0 -1
MASTER_NCH 2 2
MASTER_VOLUME 1 0 -1 -1 1
MASTER_PANMODE 3
MASTER_FX 1
MASTER_SEL 0
<MASTERPLAYSPEEDENV
EGUID {D3D8FBB3-676B-4F4F-8772-E12E222056A0}
ACT 0 -1
VIS 0 1 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 0 -1 -1
>
<TEMPOENVEX
EGUID {9AE3061D-FD29-44F7-9A52-82E3842B4B60}
ACT 0 -1
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
>
<PROJBAY
>
<TRACK {330A04DA-E13C-409F-9479-A241CA0DC9FD}
NAME ReaLearn
PEAKCOL 16576
BEAT -1
AUTOMODE 0
VOLPAN 1 0 -1 -1 1
MUTESOLO 0 0 0
IPHASE 0
PLAYOFFS 0 1
ISBUS 0 0
BUSCOMP 0 0 0 0 0
SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1
SEL 1
REC 1 5088 0 0 1 0 0
VU 2
TRACKHEIGHT 0 0 0 0 0 0
INQ 0 0 0 0.5 100 0 0 100
NCHAN 2
FX 1
TRACKID {330A04DA-E13C-409F-9479-A241CA0DC9FD}
PERF 0
MIDIOUT -1
MAINSEND 1 0
<FXCHAIN
WNDRECT 1545 408 1859 1606
SHOW 1
LASTSEL 0
DOCKED 0
BYPASS 0 0 0
<VST "VSTi: ReaLearn (Helgoboss)" realearn.dll 0 "" 1751282284<5653546862726C7265616C6561726E00> ""
bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAACyAQAAAQAAAAAAEAA=
eyJ2ZXJzaW9uIjoiMi4xMy4wLXByZS4yIiwiaWQiOiJQQUYyU01IZCIsImNvbnRyb2xEZXZpY2VJZCI6IjIiLCJkZWZhdWx0R3JvdXAiOnt9LCJkZWZhdWx0Q29udHJv
bGxlckdyb3VwIjp7fSwibWFwcGluZ3MiOlt7ImlkIjoibHREYjFaQl9Wbk9ZMURfZUxsNm9TIiwibmFtZSI6IjEiLCJzb3VyY2UiOnsidHlwZSI6MSwiY2hhbm5lbCI6
MCwibnVtYmVyIjoyNCwia2V5c3Ryb2tlIjpudWxsfSwibW9kZSI6eyJtYXhTdGVwU2l6ZSI6MC4wNSwiZmVlZGJhY2tDb2xvciI6bnVsbH0sInRhcmdldCI6eyJ0eXBl
Ijo0OSwiZnhBbmNob3IiOiJpZCIsInRyYWNrTW9uaXRvcmluZ01vZGUiOiJUYXBlU3R5bGUiLCJwb2xsRm9yRmVlZGJhY2siOmZhbHNlLCJjbGlwU2xvdCI6eyJhZGRy
ZXNzIjoiQnlJbmRleCIsImNvbHVtbl9pbmRleCI6MCwicm93X2luZGV4IjowfX19XX0=
AFByb2dyYW0gMQAQAAAA
>
PRESETNAME "Program 1"
FLOATPOS 0 0 0 0
FXID {9E989A0D-4335-4E75-A66A-7D833EFCEA22}
WAK 0 0
>
>
<EXTENSIONS
>
>

Some files were not shown because too many files have changed in this diff Show More