外观
食物与腐败
稳定食物来源由狩猎、烹饪与库存轮换共同组成。只解决眼前饥饿、不管理腐败,会让据点不断回到缺粮状态。种植与耕作部分见农业机制。
数据统一
本节提到的饱食度、营养值、进食疲劳为0~1之间的浮点数,为了玩家方便理解,在此处会转换为0~10格饱食度。0格表示饱食度条为空,10格表示饱食度条已满,为了表述方便,我们将”一饥饿条”表示“10格饱食度”。下文提到的饱食度和饥饿值是相同的概念。疾病、生病和呕吐是相同的概念。
食物系统
食物类型
游戏中有以下几种食物类型:肉类、鱼类、水果、草类、面包、其他(无类型)。
进食机制
进食逻辑在进食方法中,流程如下:
- 饱食度检查:饱食度已满时不能进食
- 疾病状态检查:如果玩家已生病,不能吃任何有疾病概率的食物和引起疾病的食物。
- 营养值应用:营养值是食物能提供的饱食度,如果生病,营养值会降低25%。
- 同食物疲劳累积:每种食物有独立的疲劳计数器,每次进食累加其营养值(低于 5 时累加 5)。
- 疾病概率判定:根据食物的疾病概率随机判定决定是否引发疾病;某种食物疲劳超过 35 时强制引发疾病
饱食度与同食物疲劳的区别
关键区分:游戏画面上的饱食度条和"吃腻了"机制用的进食疲劳是两个完全不同的数据,不要混淆。
游戏中有两套独立的数据:
| 数据 | 范围 | 画面表现 | 说明 |
|---|---|---|---|
| 饱食度 | 0~10 格 | 画面上 10 格饥饿条 | 吃任何食物都会增加,随时间持续下降 |
| 同食物疲劳值 | ≥ 0 | 无直接显示,但超过阈值时弹提示 | 每种食物各自独立累积,仅随时间缓慢衰减 |
- 饱食度是玩家熟悉的 10 格饥饿条。吃一个面包就涨半条饥饿条(5 格),吃饱了(10 格)就不能再吃。
- 饱食度溢出会被丢弃:饱食度上限被锁死在 10 格。9 格时吃一个面包(5 格),饱食度不会变成 14 格,而是直接满到 10 格——溢出的 4 格被丢弃,不会转化为任何额外效果。
- 进食疲劳是一个隐藏计数器,每种食物各自独立。每次吃同一种食物,该食物的疲劳值就增加 5(营养值不足 5 时按 5 算)。当疲劳值超过以下阈值时触发对应效果:
| 疲劳值阈值 | 触发效果 | 说明 |
|---|---|---|
| > 20 | 提示"开始吃腻了" | 屏幕显示小字提示 |
| > 25 | 提示"吃腻了" | 更明显的提示 |
| > 35 | 强制生病 | 无论食物本身疾病概率多低,都会引发疾病 |
关键:疲劳值与饱食度溢出无关。每次吃同一种食物,疲劳值固定增加 5,不管你当时饱食度是 1 格还是 9 格。9 格时吃面包,疲劳值只增加 5(和空腹时吃一样),溢出的 4 格饱食度不会变成额外的疲劳值。强制生病的条件是连续吃同一种食物累计到 35,不是单次溢出。
举例:面包营养值 0.5(5 格),连续吃 5 个面包 → 疲劳值 = 5 × 5 = 25,触发"吃腻了"提示;吃第 7 个 → 7 × 5 = 35,强制生病。熟肉营养值 0.8(8 格),吃 4 个 → 4 × 0.8 = 3.2,已经"吃腻了";吃第 5 个 → 5 × 0.8 = 4.0,强制生病。生鱼肉营养值仅 0.25(2.5 格),但每次仍按 5 累积,吃 7 个也会强制生病。
疲劳值衰减:进食疲劳会随时间缓慢衰减,每游戏天衰减 5。也就是说,如果停止吃某种食物约 5 个游戏天(约 100 现实分钟),进食疲劳就能从 25 降到 0;从 35 降到 0 需要约 7 个游戏天。因此轮换吃不同种类的食物可以有效避免吃腻。
饥饿系统
饥饿值会随时间持续下降。
下面表格展示了不同活动对饥饿值的影响:
| 活动 | 速率 | 说明 |
|---|---|---|
| 站着不动 | 1× | 约 2.4 天消耗 1 饥饿条 |
| 陆地行走 | 1~2× | 走得越快消耗越多 |
| 水中游泳 | 2~4× | 消耗是陆地的 2 倍 |
| 跳跃 | 每次固定消耗 | 跳得越多越饿 |
| 挖掘 | 2× | 挖掘时消耗翻倍 |
饥饿系数
以
饥饿系数 = 1为例,纯被动消耗需2.4 游戏日才会把饥饿条从满消耗到空。
饥饿系数是一个饥饿消耗总倍率,由玩家性别、等级、游戏模式三个因子相乘得出
性别因子
| 条件 | 值 | 来源 |
|---|---|---|
| 男性 | 1.0 | 默认 |
| 女性 | 0.7 | 女性饥饿消耗降低 30% |
等级因子
| 条件 | 值 | 来源 |
|---|---|---|
| 等级 1 | 1.0 | 默认 |
| 等级 2 | 0.99 | 每升 1 级减少 0.01 |
| 等级 21+ | 0.80 | 封顶(最多降低 20%) |
游戏模式因子
| 条件 | 值 | 说明 |
|---|---|---|
| 无害 | 0.66 | 饥饿消耗降低 34% |
| 生存 | 0.75 | 饥饿消耗降低 25% |
| 挑战/残酷 | 1.0 | 无减免 |
| 创造 | 0 | 不消耗饥饿 |
举例:女性玩家,等级 21,生存模式 → 饥饿系数 = 0.7 × 0.8 × 0.75 = 0.42,即饥饿消耗速度仅为基准的 42%。
饥饿值降到 0 后,每 50 秒造成 0.5 伤害(饥饿伤害)。
食物腐败
腐败机制概述
游戏中的食物方块会随时间流逝逐渐腐败。腐败过程分为两个阶段:新鲜 → 开始变质 → 完全腐烂。背包中的食物图标旁有一个小鱼图标,当食物开始变质时,图标会从白色变为棕色。
腐败只在生存模式和挑战模式下生效,创造模式和冒险模式下食物不会腐败。
腐败参数
游戏中的腐败参数由腐败子系统控制:
| 参数 | 值 | 含义 |
|---|---|---|
| 最大腐败值 | 1 | 最大腐败阶段数(共2阶段:新鲜→变质→腐烂) |
| 轮询间隔 | 1 分钟 | 基础轮询间隔 |
| 腐败周期 | 各食物不同 | 该食物每阶段的腐败轮询间隔次数 |
最大储存时间计算公式:
即:腐败周期除以 10 就是该食物可储存的游戏天数(1 游戏天 = 20 现实分钟)。
腐败判定逻辑
腐败的核心逻辑:每个食物方块有一个"腐败周期"数值。游戏每 1 分钟检查一次,如果检查次数能被腐败周期整除,食物就向腐败迈进一个阶段。经过两个阶段后,食物完全腐烂,转为对应的腐烂方块。
各食物腐败数据
以下数据按默认腐败周期字段排列:
| 食物 | 营养值 | 食物类型 | 腐败周期 | 储存时间 | 现实时间 | 疾病概率 |
|---|---|---|---|---|---|---|
| 生鱼肉 | 2.5 | 鱼 | 20 | 2天 | 40 分钟 | 25% |
| 生禽肉 | 2 | 肉 | 30 | 3天 | 60 分钟 | 25% |
| 生肉 | 3 | 肉 | 30 | 3天 | 60 分钟 | 25% |
| 生面团 | 0 | — | 30 | 3天 | 60 分钟 | 0% |
| 南瓜 | 1.5 | 水果 | 80 | 8天 | 2 小时 40 分钟 | 0% |
| 牛奶桶 | 1.5 | — | 80 | 8天 | 2 小时 40 分钟 | 0% |
| 南瓜汤桶 | 2.5 | — | 80 | 8天 | 2 小时 40 分钟 | 0% |
| 熟鱼肉 | 7 | 鱼 | 150 | 15天 | 5 小时 | 0% |
| 熟禽肉 | 5 | 肉 | 150 | 15天 | 5 小时 | 0% |
| 熟肉 | 8 | 肉 | 150 | 15天 | 5 小时 | 0% |
| 面包 | 5 | 面包 | 200 | 20天 | 6 小时 40 分钟 | 0% |
| 海胆 | 0.5 | 鱼 | 不腐败 | — | — | 25% |
规律:生肉腐败极快(2-3天),烹饪后延长至15天。面包最耐储存(20天)。海胆不会腐败但营养极低且有 25% 疾病概率。蛋类食物因鸟类种类不同营养值各异,详见下方蛋类食物专节。
蛋类食物
游戏中共有 7 种可食用蛋,来自不同鸟类,分生蛋和熟蛋两种状态。蛋的营养值因鸟类体型而异——体型越大营养越高。烹饪后营养值变为 1.5 倍,且疾病概率从 10% 降为 0%。所有可食用蛋的腐败周期相同(120,储存 12 天)。
| 蛋类型 | 来源生物 | 营养值(生) | 疾病(生) | 营养值(熟) | 疾病(熟) | 腐败周期 | 储存时间 | 现实时间 |
|---|---|---|---|---|---|---|---|---|
| 鸵鸟蛋 | 鸵鸟 | 0.40 | 10% | 6 | 0% | 120 | 12天 | 4 小时 |
| 食火鸡蛋 | 食火鸡 | 0.40 | 10% | 6 | 0% | 120 | 12天 | 4 小时 |
| 海鸥蛋 | 海鸥 | 0.20 | 10% | 3 | 0% | 120 | 12天 | 4 小时 |
| 鸭蛋 | 鸭子 | 0.20 | 10% | 3 | 0% | 120 | 12天 | 4 小时 |
| 渡鸦蛋 | 渡鸦 | 0.20 | 10% | 3 | 0% | 120 | 12天 | 4 小时 |
| 鸽子蛋 | 鸽子 | 0.10 | 10% | 1.5 | 0% | 120 | 12天 | 4 小时 |
| 麻雀蛋 | 麻雀 | 0.05 | 10% | 0.75 | 0% | 120 | 12天 | 4 小时 |
- 烹饪配方:生蛋 + 水桶 → 熟蛋(需要热源)。烹饪后营养值 × 1.5,疾病概率降为 0%。配方适用于所有营养值 > 0 的蛋。
- 疾病概率:所有生蛋均有 10% 疾病概率,熟蛋则完全无风险。
- 体型越大营养越高:鸵鸟蛋和食火鸡蛋营养值最高(生 4 格 / 熟 6 格),麻雀蛋最低(生 0.5 格 / 熟 0.75 格)。
- 腐败:只有可食用蛋才会腐败,腐败后统一变为腐烂鸡蛋(见下方腐烂食物表),无论原蛋类型。
- 孵化:生蛋投掷击中地面可孵化为对应鸟类。生存模式下,生物自然产下的蛋仅 15% 孵化,创造模式获取的蛋 100% 孵化。熟蛋不可孵化。
- 不可食用蛋:游戏中还有 43 种不可食用蛋(营养值 = 0),来自哺乳动物(牛、狼、熊、马、虎、狮等 32 种)和鱼类/水生动物(鲈鱼、鲨鱼、食人鱼、虎鲸等 11 种),仅用于投掷生成对应生物,不会腐败。
海胆
海胆是一种可直接采集的海洋生物,不会腐败,但营养极低(0.5 格)且有 25% 疾病概率。
| 属性 | 值 | 说明 |
|---|---|---|
| 营养值 | 0.5 | 极低 |
| 疾病概率 | 25% | 较高风险 |
| 食物类型 | 鱼 | 影响动物进食偏好 |
| 腐败 | 不会腐败 | 无腐败周期 |
| 采集方式 | 直接采集 | 徒手即可 |
| 最大堆叠 | 40 | |
| 颜色变体 | 4 种 | 深黑、暗红、深红、深蓝 |
| 碰撞伤害 | 有 | 碰到海胆会受到尖刺伤害 |
- 尖刺伤害:碰到海胆会受到
0.1 / 尖刺抗性 × 速度的伤害,速度越快伤害越高。死亡原因显示为"海洋生物"。- 生存环境:海胆只能生活在水中,离开水会被销毁。它通过底吸行为吸附在固体方块表面(6 个方向均可)。
腐烂食物数据
| 腐烂食物 | 营养值 | 疾病概率 | 腐败周期 | 说明 |
|---|---|---|---|---|
| 腐烂南瓜 | 1 | 75% | 160 | 营养降低,高风险 |
| 腐烂面团 | 0 | 0% | 120 | 不能吃,会继续腐坏 |
| 腐烂面包 | 2 | 75% | 120 | 仍可继续腐坏 |
| 腐烂禽肉 | 2 | 75% | 120 | 仍可继续腐坏 |
| 腐烂肉 | 2 75% | 120 | 仍可继续腐坏 | |
| 腐烂鱼肉 | 2 | 75% | 120 | 仍可继续腐坏 |
| 腐烂牛奶桶 | 0.5 | 75% | — | 营养极低 |
| 腐烂鸡蛋 | 1 | 75% | — | 所有蛋类腐败后的统一产物 |
| 腐烂南瓜汤桶 | 1 | 75% | — | 最终腐坏阶段 |
腐烂食物统一有 75% 的疾病概率,营养值大幅降低至 0.5~2 格。多数腐烂食物仍有腐败周期,会继续腐坏最终变成施肥的耕地。
写给开发者
资料暂存
本小节内容暂时存放于此,后续会移动至“MOD开发”章节。
腐败系统架构
核心文件:Survivalcraft/Subsystem/BlockBehavior/SubsystemRotBlockBehavior.cs
该类继承自 SubsystemPollableBlockBehavior,实现了 OnPoll 和 ItemsScanned 两个关键方法:
OnPoll(int value, int x, int y, int z, int pollPass):处理放置在世界中的食物方块腐败ItemsScanned(ReadOnlyList<ScannedItemData> items):处理背包/容器中的食物腐败(通过ItemsScanner系统)
腐败状态存储:利用 Block 的 Damage 字段(GetDamage/SetDamage)存储腐败进度,而非另建数据。Damage=0 表示新鲜,Damage=1 表示开始变质,Damage>1 触发 GetDamageDestructionValue 转为腐烂方块。
关键常量:
csharp
public const int MaxRot = 1; // 最大腐败阶段(Damage最大值)
public const float m_rotPeriod = 60f; // 轮询间隔(游戏时间单位)食物方块基类方法
在 Block.cs 中定义的食物相关虚方法:
csharp
public virtual int GetRotPeriod(int value) => DefaultRotPeriod;
public virtual float GetNutritionalValue(int value) => DefaultNutritionalValue;
public virtual float GetSicknessProbability(int value) => DefaultSicknessProbability;
public virtual FoodType GetFoodType(int value) => FoodType;
public virtual int GetDamage(int value) => Terrain.ExtractDamage(value);
public virtual int GetDamageDestructionValue(int value) => 0; // 需重写返回腐烂方块模组开发者可通过重写 GetRotPeriod 自定义腐败行为。例如 BasePumpkinBlock 中,只有死亡的南瓜才会腐败:
csharp
public override int GetRotPeriod(int value) {
if (!GetIsDead(Terrain.ExtractData(value))) return 0; // 活南瓜不腐败
return base.GetRotPeriod(value);
}关键流程总结
腐败流程:
放置/生成食物 → OnPoll轮询(pollPass % RotPeriod == 0) → Damage+1 →
Damage > MaxRot(1) → GetDamageDestructionValue → 转为腐烂方块 →
继续腐坏 → 最终转为堆肥IyDpo5/niankuI7ohZDotKUKCueos+Wumumjn+eJqeadpea6kOeUseeLqeeMjuOAgeeDuemlquS4juW6k+WtmOi9ruaNouWFseWQjOe7hOaIkOOAguWPquino+WGs+ecvOWJjemlpemlv+OAgeS4jeeuoeeQhuiFkOi0pe+8jOS8muiuqeaNrueCueS4jeaWreWbnuWIsOe8uueyrueKtuaAgeOAguenjeakjeS4juiAleS9nOmDqOWIhuingVvlhpzkuJrmnLrliLZdKC90aGVvcnkvZmFybWluZynjgIIKCjo6OiBpbmZvIOaVsOaNrue7n+S4gArmnKzoioLmj5DliLDnmoRg6aWx6aOf5bqmYOOAgWDokKXlhbvlgLxg44CBYOi/m+mjn+eWsuWKs2DkuLowfjHkuYvpl7TnmoTmta7ngrnmlbDvvIzkuLrkuobnjqnlrrbmlrnkvr/nkIbop6PvvIzlnKjmraTlpITkvJrovazmjaLkuLowfjEw5qC86aWx6aOf5bqm44CCMOagvOihqOekuumlsemjn+W6puadoeS4uuepuu+8jDEw5qC86KGo56S66aWx6aOf5bqm5p2h5bey5ruh77yM5Li65LqG6KGo6L+w5pa55L6/77yM5oiR5Lus5bCG4oCd5LiA6aWl6aW/5p2h4oCd6KGo56S64oCcMTDmoLzppbHpo5/luqbigJ3jgILkuIvmlofmj5DliLDnmoRg6aWx6aOf5bqmYOWSjGDppaXppb/lgLxg5piv55u45ZCM55qE5qaC5b+144CCYOeWvueXhWDjgIFg55Sf55eFYOWSjGDlkZXlkJBg5piv55u45ZCM55qE5qaC5b+144CCCjo6OgoKIyMg6aOf54mp57O757ufCgojIyMg6aOf54mp57G75Z6LCgrmuLjmiI/kuK3mnInku6XkuIvlh6Dnp43po5/niannsbvlnovvvJrogonnsbvjgIHpsbznsbvjgIHmsLTmnpzjgIHojYnnsbvjgIHpnaLljIXjgIHlhbbku5bvvIjml6DnsbvlnovvvInjgIIKCiMjIyDov5vpo5/mnLrliLYKCui/m+mjn+mAu+i+keWcqOi/m+mjn+aWueazleS4re+8jOa1geeoi+WmguS4i++8mgoKMS4gKirppbHpo5/luqbmo4Dmn6UqKu+8mumlsemjn+W6puW3sua7oeaXtuS4jeiDvei/m+mjnwoyLiAqKueWvueXheeKtuaAgeajgOafpSoq77ya5aaC5p6c546p5a625bey55Sf55eF77yM5LiN6IO95ZCD5Lu75L2V5pyJ55a+55eF5qaC546H55qE6aOf54mp5ZKM5byV6LW355a+55eF55qE6aOf54mp44CCCjMuICoq6JCl5YW75YC85bqU55SoKirvvJrokKXlhbvlgLzmmK/po5/nianog73mj5DkvpvnmoTppbHpo5/luqbvvIzlpoLmnpznlJ/nl4XvvIzokKXlhbvlgLzkvJrpmY3kvY4yNSXjgIIKNC4gKirlkIzpo5/niannlrLlirPntK/np68qKu+8muavj+enjemjn+eJqeacieeLrOeri+eahOeWsuWKs+iuoeaVsOWZqO+8jOavj+asoei/m+mjn+e0r+WKoOWFtuiQpeWFu+WAvO+8iOS9juS6jiA1IOaXtue0r+WKoCA177yJ44CCCjUuICoq55a+55eF5qaC546H5Yik5a6aKirvvJrmoLnmja7po5/niannmoTnlr7nl4XmpoLnjofpmo/mnLrliKTlrprlhrPlrprmmK/lkKblvJXlj5Hnlr7nl4XvvJvmn5Dnp43po5/niannlrLlirPotoXov4cgMzUg5pe25by65Yi25byV5Y+R55a+55eFCgo8ZmlndXJlIGNsYXNzPSJhcmNoaXZlLWZpZ3VyZSI+Cjxzdmcgdmlld0JveD0iMCAwIDQwMCAyODAiIHdpZHRoPSIxMDAlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI0MDAiIGhlaWdodD0iMjgwIiBmaWxsPSIjZmFmYWZhIiByeD0iOCIvPgogIDxnIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMjUiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBmaWxsPSIjNWQ0MDM3Ij7ov5vpo5/nmoTlhbPplK7opoHntKA8L3RleHQ+CiAgICA8cmVjdCB4PSIyMCIgeT0iNDUiIHdpZHRoPSIxNzAiIGhlaWdodD0iMjEwIiByeD0iOCIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjNWQ0MDM3IiBzdHJva2Utd2lkdGg9IjEuNSIvPgogICAgPHRleHQgeD0iMTA1IiB5PSI2NSIgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IiM1ZDQwMzciPuW/heimgeadoeS7tjwvdGV4dD4KICAgIDxsaW5lIHgxPSI0MCIgeTE9Ijc1IiB4Mj0iMTcwIiB5Mj0iNzUiIHN0cm9rZT0iIzhkNmU2MyIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtZGFzaGFycmF5PSIzLDIiLz4KICAgIDx0ZXh0IHg9IjEwNSIgeT0iMTAwIiBmb250LXNpemU9IjExIiBmaWxsPSIjMzMzIj7wn42WIOmlsemjn+W6puacqua7oTwvdGV4dD4KICAgIDx0ZXh0IHg9IjEwNSIgeT0iMTE1IiBmb250LXNpemU9IjEwIiBmaWxsPSIjNzc3Ij7ppbHpo5/luqbpnIAgJmx0OyAxMCDmoLw8L3RleHQ+CiAgICA8dGV4dCB4PSIxMDUiIHk9IjE1MCIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzMzMyI+8J+aqyDnlr7nl4XpmZDliLY8L3RleHQ+CiAgICA8dGV4dCB4PSIxMDUiIHk9IjE2NSIgZm9udC1zaXplPSIxMCIgZmlsbD0iIzc3NyI+55Sf55eF5pe256aB5ZCDPC90ZXh0PgogICAgPHRleHQgeD0iMTA1IiB5PSIxODAiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9IiM3NzciPuacieeWvueXheamgueOh+eahOmjn+eJqTwvdGV4dD4KICAgIDx0ZXh0IHg9IjEwNSIgeT0iMjIwIiBmb250LXNpemU9IjEwIiBmaWxsPSIjYzYyODI4IiBmb250LXdlaWdodD0iYm9sZCI+4pqg77iPIOS4jea7oei2s+WImeaXoOazlei/m+mjnzwvdGV4dD4KICAgIDxyZWN0IHg9IjIxMCIgeT0iNDUiIHdpZHRoPSIxNzAiIGhlaWdodD0iMjEwIiByeD0iOCIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjNWQ0MDM3IiBzdHJva2Utd2lkdGg9IjEuNSIvPgogICAgPHRleHQgeD0iMjk1IiB5PSI2NSIgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IiM1ZDQwMzciPuW9seWTjeWboOe0oDwvdGV4dD4KICAgIDxsaW5lIHgxPSIyMzAiIHkxPSI3NSIgeDI9IjM2MCIgeTI9Ijc1IiBzdHJva2U9IiM4ZDZlNjMiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWRhc2hhcnJheT0iMywyIi8+CiAgICA8cmVjdCB4PSIyMjUiIHk9Ijg1IiB3aWR0aD0iMTQwIiBoZWlnaHQ9IjM1IiByeD0iNCIgZmlsbD0iI2U4ZjVlOSIgc3Ryb2tlPSIjODFjNzg0IiBzdHJva2Utd2lkdGg9IjEiLz4KICAgIDx0ZXh0IHg9IjI5NSIgeT0iMTAwIiBmb250LXNpemU9IjExIiBmaWxsPSIjMmU3ZDMyIj7wn6SiIOeUn+eXheeKtuaAgTwvdGV4dD4KICAgIDx0ZXh0IHg9IjI5NSIgeT0iMTEzIiBmb250LXNpemU9IjEwIiBmaWxsPSIjMzg4ZTNjIj7okKXlhbvlkLjmlLYgw5cwLjc1PC90ZXh0PgogICAgPHJlY3QgeD0iMjI1IiB5PSIxMzAiIHdpZHRoPSIxNDAiIGhlaWdodD0iMzUiIHJ4PSI0IiBmaWxsPSIjZmZmM2UwIiBzdHJva2U9IiNmZmIzMDAiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgPHRleHQgeD0iMjk1IiB5PSIxNDUiIGZvbnQtc2l6ZT0iMTEiIGZpbGw9IiNlNjUxMDAiPvCfjrIg55a+55eF5qaC546HPC90ZXh0PgogICAgPHRleHQgeD0iMjk1IiB5PSIxNTgiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9IiNmNTdjMDAiPuaMieamgueOh+W8leWPkeeWvueXhTwvdGV4dD4KICAgIDxyZWN0IHg9IjIyNSIgeT0iMTc1IiB3aWR0aD0iMTQwIiBoZWlnaHQ9IjM1IiByeD0iNCIgZmlsbD0iI2ZmZWJlZSIgc3Ryb2tlPSIjZWY5YTlhIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgIDx0ZXh0IHg9IjI5NSIgeT0iMTkwIiBmb250LXNpemU9IjExIiBmaWxsPSIjYzYyODI4Ij7wn5iLIOi/m+mjn+eWsuWKszwvdGV4dD4KICAgIDx0ZXh0IHg9IjI5NSIgeT0iMjAzIiBmb250LXNpemU9IjEwIiBmaWxsPSIjZDMyZjJmIj7otoXov4cyNeWQg+iFuyDCtyDotoXov4czNeeUn+eXhTwvdGV4dD4KICAgIDx0ZXh0IHg9IjI5NSIgeT0iMjM1IiBmb250LXNpemU9IjExIiBmaWxsPSIjNWQ0MDM3IiBmb250LXdlaWdodD0iYm9sZCI+5ZCM57G76aOf54mp5Y+N5aSN5ZCDPC90ZXh0PgogICAgPHRleHQgeD0iMjk1IiB5PSIyNTIiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9IiM3NzciPue0r+enr+WAvOaMgee7reWinuWKoDwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo8ZmlnY2FwdGlvbj7ov5vpo5/opoHntKDvvJrmu6HotrPlv4XopoHmnaHku7bmlrnlj6/ov5vpo5/vvIzlvbHlk43lm6DntKDlhrPlrprokKXlhbvlkLjmlLbkuI7nlr7nl4Xpo47pmak8L2ZpZ2NhcHRpb24+CjwvZmlndXJlPgoKIyMjIOmlsemjn+W6puS4juWQjOmjn+eJqeeWsuWKs+eahOWMuuWIqwoKPiAqKuWFs+mUruWMuuWIhioq77ya5ri45oiP55S76Z2i5LiK55qE6aWx6aOf5bqm5p2h5ZKMIuWQg+iFu+S6hiLmnLrliLbnlKjnmoTov5vpo5/nlrLlirPmmK8qKuS4pOS4quWujOWFqOS4jeWQjOeahOaVsOaNrioq77yM5LiN6KaB5re35reG44CCCgrmuLjmiI/kuK3mnInkuKTlpZfni6znq4vnmoTmlbDmja7vvJoKCnwg5pWw5o2uIHwg6IyD5Zu0IHwg55S76Z2i6KGo546wIHwg6K+05piOIHwKfC0tLS0tLXwtLS0tLS18LS0tLS0tLS0tfC0tLS0tLXwKfCAqKumlsemjn+W6pioqIHwgMH4xMCDmoLwgfCDnlLvpnaLkuIogMTAg5qC86aWl6aW/5p2hIHwg5ZCD5Lu75L2V6aOf54mp6YO95Lya5aKe5Yqg77yM6ZqP5pe26Ze05oyB57ut5LiL6ZmNIHwKfCAqKuWQjOmjn+eJqeeWsuWKs+WAvCoqIHwg4omlIDAgfCDml6Dnm7TmjqXmmL7npLrvvIzkvYbotoXov4fpmIjlgLzml7blvLnmj5DnpLogfCDmr4/np43po5/nianlkIToh6rni6znq4vntK/np6/vvIzku4Xpmo/ml7bpl7TnvJPmhaLoobDlh48gfAoKLSAqKumlsemjn+W6pioq5piv546p5a6254af5oKJ55qEIDEwIOagvOmlpemlv+adoeOAguWQg+S4gOS4qumdouWMheWwsea2qOWNiuadoemlpemlv+adoe+8iDUg5qC877yJ77yM5ZCD6aWx5LqG77yIMTAg5qC877yJ5bCx5LiN6IO95YaN5ZCD44CCCi0gKirppbHpo5/luqbmuqLlh7rkvJrooqvkuKLlvIMqKu+8mumlsemjn+W6puS4iumZkOiiq+mUgeatu+WcqCAxMCDmoLzjgII5IOagvOaXtuWQg+S4gOS4qumdouWMhe+8iDUg5qC877yJ77yM6aWx6aOf5bqm5LiN5Lya5Y+Y5oiQIDE0IOagvO+8jOiAjOaYr+ebtOaOpea7oeWIsCAxMCDmoLzigJTigJQqKua6ouWHuueahCA0IOagvOiiq+S4ouW8gyoq77yM5LiN5Lya6L2s5YyW5Li65Lu75L2V6aKd5aSW5pWI5p6c44CCCi0gKirov5vpo5/nlrLlirMqKuaYr+S4gOS4qumakOiXj+iuoeaVsOWZqO+8jCoq5q+P56eN6aOf54mp5ZCE6Ieq54us56uLKirjgILmr4/mrKHlkIPlkIzkuIDnp43po5/nianvvIzor6Xpo5/niannmoTnlrLlirPlgLzlsLHlop7liqAgNe+8iOiQpeWFu+WAvOS4jei2syA1IOaXtuaMiSA1IOeul++8ieOAguW9k+eWsuWKs+WAvOi2hei/h+S7peS4i+mYiOWAvOaXtuinpuWPkeWvueW6lOaViOaenO+8mgoKfCDnlrLlirPlgLzpmIjlgLwgfCDop6blj5HmlYjmnpwgfCDor7TmmI4gfAp8LS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tfAp8ID4gMjAgfCDmj5DnpLoi5byA5aeL5ZCD6IW75LqGIiB8IOWxj+W5leaYvuekuuWwj+Wtl+aPkOekuiB8CnwgPiAyNSB8IOaPkOekuiLlkIPohbvkuoYiIHwg5pu05piO5pi+55qE5o+Q56S6IHwKfCA+IDM1IHwgKirlvLrliLbnlJ/nl4UqKiB8IOaXoOiuuumjn+eJqeacrOi6q+eWvueXheamgueOh+WkmuS9ju+8jOmDveS8muW8leWPkeeWvueXhSB8Cgo+ICoq5YWz6ZSu77ya55ay5Yqz5YC85LiO6aWx6aOf5bqm5rqi5Ye65peg5YWzKirjgILmr4/mrKHlkIPlkIzkuIDnp43po5/nianvvIznlrLlirPlgLzlm7rlrprlop7liqAgNe+8jOS4jeeuoeS9oOW9k+aXtumlsemjn+W6puaYryAxIOagvOi/mOaYryA5IOagvOOAgjkg5qC85pe25ZCD6Z2i5YyF77yM55ay5Yqz5YC85Y+q5aKe5YqgIDXvvIjlkoznqbrohbnml7blkIPkuIDmoLfvvInvvIzmuqLlh7rnmoQgNCDmoLzppbHpo5/luqbkuI3kvJrlj5jmiJDpop3lpJbnmoTnlrLlirPlgLzjgILlvLrliLbnlJ/nl4XnmoTmnaHku7bmmK8qKui/nue7reWQg+WQjOS4gOenjemjn+eJqee0r+iuoeWIsCAzNSoq77yM5LiN5piv5Y2V5qyh5rqi5Ye644CCCgoqKuS4vuS+iyoq77ya6Z2i5YyF6JCl5YW75YC8IDAuNe+8iDUg5qC877yJ77yM6L+e57ut5ZCDIDUg5Liq6Z2i5YyFIOKGkiDnlrLlirPlgLwgPSA1IMOXIDUgPSAyNe+8jOinpuWPkSLlkIPohbvkuoYi5o+Q56S677yb5ZCD56ysIDcg5LiqIOKGkiA3IMOXIDUgPSAzNe+8jOW8uuWItueUn+eXheOAgueGn+iCieiQpeWFu+WAvCAwLjjvvIg4IOagvO+8ie+8jOWQgyA0IOS4qiDihpIgNCDDlyAwLjggPSAzLjLvvIzlt7Lnu48i5ZCD6IW75LqGIu+8m+WQg+esrCA1IOS4qiDihpIgNSDDlyAwLjggPSA0LjDvvIzlvLrliLbnlJ/nl4XjgILnlJ/psbzogonokKXlhbvlgLzku4UgMC4yNe+8iDIuNSDmoLzvvInvvIzkvYbmr4/mrKHku43mjIkgNSDntK/np6/vvIzlkIMgNyDkuKrkuZ/kvJrlvLrliLbnlJ/nl4XjgIIKCioq55ay5Yqz5YC86KGw5YePKirvvJrov5vpo5/nlrLlirPkvJrpmo/ml7bpl7TnvJPmhaLoobDlh4/vvIzmr4/muLjmiI/lpKnoobDlh48gKio1KirjgILkuZ/lsLHmmK/or7TvvIzlpoLmnpzlgZzmraLlkIPmn5Dnp43po5/niannuqYgNSDkuKrmuLjmiI/lpKnvvIjnuqYgMTAwIOeOsOWunuWIhumSn++8ie+8jOi/m+mjn+eWsuWKs+WwseiDveS7jiAyNSDpmY3liLAgMO+8m+S7jiAzNSDpmY3liLAgMCDpnIDopoHnuqYgNyDkuKrmuLjmiI/lpKnjgILlm6DmraQqKui9ruaNouWQg+S4jeWQjOenjeexu+eahOmjn+eJqSoq5Y+v5Lul5pyJ5pWI6YG/5YWN5ZCD6IW744CCCgoKPGZpZ3VyZSBjbGFzcz0iYXJjaGl2ZS1maWd1cmUiPgo8c3ZnIHZpZXdCb3g9IjAgMCA1NjAgMzYwIiB3aWR0aD0iMTAwJSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNTYwIiBoZWlnaHQ9IjM2MCIgZmlsbD0iI2ZhZmFmYSIgcng9IjgiLz4KICA8ZyBmb250LWZhbWlseT0ic2Fucy1zZXJpZiI+CiAgICA8dGV4dCB4PSIyODAiIHk9IjI4IiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgZmlsbD0iIzVkNDAzNyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+6aWx6aOf5bqm5LiO6L+b6aOf55ay5YqzLeS4pOWll+eLrOeri+aVsOaNrjwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwIiB5PSI2NCIgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IiMxNTY1YzAiPumlsemjn+W6pu+8iDB+MTAg5qC8IMK3IOWwgemhtiAxMO+8iTwvdGV4dD4KICAgIDxnIGZpbGw9IiM2NmJiNmEiIHN0cm9rZT0iIzJlN2QzMiIgc3Ryb2tlLXdpZHRoPSIxIj4KICAgICAgPHJlY3QgeD0iMjAiIHk9Ijc2IiB3aWR0aD0iMzgiIGhlaWdodD0iMjYiLz4KICAgICAgPHJlY3QgeD0iNjAiIHk9Ijc2IiB3aWR0aD0iMzgiIGhlaWdodD0iMjYiLz4KICAgICAgPHJlY3QgeD0iMTAwIiB5PSI3NiIgd2lkdGg9IjM4IiBoZWlnaHQ9IjI2Ii8+CiAgICAgIDxyZWN0IHg9IjE0MCIgeT0iNzYiIHdpZHRoPSIzOCIgaGVpZ2h0PSIyNiIvPgogICAgICA8cmVjdCB4PSIxODAiIHk9Ijc2IiB3aWR0aD0iMzgiIGhlaWdodD0iMjYiLz4KICAgICAgPHJlY3QgeD0iMjIwIiB5PSI3NiIgd2lkdGg9IjM4IiBoZWlnaHQ9IjI2Ii8+CiAgICAgIDxyZWN0IHg9IjI2MCIgeT0iNzYiIHdpZHRoPSIzOCIgaGVpZ2h0PSIyNiIvPgogICAgICA8cmVjdCB4PSIzMDAiIHk9Ijc2IiB3aWR0aD0iMzgiIGhlaWdodD0iMjYiLz4KICAgICAgPHJlY3QgeD0iMzQwIiB5PSI3NiIgd2lkdGg9IjM4IiBoZWlnaHQ9IjI2Ii8+CiAgICAgIDxyZWN0IHg9IjM4MCIgeT0iNzYiIHdpZHRoPSIzOCIgaGVpZ2h0PSIyNiIvPgogICAgPC9nPgogICAgPHRleHQgeD0iMjE5IiB5PSI5MyIgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IiNmZmYiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjEwLzEwIOa7oTwvdGV4dD4KICAgIDxyZWN0IHg9IjQyNSIgeT0iNzYiIHdpZHRoPSI5NSIgaGVpZ2h0PSIyNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTk5IiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1kYXNoYXJyYXk9IjMsMiIvPgogICAgPHRleHQgeD0iNDcyIiB5PSI5MyIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pyVIOa6ouWHuuS4ouW8gzwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwIiB5PSIxMjAiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9IiM1NTUiPuKGkSDlkIPpo5/nianlop7liqA8L3RleHQ+CiAgICA8dGV4dCB4PSI0MTgiIHk9IjEyMCIgZm9udC1zaXplPSIxMCIgZmlsbD0iIzU1NSIgdGV4dC1hbmNob3I9ImVuZCI+6ZqP5pe26Ze05LiL6ZmNIOKGkzwvdGV4dD4KICAgIDxsaW5lIHgxPSIyMCIgeTE9IjE0OCIgeDI9IjU0MCIgeTI9IjE0OCIgc3Ryb2tlPSIjOGQ2ZTYzIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1kYXNoYXJyYXk9IjQsMyIvPgogICAgPHJlY3QgeD0iMjE4IiB5PSIxMzgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMjAiIHJ4PSIxMCIgZmlsbD0iI2ZhZmFmYSIgc3Ryb2tlPSIjOGQ2ZTYzIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgIDx0ZXh0IHg9IjI4MCIgeT0iMTUyIiBmb250LXNpemU9IjEwIiBmaWxsPSIjNWQ0MDM3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iYm9sZCI+5Lik5aWX5pWw5o2u5LqS5LiN5b2x5ZONPC90ZXh0PgogICAgPHRleHQgeD0iMjAiIHk9IjE4NCIgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IiNjNjI4MjgiPui/m+mjn+eWsuWKs++8iOKJpTAgwrcg5peg5LiK6ZmQIMK3IOavj+enjemjn+eJqeeLrOeri++8iTwvdGV4dD4KICAgIDxnIGZvbnQtc2l6ZT0iOSIgZmlsbD0iIzU1NSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICAgIDx0ZXh0IHg9IjI3MCIgeT0iMjA2Ij4yMCDlvIDlp4vlkIPohbs8L3RleHQ+CiAgICAgIDx0ZXh0IHg9IjMzMyIgeT0iMjA2Ij4yNSDlkIPohbvkuoY8L3RleHQ+CiAgICAgIDx0ZXh0IHg9IjQ1OCIgeT0iMjA2Ij4zNSDlvLrliLbnlJ/nl4U8L3RleHQ+CiAgICA8L2c+CiAgICA8ZyBzdHJva2U9IiM5OTkiIHN0cm9rZS13aWR0aD0iMSI+CiAgICAgIDxsaW5lIHgxPSIyNzAiIHkxPSIyMTAiIHgyPSIyNzAiIHkyPSIyMjAiLz4KICAgICAgPGxpbmUgeDE9IjMzMyIgeTE9IjIxMCIgeDI9IjMzMyIgeTI9IjIyMCIvPgogICAgICA8bGluZSB4MT0iNDU4IiB5MT0iMjEwIiB4Mj0iNDU4IiB5Mj0iMjIwIi8+CiAgICA8L2c+CiAgICA8cmVjdCB4PSIyMCIgeT0iMjIwIiB3aWR0aD0iMjUwIiBoZWlnaHQ9IjI2IiBmaWxsPSIjYTVkNmE3IiBzdHJva2U9IiM2NmJiNmEiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgPHJlY3QgeD0iMjcwIiB5PSIyMjAiIHdpZHRoPSI2MyIgaGVpZ2h0PSIyNiIgZmlsbD0iI2ZmZjU5ZCIgc3Ryb2tlPSIjZmRkODM1IiBzdHJva2Utd2lkdGg9IjEiLz4KICAgIDxyZWN0IHg9IjMzMyIgeT0iMjIwIiB3aWR0aD0iMTI1IiBoZWlnaHQ9IjI2IiBmaWxsPSIjZmZjYzgwIiBzdHJva2U9IiNmYjhjMDAiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgPHJlY3QgeD0iNDU4IiB5PSIyMjAiIHdpZHRoPSI2MiIgaGVpZ2h0PSIyNiIgZmlsbD0iI2VmOWE5YSIgc3Ryb2tlPSIjYzYyODI4IiBzdHJva2Utd2lkdGg9IjEiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMzcwLDIxMiAzNjQsMjA0IDM3NiwyMDQiIGZpbGw9IiMxZTI5M2IiLz4KICAgIDxsaW5lIHgxPSIzNzAiIHkxPSIyMTIiIHgyPSIzNzAiIHkyPSIyNDYiIHN0cm9rZT0iIzFlMjkzYiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICA8dGV4dCB4PSIzNzAiIHk9IjI2MiIgZm9udC1zaXplPSIxMCIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbGw9IiMxZTI5M2IiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuekuuS+iyAyODwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwIiB5PSIyNjIiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9IiM1NTUiPuKGkSDlkIzpo5/nianmr4/mrKEgK21heCjokKXlhbvlgLwsNSk8L3RleHQ+CiAgICA8dGV4dCB4PSI1MjAiIHk9IjI2MiIgZm9udC1zaXplPSIxMCIgZmlsbD0iIzU1NSIgdGV4dC1hbmNob3I9ImVuZCI+5q+P5aSp6KGw5YePIDUg4oaTPC90ZXh0PgogICAgPHJlY3QgeD0iMjAiIHk9IjI4OCIgd2lkdGg9IjUyMCIgaGVpZ2h0PSI1MiIgcng9IjYiIGZpbGw9IiNmZmY4ZTEiIHN0cm9rZT0iI2ZmYjMwMCIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgICA8dGV4dCB4PSIzMCIgeT0iMzA4IiBmb250LXNpemU9IjExIiBmaWxsPSIjNWQ0MDM3IiBmb250LXdlaWdodD0iYm9sZCI+8J+SoSDlhbPplK7vvJrlkIPpo5/nianml7bkuKTlpZfmlbDmja7lkIToh6rlop7liqDvvIzkupLkuI3ovazljJY8L3RleHQ+CiAgICA8dGV4dCB4PSIzMCIgeT0iMzI2IiBmb250LXNpemU9IjEwIiBmaWxsPSIjNTU1Ij45IOagvOmlsemjn+W6puWQg+mdouWMhSDihpIg6aWx6aOf5bqm5ruh5YiwIDEw77yI5rqi5Ye6IDQg5qC85Lii5byD77yJ77yM55ay5Yqz5YC85Y+qICs177yI5LiO56m66IW55pe255u45ZCM77yJPC90ZXh0PgogIDwvZz4KPC9zdmc+CjxmaWdjYXB0aW9uPumlsemjn+W6puWwgemhtuS4ouW8g+a6ouWHuu+8jOi/m+mjn+eWsuWKs+aMgee7ree0r+enr+KAlOKAlOS4pOiAheWujOWFqOeLrOerizwvZmlnY2FwdGlvbj4KPC9maWd1cmU+CgojIyMg6aWl6aW/57O757ufCgrppaXppb/lgLzkvJrpmo/ml7bpl7TmjIHnu63kuIvpmY3jgIIKCuS4i+mdouihqOagvOWxleekuuS6huS4jeWQjOa0u+WKqOWvuemlpemlv+WAvOeahOW9seWTje+8mgoKfCDmtLvliqggfCDpgJ/njocgfCDor7TmmI4gfAp8LS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tfAp8IOermeedgOS4jeWKqCB8IDHDlyB8IOe6piAyLjQg5aSp5raI6ICXIDEg6aWl6aW/5p2hIHwKfCDpmYblnLDooYzotbAgfCAxfjLDlyB8IOi1sOW+l+i2iuW/q+a2iOiAl+i2iuWkmiB8Cnwg5rC05Lit5ri45rOzIHwgMn40w5cgfCDmtojogJfmmK/pmYblnLDnmoQgMiDlgI0gfAp8IOi3s+i3gyB8IOavj+asoeWbuuWumua2iOiAlyB8IOi3s+W+l+i2iuWkmui2iumlvyB8Cnwg5oyW5o6YIHwgMsOXIHwg5oyW5o6Y5pe25raI6ICX57+75YCNIHwKCiMjIyMg6aWl6aW/57O75pWwCgo+5LulIGDppaXppb/ns7vmlbAgPSAxYCDkuLrkvovvvIznuq/ooqvliqjmtojogJfpnIAyLjQg5ri45oiP5pel5omN5Lya5oqK6aWl6aW/5p2h5LuO5ruh5raI6ICX5Yiw56m644CCCgoqKumlpemlv+ezu+aVsCoq5piv5LiA5LiqKirppaXppb/mtojogJfmgLvlgI3njocqKu+8jOeUseeOqeWutuaAp+WIq+OAgeetiee6p+OAgea4uOaIj+aooeW8j+S4ieS4quWboOWtkCoq55u45LmYKirlvpflh7oKCgokJApcdGV4dHvppaXppb/ns7vmlbB9ID0gXHRleHR75oCn5Yir5Zug5a2QfSBcdGltZXMgXHRleHR7562J57qn5Zug5a2QfSBcdGltZXMgXHRleHR75ri45oiP5qih5byP5Zug5a2QfQokJAoKKirmgKfliKvlm6DlrZAqKgp8IOadoeS7tiB8IOWAvCB8IOadpea6kCB8CnwtLS0tLS18LS0tLS18LS0tLS0tfAp8IOeUt+aApyB8IDEuMCB8IOm7mOiupCB8Cnwg5aWz5oCnIHwgKiowLjcqKiB8IOWls+aAp+mlpemlv+a2iOiAl+mZjeS9jiAzMCUgfAoKKirnrYnnuqflm6DlrZAqKiAKfCDmnaHku7YgfCDlgLwgfCDmnaXmupAgfAp8LS0tLS0tfC0tLS0tfC0tLS0tLXwKfCDnrYnnuqcgMSB8IDEuMCB8IOm7mOiupCB8Cnwg562J57qnIDIgfCAwLjk5IHwg5q+P5Y2HIDEg57qn5YeP5bCRIDAuMDEgfAp8IOetiee6pyAyMSsgfCAqKjAuODAqKiB8IOWwgemhtu+8iOacgOWkmumZjeS9jiAyMCXvvIkgfAoKKirmuLjmiI/mqKHlvI/lm6DlrZAqKgp8IOadoeS7tiB8IOWAvCB8IOivtOaYjiB8CnwtLS0tLS18LS0tLS0tfC0tLS0tLXwKfCDml6DlrrMgfCAqKjAuNjYqKiB8IOmlpemlv+a2iOiAl+mZjeS9jiAzNCUgfAp8IOeUn+WtmCB8ICoqMC43NSoqIHwg6aWl6aW/5raI6ICX6ZmN5L2OIDI1JSB8Cnwg5oyR5oiYL+aui+mFtyB8IDEuMCB8IOaXoOWHj+WFjSB8Cnwg5Yib6YCgIHwgKiowKiogfCDkuI3mtojogJfppaXppb8gfAoKKirkuL7kvosqKu+8muWls+aAp+eOqeWutu+8jOetiee6pyAyMe+8jOeUn+WtmOaooeW8jyDihpIgYOmlpemlv+ezu+aVsCA9IDAuNyDDlyAwLjggw5cgMC43NSA9IDAuNDJg77yM5Y2z6aWl6aW/5raI6ICX6YCf5bqm5LuF5Li65Z+65YeG55qEIDQyJeOAggoK6aWl6aW/5YC86ZmN5YiwIDAg5ZCO77yM5q+PIDUwIOenkumAoOaIkCAwLjUg5Lyk5a6z77yI6aWl6aW/5Lyk5a6z77yJ44CCCgoKIyMg6aOf54mp6IWQ6LSlCgojIyMg6IWQ6LSl5py65Yi25qaC6L+wCgrmuLjmiI/kuK3nmoTpo5/nianmlrnlnZfkvJrpmo/ml7bpl7TmtYHpgJ3pgJDmuJDohZDotKXjgILohZDotKXov4fnqIvliIbkuLrkuKTkuKrpmLbmrrXvvJoqKuaWsOmynCDihpIg5byA5aeL5Y+Y6LSoIOKGkiDlrozlhajohZDng4IqKuOAguiDjOWMheS4reeahOmjn+eJqeWbvuagh+aXgeacieS4gOS4quWwj+mxvOWbvuagh++8jOW9k+mjn+eJqeW8gOWni+WPmOi0qOaXtu+8jOWbvuagh+S8muS7jueZveiJsuWPmOS4uuajleiJsuOAggoK6IWQ6LSl5Y+q5ZyoKirnlJ/lrZjmqKHlvI8qKuWSjCoq5oyR5oiY5qih5byPKirkuIvnlJ/mlYjvvIzliJvpgKDmqKHlvI/lkozlhpLpmanmqKHlvI/kuIvpo5/niankuI3kvJrohZDotKXjgIIKCiMjIyDohZDotKXlj4LmlbAKCua4uOaIj+S4reeahOiFkOi0peWPguaVsOeUseiFkOi0peWtkOezu+e7n+aOp+WItu+8mgoKfCDlj4LmlbAgfCDlgLwgfCDlkKvkuYkgfAp8LS0tLS0tfC0tLS0tfC0tLS0tLXwKfCDmnIDlpKfohZDotKXlgLwgfCAxIHwg5pyA5aSn6IWQ6LSl6Zi25q615pWw77yI5YWxMumYtuaute+8muaWsOmynOKGkuWPmOi0qOKGkuiFkOeDgu+8iSB8Cnwg6L2u6K+i6Ze06ZqUIHwgMSDliIbpkp8gfCDln7rnoYDova7or6Lpl7TpmpQgfAp8IOiFkOi0peWRqOacnyB8IOWQhOmjn+eJqeS4jeWQjCB8IOivpemjn+eJqeavj+mYtuauteeahOiFkOi0pei9ruivoumXtOmalOasoeaVsCB8CgoqKuacgOWkp+WCqOWtmOaXtumXtOiuoeeul+WFrOW8jyoq77yaCgokJApcdGV4dHvlgqjlrZjml7bpl7TvvIjlpKnvvIl9ID0gXGZyYWN7XHRleHR76IWQ6LSl5ZGo5pyffX17MTB9CiQkCgrljbPvvJrohZDotKXlkajmnJ/pmaTku6UgMTAg5bCx5piv6K+l6aOf54mp5Y+v5YKo5a2Y55qE5ri45oiP5aSp5pWw77yIMSDmuLjmiI/lpKkgPSAyMCDnjrDlrp7liIbpkp/vvInjgIIKCiMjIyDohZDotKXliKTlrprpgLvovpEKCioq6IWQ6LSl55qE5qC45b+D6YC76L6RKirvvJrmr4/kuKrpo5/nianmlrnlnZfmnInkuIDkuKoi6IWQ6LSl5ZGo5pyfIuaVsOWAvOOAgua4uOaIj+avjyAxIOWIhumSn+ajgOafpeS4gOasoe+8jOWmguaenOajgOafpeasoeaVsOiDveiiq+iFkOi0peWRqOacn+aVtOmZpO+8jOmjn+eJqeWwseWQkeiFkOi0pei/iOi/m+S4gOS4qumYtuauteOAgue7j+i/h+S4pOS4qumYtuauteWQju+8jOmjn+eJqeWujOWFqOiFkOeDgu+8jOi9rOS4uuWvueW6lOeahOiFkOeDguaWueWdl+OAggoKIyMjIOWQhOmjn+eJqeiFkOi0peaVsOaNrgoK5Lul5LiL5pWw5o2u5oyJ6buY6K6k6IWQ6LSl5ZGo5pyf5a2X5q615o6S5YiX77yaCgp8IOmjn+eJqSB8IOiQpeWFu+WAvCAgfCDpo5/niannsbvlnosgfCDohZDotKXlkajmnJ8gfCDlgqjlrZjml7bpl7QgfCDnjrDlrp7ml7bpl7QgfCDnlr7nl4XmpoLnjocgfAp8LS0tLS0tfC0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tfAp8ICoq55Sf6bG86IKJKiogfCAyLjUgfCDpsbwgfCAyMCB8IDLlpKkgfCA0MCDliIbpkp8gfCAyNSUgfAp8ICoq55Sf56a96IKJKiogfCAyIHwg6IKJIHwgMzAgfCAz5aSpIHwgNjAg5YiG6ZKfIHwgMjUlIHwKfCAqKueUn+iCiSoqIHwgMyB8IOiCiSB8IDMwIHwgM+WkqSB8IDYwIOWIhumSnyB8IDI1JSB8CnwgKirnlJ/pnaLlm6IqKiB8IDAgfCDigJQgfCAzMCB8IDPlpKkgfCA2MCDliIbpkp8gfCAwJSB8CnwgKirljZfnk5wqKiB8IDEuNSB8IOawtOaenCB8IDgwIHwgOOWkqSB8IDIg5bCP5pe2IDQwIOWIhumSnyB8IDAlIHwKfCAqKueJm+WltuahtioqIHwgMS41IHwg4oCUIHwgODAgfCA45aSpIHwgMiDlsI/ml7YgNDAg5YiG6ZKfIHwgMCUgfAp8ICoq5Y2X55Oc5rGk5qG2KiogfCAyLjUgfCDigJQgfCA4MCB8IDjlpKkgfCAyIOWwj+aXtiA0MCDliIbpkp8gfCAwJSB8CnwgKirnhp/psbzogokqKiB8IDcgfCDpsbwgfCAxNTAgfCAxNeWkqSB8IDUg5bCP5pe2IHwgMCUgfAp8ICoq54af56a96IKJKiogfCA1IHwg6IKJIHwgMTUwIHwgMTXlpKkgfCA1IOWwj+aXtiB8IDAlIHwKfCAqKueGn+iCiSoqIHwgOCB8IOiCiSB8IDE1MCB8IDE15aSpIHwgNSDlsI/ml7YgfCAwJSB8CnwgKirpnaLljIUqKiB8IDUgfCDpnaLljIUgfCAyMDAgfCAyMOWkqSB8IDYg5bCP5pe2IDQwIOWIhumSnyB8IDAlIHwKfCAqKua1t+iDhioqIHwgMC41IHwg6bG8IHwg5LiN6IWQ6LSlIHwg4oCUIHwg4oCUIHwgMjUlIHwKCgo+ICoq6KeE5b6LKirvvJrnlJ/ogonohZDotKXmnoHlv6vvvIgyLTPlpKnvvInvvIzng7npparlkI7lu7bplb/oh7MxNeWkqeOAgumdouWMheacgOiAkOWCqOWtmO+8iDIw5aSp77yJ44CC5rW36IOG5LiN5Lya6IWQ6LSl5L2G6JCl5YW75p6B5L2O5LiU5pyJIDI1JSDnlr7nl4XmpoLnjofjgILom4vnsbvpo5/nianlm6DpuJ/nsbvnp43nsbvkuI3lkIzokKXlhbvlgLzlkITlvILvvIzor6bop4HkuIvmlrlb6JuL57G76aOf54mpXSgj6JuL57G76aOf54mpKeS4k+iKguOAggoKIyMjIOibi+exu+mjn+eJqQoK5ri45oiP5Lit5YWx5pyJICoqNyDnp43lj6/po5/nlKjom4sqKu+8jOadpeiHquS4jeWQjOm4n+exu++8jOWIhueUn+ibi+WSjOeGn+ibi+S4pOenjeeKtuaAgeOAguibi+eahOiQpeWFu+WAvOWboOm4n+exu+S9k+Wei+iAjOW8guKAlOKAlOS9k+Wei+i2iuWkp+iQpeWFu+i2iumrmOOAgueDuemlquWQjuiQpeWFu+WAvOWPmOS4uiAqKjEuNSDlgI0qKu+8jOS4lOeWvueXheamgueOh+S7jiAxMCUg6ZmN5Li6IDAl44CC5omA5pyJ5Y+v6aOf55So6JuL55qE6IWQ6LSl5ZGo5pyf55u45ZCM77yIMTIw77yM5YKo5a2YIDEyIOWkqe+8ieOAggoKfCDom4vnsbvlnosgfCDmnaXmupDnlJ/niakgfCDokKXlhbvlgLwo55SfKSB8IOeWvueXhSjnlJ8pIHwg6JCl5YW75YC8KOeGnykgfCDnlr7nl4Uo54afKSB8IOiFkOi0peWRqOacnyB8IOWCqOWtmOaXtumXtCB8IOeOsOWunuaXtumXtCB8CnwtLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tfAp8ICoq6bi16bif6JuLKiogfCDpuLXpuJ8gfCAwLjQwIHwgMTAlIHwgNiB8IDAlIHwgMTIwIHwgMTLlpKkgfCA0IOWwj+aXtiB8CnwgKirpo5/ngavpuKHom4sqKiB8IOmjn+eBq+m4oSB8IDAuNDAgfCAxMCUgfCA2IHwgMCUgfCAxMjAgfCAxMuWkqSB8IDQg5bCP5pe2IHwKfCAqKua1t+m4peibiyoqIHwg5rW36bilIHwgMC4yMCB8IDEwJSB8IDMgfCAwJSB8IDEyMCB8IDEy5aSpIHwgNCDlsI/ml7YgfAp8ICoq6bit6JuLKiogfCDpuK3lrZAgfCAwLjIwIHwgMTAlIHwgMyB8IDAlIHwgMTIwIHwgMTLlpKkgfCA0IOWwj+aXtiB8CnwgKirmuKHpuKbom4sqKiB8IOa4oem4piB8IDAuMjAgfCAxMCUgfCAzIHwgMCUgfCAxMjAgfCAxMuWkqSB8IDQg5bCP5pe2IHwKfCAqKum4veWtkOibiyoqIHwg6bi95a2QIHwgMC4xMCB8IDEwJSB8IDEuNSB8IDAlIHwgMTIwIHwgMTLlpKkgfCA0IOWwj+aXtiB8CnwgKirpurvpm4Dom4sqKiB8IOm6u+mbgCB8IDAuMDUgfCAxMCUgfCAwLjc1IHwgMCUgfCAxMjAgfCAxMuWkqSB8IDQg5bCP5pe2IHwKCj4gLSAqKueDuemlqumFjeaWuSoq77ya55Sf6JuLICsg5rC05qG2IOKGkiDnhp/om4vvvIjpnIDopoHng63mupDvvInjgILng7npparlkI7okKXlhbvlgLwgw5cgMS4177yM55a+55eF5qaC546H6ZmN5Li6IDAl44CC6YWN5pa56YCC55So5LqO5omA5pyJ6JCl5YW75YC8ID4gMCDnmoTom4vjgIIKPiAtICoq55a+55eF5qaC546HKirvvJrmiYDmnInnlJ/om4vlnYfmnIkgMTAlIOeWvueXheamgueOh++8jOeGn+ibi+WImeWujOWFqOaXoOmjjumZqeOAggo+IC0gKirkvZPlnovotorlpKfokKXlhbvotorpq5gqKu+8mum4tem4n+ibi+WSjOmjn+eBq+m4oeibi+iQpeWFu+WAvOacgOmrmO+8iOeUnyA0IOagvCAvIOeGnyA2IOagvO+8ie+8jOm6u+mbgOibi+acgOS9ju+8iOeUnyAwLjUg5qC8IC8g54afIDAuNzUg5qC877yJ44CCCj4gLSAqKuiFkOi0pSoq77ya5Y+q5pyJ5Y+v6aOf55So6JuL5omN5Lya6IWQ6LSl77yM6IWQ6LSl5ZCO57uf5LiA5Y+Y5Li66IWQ54OC6bih6JuL77yI6KeB5LiL5pa56IWQ54OC6aOf54mp6KGo77yJ77yM5peg6K665Y6f6JuL57G75Z6L44CCCj4gLSAqKuWtteWMlioq77ya55Sf6JuL5oqV5o635Ye75Lit5Zyw6Z2i5Y+v5a215YyW5Li65a+55bqU6bif57G744CC55Sf5a2Y5qih5byP5LiL77yM55Sf54mp6Ieq54S25Lqn5LiL55qE6JuL5LuFIDE1JSDlrbXljJbvvIzliJvpgKDmqKHlvI/ojrflj5bnmoTom4sgMTAwJSDlrbXljJbjgILnhp/om4vkuI3lj6/lrbXljJbjgIIKPiAtICoq5LiN5Y+v6aOf55So6JuLKirvvJrmuLjmiI/kuK3ov5jmnIkgNDMg56eN5LiN5Y+v6aOf55So6JuL77yI6JCl5YW75YC8ID0gMO+8ie+8jOadpeiHquWTuuS5s+WKqOeJqe+8iOeJm+OAgeeLvOOAgeeGiuOAgemprOOAgeiZjuOAgeeLruetiSAzMiDnp43vvInlkozpsbznsbsv5rC055Sf5Yqo54mp77yI6bKI6bG844CB6bKo6bG844CB6aOf5Lq66bG844CB6JmO6bK4562JIDExIOenje+8ie+8jOS7heeUqOS6juaKleaOt+eUn+aIkOWvueW6lOeUn+eJqe+8jOS4jeS8muiFkOi0peOAggoKIyMjIOa1t+iDhgoK5rW36IOG5piv5LiA56eN5Y+v55u05o6l6YeH6ZuG55qE5rW35rSL55Sf54mp77yMKirkuI3kvJrohZDotKUqKu+8jOS9huiQpeWFu+aegeS9ju+8iDAuNSDmoLzvvInkuJTmnIkgMjUlIOeWvueXheamgueOh+OAggoKfCDlsZ7mgKcgfCDlgLwgfCDor7TmmI4gfAp8LS0tLS0tfC0tLS0tfC0tLS0tLXwKfCDokKXlhbvlgLwgfCAwLjUgfCDmnoHkvY4gfAp8IOeWvueXheamgueOhyB8IDI1JSB8IOi+g+mrmOmjjumZqSB8Cnwg6aOf54mp57G75Z6LIHwg6bG8IHwg5b2x5ZON5Yqo54mp6L+b6aOf5YGP5aW9IHwKfCDohZDotKUgfCDkuI3kvJrohZDotKUgfCDml6DohZDotKXlkajmnJ8gfAp8IOmHh+mbhuaWueW8jyB8IOebtOaOpemHh+mbhiB8IOW+kuaJi+WNs+WPryB8Cnwg5pyA5aSn5aCG5Y+gIHwgNDAgfCB8Cnwg6aKc6Imy5Y+Y5L2TIHwgNCDnp40gfCDmt7Hpu5HjgIHmmpfnuqLjgIHmt7HnuqLjgIHmt7Hok50gfAp8IOeisOaSnuS8pOWusyB8IOaciSB8IOeisOWIsOa1t+iDhuS8muWPl+WIsOWwluWIuuS8pOWusyB8Cgo+IC0gKirlsJbliLrkvKTlrrMqKu+8mueisOWIsOa1t+iDhuS8muWPl+WIsCBgMC4xIC8g5bCW5Yi65oqX5oCnIMOXIOmAn+W6pmAg55qE5Lyk5a6z77yM6YCf5bqm6LaK5b+r5Lyk5a6z6LaK6auY44CC5q275Lqh5Y6f5Zug5pi+56S65Li6Iua1t+a0i+eUn+eJqSLjgIIKPiAtICoq55Sf5a2Y546v5aKDKirvvJrmtbfog4blj6rog73nlJ/mtLvlnKjmsLTkuK3vvIznprvlvIDmsLTkvJrooqvplIDmr4HjgILlroPpgJrov4flupXlkLjooYzkuLrlkLjpmYTlnKjlm7rkvZPmlrnlnZfooajpnaLvvIg2IOS4quaWueWQkeWdh+WPr++8ieOAggoKIyMjIOiFkOeDgumjn+eJqeaVsOaNrgoKfCDohZDng4Lpo5/niakgfCDokKXlhbvlgLwgfCDnlr7nl4XmpoLnjocgfCDohZDotKXlkajmnJ8gfCDor7TmmI4gfAp8LS0tLS0tLS0tLXwtLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tfAp8IOiFkOeDguWNl+eTnCB8IDEgfCA3NSUgfCAxNjAgfCDokKXlhbvpmY3kvY7vvIzpq5jpo47pmakgfAp8IOiFkOeDgumdouWboiB8IDAgfCAwJSB8IDEyMCB8IOS4jeiDveWQg++8jOS8mue7p+e7reiFkOWdjyB8Cnwg6IWQ54OC6Z2i5YyFIHwgMiB8IDc1JSB8IDEyMCB8IOS7jeWPr+e7p+e7reiFkOWdjyB8Cnwg6IWQ54OC56a96IKJIHwgMiB8IDc1JSB8IDEyMCB8IOS7jeWPr+e7p+e7reiFkOWdjyB8Cnwg6IWQ54OC6IKJIHwgMiAgNzUlIHwgMTIwIHwg5LuN5Y+v57un57ut6IWQ5Z2PIHwKfCDohZDng4LpsbzogokgfCAyIHwgNzUlIHwgMTIwIHwg5LuN5Y+v57un57ut6IWQ5Z2PIHwKfCDohZDng4LniZvlpbbmobYgfCAwLjUgfCA3NSUgfCDigJQgfCDokKXlhbvmnoHkvY4gfAp8IOiFkOeDgum4oeibiyB8IDEgfCA3NSUgfCDigJQgfCDmiYDmnInom4vnsbvohZDotKXlkI7nmoTnu5/kuIDkuqfniakgfAp8IOiFkOeDguWNl+eTnOaxpOahtiB8IDEgfCA3NSUgfCDigJQgfCDmnIDnu4johZDlnY/pmLbmrrUgfAoKPiDohZDng4Lpo5/niannu5/kuIDmnIkgNzUlIOeahOeWvueXheamgueOh++8jOiQpeWFu+WAvOWkp+W5hemZjeS9juiHsyAwLjV+MiDmoLzjgILlpJrmlbDohZDng4Lpo5/nianku43mnInohZDotKXlkajmnJ/vvIzkvJrnu6fnu63ohZDlnY/mnIDnu4jlj5jmiJAqKuaWveiCpeeahOiAleWcsCoq44CCCgoKIyMg5YaZ57uZ5byA5Y+R6ICFCgo6OjogaW5mbyDotYTmlpnmmoLlrZgK5pys5bCP6IqC5YaF5a655pqC5pe25a2Y5pS+5LqO5q2k77yM5ZCO57ut5Lya56e75Yqo6Iez4oCcTU9E5byA5Y+R4oCd56ug6IqC44CCCjo6OgoKIyMjIOiFkOi0peezu+e7n+aetuaehAoKKirmoLjlv4Pmlofku7YqKu+8mmBTdXJ2aXZhbGNyYWZ0L1N1YnN5c3RlbS9CbG9ja0JlaGF2aW9yL1N1YnN5c3RlbVJvdEJsb2NrQmVoYXZpb3IuY3NgCgror6Xnsbvnu6fmib/oh6ogYFN1YnN5c3RlbVBvbGxhYmxlQmxvY2tCZWhhdmlvcmDvvIzlrp7njrDkuoYgYE9uUG9sbGAg5ZKMIGBJdGVtc1NjYW5uZWRgIOS4pOS4quWFs+mUruaWueazle+8mgoKLSBgT25Qb2xsKGludCB2YWx1ZSwgaW50IHgsIGludCB5LCBpbnQgeiwgaW50IHBvbGxQYXNzKWDvvJrlpITnkIbmlL7nva7lnKjkuJbnlYzkuK3nmoTpo5/nianmlrnlnZfohZDotKUKLSBgSXRlbXNTY2FubmVkKFJlYWRPbmx5TGlzdDxTY2FubmVkSXRlbURhdGE+IGl0ZW1zKWDvvJrlpITnkIbog4zljIUv5a655Zmo5Lit55qE6aOf54mp6IWQ6LSl77yI6YCa6L+HIGBJdGVtc1NjYW5uZXJgIOezu+e7n++8iQoKKirohZDotKXnirbmgIHlrZjlgqgqKu+8muWIqeeUqCBCbG9jayDnmoQgRGFtYWdlIOWtl+aute+8iGBHZXREYW1hZ2VgL2BTZXREYW1hZ2Vg77yJ5a2Y5YKo6IWQ6LSl6L+b5bqm77yM6ICM6Z2e5Y+m5bu65pWw5o2u44CCRGFtYWdlPTAg6KGo56S65paw6bKc77yMRGFtYWdlPTEg6KGo56S65byA5aeL5Y+Y6LSo77yMRGFtYWdlPjEg6Kem5Y+RIGBHZXREYW1hZ2VEZXN0cnVjdGlvblZhbHVlYCDovazkuLrohZDng4LmlrnlnZfjgIIKCioq5YWz6ZSu5bi46YePKirvvJoKYGBgY3NoYXJwCnB1YmxpYyBjb25zdCBpbnQgTWF4Um90ID0gMTsgICAgICAgICAgIC8vIOacgOWkp+iFkOi0pemYtuaute+8iERhbWFnZeacgOWkp+WAvO+8iQpwdWJsaWMgY29uc3QgZmxvYXQgbV9yb3RQZXJpb2QgPSA2MGY7ICAvLyDova7or6Lpl7TpmpTvvIjmuLjmiI/ml7bpl7TljZXkvY3vvIkKYGBgCgojIyMg6aOf54mp5pa55Z2X5Z+657G75pa55rOVCgrlnKggYEJsb2NrLmNzYCDkuK3lrprkuYnnmoTpo5/niannm7jlhbPomZrmlrnms5XvvJoKCmBgYGNzaGFycApwdWJsaWMgdmlydHVhbCBpbnQgR2V0Um90UGVyaW9kKGludCB2YWx1ZSkgPT4gRGVmYXVsdFJvdFBlcmlvZDsKcHVibGljIHZpcnR1YWwgZmxvYXQgR2V0TnV0cml0aW9uYWxWYWx1ZShpbnQgdmFsdWUpID0+IERlZmF1bHROdXRyaXRpb25hbFZhbHVlOwpwdWJsaWMgdmlydHVhbCBmbG9hdCBHZXRTaWNrbmVzc1Byb2JhYmlsaXR5KGludCB2YWx1ZSkgPT4gRGVmYXVsdFNpY2tuZXNzUHJvYmFiaWxpdHk7CnB1YmxpYyB2aXJ0dWFsIEZvb2RUeXBlIEdldEZvb2RUeXBlKGludCB2YWx1ZSkgPT4gRm9vZFR5cGU7CnB1YmxpYyB2aXJ0dWFsIGludCBHZXREYW1hZ2UoaW50IHZhbHVlKSA9PiBUZXJyYWluLkV4dHJhY3REYW1hZ2UodmFsdWUpOwpwdWJsaWMgdmlydHVhbCBpbnQgR2V0RGFtYWdlRGVzdHJ1Y3Rpb25WYWx1ZShpbnQgdmFsdWUpID0+IDA7ICAvLyDpnIDph43lhpnov5Tlm57ohZDng4LmlrnlnZcKYGBgCgrmqKHnu4TlvIDlj5HogIXlj6/pgJrov4fph43lhpkgYEdldFJvdFBlcmlvZGAg6Ieq5a6a5LmJ6IWQ6LSl6KGM5Li644CC5L6L5aaCIGBCYXNlUHVtcGtpbkJsb2NrYCDkuK3vvIzlj6rmnInmrbvkuqHnmoTljZfnk5zmiY3kvJrohZDotKXvvJoKCmBgYGNzaGFycApwdWJsaWMgb3ZlcnJpZGUgaW50IEdldFJvdFBlcmlvZChpbnQgdmFsdWUpIHsKICAgIGlmICghR2V0SXNEZWFkKFRlcnJhaW4uRXh0cmFjdERhdGEodmFsdWUpKSkgcmV0dXJuIDA7ICAvLyDmtLvljZfnk5zkuI3ohZDotKUKICAgIHJldHVybiBiYXNlLkdldFJvdFBlcmlvZCh2YWx1ZSk7Cn0KYGBgCgojIyMg5YWz6ZSu5rWB56iL5oC757uTCgoqKuiFkOi0pea1geeoiyoq77yaCmBgYArmlL7nva4v55Sf5oiQ6aOf54mpIOKGkiBPblBvbGzova7or6IocG9sbFBhc3MgJSBSb3RQZXJpb2QgPT0gMCkg4oaSIERhbWFnZSsxIOKGkiAKRGFtYWdlID4gTWF4Um90KDEpIOKGkiBHZXREYW1hZ2VEZXN0cnVjdGlvblZhbHVlIOKGkiDovazkuLrohZDng4LmlrnlnZcg4oaSIArnu6fnu63ohZDlnY8g4oaSIOacgOe7iOi9rOS4uuWghuiCpQpgYGAK
