class Rotation;
class CfgSkeletons
{
class Car;
class Dingo : Car
{
isDiscrete = 1;
skeletonInherit = "Car";
skeletonBones[] =
{
"drivewheel", "",
"wheel_1_1_damper_land","",
"wheel_1_2_damper_land","",
"wheel_1_3_damper_land","",
"wheel_1_4_damper_land","",
"wheel_2_1_damper_land","",
"wheel_2_2_damper_land","",
"wheel_2_3_damper_land","",
"wheel_2_4_damper_land","",
"wheel_1_1_damper","wheel_1_1_damper_land",
"wheel_1_2_damper","wheel_1_2_damper_land",
"wheel_1_3_damper","wheel_1_3_damper_land",
"wheel_1_4_damper","wheel_1_4_damper_land",
"wheel_2_1_damper","wheel_2_1_damper_land",
"wheel_2_2_damper","wheel_2_2_damper_land",
"wheel_2_3_damper","wheel_2_3_damper_land",
"wheel_2_4_damper","wheel_2_4_damper_land",
"wheel_1_1_steering","wheel_1_1_damper",
"wheel_1_2_steering","wheel_1_2_damper",
"wheel_1_3_steering","wheel_1_3_damper",
"wheel_1_4_steering","wheel_1_4_damper",
"wheel_2_1_steering","wheel_2_1_damper",
"wheel_2_2_steering","wheel_2_2_damper",
"wheel_2_3_steering","wheel_2_3_damper",
"wheel_2_4_steering","wheel_2_4_damper",
"wheel_1_1","wheel_1_1_steering",
"wheel_1_2","wheel_1_2_steering",
"wheel_1_3","wheel_1_3_steering",
"wheel_1_4","wheel_1_4_steering",
"wheel_2_1","wheel_2_1_steering",
"wheel_2_2","wheel_2_2_steering",
"wheel_2_3","wheel_2_3_steering",
"wheel_2_4","wheel_2_4_steering",
"wheel_1_1_unhide","wheel_1_1",
"wheel_1_2_unhide","wheel_1_2",
"wheel_1_3_unhide","wheel_1_3",
"wheel_1_4_unhide","wheel_1_4",
"wheel_2_1_unhide","wheel_2_1",
"wheel_2_2_unhide","wheel_2_2",
"wheel_2_3_unhide","wheel_2_3",
"wheel_2_4_unhide","wheel_2_4",
"wheel_1_1_hide","wheel_1_1",
"wheel_1_2_hide","wheel_1_2",
"wheel_1_3_hide","wheel_1_3",
"wheel_1_4_hide","wheel_1_4",
"wheel_2_1_hide","wheel_2_1",
"wheel_2_2_hide","wheel_2_2",
"wheel_2_3_hide","wheel_2_3",
"wheel_2_4_hide","wheel_2_4",
"OtocVez","",
"OtocHlaven","OtocVez",
"damageHide","",
"damageVez","OtocVez",
"damageHlaven","OtocHlaven",
"ukaz_rychlo","",
"ukaz_rychlo2","",
"ukaz_rpm","",
"mph","",
"rpm","",
"fuel","",
"fuel_1","",
"fuel_01","",
"fuel_2","",
"fuel_3","",
"prop_01","",
"prop_02","",
"prop_2","",
"prop_1","",
"glass1","damageHide",
"glass2","damageHide",
"glass3","damageHide",
"glass4","damageHide",
"reverse_light","",
"daylights","damageHide",
"door1","",
"door2","",
"glass5","damageHide"
};
};
};
class CfgModels
{
class Car;
class Animations;
class Dingo2A2 : Car
{
skeletonName = "Dingo";
sectionsInherit = "Car";
sections[] =
{
"camo1",
"camo2",
"camo3",
"brzdove svetlo",
"clan",
"P svetlo",
"L svetlo",
"glass1",
"glass2",
"glass3",
"glass4",
"glass5",
"cislo",
"grupa",
"side",
"sektor",
"clan",
"clan_sign",
"podsvit pristroju",
"poskozeni",
"L svetlo",
"P svetlo",
"zasleh"
};
class Animations : Animations
{
class damageHide
{
type = "hide";
source = "damage";
selection = "damageHide";
hideValue = 1.0;
};
class damageHideVez : damageHide
{
selection = "OtocVez";
};
class damageHideHlaven : damageHide
{
selection = "OtocHlaven";
};
class wheel_1_1_destruct
{
type="hide";
selection="wheel_1_1_hide";
source="HitLFWheel";
minValue = 0; // upravit na 0.99
maxValue = 1; // upravit na 1.0
hidevalue = 0.99999;
};
/*class wheel_1_2_destruct : wheel_1_1_destruct
{
source="HitLBWheel";
selection="wheel_1_2_hide";
};
class wheel_1_3_destruct : wheel_1_1_destruct
{
source="HitLMWheel";
selection="wheel_1_3_hide";
};
class wheel_1_4_destruct : wheel_1_1_destruct
{
source="HitLF2Wheel";
selection="wheel_1_4_hide";
};
class wheel_2_1_destruct : wheel_1_1_destruct
{
source="HitRFWheel";
selection="wheel_2_1_hide";
};
class wheel_2_2_destruct : wheel_1_1_destruct
{
source="HitRBWheel";
selection="wheel_2_2_hide";
};
class wheel_2_3_destruct : wheel_1_1_destruct
{
source="HitRMWheel";
selection="wheel_2_3_hide";
};
class wheel_2_4_destruct : wheel_1_1_destruct
{
source="HitRF2Wheel";
selection="wheel_2_4_hide";
};
class wheel_1_1_destruct_unhide
{
type="hide";
selection="wheel_1_1_unhide";
source="HitLFWheel";
minValue = 0;
maxValue = 1;
hidevalue = 0.00000;
UnHidevalue = 1.00000;
};
class wheel_1_2_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitLBWheel";
selection="wheel_1_2_unhide";
};
class wheel_1_3_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitLMWheel";
selection="wheel_1_3_unhide";
};
class wheel_1_4_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitLF2Wheel";
selection="wheel_1_4_unhide";
};
class wheel_2_1_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitRFWheel";
selection="wheel_2_1_unhide";
};
class wheel_2_2_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitRBWheel";
selection="wheel_2_2_unhide";
};
class wheel_2_3_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitRMWheel";
selection="wheel_2_3_unhide";
};
class wheel_2_4_destruct_unhide : wheel_1_1_destruct_unhide
{
source="HitRF2Wheel";
selection="wheel_2_4_unhide";
};*/
#define DamageOffset 0.2
class wheel_1_1_Damage : wheel_1_1_destruct
{
type = "translation";
axis = "Basic_Damper_Destruct_Axis";
memory = 1;
selection = "wheel_1_1_damper";
source = "HitLFWheel";
minValue = 0.0;
maxValue = 1;
offset0 = 0;
offset1 = DamageOffset;
};
class wheel_1_2_Damage : wheel_1_1_Damage
{
source="HitLBWheel";
selection="wheel_1_2_damper";
};
class wheel_1_3_Damage : wheel_1_1_Damage
{
source="HitLMWheel";
selection="wheel_1_3_damper";
};
class wheel_1_4_Damage : wheel_1_1_Damage
{
source="HitLF2Wheel";
selection="wheel_1_4_damper";
};
class wheel_2_1_Damage : wheel_1_1_Damage
{
source="HitRFWheel";
selection="wheel_2_1_damper";
};
class wheel_2_2_Damage : wheel_1_1_Damage
{
source="HitRBWheel";
selection="wheel_2_2_damper";
};
class wheel_2_3_Damage : wheel_1_1_Damage
{
source="HitRMWheel";
selection="wheel_2_3_damper";
};
class wheel_2_4_Damage : wheel_1_1_Damage
{
source="HitRF2Wheel";
selection="wheel_2_4_damper";
};
class wheel_1_1_Damper_Damage_BackAnim : wheel_1_1_Damage
{
selection="wheel_1_1_damper";
offset1 = -1.2*DamageOffset;
};
class wheel_1_2_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitLBWheel";
selection="wheel_1_2_damper";
};
class wheel_1_3_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitLMWheel";
selection="wheel_1_3_damper";
};
class wheel_1_4_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitLF2Wheel";
selection="wheel_1_4_damper";
};
class wheel_2_1_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitRFWheel";
selection="wheel_2_1_damper";
};
class wheel_2_2_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitRBWheel";
selection="wheel_2_2_damper";
};
class wheel_2_3_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitRMWheel";
selection="wheel_2_3_damper";
};
class wheel_2_4_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
source="HitRF2Wheel";
selection="wheel_2_4_damper";
};
/*class Glass1_destruct
{
type="hide";
selection="glass1";
source="HitGlass1";
minValue = 0;
maxValue = 1;
hidevalue = 0.99999;
};
class Glass2_destruct : Glass1_destruct
{
selection="glass2";
source="HitGlass2";
};
class Glass3_destruct : Glass1_destruct
{
selection="glass3";
source="HitGlass3";
};
class Glass4_destruct : Glass1_destruct
{
selection="glass4";
source="HitGlass4";
};
class Glass5_destruct : Glass1_destruct
{
selection="glass5";
source="HitGlass5";
};*/
class Fuel : Rotation
{
source="fuel";
selection="fuel";
axis="fuel_axis";
maxValue=1;
memory=1;
angle0="rad -110";
angle1=0;
};
class IndicatorSpeed : Rotation
{
source="speed";
selection="mph";
axis="mph_axis";
memory=1;
maxValue=38.900002;
angle1="rad -265";
};
class IndicatorFuel : Rotation
{
type="rotation";
source="fuel";
selection="fuel_1";
axis="fuel_1_axis";
memory=1;
minValue=0.000000;
maxValue=1.000000;
angle0=-0.087266;
angle1=-1.658063;
};
class IndicatorRPM : Rotation
{
source="rpm";
selection="rpm";
axis="rpm_axis";
memory=1;
angle1="rad 80";
};
class DrivingWheel : Rotation
{
source="drivingWheel";
selection="drivewheel";
axis="drivewheel_axis";
minValue=-1;
maxValue=1;
angle0=(rad 80);
angle1=(rad -80);
};
class Steering_1_1
{
type="rotationY";
source="drivingWheel";
selection="wheel_1_1_steering";
axis="wheel_1_1_steering_axis";
memory=1;
minValue= -1;
maxValue= 1;
angle0=1.047198;
angle1=-1.047198;
};
class Steering_2_1 : Steering_1_1
{
selection="wheel_2_1_steering";
axis="wheel_2_1_steering_axis";
};
class Wheel_1_1
{
type="rotationX";
source="wheel";
selection="wheel_1_1";
axis="wheel_1_1_axis";
memory=1;
sourceAddress="loop";
minValue=0;
maxValue=1;
angle0=0;
angle1="rad -360";
};
class wheel_2_1 : Wheel_1_1
{
selection="wheel_2_1";
axis="wheel_2_1_axis";
};
class wheel_1_2 : Wheel_1_1
{
selection="wheel_1_2";
axis="wheel_1_2_axis";
};
class wheel_1_3 : Wheel_1_1
{
selection="wheel_1_3";
axis="wheel_1_3_axis";
};
class Wheel_2_2 : Wheel_1_1
{
selection="wheel_2_2";
axis="wheel_2_2_axis";
};
class Wheel_2_3 : Wheel_1_1
{
selection="wheel_2_3";
axis="wheel_2_3_axis";
};
class Wheel_1_4 : Wheel_1_1
{
selection="wheel_1_4";
axis="wheel_1_4_axis";
};
class Wheel_2_4 : Wheel_1_1
{
selection="wheel_2_4";
axis="wheel_2_4_axis";
};
class Wheel_1_1_Damper
{
type="translation";
source="damper";
selection="wheel_1_1_damper_land";
axis="posun wheel_1_1";
animPeriod = 1;
minValue="0";
maxValue="1";
offset0= "0.5";
offset1= "-0.5";
memory=1;
};
class wheel_2_1_Damper : Wheel_1_1_Damper
{
selection="wheel_2_1_damper_land";
};
class wheel_1_2_Damper : Wheel_1_1_Damper
{
selection="wheel_1_2_damper_land";
};
class Wheel_2_2_Damper : Wheel_1_1_Damper
{
selection="wheel_2_2_damper_land";
};
class daylights
{
type="hide";
source="rpm";
selection="daylights";
minValue=-0.8;
maxValue=0.2;
unhidevalue=1;
sourceAddress="clamp";
};
class reverse_light
{
type="Hide";
selection="reverse_light";
sourceAddress="clamp";
source="Gear";
minValue = -1;
maxValue = 0;
hideValue = "0.2";
};
/*class wheel_1_1_Damage : wheel_1_1_Damage
{
offset1=0.18000001;
};
class wheel_1_2_Damage : wheel_1_2_Damage
{
offset1=0.18000001;
};
class wheel_2_1_Damage : wheel_2_1_Damage
{
offset1=0.18000001;
};
class wheel_2_2_Damage : wheel_2_2_Damage
{
offset1=0.18000001;
};
class wheel_1_1_Damper_Damage_BackAnim : wheel_1_1_Damper_Damage_BackAnim
{
offset1=-0.18000001;
};
class wheel_1_2_Damper_Damage_BackAnim : wheel_1_2_Damper_Damage_BackAnim
{
offset1=-0.18000001;
};
class wheel_2_1_Damper_Damage_BackAnim : wheel_2_1_Damper_Damage_BackAnim
{
offset1=-0.18000001;
};
class wheel_2_2_Damper_Damage_BackAnim : wheel_2_2_Damper_Damage_BackAnim
{
offset1=-0.18000001;
};*/
class DrivingWheel
{
type="rotation";
source="drivingWheel";
selection="drivewheel";
axis="drivewheel_axis";
memory=1;
minValue=-1;
maxValue=1;
angle0=(rad 70);
angle1=(rad -70);
};
class Steering_1_1
{
type="rotationY";
source="drivingWheel";
selection="wheel_1_1_steering";
axis="wheel_1_1_steering_axis";
memory=1;
minValue="rad -90";
maxValue="rad +90";
angle0=1.0471981;
angle1=-1.0471981;
};
class Steering_2_1 : Steering_1_1
{
selection="wheel_2_1_steering";
axis="wheel_2_1_steering_axis";
angle0=1.0471981;
angle1=-1.0471981;
};
class IndicatorSpeed : Rotation
{
source="speed";
selection="mph";
axis="mph_axis";
memory=1;
maxValue=28;
angle0=0.17453299;
angle1=-3.141593;
};
class IndicatorRPM : Rotation
{
type="rotation";
source="rpm";
selection="rpm";
axis="rpm_axis";
memory=1;
minValue=0;
maxValue=7500;
angle0=(rad 0);
angle1=(rad 250);
};
class fuel
{
type="rotation";
source="fuel";
selection="fuel";
axis="fuel_axis";
memory=1;
minValue=0;
maxValue=1;
angle0=0;
angle1="rad +55";
};
class prop_01
{
type="rotation";
source="rpm";
selection="prop_1";
axis="prop_1_axis";
memory=1;
minValue=1000;
maxValue=7000;
angle0="rad 30";
angle1="rad 35";
};
class daylights
{
type="hide";
source="rpm";
selection="daylights";
minValue=-0.8;
maxValue=0.2;
unhidevalue=1;
sourceAddress="clamp";
};
class reverse_light
{
type="Hide";
selection="reverse_light";
sourceAddress="clamp";
source="Gear";
minValue = -1;
maxValue = 0;
hideValue = "0.2";
};
/*class damageHidedoor1 : damageHide
{
selection="door1";
};
class damageHidedoor2 : damageHide
{
selection="door2";
};
class Glass5_destruct
{
type="hide";
selection="glass5";
source="HitGlass5";
minValue = 0;
maxValue = 1;
hidevalue = 0.99999;
};*/
class Wheel_1_1_Damper : Wheel_1_1_Damper
{
type="translation";
source="damper";
selection="wheel_1_1_damper_land";
axis="posun wheel_1_1";
animPeriod = 1;
minValue="0";
maxValue="1";
offset0= "0.5";
offset1= "-0.5";
memory=1;
};
class wheel_2_1_Damper : Wheel_1_1_Damper
{
selection="wheel_2_1_damper_land";
};
class wheel_1_2_Damper : Wheel_1_1_Damper
{
selection="wheel_1_2_damper_land";
};
class Wheel_2_2_Damper : Wheel_1_1_Damper
{
selection="wheel_2_2_damper_land";
};
};
};
};
Y2xhc3MgUm90YXRpb247CgpjbGFzcyBDZmdTa2VsZXRvbnMgIAp7ICAKICAgIGNsYXNzIENhcjsgCiAgICBjbGFzcyBEaW5nbyA6IENhciAgCiAgICB7ICAKICAgICAgICBpc0Rpc2NyZXRlID0gMTsgIAogICAgICAgIHNrZWxldG9uSW5oZXJpdCA9ICJDYXIiOyAgCiAgICAgICAgc2tlbGV0b25Cb25lc1tdID0gIAogICAgICAgIHsgCiAgICAgICAgICAgICJkcml2ZXdoZWVsIiwgIiIsICAKCiAgICAgICAgICAgICJ3aGVlbF8xXzFfZGFtcGVyX2xhbmQiLCIiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzJfZGFtcGVyX2xhbmQiLCIiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzNfZGFtcGVyX2xhbmQiLCIiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzRfZGFtcGVyX2xhbmQiLCIiLCAgCgogICAgICAgICAgICAid2hlZWxfMl8xX2RhbXBlcl9sYW5kIiwiIiwgIAogICAgICAgICAgICAid2hlZWxfMl8yX2RhbXBlcl9sYW5kIiwiIiwgIAogICAgICAgICAgICAid2hlZWxfMl8zX2RhbXBlcl9sYW5kIiwiIiwgIAogICAgICAgICAgICAid2hlZWxfMl80X2RhbXBlcl9sYW5kIiwiIiwgIAoKICAgICAgICAgICAgIndoZWVsXzFfMV9kYW1wZXIiLCJ3aGVlbF8xXzFfZGFtcGVyX2xhbmQiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzJfZGFtcGVyIiwid2hlZWxfMV8yX2RhbXBlcl9sYW5kIiwgIAogICAgICAgICAgICAid2hlZWxfMV8zX2RhbXBlciIsIndoZWVsXzFfM19kYW1wZXJfbGFuZCIsICAKICAgICAgICAgICAgIndoZWVsXzFfNF9kYW1wZXIiLCJ3aGVlbF8xXzRfZGFtcGVyX2xhbmQiLCAgCgogICAgICAgICAgICAid2hlZWxfMl8xX2RhbXBlciIsIndoZWVsXzJfMV9kYW1wZXJfbGFuZCIsICAKICAgICAgICAgICAgIndoZWVsXzJfMl9kYW1wZXIiLCJ3aGVlbF8yXzJfZGFtcGVyX2xhbmQiLCAgCiAgICAgICAgICAgICJ3aGVlbF8yXzNfZGFtcGVyIiwid2hlZWxfMl8zX2RhbXBlcl9sYW5kIiwgIAogICAgICAgICAgICAid2hlZWxfMl80X2RhbXBlciIsIndoZWVsXzJfNF9kYW1wZXJfbGFuZCIsICAKCiAgICAgICAgICAgICJ3aGVlbF8xXzFfc3RlZXJpbmciLCJ3aGVlbF8xXzFfZGFtcGVyIiwgIAogICAgICAgICAgICAid2hlZWxfMV8yX3N0ZWVyaW5nIiwid2hlZWxfMV8yX2RhbXBlciIsICAKICAgICAgICAgICAgIndoZWVsXzFfM19zdGVlcmluZyIsIndoZWVsXzFfM19kYW1wZXIiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzRfc3RlZXJpbmciLCJ3aGVlbF8xXzRfZGFtcGVyIiwgIAoKICAgICAgICAgICAgIndoZWVsXzJfMV9zdGVlcmluZyIsIndoZWVsXzJfMV9kYW1wZXIiLCAgCiAgICAgICAgICAgICJ3aGVlbF8yXzJfc3RlZXJpbmciLCJ3aGVlbF8yXzJfZGFtcGVyIiwgIAogICAgICAgICAgICAid2hlZWxfMl8zX3N0ZWVyaW5nIiwid2hlZWxfMl8zX2RhbXBlciIsICAKICAgICAgICAgICAgIndoZWVsXzJfNF9zdGVlcmluZyIsIndoZWVsXzJfNF9kYW1wZXIiLCAgCgogICAgICAgICAgICAid2hlZWxfMV8xIiwid2hlZWxfMV8xX3N0ZWVyaW5nIiwgIAogICAgICAgICAgICAid2hlZWxfMV8yIiwid2hlZWxfMV8yX3N0ZWVyaW5nIiwgIAogICAgICAgICAgICAid2hlZWxfMV8zIiwid2hlZWxfMV8zX3N0ZWVyaW5nIiwgIAogICAgICAgICAgICAid2hlZWxfMV80Iiwid2hlZWxfMV80X3N0ZWVyaW5nIiwgIAoKICAgICAgICAgICAgIndoZWVsXzJfMSIsIndoZWVsXzJfMV9zdGVlcmluZyIsICAKICAgICAgICAgICAgIndoZWVsXzJfMiIsIndoZWVsXzJfMl9zdGVlcmluZyIsICAKICAgICAgICAgICAgIndoZWVsXzJfMyIsIndoZWVsXzJfM19zdGVlcmluZyIsICAKICAgICAgICAgICAgIndoZWVsXzJfNCIsIndoZWVsXzJfNF9zdGVlcmluZyIsICAKCiAgICAgICAgICAgICJ3aGVlbF8xXzFfdW5oaWRlIiwid2hlZWxfMV8xIiwgIAogICAgICAgICAgICAid2hlZWxfMV8yX3VuaGlkZSIsIndoZWVsXzFfMiIsICAKICAgICAgICAgICAgIndoZWVsXzFfM191bmhpZGUiLCJ3aGVlbF8xXzMiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzRfdW5oaWRlIiwid2hlZWxfMV80IiwgIAoKICAgICAgICAgICAgIndoZWVsXzJfMV91bmhpZGUiLCJ3aGVlbF8yXzEiLCAgCiAgICAgICAgICAgICJ3aGVlbF8yXzJfdW5oaWRlIiwid2hlZWxfMl8yIiwgIAogICAgICAgICAgICAid2hlZWxfMl8zX3VuaGlkZSIsIndoZWVsXzJfMyIsICAKICAgICAgICAgICAgIndoZWVsXzJfNF91bmhpZGUiLCJ3aGVlbF8yXzQiLCAgCgogICAgICAgICAgICAid2hlZWxfMV8xX2hpZGUiLCJ3aGVlbF8xXzEiLCAgCiAgICAgICAgICAgICJ3aGVlbF8xXzJfaGlkZSIsIndoZWVsXzFfMiIsICAKICAgICAgICAgICAgIndoZWVsXzFfM19oaWRlIiwid2hlZWxfMV8zIiwgIAogICAgICAgICAgICAid2hlZWxfMV80X2hpZGUiLCJ3aGVlbF8xXzQiLCAgCgogICAgICAgICAgICAid2hlZWxfMl8xX2hpZGUiLCJ3aGVlbF8yXzEiLCAgCiAgICAgICAgICAgICJ3aGVlbF8yXzJfaGlkZSIsIndoZWVsXzJfMiIsICAKICAgICAgICAgICAgIndoZWVsXzJfM19oaWRlIiwid2hlZWxfMl8zIiwgIAogICAgICAgICAgICAid2hlZWxfMl80X2hpZGUiLCJ3aGVlbF8yXzQiLCAgCgogICAgICAgICAgICAiT3RvY1ZleiIsIiIsICAKICAgICAgICAgICAgIk90b2NIbGF2ZW4iLCJPdG9jVmV6IiwgIAoKICAgICAgICAgICAgImRhbWFnZUhpZGUiLCIiLCAgCiAgICAgICAgICAgICJkYW1hZ2VWZXoiLCJPdG9jVmV6IiwgIAogICAgICAgICAgICAiZGFtYWdlSGxhdmVuIiwiT3RvY0hsYXZlbiIsICAKCiAgICAgICAgICAgICJ1a2F6X3J5Y2hsbyIsIiIsICAKICAgICAgICAgICAgInVrYXpfcnljaGxvMiIsIiIsICAKICAgICAgICAgICAgInVrYXpfcnBtIiwiIiwgIAogICAgICAgICAgICAibXBoIiwiIiwgIAogICAgICAgICAgICAicnBtIiwiIiwgIAogICAgICAgICAgICAiZnVlbCIsIiIsICAKICAgICAgICAgICAgImZ1ZWxfMSIsIiIsICAKICAgICAgICAgICAgImZ1ZWxfMDEiLCIiLCAgCiAgICAgICAgICAgICJmdWVsXzIiLCIiLCAgCiAgICAgICAgICAgICJmdWVsXzMiLCIiLCAgCiAgICAgICAgICAgICJwcm9wXzAxIiwiIiwgIAogICAgICAgICAgICAicHJvcF8wMiIsIiIsICAKICAgICAgICAgICAgInByb3BfMiIsIiIsICAKICAgICAgICAgICAgInByb3BfMSIsIiIsICAKICAgICAgICAgICAgImdsYXNzMSIsImRhbWFnZUhpZGUiLCAgCiAgICAgICAgICAgICJnbGFzczIiLCJkYW1hZ2VIaWRlIiwgIAogICAgICAgICAgICAiZ2xhc3MzIiwiZGFtYWdlSGlkZSIsICAKICAgICAgICAgICAgImdsYXNzNCIsImRhbWFnZUhpZGUiLCAgCiAgICAgICAgICAgICJyZXZlcnNlX2xpZ2h0IiwiIiwgIAogICAgICAgICAgICAiZGF5bGlnaHRzIiwiZGFtYWdlSGlkZSIsICAKICAgICAgICAgICAgImRvb3IxIiwiIiwgIAogICAgICAgICAgICAiZG9vcjIiLCIiLCAgCiAgICAgICAgICAgICJnbGFzczUiLCJkYW1hZ2VIaWRlIiAKICAgICAgICB9OyAgCiAgICB9OyAgCn07ICAKCmNsYXNzIENmZ01vZGVscyAgCnsgCiAgICBjbGFzcyBDYXI7CiAgICBjbGFzcyBBbmltYXRpb25zOwoKICAgIGNsYXNzIERpbmdvMkEyIDogQ2FyICAKICAgIHsgIAogICAgICAgIHNrZWxldG9uTmFtZSA9ICJEaW5nbyI7CiAgICAgICAgc2VjdGlvbnNJbmhlcml0ID0gIkNhciI7CiAgICAgICAgc2VjdGlvbnNbXSA9CiAgICAgICAgewogICAgICAgICAgICAiY2FtbzEiLAogICAgICAgICAgICAiY2FtbzIiLAogICAgICAgICAgICAiY2FtbzMiLAogICAgICAgICAgICAiYnJ6ZG92ZSBzdmV0bG8iLAogICAgICAgICAgICAiY2xhbiIsCiAgICAgICAgICAgICJQIHN2ZXRsbyIsCiAgICAgICAgICAgICJMIHN2ZXRsbyIsCiAgICAgICAgICAgICJnbGFzczEiLAogICAgICAgICAgICAiZ2xhc3MyIiwKICAgICAgICAgICAgImdsYXNzMyIsCiAgICAgICAgICAgICJnbGFzczQiLAogICAgICAgICAgICAiZ2xhc3M1IiwKICAgICAgICAgICAgImNpc2xvIiwKICAgICAgICAgICAgImdydXBhIiwKICAgICAgICAgICAgInNpZGUiLAogICAgICAgICAgICAic2VrdG9yIiwKICAgICAgICAgICAgImNsYW4iLAogICAgICAgICAgICAiY2xhbl9zaWduIiwKICAgICAgICAgICAgInBvZHN2aXQgcHJpc3Ryb2p1IiwKICAgICAgICAgICAgInBvc2tvemVuaSIsCiAgICAgICAgICAgICJMIHN2ZXRsbyIsCiAgICAgICAgICAgICJQIHN2ZXRsbyIsCiAgICAgICAgICAgICJ6YXNsZWgiCiAgICAgICAgfTsgIAoKICAgICAgICBjbGFzcyBBbmltYXRpb25zIDogQW5pbWF0aW9ucwogICAgICAgIHsgIAogICAgICAgICAgICBjbGFzcyBkYW1hZ2VIaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICB0eXBlID0gImhpZGUiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2UgPSAiZGFtYWdlIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gImRhbWFnZUhpZGUiOyAgCiAgICAgICAgICAgICAgICBoaWRlVmFsdWUgPSAxLjA7ICAKICAgICAgICAgICAgfTsgIAoKICAgICAgICAgICAgY2xhc3MgZGFtYWdlSGlkZVZleiA6IGRhbWFnZUhpZGUgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9ICJPdG9jVmV6IjsgIAogICAgICAgICAgICB9OyAgCgogICAgICAgICAgICBjbGFzcyBkYW1hZ2VIaWRlSGxhdmVuIDogZGFtYWdlSGlkZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gIk90b2NIbGF2ZW4iOyAgCiAgICAgICAgICAgIH07CgogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzFfZGVzdHJ1Y3QgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHR5cGU9ImhpZGUiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMV9oaWRlIjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRMRldoZWVsIjsgIAogICAgICAgICAgICAgICAgbWluVmFsdWUgPSAwOyAvLyB1cHJhdml0IG5hIDAuOTkgIAogICAgICAgICAgICAgICAgbWF4VmFsdWUgPSAxOyAvLyB1cHJhdml0IG5hIDEuMCAgCiAgICAgICAgICAgICAgICBoaWRldmFsdWUgPSAwLjk5OTk5OyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgLypjbGFzcyB3aGVlbF8xXzJfZGVzdHJ1Y3QgOiB3aGVlbF8xXzFfZGVzdHJ1Y3QgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0TEJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV8yX2hpZGUiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV8zX2Rlc3RydWN0IDogd2hlZWxfMV8xX2Rlc3RydWN0ICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdExNV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfM19oaWRlIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfNF9kZXN0cnVjdCA6IHdoZWVsXzFfMV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRMRjJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV80X2hpZGUiOyAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfMV9kZXN0cnVjdCA6IHdoZWVsXzFfMV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSRldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzFfaGlkZSI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzJfZGVzdHJ1Y3QgOiB3aGVlbF8xXzFfZGVzdHJ1Y3QgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0UkJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8yX2hpZGUiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8zX2Rlc3RydWN0IDogd2hlZWxfMV8xX2Rlc3RydWN0ICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJNV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfM19oaWRlIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfNF9kZXN0cnVjdCA6IHdoZWVsXzFfMV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSRjJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl80X2hpZGUiOyAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMV9kZXN0cnVjdF91bmhpZGUgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHR5cGU9ImhpZGUiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMV91bmhpZGUiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdExGV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IDA7ICAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IDE7ICAgCiAgICAgICAgICAgICAgICBoaWRldmFsdWUgPSAwLjAwMDAwOyAgCiAgICAgICAgICAgICAgICBVbkhpZGV2YWx1ZSA9IDEuMDAwMDA7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzJfZGVzdHJ1Y3RfdW5oaWRlIDogd2hlZWxfMV8xX2Rlc3RydWN0X3VuaGlkZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRMQldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzJfdW5oaWRlIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfM19kZXN0cnVjdF91bmhpZGUgOiB3aGVlbF8xXzFfZGVzdHJ1Y3RfdW5oaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdExNV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfM191bmhpZGUiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV80X2Rlc3RydWN0X3VuaGlkZSA6IHdoZWVsXzFfMV9kZXN0cnVjdF91bmhpZGUgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0TEYyV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfNF91bmhpZGUiOyAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfMV9kZXN0cnVjdF91bmhpZGUgOiB3aGVlbF8xXzFfZGVzdHJ1Y3RfdW5oaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJGV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMV91bmhpZGUiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8yX2Rlc3RydWN0X3VuaGlkZSA6IHdoZWVsXzFfMV9kZXN0cnVjdF91bmhpZGUgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0UkJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8yX3VuaGlkZSI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzNfZGVzdHJ1Y3RfdW5oaWRlIDogd2hlZWxfMV8xX2Rlc3RydWN0X3VuaGlkZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSTVdoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzNfdW5oaWRlIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfNF9kZXN0cnVjdF91bmhpZGUgOiB3aGVlbF8xXzFfZGVzdHJ1Y3RfdW5oaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJGMldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzRfdW5oaWRlIjsgIAogICAgICAgICAgICB9OyovICAKCiAgICAgICAgICAgICNkZWZpbmUgRGFtYWdlT2Zmc2V0IDAuMiAgCgogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzFfRGFtYWdlIDogd2hlZWxfMV8xX2Rlc3RydWN0ICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICB0eXBlID0gInRyYW5zbGF0aW9uIjsgIAogICAgICAgICAgICAgICAgYXhpcyA9ICJCYXNpY19EYW1wZXJfRGVzdHJ1Y3RfQXhpcyI7ICAKICAgICAgICAgICAgICAgIG1lbW9yeSA9IDE7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9ICJ3aGVlbF8xXzFfZGFtcGVyIjsgIAogICAgICAgICAgICAgICAgc291cmNlID0gIkhpdExGV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IDAuMDsgIAogICAgICAgICAgICAgICAgbWF4VmFsdWUgPSAxOyAgCiAgICAgICAgICAgICAgICBvZmZzZXQwID0gMDsgIAogICAgICAgICAgICAgICAgb2Zmc2V0MSA9IERhbWFnZU9mZnNldDsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMl9EYW1hZ2UgOiB3aGVlbF8xXzFfRGFtYWdlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdExCV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMl9kYW1wZXIiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV8zX0RhbWFnZSA6IHdoZWVsXzFfMV9EYW1hZ2UgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0TE1XaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV8zX2RhbXBlciI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzRfRGFtYWdlIDogd2hlZWxfMV8xX0RhbWFnZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRMRjJXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV80X2RhbXBlciI7ICAKICAgICAgICAgICAgfTsgIAoKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8xX0RhbWFnZSA6IHdoZWVsXzFfMV9EYW1hZ2UgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0UkZXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8xX2RhbXBlciI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzJfRGFtYWdlIDogd2hlZWxfMV8xX0RhbWFnZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSQldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzJfZGFtcGVyIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfM19EYW1hZ2UgOiB3aGVlbF8xXzFfRGFtYWdlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJNV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfM19kYW1wZXIiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl80X0RhbWFnZSA6IHdoZWVsXzFfMV9EYW1hZ2UgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0UkYyV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfNF9kYW1wZXIiOyAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMV9EYW1wZXJfRGFtYWdlX0JhY2tBbmltIDogd2hlZWxfMV8xX0RhbWFnZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzFfZGFtcGVyIjsgIAogICAgICAgICAgICAgICAgb2Zmc2V0MSA9IC0xLjIqRGFtYWdlT2Zmc2V0OyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV8yX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gOiB3aGVlbF8xXzFfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRMQldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzJfZGFtcGVyIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfM19EYW1wZXJfRGFtYWdlX0JhY2tBbmltIDogd2hlZWxfMV8xX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0TE1XaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV8zX2RhbXBlciI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzRfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSA6IHdoZWVsXzFfMV9EYW1wZXJfRGFtYWdlX0JhY2tBbmltICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdExGMldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzRfZGFtcGVyIjsgIAogICAgICAgICAgICB9OyAgCgogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzFfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSA6IHdoZWVsXzFfMV9EYW1wZXJfRGFtYWdlX0JhY2tBbmltICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJGV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMV9kYW1wZXIiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8yX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gOiB3aGVlbF8xXzFfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRSQldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzJfZGFtcGVyIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfM19EYW1wZXJfRGFtYWdlX0JhY2tBbmltIDogd2hlZWxfMV8xX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0Uk1XaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8zX2RhbXBlciI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzRfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSA6IHdoZWVsXzFfMV9EYW1wZXJfRGFtYWdlX0JhY2tBbmltICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdFJGMldoZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzRfZGFtcGVyIjsgIAogICAgICAgICAgICB9OyAgCgogICAgICAgICAgICAvKmNsYXNzIEdsYXNzMV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0iaGlkZSI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZ2xhc3MxIjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRHbGFzczEiOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IDA7ICAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IDE7ICAgCiAgICAgICAgICAgICAgICBoaWRldmFsdWUgPSAwLjk5OTk5OyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgR2xhc3MyX2Rlc3RydWN0IDogR2xhc3MxX2Rlc3RydWN0ICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImdsYXNzMiI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0R2xhc3MyIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIEdsYXNzM19kZXN0cnVjdCA6IEdsYXNzMV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJnbGFzczMiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9IkhpdEdsYXNzMyI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyBHbGFzczRfZGVzdHJ1Y3QgOiBHbGFzczFfZGVzdHJ1Y3QgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZ2xhc3M0IjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRHbGFzczQiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgR2xhc3M1X2Rlc3RydWN0IDogR2xhc3MxX2Rlc3RydWN0ICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImdsYXNzNSI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iSGl0R2xhc3M1IjsgIAogICAgICAgICAgICB9OyovICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgY2xhc3MgRnVlbCA6IFJvdGF0aW9uICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9ImZ1ZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImZ1ZWwiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJmdWVsX2F4aXMiOyAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0xOyAgCiAgICAgICAgICAgICAgICBtZW1vcnk9MTsgIAogICAgICAgICAgICAgICAgYW5nbGUwPSJyYWQgLTExMCI7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMT0wOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgSW5kaWNhdG9yU3BlZWQgOiBSb3RhdGlvbiAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc291cmNlPSJzcGVlZCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0ibXBoIjsgIAogICAgICAgICAgICAgICAgYXhpcz0ibXBoX2F4aXMiOyAgCiAgICAgICAgICAgICAgICBtZW1vcnk9MTsgIAogICAgICAgICAgICAgICAgbWF4VmFsdWU9MzguOTAwMDAyOyAgCiAgICAgICAgICAgICAgICBhbmdsZTE9InJhZCAtMjY1IjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIEluZGljYXRvckZ1ZWwgOiBSb3RhdGlvbiAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0icm90YXRpb24iOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9ImZ1ZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImZ1ZWxfMSI7ICAKICAgICAgICAgICAgICAgIGF4aXM9ImZ1ZWxfMV9heGlzIjsgIAogICAgICAgICAgICAgICAgbWVtb3J5PTE7ICAKICAgICAgICAgICAgICAgIG1pblZhbHVlPTAuMDAwMDAwOyAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0xLjAwMDAwMDsgIAogICAgICAgICAgICAgICAgYW5nbGUwPS0wLjA4NzI2NjsgIAogICAgICAgICAgICAgICAgYW5nbGUxPS0xLjY1ODA2MzsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIEluZGljYXRvclJQTSA6IFJvdGF0aW9uICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9InJwbSI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0icnBtIjsgIAogICAgICAgICAgICAgICAgYXhpcz0icnBtX2F4aXMiOyAgCiAgICAgICAgICAgICAgICBtZW1vcnk9MTsgIAogICAgICAgICAgICAgICAgYW5nbGUxPSJyYWQgODAiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgRHJpdmluZ1doZWVsIDogUm90YXRpb24gIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iZHJpdmluZ1doZWVsIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJkcml2ZXdoZWVsIjsgIAogICAgICAgICAgICAgICAgYXhpcz0iZHJpdmV3aGVlbF9heGlzIjsgIAogICAgICAgICAgICAgICAgbWluVmFsdWU9LTE7ICAKICAgICAgICAgICAgICAgIG1heFZhbHVlPTE7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMD0ocmFkIDgwKTsgIAogICAgICAgICAgICAgICAgYW5nbGUxPShyYWQgLTgwKTsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIFN0ZWVyaW5nXzFfMSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0icm90YXRpb25ZIjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJkcml2aW5nV2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMV9zdGVlcmluZyI7ICAKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzFfMV9zdGVlcmluZ19heGlzIjsgIAogICAgICAgICAgICAgICAgbWVtb3J5PTE7ICAKICAgICAgICAgICAgICAgIG1pblZhbHVlPSAtMTsgIAogICAgICAgICAgICAgICAgbWF4VmFsdWU9IDE7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMD0xLjA0NzE5ODsgIAogICAgICAgICAgICAgICAgYW5nbGUxPS0xLjA0NzE5ODsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIFN0ZWVyaW5nXzJfMSA6IFN0ZWVyaW5nXzFfMSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzFfc3RlZXJpbmciOyAgCiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8yXzFfc3RlZXJpbmdfYXhpcyI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyBXaGVlbF8xXzEgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHR5cGU9InJvdGF0aW9uWCI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0id2hlZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMSI7ICAKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzFfMV9heGlzIjsgIAogICAgICAgICAgICAgICAgbWVtb3J5PTE7ICAKICAgICAgICAgICAgICAgIHNvdXJjZUFkZHJlc3M9Imxvb3AiOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZT0wOyAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0xOyAgCiAgICAgICAgICAgICAgICBhbmdsZTA9MDsgIAogICAgICAgICAgICAgICAgYW5nbGUxPSJyYWQgLTM2MCI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzEgOiBXaGVlbF8xXzEgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8xIjsgIAogICAgICAgICAgICAgICAgYXhpcz0id2hlZWxfMl8xX2F4aXMiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMV8yIDogV2hlZWxfMV8xICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMiI7ICAKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzFfMl9heGlzIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMyA6IFdoZWVsXzFfMSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzMiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8xXzNfYXhpcyI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyBXaGVlbF8yXzIgOiBXaGVlbF8xXzEgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8yIjsgIAogICAgICAgICAgICAgICAgYXhpcz0id2hlZWxfMl8yX2F4aXMiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgV2hlZWxfMl8zIDogV2hlZWxfMV8xICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMyI7ICAKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzJfM19heGlzIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzFfNCA6IFdoZWVsXzFfMSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzQiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJ3aGVlbF8xXzRfYXhpcyI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyBXaGVlbF8yXzQgOiBXaGVlbF8xXzEgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl80IjsgIAogICAgICAgICAgICAgICAgYXhpcz0id2hlZWxfMl80X2F4aXMiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgV2hlZWxfMV8xX0RhbXBlciAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0idHJhbnNsYXRpb24iOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9ImRhbXBlciI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV8xX2RhbXBlcl9sYW5kIjsgIAogICAgICAgICAgICAgICAgYXhpcz0icG9zdW4gd2hlZWxfMV8xIjsgIAogICAgICAgICAgICAgICAgYW5pbVBlcmlvZCA9IDE7ICAKICAgICAgICAgICAgICAgIG1pblZhbHVlPSIwIjsgIAogICAgICAgICAgICAgICAgbWF4VmFsdWU9IjEiOyAgCiAgICAgICAgICAgICAgICBvZmZzZXQwPSAiMC41IjsgIAogICAgICAgICAgICAgICAgb2Zmc2V0MT0gIi0wLjUiOyAgCiAgICAgICAgICAgICAgICBtZW1vcnk9MTsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfMV9EYW1wZXIgOiBXaGVlbF8xXzFfRGFtcGVyICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMV9kYW1wZXJfbGFuZCI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzJfRGFtcGVyIDogV2hlZWxfMV8xX0RhbXBlciAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzJfZGFtcGVyX2xhbmQiOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgV2hlZWxfMl8yX0RhbXBlciA6IFdoZWVsXzFfMV9EYW1wZXIgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8yX2RhbXBlcl9sYW5kIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIGRheWxpZ2h0cyAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0iaGlkZSI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0icnBtIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJkYXlsaWdodHMiOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZT0tMC44OyAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0wLjI7ICAKICAgICAgICAgICAgICAgIHVuaGlkZXZhbHVlPTE7ICAKICAgICAgICAgICAgICAgIHNvdXJjZUFkZHJlc3M9ImNsYW1wIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGNsYXNzIHJldmVyc2VfbGlnaHQgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHR5cGU9IkhpZGUiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249InJldmVyc2VfbGlnaHQiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2VBZGRyZXNzPSJjbGFtcCI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iR2VhciI7ICAKICAgICAgICAgICAgICAgIG1pblZhbHVlID0gLTE7ICAKICAgICAgICAgICAgICAgIG1heFZhbHVlID0gMDsgIAogICAgICAgICAgICAgICAgaGlkZVZhbHVlID0gIjAuMiI7ICAgICAgCiAgICAgICAgICAgIH07ICAKCiAgICAgICAgICAgIC8qY2xhc3Mgd2hlZWxfMV8xX0RhbWFnZSA6IHdoZWVsXzFfMV9EYW1hZ2UgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIG9mZnNldDE9MC4xODAwMDAwMTsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMl9EYW1hZ2UgOiB3aGVlbF8xXzJfRGFtYWdlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBvZmZzZXQxPTAuMTgwMDAwMDE7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8yXzFfRGFtYWdlIDogd2hlZWxfMl8xX0RhbWFnZSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgb2Zmc2V0MT0wLjE4MDAwMDAxOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8yX0RhbWFnZSA6IHdoZWVsXzJfMl9EYW1hZ2UgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIG9mZnNldDE9MC4xODAwMDAwMTsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMV9EYW1wZXJfRGFtYWdlX0JhY2tBbmltIDogd2hlZWxfMV8xX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIG9mZnNldDE9LTAuMTgwMDAwMDE7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyB3aGVlbF8xXzJfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSA6IHdoZWVsXzFfMl9EYW1wZXJfRGFtYWdlX0JhY2tBbmltICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBvZmZzZXQxPS0wLjE4MDAwMDAxOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8xX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gOiB3aGVlbF8yXzFfRGFtcGVyX0RhbWFnZV9CYWNrQW5pbSAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgb2Zmc2V0MT0tMC4xODAwMDAwMTsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzJfMl9EYW1wZXJfRGFtYWdlX0JhY2tBbmltIDogd2hlZWxfMl8yX0RhbXBlcl9EYW1hZ2VfQmFja0FuaW0gIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIG9mZnNldDE9LTAuMTgwMDAwMDE7ICAKICAgICAgICAgICAgfTsqLyAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGNsYXNzIERyaXZpbmdXaGVlbCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0icm90YXRpb24iOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9ImRyaXZpbmdXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZHJpdmV3aGVlbCI7ICAKICAgICAgICAgICAgICAgIGF4aXM9ImRyaXZld2hlZWxfYXhpcyI7ICAKICAgICAgICAgICAgICAgIG1lbW9yeT0xOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZT0tMTsgIAogICAgICAgICAgICAgICAgbWF4VmFsdWU9MTsgIAogICAgICAgICAgICAgICAgYW5nbGUwPShyYWQgNzApOyAgCiAgICAgICAgICAgICAgICBhbmdsZTE9KHJhZCAtNzApOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgU3RlZXJpbmdfMV8xICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICB0eXBlPSJyb3RhdGlvblkiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9ImRyaXZpbmdXaGVlbCI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMV8xX3N0ZWVyaW5nIjsgIAogICAgICAgICAgICAgICAgYXhpcz0id2hlZWxfMV8xX3N0ZWVyaW5nX2F4aXMiOyAgCiAgICAgICAgICAgICAgICBtZW1vcnk9MTsgIAogICAgICAgICAgICAgICAgbWluVmFsdWU9InJhZCAtOTAiOyAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0icmFkICs5MCI7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMD0xLjA0NzE5ODE7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMT0tMS4wNDcxOTgxOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3MgU3RlZXJpbmdfMl8xIDogU3RlZXJpbmdfMV8xICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzJfMV9zdGVlcmluZyI7ICAKICAgICAgICAgICAgICAgIGF4aXM9IndoZWVsXzJfMV9zdGVlcmluZ19heGlzIjsgIAogICAgICAgICAgICAgICAgYW5nbGUwPTEuMDQ3MTk4MTsgIAogICAgICAgICAgICAgICAgYW5nbGUxPS0xLjA0NzE5ODE7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyBJbmRpY2F0b3JTcGVlZCA6IFJvdGF0aW9uICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9InNwZWVkIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJtcGgiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJtcGhfYXhpcyI7ICAKICAgICAgICAgICAgICAgIG1lbW9yeT0xOyAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0yODsgIAogICAgICAgICAgICAgICAgYW5nbGUwPTAuMTc0NTMyOTk7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMT0tMy4xNDE1OTM7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyBJbmRpY2F0b3JSUE0gOiBSb3RhdGlvbiAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0icm90YXRpb24iOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9InJwbSI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0icnBtIjsgIAogICAgICAgICAgICAgICAgYXhpcz0icnBtX2F4aXMiOyAgCiAgICAgICAgICAgICAgICBtZW1vcnk9MTsgIAogICAgICAgICAgICAgICAgbWluVmFsdWU9MDsgIAogICAgICAgICAgICAgICAgbWF4VmFsdWU9NzUwMDsgIAogICAgICAgICAgICAgICAgYW5nbGUwPShyYWQgMCk7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMT0ocmFkIDI1MCk7ICAKICAgICAgICAgICAgfTsgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgY2xhc3MgZnVlbCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0icm90YXRpb24iOyAgCiAgICAgICAgICAgICAgICBzb3VyY2U9ImZ1ZWwiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImZ1ZWwiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJmdWVsX2F4aXMiOyAgCiAgICAgICAgICAgICAgICBtZW1vcnk9MTsgIAogICAgICAgICAgICAgICAgbWluVmFsdWU9MDsgIAogICAgICAgICAgICAgICAgbWF4VmFsdWU9MTsgIAogICAgICAgICAgICAgICAgYW5nbGUwPTA7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMT0icmFkICs1NSI7ICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyBwcm9wXzAxICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICB0eXBlPSJyb3RhdGlvbiI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0icnBtIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJwcm9wXzEiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJwcm9wXzFfYXhpcyI7ICAKICAgICAgICAgICAgICAgIG1lbW9yeT0xOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZT0xMDAwOyAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZT03MDAwOyAgCiAgICAgICAgICAgICAgICBhbmdsZTA9InJhZCAzMCI7ICAKICAgICAgICAgICAgICAgIGFuZ2xlMT0icmFkIDM1IjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGNsYXNzIGRheWxpZ2h0cyAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0iaGlkZSI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0icnBtIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJkYXlsaWdodHMiOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZT0tMC44OyAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0wLjI7ICAKICAgICAgICAgICAgICAgIHVuaGlkZXZhbHVlPTE7ICAKICAgICAgICAgICAgICAgIHNvdXJjZUFkZHJlc3M9ImNsYW1wIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGNsYXNzIHJldmVyc2VfbGlnaHQgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHR5cGU9IkhpZGUiOyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249InJldmVyc2VfbGlnaHQiOyAgCiAgICAgICAgICAgICAgICBzb3VyY2VBZGRyZXNzPSJjbGFtcCI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iR2VhciI7ICAKICAgICAgICAgICAgICAgIG1pblZhbHVlID0gLTE7ICAKICAgICAgICAgICAgICAgIG1heFZhbHVlID0gMDsgIAogICAgICAgICAgICAgICAgaGlkZVZhbHVlID0gIjAuMiI7ICAgICAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgLypjbGFzcyBkYW1hZ2VIaWRlZG9vcjEgOiBkYW1hZ2VIaWRlICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249ImRvb3IxIjsgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIGRhbWFnZUhpZGVkb29yMiA6IGRhbWFnZUhpZGUgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZG9vcjIiOyAgCiAgICAgICAgICAgIH07ICAgICAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGNsYXNzIEdsYXNzNV9kZXN0cnVjdCAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgdHlwZT0iaGlkZSI7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0iZ2xhc3M1IjsgIAogICAgICAgICAgICAgICAgc291cmNlPSJIaXRHbGFzczUiOyAgCiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IDA7ICAKICAgICAgICAgICAgICAgIG1heFZhbHVlID0gMTsgIAogICAgICAgICAgICAgICAgaGlkZXZhbHVlID0gMC45OTk5OTsgIAogICAgICAgICAgICB9OyovICAgICAgCiAgICAgICAgICAgIGNsYXNzIFdoZWVsXzFfMV9EYW1wZXIgOiBXaGVlbF8xXzFfRGFtcGVyICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICB0eXBlPSJ0cmFuc2xhdGlvbiI7ICAKICAgICAgICAgICAgICAgIHNvdXJjZT0iZGFtcGVyIjsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8xXzFfZGFtcGVyX2xhbmQiOyAgCiAgICAgICAgICAgICAgICBheGlzPSJwb3N1biB3aGVlbF8xXzEiOyAgCiAgICAgICAgICAgICAgICBhbmltUGVyaW9kID0gMTsgIAogICAgICAgICAgICAgICAgbWluVmFsdWU9IjAiOyAgCiAgICAgICAgICAgICAgICBtYXhWYWx1ZT0iMSI7ICAKICAgICAgICAgICAgICAgIG9mZnNldDA9ICIwLjUiOyAgCiAgICAgICAgICAgICAgICBvZmZzZXQxPSAiLTAuNSI7ICAKICAgICAgICAgICAgICAgIG1lbW9yeT0xOyAgCiAgICAgICAgICAgIH07ICAKICAgICAgICAgICAgY2xhc3Mgd2hlZWxfMl8xX0RhbXBlciA6IFdoZWVsXzFfMV9EYW1wZXIgIAogICAgICAgICAgICB7ICAKICAgICAgICAgICAgICAgIHNlbGVjdGlvbj0id2hlZWxfMl8xX2RhbXBlcl9sYW5kIjsgICAgICAgICAgICAgIAogICAgICAgICAgICB9OyAgCiAgICAgICAgICAgIGNsYXNzIHdoZWVsXzFfMl9EYW1wZXIgOiBXaGVlbF8xXzFfRGFtcGVyICAKICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICBzZWxlY3Rpb249IndoZWVsXzFfMl9kYW1wZXJfbGFuZCI7ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgfTsgIAogICAgICAgICAgICBjbGFzcyBXaGVlbF8yXzJfRGFtcGVyIDogV2hlZWxfMV8xX0RhbXBlciAgCiAgICAgICAgICAgIHsgIAogICAgICAgICAgICAgICAgc2VsZWN0aW9uPSJ3aGVlbF8yXzJfZGFtcGVyX2xhbmQiOyAgICAgICAgICAKICAgICAgICAgICAgfTsgICAgICAgICAgICAgIAogICAgICAgIH07ICAKICAgIH07ICAKfTsgIA==